profile-photo

自転車テールライト2

CNCルータを手に入れたのでその習作としてのテールライト


防水を考慮したので、スイッチをどうするかに迷った。シェルを3Dプリンタを使ってTPUで印刷し、外から押すことで電源が入るようにした。
モーメンタリーSWは適当なものがないのでタクトスイッチを電源スイッチにした。
この場合、トランジスタやMOS-FETをスイッチに使うことが多いが、回路をシンプルにしたかったこともあり、CPUを常時スリープにすることで対応することにした。
ATtiny13はディープスリープ時消費電流がきわめて少ない。なので、OFFの状態はスリープ状態とし、スイッチ割り込みで起動してLEDを点滅動作させる。
動作中に、割り込みが掛かると、スリープ状態に入って割り込み町になる。
これで、タクトSW1つで制御できた。

 

100

外形
3Dプリンターで印刷したボディと20mmのレンズで外回りは構成している。

200

CPU基板のタクトSWの位置にゴムのボタンを挿入。
直接スイッチには接触していないが、スイッチ位置の目印になっている。本体はTPUなので、全体を押しつぶすことができる。
背面にはUSBの充電ポート。ここにも防水を兼ねてゴムのキャップを嵌める。

500

CPU基板の部品面
この通り、シンプル。
LED、タクトスイッチにバッテリコネクタのみ。

600

CPU基板のハンダ面。
ここに回路部品の殆どが。とは言っても、CPUの他には抵抗とコンデンサーが1つだけ。

900

充電モジュールは既製品を使った。
充電用のICも手配したが間に合わなかった。

950

これがシェル(ケース0の中身全て。
左から、バッテリー、CPU、充電器。

980

実際にバイクに装着した例。
取付用の部品も3Dプリンターで印刷した。
最近のバイクはリアフォークやシートチューブの直径が太かったり細かったり様々なので、個々の自転車に合わせて、印刷してしまうことにした。
こういう場合には、3Dプリンターが便利だ。

990

動作中の様子。
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時間あまり動作した。日帰りのサイクリングには何とか使えそうだ。


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。