LEDクラスターの装着
2018年1月20日
週刊 スター・ウォーズ R2-D2の創刊号にLEDクラスターが付いていたのでロビの頭に付けてみました。
以前スタンドの頭に開けた穴と同じ大きさでしたのでそのまま取り付けました。
赤外線とマイクの基板は後に取り付けました。
ロビから制御するためにシリアルバス(I2C)を分岐させます。
音声認識基板とLED基板を接続するシリアルケーブルを分岐させてarduinoに接続しました。
なおArduinoを入れるため赤外線ボードは外してあります。
今回はArduino Prominiを使用したので赤外線ボードがあっても実装できたと思います。
今回の配線図です。
シリアルバスの電源(橙色)はArduino ProminiのRAW端子に接続します。(UnoやNanoのVinに当たります)
シリアルバスの信号(青と緑)はA4とA5に接続しました。
他のアナログ端子でも構いませんがその場合はスケッチを変更する必要があります。
LEDクラスターはD2端子とD3端子に接続しました。
そのまま接続しても構いませんが動画撮影には明るすぎたので赤には1KΩ、青には2KΩの抵抗を入れました。
Arduino Nanoの場合の配線図です。
シリアルバスの電源は必ずVin(ProminiはRAW)に接続してください。
Vccに接続するとシリアルバスの信号が拾えなくなります。
またNanoの場合、プログラムでの制御で稀にLEDの色が変わらない場合があります。
今回作成したスケッチ(arduinoプログラム)は下記のURLよりダウンロードしてください。
Robi_led.zip
I2Cのデータを取得するのにSoftI2CMaster.hという標準以外のライブラリィを使っています。
C:\Program Files\Arduino\librariesに添付のlibrariesフォルダーのSoftI2CMasterフォルダーごと入れてください。
なおArduinoのインストールディレクトリィは64bit OSの場合はProgram Files(x86)です。
RobiKimochiは認識語によりLEDの色が変化します。
リモートで操作できませんので音声認識でロビに呼びかけてください。
RobiRBLEDはLEDをロビのプログラムで制御するためのスケッチです。
このスケッチをarduinoに入れてロビのプログラムを動かしてください。
本スケッチ対応のロビのプログラムも入れてあります。
このロビのプログラムはリモート対応になっていますので音声認識でなくFlashAir等で動かす事ができます。
なお0.33秒(ロビのプログラム時間で20)以上、設定しした値のままにしておく必要があります。(wait dataコマンドを使用)
実際にロビで動かしている動画です。
ロビのプログラムでLEDを制御する場合はロビのマイコンのメモリアドレス0x0a84に1を0x0a8aに2を0x0a8cに0〜3をセットください。
0x0a8cはLEDの色を指定するもので0が黒、1が青、2が赤、3がピンク(青と赤)です。
これらのアドレスは左目LEDのB(青)制御アドレス、右目LEDのB(青)制御アドレス、口LEDの制御アドレスに該当します。
ロビの標準プログラムのポーズデータの67番目、70番目、71番目でこれらの値を1,2,0〜3に変更するとLEDの制御ができます。
なおロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。
目次に戻る