がじぇるね岡宮です。
今回作成したプロトタイプで活用したGRボードの使い方について、少しまとめたいと思います。
個々のデザインは、ペルソナ、カスタマージャーニーマップを基に、明確なストーリーや世界観をもっていますが、その辺の説明は割愛しています。
1班「nap」
徹夜の作業を支援するうたたね枕ですが、うたたねを圧力センサーで検知し、光と音と振動でアラートを出す機能を作りました。
全体のブロックは上記の通りです。GR-CITRUS、WA-MIKANを使っています。
圧力センサーはFSR-406を使い、10kΩの分圧抵抗でanalogReadで圧力の変化を読み取っています。
光は、通常のLEDでは光量が足りないので、12Vの円形LEDモジュールを使っています。モバイルバッテリーの5Vを昇圧DC/DCのISL97519Aモジュールを使い5Vから12Vに昇圧しています。許容電流は200mAですが、十分な明るさとなります。LEDの光り方をanalogWriteで制御(もわっと光る)するために、MOSFETの2SK4017を使いました。
次に振動は、スマホに使われる小さなものでは眠気を覚ませないので、大き目の振動モーター(Amazon, uxcell)にしました。モータードライバとしては2チャンネル駆動可能でモーターのアタッチも簡単なTB6612モジュールを使用しました。最終的には1チャンネルしか使いませんでしたが、analogWrite(PWM)で十分な振動制御ができました。
次に音は小鳥のさえずりを出力するのですが、MP3ファイルを用意して再生することにしました。WA-MIKANを使ってマイクロSDにMP3を格納し、音を大きくするためにTPA2006のD級アンプキットを使いました。GR-CITRUSにはMP3再生ライブラリがあるため、簡単に音声を出力できます。なお1点補足として、出力波形としてはPWMを使っていますが、独特なキーン音が気になったため、出力段に0.1uFのコンデンサを接続してキーン音を抑制しました。
2班「ホメラニアン」
褒めて褒めて癒してくれるペット型ぬいぐるみです。手を握ったり抱きしめたりすると、「すごいねー」とか「えらいねー」と褒めてくれます。
GR-CITRUS、WA-MIKANを使っています。
握ったり抱きしめたりしたのを検知するのは、圧力センサーを使っており、1班と同様のFSR-406を3つ使用しています。音声の再生も同様にMP3再生機構を使っています。
よくプロトタイプで使われるブレッドボードを、そのままぬいぐるみの中に入れるとワイヤーがはずれてしまう可能性もあるため、薄型ユニバーサル基板を使っています。この薄型基板はハサミでも切れるので、小さなものを作るときに重宝します。非常におススメです。
3班「Hot.Het.Help」
工事現場などで作業する方が熱中症にならないよう、厚さ指数(WBGT)を光と音で表現するプロダクトです。
光にはWS812bを使用したNeoPixel RGBテープLEDを使用しています。NeoPixel用のライブラリはこちらに掲載しています。
音声の再生は1班と同様のMP3再生機構を使っています。
WBGTの算出は温湿度センサーから得られた値を近似式に代入して求めています。温湿度センサーはSHT31モジュールを使っています。実際のプログラムは以下の通りです。
SHT31のライブラリはAdafruitのを使いましたが、結構読み取り時間のマージンが大きかったので少し編集したもの(Adafruit_SHT31.zip)を使いました。
float t = sht31.readTemperature(); float h = sht31.readHumidity(); wbgt = (h-20)*(sqrt(t-40)*(-0.00025)+0.185)+11/15*(t-25)+17.8;
4班「nenne」
さわさわパーツとおるすばんパーツからなるプロダクトです。さわさわパーツを持ち歩き、さわさわした回数によって、その日の気分をおるすばんパーツが光と音で表現するプロダクトです。
まず、さわさわパーツは手のひらサイズと小さく、「さわさわ」の心地がよくないと意味がないプロダクトになってしまいます。そこで今回のプロトタイピングでは、さわさわパーツに電子部品を組み込むのはやめ、代わりに磁石だけ仕込み、おるすばんパーツ側のホールセンサーで検知できるようにだけしました。プロトタイプではコンセプトを伝えることに主眼を置きました。
おるすばんパーツは光と音ですので、前述の班と同様にGR-CITRUS、WA-MIKANを使い、光にはWS812bを使用したNeoPixel RGBテープLED、音声の再生はMP3再生機構を使っています。
5班「日本画美術展用の傘立て」
「傘立てっていつも箱型とか筒状の簡素なものしかなくない!?」ということで、日本画展用にSNSにも投稿したくなる「映える」傘立てです。
傘を入れると、床に金魚や波紋などが浮かび上がります。確かに、こんな発想は私にはできない。
既存の美術展の入り口に設置することを想定するため、映像を映すプロジェクターをどう設置するか、どうやって投影するかが悩みでした。
結果的には短焦点のプロジェクターを傘立ての下の方に設置し、映像はUnityでPCから投影しています。傘の挿入検知には反射型フォトセンサ RPR-220を使用しています。
Unity側の開発は神奈川工科大の学生さんにしていただきました。
始めは音や映像ということで、GR-LYCHEEを使っていたのですが、最終的にはフォトリフの検知とUnityへの通知だけを行うだけとなり、GR-LYCHEEの性能は全然いらない感じになりましたが、一応スケッチだけ貼り付けておこうと思います。Unityが勝手に通信を止めないように"Stable"という文字列を定期的に送る必要がありました。ポイントはそれだけです。
#include <Arduino.h>#define TH_PHOTO 300#define PIN_PHOTO A0Thread thread1;bool g_active = false;void thread_blink(){ pinMode(PIN_LED_GREEN, OUTPUT); while(1){ digitalWrite(PIN_LED_GREEN, !digitalRead(PIN_LED_GREEN)); if(analogRead(PIN_PHOTO) > TH_PHOTO){ if(g_active == false){ Serial.print("Add_Umbrella"); Serial.println(""); wait(0.1); } g_active = true; } else { if(g_active == true){ Serial.print("Remove_Umbrella"); Serial.println(""); wait(0.1); } g_active = false; } Serial.print("Stable"); Serial.println(""); wait(0.1); }}void setup() { thread1.start(thread_blink);}void loop() {}
以上です。