2021年2月
2021年2月26日 (金)
2021年2月22日 (月)
カミナリで「対消滅」
昨夜、風呂上がりに見ていたNHKの「サイエンスZERO」。
「ほんまかいな?!」のお話しでした。
・「超巨大雷スーパーボルト!謎の“対消滅”を追え」
この発見の発端が「もんじゅ」。
異常な放射線を検出して装置が緊急停止。
これを追いかけたら原因は「雷」起因のガンマ線だったと。
「対消滅」といったら「反物質」。
この場合は「電子」と「陽電子」。
それがくっついて「対消滅」。
地球の大気中でこんなことが起こっていたとは・・・
雷が反物質の雲をつくる!? ? 雷の原子核反応を陽電子と中性子で解明 ?|日本原子力研究開発機構:プレス発表
・「雷による対消滅」現象の解説。
1. 雷が地表に向けて放射したガンマ線 (TGF) により、
大気中の窒素 14N が原子核反応(光核反応)を起こし、
中性子と不安定な窒素の放射性同位体 13N を生成する。
2. 生成した中性子は大気中で徐々にエネルギーを失い
つつ広がる。
最終的に大気中や地表の原子核に吸収されてガンマ線
を放射し「ショートバースト」として観測される。
3. 不安定な窒素同位体 13N は、雷雲とともに風下に
運ばれ、徐々にベータプラス崩壊して13C に変わっ
ていく。この際に陽電子が放出され、大気中の電子
と対消滅して、0.511 MeV ガンマ線を出す。
これが35秒遅れて検出された対消滅ガンマ線である。
2021年2月17日 (水)
ワイパーモータの回転方向、左ハンドル車は逆なの?
日産スカイラインGT-R用「ワイパーアンプ」その後 ではこのような接続。
H/Lの接点がGND側に来ていてモータをオン/オフします。
ワイパー、車内の運転席から見て右に回り出して
窓の右上端部まで拭いてくれます。
右ハンドル車ならこれで運転者の視界が確保できます。
で、左ハンドル車ではどうだ?というのが疑問。
同じ回転方向だと、窓の左上端部が拭けません。
ということは、左ハンドル車の場合、ワイパーは左回り?
そして、ワイパーモータの+/-は同じで、こんなふうに接続して
逆回ししているのか?
いかがでしょうか。
さらに・・・電車(機関車)の窓だと左右逆回転のもあるの?
※ワイパーの停止位置が違うので、スタート方向が
異なる?
amazon basics充電池 単3ニッ水2000mAh
1900mAhのを注文したと思ったら電池側面には「2000mAh」と。
100mAhぶんを得したのか、それとも落とし穴があるのか・・・
思ってたのと色が違ったモノがやってきた。
さっそくですが、新JIS C8708:2019による充放電実験を始めました。
やってきてすぐに電池電圧と内部抵抗を測定。
無負荷だと1.28V~1.29V。
1Ω負荷で1.20V~1.21V。
内部抵抗は15mΩ~17mΩ。
※機材
電圧測定:電池電圧チェッカー
内部抵抗:交流定電流方式で電池の内部抵抗を計ってみる
JIS C8708充放電:JIS C8708:2019充放電試験回路製作中
※あれこれネットを見ていて・・・
電池の放電実験、使っている電池ホルダーがキモです。
スプリング電極の電池ホルダーでやっている実験は・・・ちょいとなぁです。
電極での電圧ドロップを認識しているかどうか。
また、負荷のつなぎ方も問題。
四端子接続を理解しているかどうか。
・充電式電池おすすめランキング19選|長持ちするコスパ充電池はコレ【2020年】 - the360.life(サンロクマル)
・充電池はどれを買うのがお得かガチ検証した 〜 単3形2000mAh級ニッケル水素充電池編 - mitok(ミトク)
・エネループとエボルタとAmazonベーシック充電池の違い - PCと解
※過去記事
・トランジスタ技術2008年6月号への投稿(pdf)
・バッテリー放電器で使った電池ホルダーについて
・電池イジメで-居酒屋ガレージ日記
・バッテリー放電器、電池ホルダー電極の清掃
・【電池BOX】 うずまきバネ式の抵抗は板バネ式の数十倍大きい - チカラの技術
2021年2月16日 (火)
パナソニック充電式エボルタBK-3MLE(1950mAh)充放電時間の変化
2021年2月12日:パナソニック充電式エボルタBK-3MLE(1950mAh)新JIS充放電実験800サイクルで終了
の続き。
0.5Cでの充放電時間と充電停止電圧のグラフです。
新JIS C8708:2019での充電は「-ΔV」検出で充電を止めます。
その時の電圧を(右側目盛)で示しています。
他の「1900mAh」クラスの電池、
エネループ・スタンダードだとこんな様子。
これが富士通・白。
さて、どれを選びますか?
充電式エボルタ、他の2つにくらべて「50mhA」だけ公称容量が
大きいんですが、劣化の推移が分かるこのグラフを比較するとその
メリットが感じられません。
ただ・・・充電停止電圧の上昇が寿命末期でも他に比べると
小さい、ということは「内部抵抗があまり大きくならない」という
特徴があるのかもしれません。
※実験終了時の内部抵抗
・エボルタ :261mΩ
・エネループスタンダード :407mΩ
・富士通・白 :328mΩ
こんな違いがあります。
※ここまで内部抵抗が大きくなると、市販の急速充電器だと
異常電池として充電してくれないかもしれないわけで・・・
※充電時間のとんがりについて
充放電が進むと、充電時間にとんがりが出てきます。
これは50サイクルごとに実行される0.2C放電、この直後に
行われた0.5C充電での時間がちょいと長くなっているためです。
0.2Cでゆっくり放電されると、電池がカラっけつになるんで、
充電時間が(0.5C放電の時より)長くなります。
※電池あれこれ まとめ
※実験継続中の電池は2つ。
・エネループ・スタンダードの放電時間6割で(もうすぐ700回)
・充電式エボルタお手軽モデル(400回を通過)
2021年2月15日 (月)
余ったLEDテープで「無限鏡」
いわゆる無限鏡 を試しています。
ホームセンターで「UVカットシート(ハーフミラーフィルム)を、
百均屋で「鏡」を買ってきて、どんなものになるのかあれこれと。
余ったLEDテープを使って、いろんなパターを表示させてみました。
フィルムを透明のカードケースに貼り付けて。
ちゃんと貼り付けてないので、フィルムのシワシワが目立ちます。
こちらはスモークのアクリル板。
ちょっと暗くなりますが、こちらのほうが良い感じです。
見栄え良く工作しなくちゃなりません。
できるだけ薄型で(横から見ると不思議な感じを演出か)。
どんな表示パターンが面白いかな。
「円形」の鏡も百均屋で買ってきてますが、単純な四角より
細工が大変そう。
2021年2月12日 (金)
ねがてぃぶろぐさんの「反転DCDCを昇降圧DCDCのように使う」を確かめる
2021年2月8日:「からくり時計」出窓のアトラクションに
にリンクを置きました
ねがてぃぶろぐ:反転DCDCを昇降圧DCDCのように使う
これを実動させてちょいと確かめてみました。
こういう原理。
-5V出力をGNDにしたら、電池の0Vが+5Vになるという仕掛け。
こんな回路。
ユニバーサル基板の切れ端に手ハンダ。
試験ツールにつないで・・・
出力電流を10mAステップで大きくしながら出力電圧と
入力電流を記録します。
入力電圧は3.5vから6.5Vまで0.5Vステップで可変。
出てきたグラフがこれ。
出力電圧の変化。
3.5Vから6.5Vまで入力電圧を変えてもOK。
どのくらいの電流でリミットがかかるかわかります。
その時の入力電流を見るとこんな具合。
このグラフから効率が分かります。
ツールの回路図
ちょっと手直しがあるけど、ほぼこの状態。
出力データの様子。
テキストで出てくるので、gnuplotに食わせます。
# Supply : 3.50V 6.50V Step:0.50V Limit:1.00A
# Current:-0.00A -1.00A Step:0.01A Limit:4.00V
3.50 0.02 0.00 5.04
3.50 0.04 0.01 5.04
3.50 0.07 0.02 5.03
3.50 0.10 0.03 5.03
3.50 0.13 0.04 5.03
3.50 0.16 0.05 5.02
3.50 0.19 0.06 5.02
:
3.50 0.88 0.28 4.43
3.50 0.88 0.29 4.26
3.50 0.88 0.30 4.06
3.50 0.88 0.31 3.89 *
4.00 0.01 0.00 5.05
4.00 0.03 0.01 5.05
4.00 0.06 0.02 5.05
:
4.00 0.85 0.35 4.34
4.00 0.84 0.36 4.18
4.00 0.84 0.37 3.99 *
4.50 0.01 0.00 5.05
4.50 0.03 0.01 5.05
4.50 0.05 0.02 5.05
:
パナソニック充電式エボルタBK-3MLE(1950mAh)新JIS充放電実験800サイクルで終了
パナソニック充電式エボルタBK-3MLE(1950mAh)実験開始が
2020年10月8日でした。
先ほど800サイクルを終えました。
充電開始直後の「偽の-ΔV」も発生していますし、
これでこの電池のイジメを終わります。
終了後の内部抵抗は261mΩでした。 (開始時は22mΩ)
50サイクルごとの0.2C放電グラフです。
定格で5時間=300分。
同じ1900mAhクラスのエネループや富士通・白に比べると、
ちょいと見劣りします。
詳細なグラフはおいおいと。
・電池あれこれ(まとめ)
※パナソニックの電池で解せないところ・・・
・1900mAhクラス、エネループ・スタンダードとこの
充電式エボルタの2種体制なのはなぜ?
・エネループ・ライトを無くしてエボルタお手軽モデルを
残したのはなぜ?
2021年2月 9日 (火)
スーパーキャパシタ劣化
ガレージ仲間の水道屋・亀ちゃんとこからやって来た装置。
監視カメラ用の画像合成ユニット。
「新しいのにしたから」と。
修理依頼じゃなく、
「下間はんならきっと中に興味を持つだろぅ」
っということで・・・
でも、「時計がおかしかった」ということなんで、
そのあたりを探ってみました。
その部分の写真。
リコーの「RS5C316A」というリアルタイムクロックが
使われていました。
そのバックアップ電源にスーパーキャパシター。
(写真はそのハンダを外したところ)
こんな形状のがハンダされてました。
「3.3V 0.22F」。
メーカー名、「EL」が見えてますがちゃんとは不明。
あれこれ探したらこれっぽい。
https://akizukidenshi.com/catalog/g/gP-00240/
「ELNA エルナー株式会社」
しかし・・・ 裏向けてみると
こんな具合に中から何かが漏出。
エネルギー、貯めてくれません。
以前も、
2019年2月28日:電気二重層コンデンサの劣化?!
なんてことに出くわしてます。
スーパーキャパシタ、電解コンデンサのように回路のあちこちで
使われているわけではありません。
カレンダー機能やメモリーバックアップ機能が必要な回路で、
リチウム電池の代わりです。
本来、交換不要な部品のはずなんですが、あんがい、傷みやすい
ものなのかもしれません。
2021年2月 8日 (月)
「からくり時計」出窓のアトラクションに
女房実家から発掘してきた
「TWINBIRD からくり時計 CK-897 パペットミュージック」。
※解体した後で撮った写真
毎時0分になると、時報がわりに人形が動いて
オルゴールが鳴るという仕掛けです。
これをそのまま出窓のアトラクションに使っても面白くない。
そこで、、人感センサー検出で「人形だけを動かして」
という改造依頼がやって(女房から)きました。
※オルゴールは不要。
音は窓外では聞こえないので。
時計は時計として動かして。
見た目はもとのように。
時計からの毎時0分検出信号の他に、手動操作スイッチがあります。
これを押すとモータが回り始め、停止位置検出の接点がオン。
これが自己保持になります。
しばらくすると、これがオフして停止。
1サイクルの動作が終わります。
モータは1.5V。単1乾電池が仕込まれています。
出窓の人感センサー、検出されるとしばらくの間、
24V電源がオンされるようにしています。
(出窓前に人がしばらくいてたらを検出。
オン・ディレー、オフ・ディレー、リトリガー)
これを使えばよさそうです。
必要なのは24V→1.5Vの降圧回路。
MC34063(NJM2360)の出番でしょう。
電流をブーストするため、外部Trを付けるべきかと
モータ電流を調べましたら、回り出したら50mAほど。
動き出しのピークでも0.2Aほど。
外部Trなしで大丈夫そうです。
※ネットでMC34063を検索していたら、
「ねがてぃぶろぐ」さんで、こんな記事を発見。
※備忘録としてメモ
・ねがてぃぶろぐ 負電源三端子レギュレータを正電源用にするとドロップ分が負電源になる
・ねがてぃぶろぐ 反転DCDCを昇降圧DCDCのように使う
※過去記事
・2010年11月18日:MC34063ステップダウン・レギュレータ
・2008年02月21日:Caplio GX100用LEDリングライトまとめ
・2015年01月27日:出窓用焦電センサー検出回路
・2007年12月11日:紫外線、おまけ ←これが和むかも
※モータ駆動用1.5Vの発生、こんな回路です。
2021年2月 5日 (金)
24VでLチカ
結論は出てるんで、純然たるHELPじゃありません。
何かというと
「24V電源で警報用LEDを点滅させたい」
と同僚の声。
12Vなら555やCMOSゲートIC(4000番シリーズ)を使って
どうにでも料理できます。
しかし電源が24Vとなると・・・。
レギュレータやツェナーダイオードは使いたくないし・・・
結論は、
『8ピンのOP-AMPあるいはコンパレータでシュミット回路を
作って発振かな』
と。
LM358やLM393は片電源30Vでも動きます。
24Vが加わったらLEDがピカピカ。オフで消灯という単純な仕様。
何か他に手軽なアイデアがありましたらお願いします。
Arduinoで使える乱数の実行時間
2021年2月3日:FastLED-masterにある8bit乱数関数
この続き・・・
偏りの少ない乱数値の発生、桁数8bitのrand8()を使うと
数の出現がおかしくなることが分かりました。
※256を割れる値で乱数を得る場合はok。
※なんといっても早い。
速度を追い求めないなら、今までどおり16bitのrand()か
あるいは32bitのrandom()。
その実行速度をオシロで見てみました。
こんなスケッチ。
/***** rand()とrandom()の速度を見てみる *****/
// タイミング確認パルス
#define PB0_H (PORTB |= (1 << PB0)) // (!!!)PB0:D8 H/L
#define PB0_L (PORTB &= ~(1 << PB0))
#define PB1_H (PORTB |= (1 << PB1)) // (!!!)PB1:D9 H/L
#define PB1_L (PORTB &= ~(1 << PB1))
#define PB2_H (PORTB |= (1 << PB2)) // (!!!)PB2:D10 H/L
#define PB2_L (PORTB &= ~(1 << PB2))
#define PB3_H (PORTB |= (1 << PB3)) // (!!!)PB3:D11 H/L
#define PB3_L (PORTB &= ~(1 << PB3))
/***** セットアップ *****/
void setup()
{
pinMode(8, OUTPUT); // タイミングチェック用
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
/***** ループ *****/
void loop()
{
volatile byte r;
volatile uint16_t r1; // rand() 結果
volatile uint8_t r2; // rand() % r 結果
volatile uint32_t r3; // random() 結果
volatile uint8_t r4; // random() % r 結果
r = 1 + (rand() % 255); // 1~255を乱数で
PB0_H; // (!!!)
r1 = rand(); // 16bit乱数
PB0_L;
PB1_H; // (!!!)
r2 = r1 % r; // rand() % r, 16bit/8bit
PB1_L;
PB2_H; // (!!!)
r3 = random(); // 32bit乱数
PB2_L;
PB3_H; // (!!!)
r4 = r3 % r; // random() % r, 32bit/8bit
PB3_L;
}
得られた波形。
ch1:16bitのrand()。
ch2:16bit % 8bit 剰余の実行時間。
ch3:32bitのrandom()。
ch4:32bit % 8bitの実行時間
2021年2月 3日 (水)
ATtiny85でカラーLEDテープを光らせてみる
『attiny85 ws2812b』と検索すると、ATtiny85マイコンで
カラーLEDテープを制御しているArduino環境とスケッチが見つかります。
私がトライしたのは、素の(Arduinoから離れた)ATtiny85での制御です。
ATtiny85のプログラムはAVR Studioで作成。
※ただ・・・使ってるのはV4.19と古~い環境
書き込みはAVRISPmk2とSTK500互換の書き込みツール。
Arduinoから離れますんで便利なライブラリは使えません。
delay関数さえもタイマー割り込みを使って作らなくて
はなりません。
LEDテープを制御する関数は、
「FastLED.h」や「Adafruit_NeoPixel.h」から借りてきます。
ATtiny85をArduino環境でという記事を見てますと、
皆さん「8MHz」で動かしておられます。
しかし、ヒューズビットを書き換えれば内蔵クロックで
16MHzで動かすことができます。
5V電源で動かしますんで、電流消費は気にしない。
早いほうが良っということで。
製作の目的は(とりあえず)女房から依頼の出窓のLEDアトラクション 。
※光り物はモータ駆動のようにうるさくないので。
・旧ブログの出窓記事
LEDテープをちょん切って3つだけで「色相環データ」を
ぐるぐる回して制御してます。
・ダウンロード - tn85_rgb1.txt
ファイルタイプは.txtですんで.cに変更を
制御タイミングはdelayやmillisは使わずに、1msタイマー
割り込み内でセットするフラグ。
メインルーチンでこのフラグを見てタイミングを計ります。
※delay、簡単なテストプログラムで使うのは構わ
ないんですがこれで待っている間は、他のことを
何もできなくなっちゃいます。
フラグというかイベントで処理を回すと、空き時間
は他のことができます。
LEDテープへのデータ転送タイミング波形です。
この部分はインライン・アセンブラで記述しています。
Cとの値の受け渡しが難しい。
AVR StudioではうまくいくのにArduino IDEに移すと
エラーが出ちゃうとか。
なかなかややこしいです。
その部分。
/****************************************/
/* LEDテープ WS2812B 制御 */
/****************************************/
// LEDの個数などデータ設定
#define LED_N 3 // LEDの数
// LED制御ポートH/L (直接アドレスを記述 asmの関係で)
#define LED_H "sbi 0x18, 4" "\n" // PB4 H/L
#define LED_L "cbi 0x18, 4" "\n"
// LEDバッファ
byte led_bff[LED_N * 3]; // G,R,B LED輝度データバッファ
// 明るさ
byte led_bright = 255; // 明るさデータ 0~255
// ledsetで使用
/***** 表示実行 *****/
// led_bffの全データをWS2812Bに転送
// LED_N : LEDの数(255コまで)
// LED_H、LED_Lで直接出力ポートの操作を記述
// 0 H:310ns L:870ns
// 1 H:750ns L:370ns
void ledShow(void)
{
byte *p;
PB3_H; // (!!!)
p = led_bff; // バッファの先頭
cli(); // 割り込み禁止
asm volatile(
"ldi r24, %0" "\n\t" // LEDの数*G,R,B
"loop1%=:" "\n\t"
"ld r25, %a1+" "\n\t" // 1バイト読み出し
"ldi r18, 8" "\n\t" // 8bit loop
"loop2%=:" "\n\t"
LED_H // ※LED出力:H
"nop" "\n\t"
"nop" "\n\t"
"sbrs r25, 7" "\n\t"
LED_L // ※0の時:L
"nop" "\n\t"
"nop" "\n\t" // 時間調整
"nop" "\n\t"
"nop" "\n\t"
"nop" "\n\t"
"nop" "\n\t"
LED_L // ※1の時:L
"lsl r25" "\n\t"
"dec r18" "\n\t"
"brne loop2%=" "\n\t" // 8回loop
"dec r24" "\n\t"
"brne loop1%=" "\n\t" // バッファバイト数loop
:
: "M" (3*LED_N), // %0:LEDの数*G,R,B
"e" (p) // %a1:バッファアドレス
);
sei(); // 割込許可
PB3_L; // (!!!)
}
時間待ちの「nop」をいくつか抜けば8MHzでも動きます。
LEDテープのバッファは1つのLEDで3バイト。
「1mで60コ」のテープだと180バイトのバッファが必要になります。
ループカウンタが8bitなんで256バイト、LEDの数で85個まで。
今回のLED照明はこのガラス製「白鳥」さん用。
出窓は一ヶ月先の「お雛様」モードになってます。
「跳ねるLED」 も順調に光っています。
FastLED-masterにある8bit乱数関数
※前記事
・2021年1月30日:8bit乱数関数 random8()
・2021年1月28日:Arduinoの乱数関数「random」に違和感
カラーLEDテープの制御に絡んで出会った
「FastLED-master\src\lib8tion\random8.h」
の乱数ライブラリ。
これを使った時の乱数出現頻度についてちょいと調べてみました。
Arduino-UNO上で実行。
こんなスケッチで4つの乱数発生について調べました。
・ダウンロード - test_random8_1.txt
※ファイルタイプをtxtにしてます。
inoに変更して。
乱数関数で「0~99」の値を出してその出現頻度を見ます。
10万回実行。
100種類ですんで、平均すると一つの数あたり1000回カウント
されるはずです。
・一つ目
Arduinoに備わっているrand()と剰余で8bit値を得ます。
uint8_t randr(uint8_t n)
{
return rand() % n; // rand()で
}
・二つ目
FastLED-masterのライブラリから、rand8()と乗算/256で。
uint8_t randm(uint8_t lim)
{
uint8_t r = rand8(); // rand8()で乱数
r = (r*lim) >> 8; // 乗じて1/256
return r;
}
・三つ目
rand()+乗算/256で。
uint8_t randr1(uint8_t n)
{
uint8_t r = rand(); // rand()で
r = (r * n) >> 8; // 乗じて1/256
return r;
}
・四つ目
rand8()と剰余で。
uint8_t randm1(uint8_t n)
{
return rand8() % n; // 乱数はrand8()で発生
}
出てきた100個の数字の出現頻度、こんな具合になりました。
一つ目の「rand()と剰余」以外は、「こりゃあかんのちゃう」
という結果です。
Rand test
# cnt-r cnt-m rm 8r
0 947 1194 1235 1176
1 969 1186 1113 1169
2 1001 790 805 1144
3 1016 1170 1159 1198
4 1069 780 848 1186
5 957 1174 1203 1165
6 985 797 800 1194
7 982 1173 1150 1180
8 1023 1192 1143 1146
9 1014 772 733 1178
10 1023 1169 1157 1161
11 1010 799 766 1182
12 1009 1181 1157 1167
13 951 772 736 1160
14 1004 1163 1197 1186
15 991 789 800 1161
16 1006 1181 1187 1162
17 1016 1164 1118 1146
18 942 786 742 1147
19 970 1172 1153 1177
20 967 781 832 1188
21 1024 1155 1169 1161
22 996 800 810 1168
23 1046 1183 1120 1185
24 1023 774 762 1179
25 960 1183 1183 1161
26 1052 1161 1157 1182
27 1057 784 825 1147
28 985 1170 1140 1166
29 1003 810 764 1168
30 1024 1182 1209 1173
31 1046 780 783 1147
32 977 1172 1155 1170
33 1031 1176 1218 1202
34 989 768 764 1160
35 1033 1201 1182 1189
36 971 773 758 1203
37 988 1180 1146 1173
38 973 781 798 1178
39 992 1171 1159 1173
40 992 772 806 1173
41 1053 1155 1181 1181
42 943 1182 1168 1168
43 1026 789 847 1181
44 954 1180 1179 1178
45 966 794 813 1192
46 1055 1191 1165 1193
47 994 775 769 1177
48 968 1196 1167 1158
49 1031 786 810 1174
50 974 1149 1178 1193
51 990 1164 1188 1173
52 997 769 738 1161
53 1009 1166 1125 1187
54 1006 784 808 1175
55 1045 1181 1140 1183
56 958 767 784 792
57 1056 1168 1208 785
58 972 1156 1139 774
59 1029 793 767 787
60 1020 1163 1167 780
61 997 757 789 763
62 946 1174 1137 788
63 1006 788 795 770
64 1024 1179 1223 765
65 1019 769 795 795
66 1009 1168 1188 782
67 1001 1181 1245 788
68 946 770 821 787
69 971 1181 1163 787
70 972 791 753 769
71 979 1192 1221 777
72 986 767 796 770
73 1001 1159 1194 777
74 1011 793 713 789
75 1009 1161 1161 779
76 1012 1178 1170 769
77 1063 768 734 779
78 962 1174 1134 773
79 1037 747 768 772
80 1008 1160 1179 796
81 1027 784 758 770
82 996 1168 1242 787
83 993 1165 1177 766
84 952 791 744 774
85 1017 1147 1209 785
86 971 786 763 788
87 1042 1165 1159 788
88 993 782 772 793
89 1040 1175 1169 781
90 1003 794 834 770
91 966 1180 1141 763
92 974 1164 1198 780
93 1005 776 831 776
94 999 1168 1154 777
95 1004 771 792 775
96 1010 1154 1176 784
97 1051 784 754 776
98 976 1145 1109 780
99 962 775 756 789
Stop
rand rand8 rand rand8
剰余 乗算 乗算 剰余
65us 3.3us 53us 8.2us
エクセルに食わせて昇順にソートしてグラフ化。
一つ目は「1000」が中心になっているのが見えますが、
残り3つは「1000」付近が飛んでいます。
rand()と乗算/256のもアウト。
rand() と 剰余 OK 65us
rand8()と 乗算/256 NG 3.3us
rand() と 乗算/256 NG 53us
rand8()と 剰余 NG 8.2us
※標準偏差がどうのはまた
とりあえずソートして傾向をみただけ
「rand8()と剰余」では値55と56を境にして極端に出現頻度の
傾向が変化しています。
これもけったいな。
「rand8()+剰余」でもおかしな結果ですんで、FastLED-master
のrand8()乱数そのものがということなのかと、8bit値0~255での
出現頻度を調べてみました。
すると、rand()では最小値が896で最大が1087。
中央値が1000。
対し、rand8()では985~1011と1000回に近い値が出てきます。
rand8()が出す数字そのもはうまく散っていますが、それを
特定の数字範囲にした時(剰余、乗算/256どちらでも)に偏り
が出てくるということなのかと。
ところが、「rand() と 乗算/256」の手法でも似たような偏りが
発生。
乱数の周期性と絡んでくるのか。
「0~99」だからなのか、このあたりは調べれば切りがありません。
どうしたものでしょか・・・
もう一つが実行速度。
rand8()はrand()に比べるとむちゃ早いです。
rand 剰余 65us
rand8 乗算 3.3us
rand 乗算 53us
rand8 剰余 8.2us
2021年2月 2日 (火)
ダイソーのUVレジン液、UV-EPROM消去用紫外線ではなかなか固まらない・・・
カラーLEDの集光用に小さな「レンズ」が欲しかったので、
ダイソーのUVレジン液を買ってきました。
「紫外線なら固まるやろ」っと思いながらUV-EPROM消去器
(いわゆる殺菌灯をタイマーで点灯)の中に入れました。
※これ使うのひさしぶり
ところが・・・固まらない。
10分ほどして取り出してみたら、固化したのは表面だけ。
裏返したりしながら、結局、1時間ほどかかってやっと硬化。
調べてみたら、硬化する適切な波長が違うんですな。
殺菌灯は「水銀蒸気」の放電で波長253.7nm 。
レジンを硬化させるには365~375nmあたりっと書かれています。
今度使う時は、それ用のをちゃんと用意しますわ。
※検索
・紫外線パワーLEDでUVEPROMは消去できるか?: エアーバリアブル ブログ(2012/10/06)
・EPROMの消去に成功 | 電脳伝説(2016年5月11日 )
・E17殺菌電球を光らせるのにはコツが必要でした | kohacraftのblog
・悠々趣味の日々: 簡単にできるEPROMイレーサの製作
・ストロボでマイコンが暴走した!?(プロセッサ誌1989-6)
2021年2月 1日 (月)
ビニール結束線
ラジオペンチさんの記事、
ユニバーサルカウンタ TR5822の内部
で「タイラップなんて使わず、配線は紐で縛ってあります。」
と、「結束線」の話が出てましたんで迎撃を。
装置内の配線は「結束バンド」でまとめますが、
手組みユニバーサル基板上の配線は「ビニール結束線」
を使っています。
とはいっても、今は大規模回路を手組みで試作すること
も少なくなりました。
手組み基板配線の結束はこんな具合。
試作では、修正が簡単なようにハンダ面を開けておくと
いうことで、基本の配線は部品面側で電線を引き回します。
結束の基本は「巻き結び」。
手元の結束線。
2005年に買ったものがまだ残っています。
※これを使わなくなったの、マイコンのバスに周辺ICをつないで
回路を構成するということが無くなったせいもあります。
便利なワンチップマイコンの出現で、データーバスやアドレスバスを
引き回すということが無くなりました。
★大洋化成 ビニール結束線 1.0φ
・https://shop.oyaide.com/products/p-2013.html
最近のコメント