検索:
【Arduino】ペット自動給餌器を自作する方法|旅行・出張中の餌やりを解決

PR

日帰り旅行で帰りが遅くなる時など「ペットの餌やりをどうしよう?」ってなりますよね。

そんな時に役に立つ、タイマーでペットに自動で餌をあげる「餌自動フィーダー」を自作してみました。夏休みの自由研究などにもおススメです。

ペット自動給餌器の完成イメージ図
完成イメージ図

用意するもの

制御基板https://amzn.to/4ymxWey
Arduino UNO
モータドライバhttps://amzn.to/45dWj0C
SU-1201(株式会社イーケイジャパン)
モータhttps://amzn.to/4bSVdeq
MG-12V-1:380(Olimex LTD)

今回使用した部品(モータドライバ、モータ)の合計は、Aruduinoを除いておおよそ4,000〜5,000円程度でした。百均で購入した外装部材(土台、滑り台等)を含めても、全体で5,000円以内に収まっています。

制御には Arduinoを使用しました。 Arduinoをお持ちでない方は、こちらのような入門キットでの購入もおススメです。 ⇒ Arduino 入門キット

アイディア次第で色々な工作が楽しめます。

シャッタ制御部をつくる

まずは一番重要なシャッタをタイマーで開閉する制御部分を作ります

モータドライバSU-1201の配線
モータドライバ(SU-1201)
制御基板Arduino UNOの写真
制御基板(Arduino UNO)

モータ

https://amzn.to/4bSVdeq
MG-12V-1:380(Olimex LTD)

まずはじめに制御基板とモータドライバをドッキングします。

・ArduinoのDIGITAL 0番ピンとモータドライバ基板のJ2-0 番ピンの位置
・ArduinoのANALOG A5番ピンとモータドライバ基板のJ4-A5 番ピンの位置
が合うようにして、しっかりと奥まで差し込みます。

プログラミングをするための、Arduinoの開発環境「Arduino SDK」をインストールします。
参考サイト:https://www.kkaneko.jp/tools/win/arduinoide.html

COMポートの指定

はじめにArduino SDKを立ち上げて、COMポートを指定します。
ArduinoとPCをUSBケーブルで接続すると、該当するCOMポート番号に(Arduino UNO)が表示されるので、それを選択します。

Arduino SDKでCOMポートを選択する画面

Arduinoタイプの指定

次にArduinoのタイプをTools -> Boad: > ●Arduino AVR Boards > から、「Arduino UNO」を選択してください

Arduino SDKでボードタイプを選択する画面

サンプルプログラムの実行

設定が完了したら、以下のサンプルコードを実行し、開発環境が構築できていることを確認します

