Microbitを使た2足歩行ロボットの前進歩行プログラムを作成しました。
・2足歩行のメカ部分についてはこちらを参照してください。
2足歩行ロボットの製作1(Microbit、 サーボモータ使用)
・サーボモータを動かすボードは、DFrobotのボードを用いました。
Micro:bit Driver Expansion Board SKU:DFR0548
###2足歩行ロボット用 前進プログラム
モータの配置とボードへの接続端子は、下図の通りです。
※この図は、Draw.ioというフリーソフト(ブラウザーで動く)を用いています。(便利です。)
draw.io
ロボットを前進させるには
(1)片方の足を傾け、重心を傾けた足の方に移動させます。
(2)腰を回転させ、浮いた方の足を前に出します。
(3)浮いた方の足を地面につけるために、傾けた足を元に戻します。
これを繰り返すことで前に進むことができます。
Microbitで作成したプログラムは、半歩前に移動するプログラムです。上記の写真(3)では、左足が前に出た状態です。右足を半歩前に出して(1)と同じ状態(移動した後両足が前面揃った状態)になります。
左足から動かすプログラムと右足から動かすプログラムを作成しています。
###使い方
サーボモータを図に従って、ボードのS1からS4に接続します。
Aボタンを押すと前進します。
プログラム概略説明
変数は7個あります。
ilF:初期左下足の値(S1)
iLL:初期左上足の値(S2)
iRF:初期右下足の値(S3)
iRL:初期右上足の値(S4)
前回の調整プログラムで調べた値を入れてください。これが原点になります。
slope:下足を傾ける角度
haba:腰(上足)を回転させる角度
wait:待機時間
最初だけ
では、すべてのモータを基準位置に設定します。
rhwalk関数は、右足を最初に傾けて左足を半歩前に出し、つま先をそろえるプログラム。
lhwalk関数は、左足を最初に傾けて右足を半歩前に出し、つま先をそろえるプログラム。
Aボタンを押すことで、このプログラムを逐次実行します。
waitを大きくすることで、動作を確かめることができます。
rhwalk関数の詳細
(1)右下足(S3)を傾けて、重心を右足に乗せます。
(2)左下足(S1)を傾けて重心移動をサポートします。(傾きの2倍にしていますが、この動作はいらないかもしれません。)
(3)右上足(腰の部分を)(S4)回転させます。
(4)左上足(S2)を回転させただけ反対側に回転させ、左上足を正面に向くようにします。
(これ以降、モータの番号だけで説明します。)
(5)S1を初期位置に戻します。
(6)S2を初期位置に戻します。
ここまでで、左足が前進しているはずです。この次は反対側から動かします。
(7)S1を傾けます。
(8)S3を2倍傾けて、重心移動をサポートします。(この動作は不要かもしれません)
(9)S2を初期位置に戻します。
(10)S4を初期位置に戻します。
(11)S3を初期位置に戻します。
(12)S1を初期位置に戻します。
これで、半歩進んで、つま先がそろった状態になります。
lhwalk関数はS1から傾けて、同じような動作を行うプログラムです。
1歩前に進む、右に曲がる、左に曲がる、後ろに下がる、横に移動するなどのプログラムを作っていきたいと思います。