Raspberry PiとArduinoでアクアリウム(その3)

その1はこちらです。

実際にリレーをArduinoに繋ぐ

リレーをつなぐ

 前回紹介したリレーモジュールです。これをArduinoで使用した場合は以下のようになります。端子はこの向きで左から となっており、はArduinoのGND5Vにそれぞれ繋ぎ、Sは仮に13番ピンに接続します。

f:id:takumus:20160907224938p:plain  これで、13番をHIGHにすれば、電気は点き、LOWにすれば電気が消えます。リレーは便利ですね。ArduinoでHIGHかLOWするだけで家電がコントロールできます。

リレーを繋ぐ回路を組む時の注意

 上記の回路のように制御したい家電のコードを切断して、リレーを挟めば制御は可能です。しかし、家電のコードは切断するのは安全とは言えませんし、他の電化製品への応用も出来なくなります。なので延長コード制作キット等を使って作りましょう。
 ただし、リレーも多くの種類があり、それぞれ電力の制限もあります。使用する電化製品の消費電力と相談しながらリレー選びをしましょう。

反省

 ブログを書くのを慣れていないせいか、説明が具体的な部分があったり、簡単すぎる部分があったり、バランスが取れてないですね。ターゲットも絞れてない感じもあります。過去の記事は編集しないので今後改善していこうと思います。

その4はこちらです。

Raspberry PiとArduinoでアクアリウム(その2)

その1はこちらです。

照明をスマホでコントロール

 まず、簡単そうな照明コントロールから作っていきます。照明はアクアリウム用のものを使い、その電源をスマホから制御できるようにします。スマホからRaspberry Pi(以下Pi)へ、PiからArduinoへと経由し、Arduinoがリレーを使って電源のオンオフを切り替えます。

リレーとは

 操作にはリレーを使います。リレーは簡潔に説明すると他の回路のスイッチをコントロールできるもの。になります。
 家庭用の電球を点けるとき、皆さんはスイッチを押します。それにより回路に電気が通り電気が点きます。 f:id:takumus:20160906195609p:plain
 そのスイッチを代わりに押してくれるのがリレーです。スイッチで乾電池の電気が電磁石に流れ、電磁石はハンマーのようなものをを動かし、コンセント側の回路のスイッチを押すので電気が点きます。指を離せば電磁石は力を失い、コンセント側のスイッチも元に戻るため電気が消えます。 f:id:takumus:20160906195628p:plain
 この仕組みをそのままArduinoで使うとこうなります。Arduinoで、OUTPUTにしたピンをHIGHLOWにすることでコンセントの電球をON, OFFできます。 f:id:takumus:20160906200801p:plain

リレーモジュールを使うべき

 先ほどの図はあくまでリレーの仕組みの例なので、本物のリレーはもっとちゃんとしています。そんなリレーですが、実際Arduinoでリレーを扱うときはモジュールを使った方が安全です。今回は、Amazonで売っていた安いリレーモジュールを使いました。

(↑はてなのAmazon商品紹介という機能で貼り付けたリンクですが、アフィリエイトになっているのかどうかは分かりません笑)
 なぜリレーモジュールを使うべきかというと、電磁石式のリレーを単体で買う場合、逆起電力防止用のダイオードを挟んだりしなければなりませんし、またArduinoだとoutピンからの出力では電力が足りず、リレー用の電磁石をコントロールできない事があるからです。
 モジュールの場合はGNDと5Vをつなぎ、ピンからの出力をトランジスタに流してリレーを動かしていたり、工夫があるので、モジュールの方が良いのかなと思います(どちらかというと入門者向けのアドバイスです)
次回以降このリレーモジュールを使って作っていきます。

その3はこちらです。

Raspberry PiとArduinoでアクアリウム(その1)