void setup() {
  // put your setup code here, to run once:
  pinMode(8, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop() 
{
  // put your main code here, to run repeatedly:
  digitalWrite(8, HIGH);
  digitalWrite(12, LOW);
  delay(1000);
  digitalWrite(8, LOW);
  digitalWrite(12, HIGH);
  delay(1000);
}

Upload(右矢印マーク)ボタンを押して、プログラムを転送・実行します。

モータドライバ基板の2つのLEDが赤く1秒ずつ交互に点灯したらOKです。

実際にモータを動かしてみる

下記のコードを入力すると、モータが正転(1秒)⇒停止(1秒)⇒逆転(1秒)⇒停止(1秒)と動作します。

void setup() {
  // put your setup code here, to run once:
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() 
{
  // put your main code here, to run repeatedly:
  analogWrite(9, 160); //回転スピードの設定
  digitalWrite(4, LOW); //回転方向の設定
  digitalWrite(5, HIGH);
  delay(1000);

  analogWrite(9, 0); //回転スピードの設定
  delay(1000);

  analogWrite(9, 160); //回転スピードの設定
  digitalWrite(4, HIGH); //回転方向の設定
  digitalWrite(5, LOW);
  delay(1000);

  analogWrite(9, 0); //回転スピードの設定
  delay(1000);
}

次にタイマーを入れます

  analogWrite(9, 0); //回転スピードの設定
  delay(3600000); //設定したいタイマー値 [ms]

このコードを14行目の前に入れれば、タイマーが作動します。delayの()に入る数字がミリ秒単位のタイマー値なので、目的に合わせて数値を入れてください。

1時間なら、60×60×1,000で3,600,000となります。

装置を作る

モータの制御ができたので、次は餌やり機の本体を製作します。

百均で以下の材料を購入しました。

100円ショップで購入した給餌器の外装材料

段ボールなどで各パーツを作り、組み立て

・土台(フレーム)は、百均で購入した木を木工用ボンドで接着

・餌を入れるホッパは、トイレットペーパーの芯がぴったりだったので、それを段ボールにはめて使用

・滑り台の部分はプラダンを折り曲げて固定して使用

完成したペット自動給餌器の外観
完成した装置の外観

②市販品の紹介セクション(新規セクションとして追加)

自作が難しそう…という方には、市販の自動給餌器もおすすめです

電子工作に慣れていない方や、もっと手軽に導入したい方には、市販の自動給餌器という選択肢もあります。タイマー機能はもちろん、スマホから餌やりができるカメラ付きモデルなど、機能も充実しています。

タイプ①:シンプルタイマー式
  • エレコム「PET-AF06WH」:ダイヤルタイマー式。1日最大6回、1回あたり約7〜112gの給餌量を16パターンから設定可能。停電時のバックアップ機能もあり(https://amzn.to/4fbQmHyx)
  • マルカン「CT-526 ペット用オートフィーダー3Days」:3日間(6食分)の給餌に対応。長期不在にも使える設計(https://amzn.to/4wTePr3
タイプ②:スマホ連携・カメラ付き
  • PETKIT「自動給餌機 P570」:スマホアプリで給餌スケジュールを設定可能。ドライフードに加えフリーズドライフードにも対応。給餌時間のずれは1分以内という検証結果あり(https://amzn.to/44Id7g6
タイプ③:大容量・長期不在対応
  • Surfola「自動給餌器 SP03」:約4Lの大容量タンク、双方向音声機能とカメラを搭載。外出先からペットの様子を確認しながら給餌できる(https://amzn.to/4yrHyEU

まとめ

Arduinoとモータドライバを組み合わせることで、比較的シンプルな仕組みでペット用の自動給餌器を自作できました。旅行や出張で家を空ける際の「ペットの餌やり問題」を解決する手段として、ぜひ挑戦してみてください。

同じくArduinoを使った電子工作として、観葉植物向けの自動水やり機の製作記事もあわせてご覧ください。植物とペット、どちらも「留守中の世話」という共通の悩みを、電子工作で解決するアイデアです。

本記事はアフィリエイトリンクを含みます。

「お宝ホリダー」の作り方|Scratchで作るパネルめくりゲーム

PR

今回はお宝ホリダーの作成方法をご紹介します。

参考書籍「Scratchでゲームをつくって楽しく学ぼう」(技術評論社)

①ステージにコードを書きます

「ゲーム準備」「ゲームスタート」「ゲームクリア」等のメッセージや、「スコア」「ハイスコア」「パネル番号」などの変数を作成しながらコーディングしてください。

②パネルにコードを書きます

リスト「てもちのパネル」を作成してください

変数「i」も作成してください

続けて下記をコーディングします

ここまでできたら「ゲーム準備を受け取ったとき」の部分をクリックしてみてください。

このとき、画面に1~25のブロックがランダムに配置されれば、正しくコーディングできています。

効果音

続けて効果音の部分をコーディングします

正解ブロックを押したら「pop」音が鳴り、ブロックが消えるようになります。

不正解のブロックを押したら、「boing」音が鳴り、ブロックは消えません。

テロップ

文字のスプライトに以下のコードを書きます

ゲームクリア時の処理

背景に下記のコードを追加

お宝ゲージを追加

お宝ゲージに下記のコードを追加します。

「お宝ゲージ」変数も追加してください

素早くパネルを消せたらゲージが増えるようにする

変数に「まえの時間」を追加して、ステージにあるコードに画像にあるコードを追加します。

「まえの時間」1つ前のパネルをクリックした時刻を記憶するための変数です。

次に「パネル」のコードに以下を追加します。

前のパネルを消してから次のパネルを消すまで、1秒未満でできればパネルゲージを1つずつ増やします。

またクリックされるたびにまえの時間をタイマー値にリセットします。

ゲージに合わせてお宝を表示する

現在はランダムで表示を切り替えているので、これをお宝ゲージに合わせて変えるように変更します

以下のように条件に合わせて変更するようにします

ホリダくんを動かす

ホリダ君を動かしてみましょう

速く消せたときの音を変える

本記事はアフィリエイトリンクを含みます。

ネプリーグみたいなクイズをScrachで作る①

ネプリーグみたいな漢字の読み方を当てるクイズをScrachで作る方法を紹介します。

正解のリストを作る

「変数」タブの「リストを作る」をクリックして、リストを作ります

左下の「+」ボタンを押して、問題の答え(この場合は漢字の読み方)のリストを作ります。

ネコのスプライトのコードに下記を入力します。

出題する漢字を作る

漢字用のスプライトを作成し、コスチュームを問題分だけ追加して作成します。

漢字用のスプライトに下記のコードを入力します

音楽も入れてみます。

好きなBGMをフリー素材でダウンロードして、それがランダムで流れるようにします。

ネコのスプライトのコードに得点の加算を追加します

Scratchでブロック崩しゲームを作る②

前回に引き続き、Scratchでブロック崩しゲームを作る方法を紹介します。

今回は、新しい種類のブロック(跳ね返らないブロック・2回当てないと壊れないブロック)の作り方を紹介します。

1.通過するブロック

Button3を選択して右クリックして「複製」を選択します。

新しく複製されたButtonのスプライトコードから「ブロック接触を送る」を削除します。

これで透過するブロックは完成です。

ただ、このままでは複製する前のブロックと同じ場所に表示されてしまい、どちらかが見えなくなってしまうので、表示する場所をずらします。

ずらしたいButtonスプライトの位置を定義している箇所を直せば、場所を変更できます。

↑こちらは高さ方向(y座標)の位置を変更する時に変える場所です。

2.二回当てないと消えないブロック

先ほどと同じように、Button3を複製して新たなブロックを作ります。

コスチュームを追加して

コスチューム1:最初の状態

コスチューム2:一回当たった状態

の見た目を作ります。

そして、ブロックを消している条件のところに「もし・でなければ」を追加し、

・コスチューム番号が1なら:次のコスチュームにする

・でなければ(つまりコスチューム番号が2なら):このクローンを削除する

を追加します。

これで2回当てないと消せないブロックを追加できます。

透過ブロックと同じように、このブロックを配置する座標も普通のブロックとずらせば完成です。

Scratchでブロック崩しゲームを作る方法①|受け皿・ボール・ブロックの基本操作を解説
Scratchで作ったブロック崩しゲームの完成イメージ

今回は、Scratch(スクラッチ)で上の画像のようなブロック崩しゲームを作る方法を紹介します。プログラミング初心者の方でも、順を追って進めれば完成できる内容です。

こちらの書籍を参考にしております。

スクラッチプログラミング事例大全集 (https://amzn.to/4vImRlI

使用するスプライトは、「Paddle(受け皿)」「Ball(ボール)」「Button3(ブロック)」の3つです。まずはこの3つのスプライトを用意するところから始めましょう。

Paddle、Ball、Button3の3つのスプライト

1.受け皿(Paddle)の操作部分の作成

最初に、受け皿をキー操作で動かす部分を作ります。「Paddle」のスプライトを選択し、以下のコードを作成してください。

Scratchの受け皿(Paddle)操作コード

こうすることで、左右キーを押すと受け皿が動くようになります。また、ボールと接触したときには「メッセージ1」を送るようにしておきます。これは、後ほどボール側の処理と連動させるために必要な設定です。

2. ボールの制御

次に、ボールを動かす処理を作っていきます。まずは効果音を用意しましょう。

「音」タブの画面左下にある「+」マークを押して、好きな音を追加してください。

Scratchの音タブで効果音を追加する画面

音は、以下の3つの場面に合わせて選ぶのがおすすめです。

 ① ボールが受け皿に当たって跳ね返るとき

 ② ボールがブロックに当たってブロックが壊れるとき

 ③ ボールが落ちてゲームオーバーになったとき

今回はそれぞれ、①「Wobble」、②「Suction Cup」、③「Alien Creak2」を選びました。音の種類によってゲームの雰囲気が変わるので、好みに合わせて選んでみてください。

続いて、「Ball」のスプライトに以下のコードを作成します。

まず、ボールの落下とゲームオーバーの処理です。

ボールが落下してゲームオーバーになる処理のコード

続いて、ボールが受け皿に当たったときの処理を作ります。

ボールが受け皿に当たって跳ね返る処理のコード

最後に、ボールとブロックが接触したときの処理です。この処理を作る前に、イベントの「新しいメッセージ」から「ブロック接触」というメッセージをあらかじめ追加しておく必要があります。

ボールとブロックが接触したときの処理のコード

3. ブロックの処理

最後に、「Button3」のスプライトにブロックの処理を追加します。

まず、ブロックの配置処理です。

Scratchでブロックを配置する処理のコード

次に、ブロックの接触(消去)処理を追加します。

ブロックが消去される処理のコード

以上で、以下のようなブロック崩しゲームが完成します。

完成したScratchのブロック崩しゲーム画面

まとめ

今回は、Scratchでブロック崩しゲームを作る基本的な方法を紹介しました。受け皿の操作、ボールの跳ね返り、ブロックの配置・消去という3つの要素を組み合わせることで、シンプルながら遊べるゲームが完成します。

次回の記事では、通過するブロックや2回当てないと壊れないブロックなど、さらに応用的なギミックの作り方を紹介します。あわせてご覧ください。

⇒ Scratchでブロック崩しゲームを作る②(応用編)

ぜひ改良を加えて、自分だけのオリジナルステージを作ってみてください。