前回、水やり警告システムを作ったのですが、警告してもやっぱり水やりを忘れてしまう人がいたら……。いっそ、SPACEBLOCKで自動水やり機を開発してしまいましょう! 「土壌水分センサモジュール」で水分量をチェックして、足りなければ水やりをスタート。十分な水分になったら自動的に止めます。「180°マイクロサーボモーター」を使いますよ。
必要なもの&準備
- SPACEBLOCK通常パッケージ[SPACEBLOCK本体、USBケーブル、電池ボックス]
- 土壌水分センサモジュール(土壌水分センサ)
- 8×8 RGB LEDマトリックスパネル(LEDパネル)
- 180°マイクロサーボモーター(サーボモーター)
- ジャンパーワイヤ[ピンヘッダ-ピンソケット3本×延長したい数]
- プログラミングをするパソコン
プログラミング画面の開き方など基本の作業の流れは、「SPACEBLOCKのプログラミング手順をチェック!」で確認してくださいね。
SPACEBLOCKに拡張パーツを接続する
まずは、今回使用するLEDパネルと土壌水分センサをSPACEBLOCKに接続してみましょう。
水やりをする仕組みを作る!
今回出力装置として使うサーボモーターは、0°から180°まで回転させる動きができます。これを使って水をまく仕組みを考えてみました。
小さめのペットボトルの一方向にだけ穴をあけ、水をボトルの半分ほど入れ横に倒します。穴が上部に向いているときは水が出ませんが、くるりと回転させて穴が下部にくると水が落ちるという仕組みです。ペットボトルキャップにサーボホーンを接着して、サーボモーターの角度をプログラムで操作してペットボトルを回転させます。
サーボモーター側だけでは水やり用のペットボトルを支えられませんから、反対側を支えてあげる必要があります。ひとまわり大きなペットボトルを利用して、回転を妨げない支えを作り、支柱に固定しました。
見本では支柱に大容量の水のペットボトルを使ったため、いっけん給水しているかのように見えるかもしれませんが、単なる支柱で給水する仕組みはありません。水やり用のペットボトルは簡単に外せますから、水がなくなったらまた水をいれてセットしましょう。
自動で水やりをするプログラムを作ろう!
プログラムは次の図の通りです。土壌水分センサの値は500を基準にし、500より小さければ[もし《 》なら繰り返す]ブロックで水をまく動作を繰り返します。土が湿ってきてセンサが500以上の値を示したら動作が止まり、また待機します。
[繰り返す]の内側にさらに[もし《 》なら繰り返す]があることと、変数「water」に土壌水分センサの値を入れるタイミングに注目してください。
スタンドアローンモードで動かしてみましょう。
水分が十分なら動作しません。
水分量が500を下回ると、動作し始めます。動作中の演出としてLEDパネルに「水」という文字が表示されます。
セッティングによって土壌水分センサはけっこうぬれますので、前回記事で紹介したとおり防水対策をしてくださいね。また、穴の開け方で水の出方はけっこう変わりますのでいろいろなパターンを試してみてください。
動画で見てみましょう。
動画では、電池ボックスの電源を入れてからSPACEBLOCKが起動してプログラムが動き出しています。土壌水分が判定され水分量が足りない状態だったので、自動水やり装置が動き始めたのです。
土壌水分センサでチェックした値をもとにサーボモーターを動作させることで、こんなに立派な装置が出来上がりました。
これで、「もう水やりを忘れない!」から問題解決レベルが一段階上がって、「もう水やりしなくても大丈夫!」になりました。これなら旅行中の水やりも安心ですね!
サーボモーター1個を動かすだけで、工夫次第でいろいろな仕組みが作れますから、皆さんもぜひ身の回りの困ったことを解決する発明品を作ってみてください!!
狩野 さやか
Studio947のデザイナー・ライター。デザイン・ウェブ制作全般を担当する一方、技術書籍の執筆や、教育のICT活用・子ども向けプログラミングについての取材・執筆をしている。著書に『ひらめき!プログラミングワールド』『見た目にこだわるJimdo入門』『ふたりは同時に親になる 産後の「ずれ」の処方箋』。
コメント