お盆帰省で神戸を発つ数日前、メダカのエサやりをどうにかしなければならないことに気づいてしまった。
エビやタニシはいい。水槽のガラスや水草に生えた苔を食べるのだから。エビは脱皮を繰り返して大きくなるのだが、この脱ぎ捨てた古い抜けがらでさえ食べてしまう。
ちょうど今もほら。大きな大人のエビが脱ぎ捨てた抜け殻をツマツマと食べているチビエビが。
もっと言うと、エサの食べ残しや死んだ他の生き物の死骸、死んだ仲間の死骸ですら食べてしまう。水槽の掃除屋とはよく言ったものだと思う。
本題に戻り、メダカベイビーちゃんたちのエサやりのお話。
みんなどうしているの?
まず、他のアクアリウム諸先輩方はどうしているのか。調べてみると、時間が経過しないと食べられるようにならないエサを使ったり、簡易の時間差給餌器?などを作って工夫している人もいる。また、電子制御式の自動給餌機なんてものも市販されている。
ふむ。
これは作るしかないな。
見た感じ、エサを入れた回転する容器、モータ、それを制御する何らかの仕掛けが主な構造っぽい。これなら割と簡単にできそうだ。
まずは設計から
ものづくりで一番重要なフェーズは設計である。ロボコンでも、卒業研究でも、仕事でもそうだった。構造を厳密に定義し、計算し、発生しうる不具合を洗い出してそれらの対策を全て作りこむことで高品質の製品を作ることができる。
しかし、これは趣味なのでてけとーでいい。設計図書くのはどめんどくさいし、大キライ(なぜ設計の仕事をやっているのか・・・)
というわけで設計図は、ぼんやりと頭の中で完成した。
材料調達
とは言っても、必要なものを揃えないことには始まらない。必要そうな材料を書き出してみる。(後でAmazonのリンクを貼る)
- 円柱状の容器(エサを入れて回転するとこ)
- サーボモータ
- ブレッドボード
- マイコン
- マウント(モータや回路を固定する台)
サーボモータ、ブレッドボード、マイコンは手持ちの品を流用する。
サーボモータ
いろいろなフランジが付属している。これが5個セットで2000円弱。中華製サーボ安すぎない?
サーボモータといっても、品質・値段ともにピンキリだ。 購入の際はちゃんとレビューを見よう。
マイコン
Arduino nanoの中華製パチモン。まぁ、Arduinoはハードウェアもソフトウェアもオープンソースなのでパチモンもなにもないが。これもAmazonで5個で2000円しなかった記憶が。安すぎるのでちゃんと動くか心配だったが、ちゃんとArduino IDEで書きこみができたので◎
mini USBを直接刺せるのでそこが便利ポイント。micro USBにしてもらえると更によいのだが・・・
ブレッドボードについては割愛。
あとはドラム部の容器が必要だ。早速100均で材料を探した。 でも、いざ丁度よい大きさ(直径10cmくらいで、丸くて開閉が簡単な容器)のものを探してもなかかなない・・・
・・・
そして100均三件目。
おお。素敵なステキなキティちゃんがいるじゃないか。
商品名は「システムケース」
直径7~8cmほどで、蓋を回すと簡単に開けられる。深さは4cmほどだろうか。丁度いい。丁度良すぎる。今回は彼女にメダカベイビーのお世話をお願いすることにしよう。
工作・・・の前にサーボの動作確認
なにぶんチャイニーズ激安サーボなので動作が心配だ。レビューを見ても「5個中4個が動かなかった」、とか「動いたけど個体差が激しい」などの不安になるコメントが散見された。まぁ、今回は5個中一つまともに動けばそれでよい。
Arduinoのライブラリから”servo”をインクルードしてアナログピンに可変抵抗を接続する。
動画はサーボモータのテストの様子。なんとか使えそうなことはわかった。ニュートラル付近(回転が停止する領域)では回転がおぼつかないが、サーボの電源ピン間に数十~数百μFの電解コンデンサを追加したら動作が安定した。 ニュートラル付近 では正転と逆転がちょっとした信号の変化で入れ替わるため、貫通電流が頻繁に流れ、サーボ内部の制御ICの電源電圧が不安定になりこのような動作になっていると考えられる。
Arduinoはライブラリを活用すれば、本来制御するために必要な専門知識がなくとも簡単に使うことができる。 すごいね。
いざ工作
サーボが使えそうなことが分かったし、メカ部を作っていこう。
まずはキティパイセンの加工から始める。まずは容器本体の底にサーボーモータ付属のフランジを取り付ける。これはモータの回転を伝えるためには不可欠な部品だ。フランジはいくつも種類があるが、この程度の負荷ならどれでもいいだろう。
Φ2.5のピンバイスでケース側面に穴をあける。どのくらいの大きさが適しているのかはやってみないとわからないので、適当にネットで検索して出てきた既製品オートフィーダーを参考にした。 穴が若干ずれているのはご愛敬。
マウント用の部品を作る。L字金具は昔100均一で買ったもののあまり。サーボモータの固定にはプラバンの切れ端を加工して穴をあける。
部品を固定する台は、しばらくの間コースターにしていた小さなMDFボードが丁度良さそうだ。 ザグリ加工をして皿ねじを立てる。
そしてサクッと仮組み。いいじゃん。
ここまでやって気づいたが、このタイプのサーボをArduinoのライブラリで制御仕様とすると、回転角度を正確に指定することができない。PWMの制御レジスタを直接叩けば角度指定の制御もできなくもなさそうだが、もう時間あまり無いので(この時既に飛行機出発三時間前)外部にドラムの回転角を検出するスイッチを追加して対応することにする。
L字金具を更に一つ追加して、リミットスイッチを取り付けた。確か、オムロン製。ドラムにねじを一本立ててリミットスイッチに接触させる。
カチカチ音がたまらない。
そんなこんなでハードウェアが完成した。プログラムは任意の時間を設定(プログラム書き込み)して、その時間が経過したらドラムが一周まわるというもの。スイッチで検出するまで回転し続ける。動画では一定量のエサを排出して停止しているのが分かる。ここでは周期を5秒に設定しているが、これを数時間などに変更すれば一日に数回の自動給餌が可能になる。
テストでも安定した動作をしているようだったので、いよいよ実地テスト。
動いた!ちゃんとエサ出た!
早速エサにベイビーちゃんが食らいついているのも確認できる。これでお盆中もなんとかなりそうかな。
お盆帰省その後
仙台の帰省から戻り、ドキドキしながら自室の扉を開けたところ、みんな元気そうに泳ぎ回っていました。心なしか少し成長したようにも見える。毎日見ていると変化もわかりづらいけど、5日も空けると変わるもんだね。とにかくみんな生きてて一安心。
本格的に稼働させるのであれば、ちゃんと筐体に納めたり、信頼性の高いモータを使うなどして実用性のあるものを作ろうと思った。まぁ、また長時間部屋を出るときにでも考えようかな。