ハンドロボットで使ったAdafruitのI2C 16ch PWM Servo Driverを使って複数のサーボを動かすという手もありますが、やっぱり、ムカデといえば、これ・・・。
・・・。
かつて、幼少の頃、マッドサイエンティストを目指した私としては、このムカデ人間方式にならって進めていきたいと思います。
IchigoJamは公式版を使っても十分ローコストではありますが、今回はaitendoの最小構成LPC1114FN28キットを使います。ムカデの1関節(上の図の人間一人・・・)をIchigoJam一つと3関節分のサーボで1モジュールとして構成し、この同じ構成のモジュールを複数連結してムカデロボットを構成します。
今回作ったのは、機構部は左右脚がサーボで上下方向に回転し、腹部連結関節が水平方向に回転するような機構を3Dプリンタで出力してマイクロサーボSG90を実装し、制御部はaitendo の最小構成LPC1114FN28キットにIchigoJamのファームウェアを書き込んだLPC1114FN28を載せ、3端子レギュレータでサーボ供給電源4.8VからIchigoJam用の3.3Vを作成する回路と電子工作マガジンに掲載されていたオートスタート回路を実装しています。
実際には今回は4関節分連結します。
本当はもう少し長くしたかったんだけど、途中で使っている3Dプリンタ(Flashforge Creator Pro)が壊れてしまったため、とりあえず4関節とします。どうもこの3Dプリンタは買ったばかりの時からX軸用のベルトが稼働中に外れて空中分解することがしばしばあり、何度かベルトを取り付け直してネジを締め直すを繰り返していたのですが、とうとうベルトをまともに取り付けることが出来ない状態で稼働後数分で綿菓子製造機(フィラメントがぐちゃぐちゃに放出される)になってしまいます。
IchigoJamでオートスタートするプログラムは非常に単純です。
前のモジュールからの左脚、右脚、腹部サーボのPWM値をシリアルポートで受信(INPUT文の入力)を順番に受けて、サーボに設定し、所定の待ち時間を入れて、次のモジュールへ送信(PRINT文)しているだけです。つまり、ムカデ人間の口から入れて、次の人間の口へ・・・の原理を踏襲しています。
先頭の関節にだけ、LPC1114FN28と合わせて、ATMega 328P にArduinoファームウェアを書き込んだものを載せて、関節の動きの情報を送信させています。このArduinoからの情報が順次後ろに連結されたモジュールに伝わっていきます。それぞれのモジュール自体は基本的には同じもので前方からの信号伝達で歩行します。