ラズパイとサーボモーターを使って我が家の水槽の自動給餌器(エサやり器)を作ってみました。
その際のメモです。
完成系
まず最初に完成したら以下のようになります。
サーボモーターの電源もラズパイから直接引いているため、電池切れの心配もありません。
ラズパイで朝夕の2回cronによる定期起動しています。
材料
以下を使いました。
・ラズパイ
・サーボモーター(sg90)
・PCA9685
・餌を入れる容器(近所のお菓子やさんの入れ物)
・結束バンド
作り方
エサやり機構を以下のように作成しました。
エサ入れ
近所のお菓子やさんでクッキーが入っていた以下の容器を使います。

この容器の側面にエサが出てくる穴をドライバーで開けます。
この穴の大きさや数はエサの種類によって変えています。

容器の底にはサーボモーターと結合するための穴をドライバーで開けます。

サーボモーターとの接続
サーボモーターとの接続は容器とサーボホーン(画像の白い部品)をアロンアルフアで結合します。

このときに、サーボホーンと容器だけが結合するようにしないと、モーターとくっついてしまい、容器の角度を変えられなくなってしまうので注意します。

制御プログラム
以下のようなpythonプログラムで制御しました。
#! /usr/bin/env python
import time
import Adafruit_PCA9685
pwm = Adafruit_PCA9685.PCA9685()
pwm.set_pwm_freq(50)
for i in range(515,124,-10):
pwm.set_pwm(0,0,i) #初期位置から180度動かす
time.sleep(0.1) #ゆっくり動かす
for i in range(125,515,10):
pwm.set_pwm(0,0,i) #初期位置に戻す
time.sleep(0.05) #早く動かす
このプログラムをcronで定期実行するようラズパイに設定します。
水槽へのセッティング
マルチハンガーに結束バンドを使ってサーボモーターを固定します。


水温を計るために、DS18B20をつけています。
これで忙しい朝や、旅行中もペット達がごはんを食べられるので安心です!
ラズパイカメラもあるので、その際の様子をカメラに撮ることができると、エサやりの確認+ペット達が食べていることもわかるのでなおよさそうですね。そこは今後改善していきます。
以上です。
コメント