ラピロを操作して手足を動かすために、ラピロに搭載しているArduino互換サーボモーター制御基盤にファームウェアを書き込む。オフィシャル取扱説明書はここ<www.rapiro.com>。ファームウェアは「Arduinoのスケッチ」と呼ぶ様です。そのスケッチひな形もここ<github.com>で取得できます。基盤の初期設定が終わったら、ラズパイを使わず、パソコンとArduinoだけでラピロを動かしてみます。
ラピロのイチユーザーとして苦労したポイントやWebサイトが英語だったりするので、他のユーザーさんと初期設定手順を共有する目的で手順を掲載します。各ソフトウェアの利用規約他に同意いただくことと、いかなる障害にもサポートは出来ないことをご了承のうえ読み進めてください。
Windows10パソコンをラピロと通信するのに6時間もかかった。正しい部品を使えばきっと短縮できた時間だ。その反省を含めて、きちんと記録することにした。
▼事前準備で必要な作業
・パソコンに『ファームウェア開発環境(Arduino IDE)』をインストールする。
・パソコンに『USBシリアル変換ドライバ(FTDIドライバ)』をインストールする。
・パソコンとラピロをUSBケーブルで接続して『Windowsデバイスマネージャー』を設定&検査する。
・パソコンの「Arduino IDE」を操作して、ラピロを動かしてみる。
ここの公式Arduinoサイトで「Arduino IDE」をインストールする。英語サイトなので、無料で利用する場合のステップ図を下記に掲載する。「Online IDE」では無く、Windowsにインストールする「Arduino IDE」のインストーラーを選ぶ。募金無しのダウンロード「Just Download」を選ぶ。この時点でのバージョンは、1.8.2でした。
「Arduino IDE」のインストール手順: 途中のデバイスドライバーもインストールします。
ここの公式FTDI社サイトで「VCP; Virtual COM Port ドライバ」をインストールする。下記サイトにアクセスして、WindowsのVCPドライバである赤矢印の"setup executable"をクリックして、VCPドライバのインストーラーをダウンロードして実行する。
VCPドライバのインストール画面。
Windowsコントロールパネルからデバイスマネージャーを起動します(下図はWindows10)。
▼下図赤枠の2つのデバイスが表示されている事を確認してください。
・ポート(COMとLPT) → USB Serial Port (COM3) ※パソコンによってはCOM番号が違う場合があるかもしれません。
・ユニバーサル シリアル バス コントローラー → USB Serial Converter
※この2つが表示されないとパソコンとRapiroを接続して通信することができません。この場合は、下記トラブルシューティングを試してください。私はUSBケーブルをミスしました。
▼ポートのプロパティ設定
・USB Serial Port(COM3)を右クリックしてプロパティを表示して、「ポートの設定」タブでデータ通信速度を「57600」ビット/秒に変更して保存、たぶんWindows再起動。Rapiroの基盤側の通信速度が57600bpsなのです。
Windowsパソコンの「Arduino」ショートカットをクリックして開発環境を起動します。
▼設定と検査は、下記3ステップ。
・ツール → ボード → Arduino/Genuino Uno を選択。
・ツール → シリアルポート → COM3 ※Windowsデバイスマネージャーで確認した「USB Serial Portに対応するCOM番号」。
・検査:ツール → ボード情報を取得 でベンダーIDやプロダクトIDが表示できれば通信できたと考えて良いでしょう。
ここのRAPIRO公式サイトで『Rapiroメイン基板用標準ファームウエア(Arduinoのスケッチ)』をダウンロードして、Arduino IDEでスケッチを開く。
Arduino IDEのメニュー:[スケッチ]→[マイコンボードに書き込む]を選択すると、ラピロのメイン基盤との通信が始まりステータスバーに”ボードへの書き込みが完了しました。”と表示されたら終了。この時、Arduinoとラズパイを接続している場合は、ラズパイとの通信が競合することを防ぐため、ラピロのDC電源をオフにするか、ラズパイとのGPIO接続ケーブルを外しておく必要があります。
ダウンロードした標準ファームウェアは、自分で取り付けたラピロのサーボモータの位置に誤差があるので、若干調整が必要です。特にラピロの腰や足がピタッと起立した姿勢にならないとモーターからジーという音が鳴り続けてしまうので、細かくパラメーターを変更して、何度もテストを繰り返して音が鳴らなくなる位置を見つけてあげます。私の場合、下記のパラメータでビシッと起立の姿勢になりました。ここまでトラブルがなければ、次の「実験(パソコンでラピロを動かす)」に進みます。
パソコンの「Arduino IDE」とRapiroロボット「Arduino基盤」が繋がらない場合、下記を確認します。
・ドライバをインストールしましたか?
…[USB Serial Port]と[USB Serial Converter]の2つをインストールする。
・通信速度は正しいですか?
…Windowsデバイスマネージャーのポート[USB Serial Port]の[ポート設定]で57600 bpsにする。
・マイコンボードの種類は正しいですか?
…Arduino IDEのツール→ボードをArduino Unoにする。
・COM番号は正しいですか?
…Arduino IDEのツール→シリアルポートを、デバイスマネージャーの[USB Serial Port]と同じCOM番号にする。
・ラピロ本体内のArduino基盤とRaspberry Pi3接続されていませんか?
…Arduino基盤にラズパイ(Raspberry Pi)を接続している場合は毎回気を付けてください。ラズパイが繋がっていると通信が競合して、データを書き込みできないようです。PCから書き込むときにサーボモータがブルって初期化されたら、この可能性あり。ラピロの背面にあるDC電源をオフにして、PCのUSBケーブルの電力だけで通信する、あるいはラズパイ(Raspberry Pi)のGPIOに接続されたArduino基盤のケーブルを外してから、PCとUSBシリアル通信します。ファームウェアの書き込みと、シリアルコマンド(#M1とか)送信のいずれも動作しません。
・USBケーブルは正しいですか?
…PCとRapiroを接続するMicro-USBケーブルは、見た目が同じでも[充電のみ]と[電源+信号]のタイプがあります。[充電のみ]のケーブルでは通信が出来ません。私はこれに気付かず6時間を無駄にした。
「Arduino IDE」のツール→シリアルモニタを起動して、ラピロの1行コマンドを送信する。例えば、「#PR255G000B000T001」というコマンドを送信するとラピロの目が赤色に変わる。コマンドは[#M0]~[#M9]までデフォルトで設定されている動作パターンがある。[#P]に続くパラメータを指定すると自由に動作させることができる。例えば[#PRxxxGxxxBxxxTxxx]は、LEDのカラーを意味するので、R(赤)、G(緑)、B(青)の各数値を様々変化させると下図のようにフルカラーで目の色を変化させることができる。もっと複雑になると、例えば「#PS00A140S05A090S06A140S11A110T010」というのは、サーボ0番を140度に、サーボ5番を90度に、サーボ6番を140度にという角度へ0.1秒かけて動かすというもの。1秒ならゆっくりウィーンと、0.1秒ならシュンと色々試すと面白いですよ。
Windowsパソコンからコマンドを送信してラピロを動かすことが出来ました。結局6時間かかってしまったのは、信号ケーブルが内蔵されていない「充電専用 Micor USBケーブル」を使っていたマヌケな理由だった。最初から正しいUSBケーブルを使っていれば、ちゃんと取説を読んで1時間もあれば簡単にラピロを動かすところまで出来たはず。
▼コマンド「#M7」を送信した