スマートペットフードカタパルト – おやつ・ボール・おもちゃを自動で飛ばして愛犬・愛猫を夢中に
部品と用品
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | どのArduinoでも動作します |
| サーボモジュール(汎用) | 3 | 180度サーボ×2、連続回転サーボ×1 |
| OpenBuilds マイクロリミットスイッチ | 1 | |
| 抵抗 10kΩ | 1 | |
| 単3電池 | 10 | |
| スライドスイッチ | 2 | |
| ブレッドボード(汎用) | 1 |
アプリとオンラインサービス
- Arduino IDE
このプロジェクトについて
こんにちは、私の最初のプロジェクトへようこそ!
うちの犬は食べ物が大好きで、文字通り数秒で完食してしまいます。食べる速度を落とすため、フードが入ったボールを使ったり、庭中にフードを撒いたりしました。驚くことに、彼女は今や掃除機のようにフードを瞬時に見つけて食べてしまいます。そこで再び考え直し、彼女がゆっくり食事を楽しめるよう、このデバイスを考案しました。
コンセプト

まずは2本の動画をご覧ください。これを見れば仕組みがよく分かります。
言葉で説明すると、基本コンセプトは以下の通りです。
- ローテーターサーボが回転し、カタパルトアームを引き下げます。
- リミットスイッチに触れるまで引き下げ続けます。
- トリガーサーボがホールド位置に移動し、カタパルトアームを保持します。
- ローテーターサーボが元の位置に戻り、次の発射の準備をします。
- フードデリバリーサーボがパイプを回転させ、フード(やその他の物)をカタパルトアームの容器/ヘッドに送ります。
- トリガーサーボが回転してロックを解除し、スプリングの力でカタパルトアームが跳ね返り、フードが飛び出します。
テストでは、ドッグフードのビスケットを10メートル以上飛ばすことができました(転がる距離含む)。サーボの調整やスプリングの変更で飛距離は大きく変わります。
電子工作


簡潔にまとめます。このカタパルトは100通り以上の作り方があり、スケールも材料も自由です。電子部品とサーボ以外は、手元にあるものや予算に合わせてアレンジしてください。
電子工作のステップバイステップ解説はしません。優れたプロジェクトがたくさんありますし、私は初心者なので間違っている可能性もあります。プロから学ぶ方が確実です。
材料リスト
- Arduino Uno R3(どのArduinoでも可)
- 180度サーボ ×2
- 連続回転サーボ ×1
- リミットスイッチ
- 10kΩ抵抗
- 単3電池 ×4 とケース
- 6V角型電池(単3電池5本直列で代替予定)
- スイッチ ×2(種類不問)
- ジャンパーワイヤー多数
- ブレッドボード(テスト用)
永久設置する場合の追加材料
- ユニバーサル基板
- 2ピンコネクタ ×2(任意、電池ボックスを直接配線しても可)
サーボについて
eBayで安価なLofty Ambition S3003 180度サーボを購入しました。これ以上のトルクが必要です。安すぎるサーボは負荷に耐えられません。高価なものである必要はありません。連続回転サーボはFS5106Rを使用しました。モデルは問いませんが、最低これくらいのスペックは必要です。カタパルトを大型化・強化する場合は、より強力なサーボを選んでください。
構造