海水魚飼育について

 最近のマイブームは海水魚を飼う事です。2年前ほどから磯で捕まえてきた魚達を飼っています。海水魚飼育において、特に頻繁に行わなければならないこと、それは、水足し、餌やり、照明管理です。これらを疎かにすると海水魚を長生きさせることは難しいのです。
 私は大学生のため、平日はほぼ大学にいますし、泊まってくることも多く、数日家に帰らないこともあります。それらが原因で何度か魚を犠牲にしてしまいました。

 どうにか、私でも魚を飼えないかと考えていて、ひらめいたのです。IoTの力で数日家を空けても水槽の環境を管理出来る仕組みを作れないかと!!
 最近Raspberry Pi(以下Pi)やArduinoに手を出しはじめたので、どうにか作ってみることにしました。
 主にやらせたいことは、水足し、餌やり、照明管理です。水足しは、水槽内の海水の蒸発によって上がった塩分濃度を真水を足すことで下げる行為です。餌やりは餌やりです。一週間ほど与えなくても大丈夫な種もいますが、食欲がなくなると仲間を攻撃し始める種もいるので毎日一定量与えることは必要(だと思うの)です。照明管理は、朝点けて夜消す。これを行わなければ魚の体内時計が狂ってしまったり、点けっぱなしによる苔の発生等が起こります。どれも欠かせません。

Arduino + Piでやる

 今回はPiで直接機械やセンサーを使うことはしません。それらはArduinoで行い、シリアル接続でPiとやり取りします。ではなぜArduino + Piなのか!それは、

  1. Arduinoはアナログ入出力が簡単にできますし、
  2. 変な配線をしてPi(6千円)が壊れるより、Arduino(3千円)が壊れる方がマシですし、
  3. Arduinoが好きだから!

です。

その2こちら

俺のプールPool is Mine(2015)

人生初のスマホゲームです。春休みの3週間で作りました。 www.youtube.com これでも結構頑張ってドット絵描いたのであたたかい目で見てほしいです。
簡単そうに見えて意外と難しいです。ぜひやってみてください。

Pool is Mine

Pool is Mine

  • rinevo.jp
  • Games
  • Free

play.google.com

ターゲット:iOS, Android
開発:ActionScript3, Adobe AIR, Starling

紙に書く電子オルガン(2015)

大学での「Arduino使って音の出るおもちゃを作れ!」の課題作品です。
マークシートに書いた楽譜を読み込んで演奏します。

github.com

www.youtube.com

使い方

 マークシートに音階があるので、それを塗りつぶして作曲します。塗りつぶした部分をアーム先端の光センサーが読み取って判断しています。アームは手作り、モーターも安い物なので精度はそこまで良くありません。
 読み込んだ曲のデータはProcessing側で記録し、再生しています。またアームの角度計算はProcessingで行っています。計算した二つのモーターの角度をArduinoに送り制御しています。  指定した座標にアームの先端を導くためのアームのモーターの角度計算は三角形の内角から導いています。 f:id:takumus:20160904154140p:plain これはそのアームのシミュレーションをFlashで作ったものです。
 スライドする紙をスキャンするには、アームではなく、プリンターのような機構が正確性と安定性において優れてはいますが、アームにした理由は、一度作ってみたかったのと、アームが動いた方が見てる方も面白いと思ったからです。

制作過程の動画など

www.youtube.com

www.youtube.com

www.youtube.com

ターゲット:Windows
開発:Processing, Arduino

コマンドプロンプトでグラフィカルなババ抜き(2014)

大学での「C言語でコマンドプロンプトで動くトランプゲームを作ろう」の課題作品です。 github.com www.youtube.com

 課題のルールはコマンドプロンプトで動くこと、外部ライブラリを使わないこと、C or C++で書くことでした。私は動き物が好きなので、その制約を守りつつ作りました。
 コマンドプロンプトに、グラフィックを描画するライブラリを作るのに費やした時間の方がゲーム開発より長いと思います。これもインベーダーと同じくFlashの表示オブジェクトの概念をまねて作りました。
 描画系については、githubソース中の/displayにあります。Flasherの方はこのファイル名達を見て「あFlashだ」と思うはずです。
 テクスチャ類は/assets/texture.txtにあります。トランプは手打ちですが、でかい文字のAAアートは、Flashで作ったAAジェネレータで作ってます。

ターゲット:Windows
開発:C++, Flash(アスキーアート生成)