前編:Arduinoを使ったソーラーパネルで動くデジタル飼育箱
今回は、Arduinoを使ったおもしろ電子工作の後編。前編では、回路の組み立てから加速度センサのテストまでおこないましたが、今回はハードウェアの制作から完成までをお届けします。このユニークな電子工作を紹介してくれるのは、物事の関係性をテーマに活動するアーティストである平原真さんです。大阪芸術大学准教授でもある平原さんは、これまでもコンピュータや電子デバイスを使ったメディアアートを多数制作されており、特に近年は木や石など自然の素材を使った立体作品で注目されています。それでは、「Arduinoを使ったソーラーパネルで動くデジタル飼育箱」制作の後編をどうぞお楽しみください。
ハードウェア
手順説明
これから外装の組み立てと電子部品の取り付けをしていきます。手順は以下のとおりです。
1,レーザー加工機で材料の切り出し
2,本体の組み立て
3,LEDの配線と取り付け
4,ソーラーパネルの取り付け
手順1:レーザー加工機で部品を切り出す
材料をレーザー加工機で切り出します。外装は3mm厚のシナベニヤです。左から、LED面、ソーラーパネル面、側面2枚、LEDベースです。LEDベースの彫刻は、LEDを貼り付ける時の位置合わせのためです。
下の写真の右上に見えにくいですが、1mm厚の半透明アクリルがあります。フルカラーシリアルLEDテープの光を拡散するために使用します。
下記のリンクから切り出し用のデータをダウンロードしてお使いください。赤い線が切断、黒い線が彫刻としています。実際に作業される時は、お使いのレーザー加工機に合わせて設定をおこなってください。
>> CutData.ai
手順2:本体の組み立て
側面2枚の小口に木工用ボンドを塗り、LED面とソーラーパネル面と合わせて4枚を貼り合わせてください。接着後すぐにクランプで挟んで固定します。強度が心配な場合は、補強のために貼り合わせた角に小さな木材を接着してもいいです。
手順3:フルカラーシリアルLEDテープの取り付けと配線
フルカラーシリアルLEDテープを5個ずつ切り離します。電極の中間をニッパで切ることができます。仮配線で取り付けたジャンパワイヤはそのままにします。
切り離したフルカラーシリアルLEDテープをベースの位置合わせマークに沿って貼ります。この時、仮配線で取り付けたジャンパワイヤが左上に来て、電極の向きが一筆書きでつながるように注意してください。
フルカラーシリアルLEDテープの切り離した電極同士を硬いジャンパワイヤで結線します。電極同士の間隔は、内側が約11mm、中間は約17mm、外側は約23mmでした。ジャンパワイヤがついている左上のLEDが0番、接続されている順番で番号が増え、右下のLEDが24番となります。
この状態で、ジャンパワイヤをブレッドボードに刺し、断線していないか確認してみましょう。先ほどのLEDのサンプルプログラム([Adafruit NeoPixel] > [Simple])のNUMPIXELSの値を16から25に変えて、書き込んでください。全てのLEDが緑色に点灯すれば問題ありません。
↓
手順4:LEDベースとブレッドボードを取り付ける
シナベニヤ(LED面)、アクリル板、LEDベースの順番で重ね、4箇所をネジで固定します。フルカラーシリアルLEDテープに取り付けたジャンパワイヤは、板の間から内側に通してください。スペーサは非導電性のワッシャ(M2)を使います。厚くすると光の拡散が大きくなるので、0.5mm〜1mm程度を目安に、お好みで調整してください。
LEDベースの中央にブレッドボードを取り付けます。ブレッドボードの裏面も両面テープになっているので、剥離紙をはがして貼り付けてください。一度取り付けたブレッドボードを取り外そうとすると、中のピンが抜けてしまうので注意してください。フルカラーシリアルLEDテープに取り付けたジャンパワイヤをブレッドボードの電源、GND、6ピンに挿します。
手順5:3Dプリンタでソーラーパネルの受け部品をつくる
ソーラーパネルを固定するための受け部品を3Dプリンタで出力します。下記のリンクからSTLファイルをダウンロードし、お使いの3Dプリンターに合わせて出力してください。積層の設定は、荒くて結構です。同じ形状を2つ出力してください。
>>SolarPanelFixture.stl
まず、1つをソーラーパネル面の上部の内側にネジで取り付けます。3Dプリンタで出力した受け部品にはネジが切られていない2mmの穴が空いています。M2のなべネジで切り込みながら固定してください。
次にソーラーパネルを上部の受け部品に差し込みながら、下部の受け部品をネジで固定します。
手順6:ハードウェア完成!
ソーラーパネルのDCプラグをブレッドボード上のDCジャックに差し込めば、ハードウェアは完成です。
この後Arduino Pro Mini 328にスケッチを書き込むために、下部の受け部品を外し、ソーラーパネルを取り外してください。
スケッチ
全体の流れ
スケッチの全体の流れは次のようになっています。
1,ライブラリを入れる
2,LEDを2次元配列で管理する
3,草が生える
4,動物構造体をつくり複数個を管理する
5,加速度センサに反応して動物が増える
ライブラリを入れる
Adafruitが提供するNeo Pixelと加速度センサーLIS3DHのライブラリを使用します。また、一定間隔で指定した関数を呼び出す「MsTimer2」というライブラリも使用します。Arduino IDEのメニューから[スケッチ] > [ライブラリをインクルード] > [ライブラリを管理] を選択し、ライブラリマネージャを開きます。検索フィールドに[MsTimer2]と入力し、表示される候補から選択しインストールをしてください。
LEDをマトリクスで管理する
LEDテープは0番から24番まで連続した番号がついていますが、植物や動物の位置を表現しやすくするため縦横の座標で表現できるようにします。LEDの番号を二次元配列に保管します。
草を生やす
草の成長度を保持する5 x 5の二次元配列をつくり、フレームごとにランダムな場所の草を成長させます。
動物をつくる
動物が持つパラメータをまとめて扱うために構造体を定義します。動物の情報は、このAnimal構造体の配列で管理します。Animal構造体は、生死のフラグを持っていて、死んでいなければ移動や採餌をおこないます。移動は一番成長している草に向かって1マス進み、草のあるマスに入ったら、採餌をして草の成長度を0にして、その分自分の体力に加えます。同時にフレーム毎に一定の体力を消耗し、体力が0になると死亡します。
動物が増える
動物が増えるきっかけは2通りあります。1つは本体をノックして、一定以上の揺れを検知した時です。ランダムな色の新しい動物が画面の真ん中に発生します。
もう1つは、草を食べて体力が上限まで上がった場合です。自分の体力を半分に減らし、同じ色をした動物が一体増えます。
スケッチ全体
最後に
みなさん、おつかれさまでした!ソーラーパネルを太陽に向けると、光の点が動き出すと思います。餌を求めて動くのを見ていると、生き物のように思えてきますね。草が生える条件や、動物の移動のロジックを書き換えることで、オリジナルの生態系をつくってみてはいかがでしょうか?
今回は前編後編と2回に渡ってArduinoを使ったソーラーパネルで動くデジタル飼育箱の制作をお届けしてきました。今回の制作を通じて、みなさんが少しでも電子工作をおもしろい!と感じていただけたら幸いです。ありがとうございました。
今回の連載の流れ
前編:Arduinoを使ったソーラーパネルで動くデジタル飼育箱
後編:Arduinoを使ったソーラーパネルで動くデジタル飼育箱(今回)