ロビ1マイコンボードでのロビ2動作検証
2023年11月21日
今までロビ1をロビ2のマイコンボードで動かすロビ1.5についていろいろやってきました。
今回はその逆でロビ2のマイコンボードをロビ1のものに置き替えてどうなるか調査してみました。
ロビ1.5は安定したロビ1の本体でロビ2の豊富な機能を動かすものでそれなりのメリットがあったのですが今回はかなり機能的に落ちてしまうので実用的ではありません。
強いて言えば現在ロビ2のマイコンボードが入手できない状態になっているのでロビ2のマイコンボードが壊れた場合ロビ1のマイコンボードで代用してある程度動かす事はできます。
今回は機能的にできる事とできない事を明確にしていきたいと思います。
画像認識ボードなどロビ2で追加されたボードに対しては当然ロビ1のマイコンボードで対応していないため動かせない事は明白ですが音声認識ボードなどは互換性があるため動かせる事は期待できます。
サーボに関しても互換性がありロビ2のプログラムがロビ1の本体で動かせる事はロビ1.5で実証されています。
マイコンボードの置き換え
ロビ1のマイコンボードへはロビ2の電源コネクター、シリアルケーブル(黒4本線)、スピーカーケーブルのコネクターが同じなのでそのまま接続できます。
サーボケーブルはコネクタの形状が違うのでそのままでは接続できません。
ロビ1.5の時はそれぞれのサーボケーブルで変換ケーブルを5本作って接続しましたが今回は調査目的なので作りませんでした。
手持ちの変換ケーブル(ロビ2→ロビ1)があったのでそれで1本だけマイコンボードに接続しました。
ロビ1の標準プログラムの動作
ロビ1の標準のプログラムで起動してみます。
既に初期化済のSDカードなので起動するとアイドリング状態になります。
目のLEDおよび口のLEDは正常に点滅します。(口のLEDはロビにしゃべらせて確認)
ロビ2ではLEDをプログラムで制御するアドレスが変更されていますがマイコンボードとプログラムは共にロビ1なので前のアドレスで正常動作します。
ロビ1とロビ2の可動部のパーツはほぼ同じですが両肘の取付角度が変更されています。
そのためアイドリング状態では腕が体に接触してしまいます。
そのままでも問題はないのですが両肘のサーボの原点がロビ1とロビ2で大きく異なっています。
ロビ1のロビ設定ファイルエディタで原点をロビ2と合わせておきます。
ロビのサーボは現在位置を読取る機能があります。
その機能を使って腕などを押し下げた事を検出しています。
ロビ危機一髪で右手を押し下げてサーボの位置検出機能が正常に動作する事を確認しました。
音声認識ボード
音声認識ボードは正常に動作して音声認識は問題なく行えます。
認識率はロビ1の音声認識ボードより若干良くなったような気がします。
ただし「おそうじして」などロビ2でなくなった音声認識語は聞き取れなくなります。
従ってこれらのプログラムは音声認識では動かせません。(リモート接続では動かせます)
またメール読んでなどロビ2で追加された認識語に対しては無視して何も反応しません。(音声認識には影響しません)
なおロビ2のプログラムでは認識語を認識すると目のLEDを1度消灯して認識した事を知らせてくれますがロビ1のプログラムではこの動作は行われません。
赤外線リモコンボード
赤外線リモコンボードも正常に動作して赤外線によるテレビの操作は問題なく行えます。
ロビ2の赤外線リモコンボードもテレビの赤外線リモコンの学習機能があるのでこれで設定すると「テレビつけて」などのロビ1のプログラムで操作できます。
ロビ1の赤外線リモコンボードはロビ2に対して赤外線信号を送信してロビリンクプログラムでロビ2を動かすようになっています。
ロビ2の赤外線リモコンボードではこの機能に対応しておらず赤外線信号が送信されないようロビリンクプログラムでロビ2は動かせませんでした。
ロビ2の赤外線リモコンボードは予めいくつかのメーカーの赤外線信号が内蔵されていてテレビの赤外線リモコンの学習させなくてもテレビを操作する機能があります。
ロビ2のプログラムはメーカーのIDを赤外線リモコンボードに指定して信号を切り替えています。
ロビ1のマイコンボードでもこの機能を使う事ができます。
ロビ2のプログラムはTV_SETTING.BINというデータファイルを読込んで赤外線リモコンボードに指定しています。
今回その部分をロビ1のプログラムに移植してはロビ1のマイコンボードで動かせるようにしました。
TV_SETTING.BINはロビ2で指定したりロビ設定ファイルエディタ2を使って設定する事ができます。
下記のプログラム(114.RM4)をランダムフォルダーのプログラムに置き替えてTV_SETTING.RM4とTV_SETTING.BINをSDカードに直接(フォルダーなし)入れて下さい。
テレビ設定プログラム
TV_SETTING.BINはディフォルトで設定されていますのでロビ2から設定済のものに入れ替えてください。
音声認識「テストなんだ」で動かす事ができます。
このプログラムではテレビのON/OFF信号も出していますが設定した後は標準のプログラム音声認識「チャンネル変えて」などで操作する事ができます。
ロビ2では赤外線受信機能もあるのですがこれに関してもロビ1のマイコンボードではサポートされていない事はテストプログラムで確認しました。
人感センサー
ロビ2のプログラムでは人感センサーは使っていませんがロビ2の左目には人感センサーが付いていてロビ1のプログラムでデータを取得する事ができます。
ただし右目は赤外線の送受信器が人感センサーは左目にしか付いていません。
下記のテストプログラムでチェックしました。
人感センサーが感知した場合そちらの目のLEDが赤くなるようにしています。
人感センサーテストプログラム
ロビ1のプログラムでは両目の人感センサーにより人を感知してロビをそちらの方向に向かせるようにしています。
ロビ2の場合左目にしか付いていないのでロビから見て左に人がいる場合は正しく左を向きますが右目で感知できないので正面に顔を戻す事はできません。
この症状は実用上あまり問題ありませんが気になるようでしたらロビ設定ファイルエディタでメインプログラムに対して「人感センサーによる向き制御」を行わないように設定してください。
その他のボード
以下のボードに対してはロビ1のマイコンボードが対応していないため機能しません。
・画像認識ボード(カメラ機能を含む)
・RTC(リアルタイムクロック)ボード
・Bluetoothボード
またロビ2の頭のスイッチは目のLED基板に接続されていてますがロビ1のマイコンボードでは対応していないため機能しません。
予想通りロビ2で追加されたボードの制御はロビ1のマイコンボードでは対応していませんでした。
頭のスイッチは既存のLEDボードに接続されているので少し期待したのですが残念ながら対応されていませんでした。
以外だったのは赤外線リモコンボードのメーカ設定制御がちゃんとできたのは少し驚きました。
またロビ1のロビリンクが動かなかったのも予想に反しました。
ロビリンクの赤外線がロビ2の赤外線リモコンボードで送信できない事はこちらの調査で確認済でした。
赤外線リモコンボードのメーカ設定についてもその記事に書いてありました。
昨年書いた記事でしたがすっかり忘れていました。
目次に戻る