電子おもちゃ達ARDUINO2019-08-31CONTACTMENU自転車テールライト2CNCルータを手に入れたのでその習作としてのテールライト防水を考慮したので、スイッチをどうするかに迷った。シェルを3Dプリンタを使ってTPUで印刷し、外から押すことで電源が入るようにした。モーメンタリーSWは適当なものがないのでタクトスイッチを電源スイッチにした。この場合、トランジスタやMOS-FETをスイッチに使うことが多いが、回路をシンプルにしたかったこともあり、CPUを常時スリープにすることで対応することにした。ATtiny13はディープスリープ時消費電流がきわめて少ない。OFFの状態はスリープ状態とし、スイッチ割り込みで起動してLEDを点滅動作させる。動作中に、割り込みが掛かると、スリープ状態に入って割り込み町になる。これで、タクトSW1つで制御できた。外形3Dプリンターで印刷したボディと20mmのレンズで外回りは構成している。CPU基板のタクトSWの位置にゴムのボタンを挿入。直接スイッチには接触していないが、スイッチ位置の目印になっている。本体はTPUなので、全体を押しつぶすことができる。背面にはUSBの充電ポート。ここにも防水を兼ねてゴムのキャップを嵌める。CPU基板の部品面この通り、シンプル。LED、タクトスイッチにバッテリコネクタのみ。CPU基板のハンダ面。ここに回路部品の殆どが。言っても、CPUの他には抵抗とコンデンサーが1つだけ。充電モジュールは既製品を使った。充電用のICも手配したが間に合わなかった。これがシェル(ケース0の中身全て。左から、バッテリー、CPU、充電器。実際にバイクに装着した例。取付用の部品も3Dプリンターで印刷した。最近のバイクはリアフォークやシートチューブの直径が太かったり細かったり様々なので、個々の自転車に合わせて、印刷してしまうことにした。いう場合には、3Dプリンターが便利だ。20mmパワーLED用のレンズだが、普通の5mm砲弾型に使っても、適当に拡散するようで見やすい。回路はシンプルATtiny13AのPB0にLEDを接続。PB1(INT0)にタクトSWを接続しただけだ。割り込みハンドラで、スイッチの押され方を判定している。短いブッシュは電源OFF、長く(2秒以上)押されると動作開始とした。CPUは通常はスリープしている。動作開始後はウォッチドッグタイマが起動して、0.5秒毎にタイマー割り込みが掛かる。この割り込みでLEDをトグル(ON/OFF反転)して、テールライトとして動作を行う。外部割り込みは、前に書いた通り、電源ON/OFFの判断に使っている。本体内に充電モジュールを搭載しているので、USBで充電することができる。充電時間は数十分程度だった。使用したバッテリーは、40mAhのLI-P0バッテリ。電源OFF(=ディープスリープ状態)では、CPUの消費電流は0.1μA程度になるので、数年間寝続けることができる。実際には電池の自然放電があるので、もう少し短いが、殆ど電源断と同じだ。スイッチの長押しで起動した後は、LEDのON/OFFを繰り返すので消費電流は良く分からないが、ON時に8mA程度になった。40mAhの小さなバッテリーで動かすと約6時間あまり動作した。日帰りのサイクリングには何とか使えそうだ。参考までにハードウェア・ソフトウェアの情報を。これらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。Techno-Square。