Balboa 32U4 倒立振子キットを試す

倒立振子キットを買いました

スイッチサイエンスでPololu製の倒立振子ロボットのキットを買いました。タイヤとモータは別売りです。これで制御の勉強をしたいと思います。サンプルコードで動かせるらしいので、まずはそこまでやりました。

組み立て自体は簡単です。はんだ付けキットでしたが、ほとんどの部品は実装済みでした。あとはモータやタイヤ部分の組み立てです。

倒立振子してくれない

サンプルコードが用意されており、これを動かすだけで倒立振子として動いてくれるらしいのですが、どうも一発ではうまくいきませんでした。

ギア比を変更

サンプルコードは各種制御の係数などがパラメータ化されていました。私が用意したモータは75:1のモータでギア比がデフォルトの構成と違ったのでこれは変更しました。ギア比リストが乗っていたページ

ですがこれが原因ではなさそうです。

逆向きに動作している?

サンプルコードを動かしていたところ、どうにも両のモータが逆向きに動作しているようでした。左右でモータの向きを変えないといけなかったようでした。組み立て書にモータに書かれている⊕を上にして組みたてるという旨が書かれていたのですが、基板を水平にしたときの上方向と勘違いしました。正しくは基板を垂直に立てた時の上方向です。

サンプルコードで動作しました

倒立振子の様子

arudinoのブートローダが破壊された

このキットはマイコンにATmega32U4を使用しておりArduino Leonardoの互換となります。作業中何回もプログラムの書き換えを行っていましたが、途中arudinoが認識しなくなりました。調べてみるとブートローダの破壊みたいで、よくあるらしいです。

復旧方法

arudinoのファームウェアがどういう構造になっているか詳しくないですが、なにやらややこしいです。

・ブートローダが破壊されたarudinoを接続すると認識できないUSBデバイスとして認識?されます。
・リセットボタンを2回連続で押すとリセットモード的なモードになります。(LEDがゆっくり光る)この時にはwindowsにCOMポートとして認識されます。(arudinoとして認識されていたときとは違うCOM番号になりました。)

リセットモード的なモードですが、数秒すると勝手に終了してまた認識できなUSBデバイスとなってしまいます。厄介なことにリセットモード的なモードでCOMポートが認識されている隙に書き込まないといけないようです。(別の手法もあるようです。)

うまくタイミングを合わせてリセットボタンを2回押してプログラムを書き込みます。書き込むときは普通にarudinoIDEから書き込めばよいそうです。

使っていたarudinoIDEのバージョンは2.0.3だったのですけれど、この手法ではブートローダの復旧はできませんでした。旧バージョンのarudinoIDEを使ったらうまく書き込めて復旧しました。

ゲームコントローラで動かす

キットには無線モジュールなど搭載されていませんので、倒立させた後は動かすことができませんでした。ランニングエレクトロニクスのSBDBTを使ってゲームコントローラで動かしました。ボタンに前後と旋回を割り振っています。

コントローラで動いた

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA