Microbit、サーボモータを使た2足歩行ロボットを製作しました。
###2足歩行メカ部分
2足歩行のメカ部分は、下記の作り方を参考にしました。
参考にしたものに少し改良を加えています。
上足を固定した写真。(写真では下側になっています。)
上足(腰の回転)の固定は、ブレットボードにM2のねじでホーン(回転軸を固定する部品)を固定しています。(十字ホーンの長い方の4つ目の孔をM2のドリルの歯で少し広げてM2x8(10)+ナットで固定しています。
後ろからの写真。
下足は前だけの支えだと不安定だったので、後ろからM3のねじで押さえつけています。(M3x10、M3ナット2個/1足あたり)ねじを固定するプラスチック部品は、前から支えるものと同じもので、接着剤で下のボードのに固定しています。
###サーボモータボード
サーボモータを動かすボードは、DFROBOTのボードを用いました。
Micro:bit Driver Expansion Board SKU:DFR0548
詳しくは、こちらの記事を参考にしてください(DCモータとサーボモータ両方制御できます)。
Microbit:DC motor制御(DFROBOTボード)
電源は、単三電池4本の6Vを使用しています。
###2足歩行ロボット用 初期角度設定プログラム
サーボモータをホーン(回転軸に固定する部品)を固定するにあたり、サーボモータをまず90度まで回転させます。(使用しているサーボモータが±90度ですので、90度の位置を仮の原点にします。)
組み立てると、微妙に角度のずれが生じ、ちゃんと直立した状態になっていません。下記のプログラムでその角度のずれを調べて、組みあがったものの原点とします。
####使い方
サーボモータをS1からS4に接続します。
S1、S2、S3、S4の順に調整していきます。
Aボタンを押すと角度が+の方向に回転します。
Bボタンを押すと角度が-の方向に回転します。
A+Bボタンで確定して、その角度を表示(2回表示)して、次のモータに移ります。
####プログラム概略説明
変数は3つあります。
ang: 角度の値
mp:サーボモータの番号
incr:サーボモータを変化させる角度の大きさ
最初だけでは、すべてのモータを基準となる角度90度に設定します。
Servo_select関数は、モータ番号によってサーボモータのIOポートが変わるので、それをまとめています。
オレンジ色のブロック(DFROBOTの拡張ライブラリー)の部分を書き換えると他のボードでも使うことができます。
A+Bボタンを押すでは、ボタンを押すたびにmpの数が増えますが、4が終わるとまた1に戻ります。そして、調整した値を2回表示します。
モータ番号と、回転方向(+と-で動く方向)、調整した値は紙にでも記録しておいてください。
私の場合、左下足:1(S1)、左上足(腰の部分):2(S2)、右下足:3(S3)、右上足(腰の部分):4(S4)としています。足や腰が平行や垂直になる角度は、それぞれ、83、81、94、96でした。製作によって変わるので、このプログラムを参考に調べてみてください。
2足歩行の歩行プログラムは次回以降に。