Arduinoによるロビ2の下半身の制御
2018年3月14日
ロビ2ですが40号で下半身が完成しました。
今回はArduinoを使って完成した下半身を動かしてみます。
基本的にはロビ1と変わっていないのでロビのマイコンボードを使えばロビのプログラムで動かす事ができると思います。
しかしサーボケーブルのコネクターが違っていたり音声認識ができないのでプログラムの起動なども変更しなければいけません。
そこで今回は以前ロビ2のスタンドを動かしたようにarduinoを使って制御してみました。
Arduinoとのサーボの接続方法について説明します。
サーボケーブルとarduinoはロビ2のサーボコネクターベース(ADHタイプ)を汎用のサーボケーブルコネクターにハンダ付けをしたものをふたつ使用しました。
ふたつを並列に繋ぎarduinoに接続します。
ロビ2のサーボケーブルを入手して途中で切断して切断した2本の同じ線どおしを結線したものをArduinoに接続しても構いません。
その際は一度股関節のサーボケーブルを外して接続し直す必要があります。
サーボケーブルのVCC(赤)をArduinoの5VにGND(黒)をArduinoのGNDに接続します。
サーボケーブルの信号線(橙)をArduinoのDIGITAL 1(TXT)に接続します。
ArduinoはUBSでPCにつないでもそのバスパワー(PCからUSBケーブルで供給)でサーボを動かす事ができますが今回はサーボを10個動かさないといけないのでUSBのバスパワーだけでは正しい角度で動かないようで。
7〜12Vの外部電源をVInから供給してください。(Arduino Unoは電源コネクターから供給できます)
今回はArduino Nanoを使いましたが他のArduinoの場合はピンは位置が異なりますのでそれぞれのピンは位置に合わせて接続してください。
ロビのプログラムをarduinoのプログラム(スケッチ)に移植する方法を紹介します。
ロビのプログラムは実行される順に記述れていないのでモーションを実行順に並べる必要があります。
これにはロビモーションシミュレーターを使います。
移植するロビのプログラムを開いて続いてモーション作成を行います。
この時上記のダイアログが表示されるので「はい」を答えます。
ロビモーションシミュレーターはプログラムを実行しながらモーションを順番に並べてくれます。
「モーション書出し」ボタンでモーションをプログラム書き出します。
この時、プログラムファイルはオリジナルのプログラムファイルを書き換えないように別のフォルダーか違う名前にしてください。
このプログラムファイルをロビモーションエディタの「編集データを開く」ボタンで開いてください。
この時下記のダイアログが表示されるのでロビの設定ファイル(STARTUP.XML)を開いてください。
実際のサーボの角度はプログラムのモーションデータと設定ファイルの原点補正値を足したものになります。
ロビモーションエディタの画面で青線で囲んだ部分が各モーションの実際のサーボの角度となりますのでそのままスケッチのデータとして記載します。
なおサーボ移動時間もスケッチのデータとしてそのまま記載します。
サンプルスケッチは下のURLからダウンロードできます。
robifoot_sketch.zip
robifoot_dance.ino ロビのダンスプログラム
robifoot_walk_nomal.ino ロビの歩行プログラム
robifoot_balance.ino ロビのバランスゲームプログラム
robifoot_walk_souji.ino ロビの掃除歩行プログラム adjust_angle 足首の調整角度
robifoot_walk_nomal.inoとrobifoot_balance.inoは途中で転倒します。
実際に動かした動画です。
なお組み立てガイドに記載されている以外の事を行うとサーボへの影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。
目次に戻る