最近はLEDの普及のお陰で、自転車もテールライトを点けるのが一般的になってきた。
どうせならブレーキランプとの一体型にしたいと前から思っていた。ブレーキの検出は加速度でと考えて実験もしていた。しかし少し前に数社のメーカーがこれを製品化してしまった。また、作るのに二の足を踏んでいたのが、入れ物(ケース)の問題だ。
商品として量産するのなら樹脂の型を作って最適なものにすることができるが、素人の自作にはとても手が出ない。そんなこともあり、この冬に製作は中断していた。
だが、先月思い立って3Dプリンターを作った。それがケースの問題を解決するきっかけになった。そこで遅まきながら、作ることを決意することになったのだ。
とは言え、写真の通りいかにも手作りっぽいゴツイものになってしまった。3Dプリンターの習作みたいなものなので、第1弾はこれで勘弁してもらおう。
制御基板の外形。
基板は3つになってしまった。CPU基板とLED基板、そしてジャイロモジュール。
CPU基板にはCPUとN-MOS FET、そして抵抗やコンデンサが少し。
CPUは8PinのSMDなので、プログラムの変更はICSP経由で行う。
横から見た制御部。手前に直角に付いているのがジャイロモジュール。上がLEDモジュール。
LEDは高さを抑えるため、SMDタイプの5050LEDを使用。1つのLEDユニットに3つのセルが入っていて明るい。
全体の構成は、CPUとジャイロ、そしてLEDとそれを制御するN-MOS FETだ。部品はほぼそれだけ
センサーはGY-521と言う中華モジュールだ。搭載されている6軸センサは InvenSense MPU-6050というもの。加速度が3軸、角速度が3軸の合計6軸で、I2Cで接続できる。CPUはAtTiny85(8pin)なので、手足の数が少なくて済む。AtTiny85は僕のお気に入りのCPUのひとつ。8PinのDIPとSO-DIPがあるので小さくまとめるのに都合が良い。値段も1つ¥100〜¥200と安いのにメモリが沢山(ROM8Kバイト、RAM512バイト!!)あってプログラムが楽なのだ。
ブレーキの検出はX軸の加速度。自転車に付けるので振動や傾きで誤動作するのを避けるため、Y軸やZ軸の加速度や角速度をリアルタイムで計算している。
モバイル機器はいつも電源に苦労させられる。
今回は自転車に付けるので、少なくとも数時間の連続動作はは要求仕様だ。
試作品には18650と言うやや大きめのリチウムイオン電池を搭載した。18650は3.7Vなので、半導体部品との電源の相性も良い。しかし、他の部品と比べていかにも電池が大きい。日本で入手が簡単なものは、2,000mAhから4,000mAh程度。最近は9,800mAhなんてのもあるが…そう思って物色していたら、14500の大容量のものがあった。14500は大体単3電池のサイズだ(直径14mm長さ50mm)。これなら他の部品とのバランスも良さそうなので、最終的にはこちらを採用した。電池容量は2,800mAhと書いてあるので、18650の少し前の標準的なものと変わらない。ただし、本当にそんな容量があるかどうかはちょっとギモン(^_^;
実際に点灯させて時間を計ったところ、6〜7時間は動作したので、取り合えずはこれで良いことにした。