構造は完全に自由です。プラスチック、木材、金属のいずれでも作れます。サイズも自由。フードを多く飛ばしたいなら大きく、コンパクトにしたいなら小さくできます。そのため、私の構造の詳細な作り方は割愛します。質問には喜んでお答えします。
私はリユース/リサイクル/アップサイクルの大ファンです。材料の多くは物置にあったものを使っています。メイン構造は25mm角アルミパイプと「コネクトイット」プラスチックコネクタで組みました。モーター用ブラケットは25mm幅×3mmのアルミ板で自作しました。
フードデリバリーのアイデアは以下のプロジェクトから拝借しました:
IoT Pet Feeder by circuito.io team – ありがとうございます!
ホルダーはホームセンターで買った40mm PVCパイプで作りました。アームは2つの45度エルボを繋ぎ、ホットボンドで大パイプに固定。大きなPVC管にも45度エルボを付け、フード投入を容易にしています。全て分解可能で改造しやすい設計です。
フードデリバリーアームの残りは、サーボへの負担を減らすため滑らかな回運動ができるよう設計しました。もっと良い作り方(工具があれば)もありますが、私は精一杯やりました。ブラケットを作り、金属ロッドを切り、「ニードイット」という製品でロッドをブラケットとベアリングに固定しました。動画の通り、PVCパイプがベアリング上をスムーズに回り、重量(と必要トルク)の大部分をベアリングが担っています。
カタパルトアームは100円ショップのテニスボール投げ器(2ドル)です。
発射パワーは物置で見つけた古いスプリング(錆びています)から得ています。スプリングのサイズ・種類・強度はカタパルトの性能を左右する重要要素です。サーボの強度、スプリングの強度、アームのしなりのバランスを取るのは難しく、目的に応じて調整が必要です。私はアームにあえて可動域を残し、着弾点に予測不能さを持たせました。アーム先端の容器(ビスケットホルダー)も予測不能さに一役買っています。ペットがフードを探す楽しみが増えます。
カタパルトアームは釣り糸で引き下げます。小さな金属ハンドル(フィーダー)を通し、リミットスイッチを載せた台の下を通過させ、構造体の長手方向に沿わせ、もう一つの金属ハンドル(糸絡み防止)を通して、ローテーターのスピンドル(綿巻きホルダーのプラスチック部品を流用)に固定し、連続回転サーボに取り付けます。また、薄く弱いゴム紐を釣り糸とトリガーブラケット間に取り付け、ローテーターが巻き戻す際に釣り糸がどこにも引っかからないようにしています。
電池と電子部品の収納には、トンネルコア(汎用プラスチックシート・二重壁ユーティリティボード)を使いました。構造は非常に頑丈かつ軽量です。最も重いのは角型電池で、近々単3充電池に置き換え予定です。
学んだ教訓と今後の改良点
得意でないことをやれば、必ず学びがあります。このプロジェクトでも、挙げればキリがありません。
最大の課題はフードの詰まりです。フードデリバリーアームは他のプロジェクトから採用したものですが、元のプロジェクトが見つかりません。時々ビスケットが出てこないことがありますが、これはこれでペットを驚かせる良い効果になっています。概ね良好に動作します。
構造をアルミにしたのは、うちの犬が荒っぽいからです。今のところ耐えています。
カタパルトアームをもう少しカッコよく改良予定です。主要部分は分解してアクセスできるようになっています(フードデリバリー、電子部品収納など)。
総じて、とても楽しいプロジェクトで、うちの犬も大喜びです! どんな質問やアドバイスにもお答えします。
Hacksterと、この記事を読んでくださった皆様に感謝します。
コード
自動カタパルト – Arduinoコード Arduino
/*
* Automatic pet food flinger by Nathan King June 2018
*/
#include <Servo.h>
int FoodDeliveryReleasePosition = 115;
int FoodDeliveryHoldPosition = 0;
int TriggerReleasePosition = 90;
int TriggerHoldPosition = 0;
int limit_switch = 3;
int switch_state = 0;
Servo fooddelivery; // フードデリバリーアーム用サーボ
Servo trigger; // トリガー用サーボ
Servo rotater; // ローテーター用サーボ
void setup() {
rotater.attach(2);
trigger.attach(4);
fooddelivery.attach(5);
pinMode(limit_switch, INPUT);
Serial.begin(9600);
}
void loop() {
rotater.write(89); // ローテーターサーボ停止(良いサーボなら不要)
delay(500);
// 初期位置設定
fooddelivery.write(FoodDeliveryHoldPosition);
delay(1000);
trigger.write(TriggerHoldPosition);
delay(1000);
trigger.write(TriggerReleasePosition);
delay(1000);
// リミットスイッチが押されるまでローテーターを回転
switch_state = digitalRead(limit_switch);
Serial.println(switch_state);
while (switch_state == HIGH) {
switch_state = digitalRead(limit_switch);
Serial.println("Switch is off");
rotater.write(75); // 時計回りに回転(速度0-255)
}
Serial.println("Switch is on");
rotater.write(89); // ローテーター停止
// カタパルトアームをトリガーで保持し、ローテーターを初期位置に戻す
trigger.write(TriggerHoldPosition);
delay(1000);
rotater.write(110); // 逆回転で元の位置へ
delay(4500);
rotater.write(89);
delay(2000);
// フードをカタパルトへ送る
fooddelivery.write(FoodDeliveryReleasePosition);
delay(500);
fooddelivery.write(FoodDeliveryReleasePosition); // フードが落ちるのを待つ
delay(1000);
fooddelivery.write(FoodDeliveryHoldPosition);
delay(150);
// フード投入とトリガー解放の間に遅延を入れる
rotater.write(89);
delay(1000);
// 発射!!
trigger.write(TriggerReleasePosition);
delay(3000); // ペットがフードを見つけるまでの遅延(ここを変えると給餌間隔が変わる)
}
回路図
製造プロセス
- 食品・加工業界のための衛生的設計:清浄性からコスト削減へ
- 食品・飲料生産向けコントローラー・レコーダー選定ガイド
- ペットフード製造:原料から規制まで完全ガイド
- 多機能フード自動販売機:スナックからフレッシュサンドイッチまで
- 家庭用自動加圧ポンプの選び方:実践ガイド
- B&R、農業・建設車両向け堅牢高性能コンピューターを発表─自律走行を支援
- Invar Insights:2021年以降を形作るスマート倉庫トレンド
- チタンCNC加工のプロフェッショナルヒント:航空宇宙、自動車など
- スイス型・量産旋削向け精密スライディングヘッドストック自動化
- 金属潤滑剤の正しい塗布方法:オーバーグリスを防ぎ性能を最大化
- 自動車向け低放出アセタールマスターバッチ-トサフ・カラーサービスが専門開発