久しぶりです
DDProjectのプログラマ、Eaterです。
8月の学校休業期間の間活動がなかったために進捗がなく、その後8月下旬は宿題がたまっていたためブログの更新が途絶えていました、すみません。
さて、自動台車「ESTrans」ですが休業期間が終わるともう形が出来上がっていました。自分は全く機体の製作にかかわらなかったので久しぶりに学校来たら出来上がっててびっくりでした。(製作に際してはちょっとつてを使って学校外でやってました)
そしてついに!
コントローラでのコントロールに成功しました!
これが意外と手こずったのです。
まず、コントローラと本体とをTWELiteDipを使って無線通信するテストから始めたのですが、標準のファームウェアでは専用のプロトコルに従わないと動かなくてとても面倒なので公式から別のファームウェアをダウンロードして上書きしようとしました。その上書きの際にFT232rlとTeraTermがあればできるだろうと思い、TWELiteDipをFT232rlにつないで書き込もうとしたら…
はい、焼けました。
プルアッププルダウンを間違えていたのでそれが原因じゃないかと修正し、チップを買いなおして2回目。
三端子レギュレーターごと逝きました。なんででしょう?
結局また買いに行ってついでに専用ライターを買ってきて3回目のチャレンジでようやく成功しました。
TWELiteにたくさん貢ぎましたよ、ええ。このトライで買った分だけで1万くらいいきそうです。とってもお高いBBQでした。
なんだかんだでコントローラと本体の接続は成功したのですが、次の問題はモータードライバ―と本体マイコンの通信。使っているモータードライバ―はPololuの「Simple Motor Controller」。PCとUSBでつないで各種設定ができ、デバッグもできる優れものです。
UARTを使って当初通信するつもりでした。そして実際動きました。しかし、シリアルエラーが発生してしばらく走るとすぐに止まってしまいます。モータードライバ―にPCをつないで確認すると「Noise」と「Format」のエラーが発生していました。「Format」はどうやら通信プロトコルが間違っているときに発生するらしいのですが特に間違いも見当たらずそしてエラー発生時に操作の共通点も見られませんでした。結局PWMでの通信に切り替えることにしました。
ちなみにここでもひとつ躓いたことがあります。PWMでの通信というのは正確にはRCレシーバー規格での通信で、ただPWMのデューティー比を変えるだけでは制御することができず、サーボモータなどのようにある定められた周期で、ある定められた幅のパルスを出力し、そのパルス幅で速度を制御しなければなりませんでした。一般的には20ms程度の周期で0.1~2.0msのパルスを送るようです。これに気付くのに少し時間がかかりましたが何とか動くようになりました。
そんな努力と高額な投資の末、人を乗せて走るまでに至りました。
短いながらも動画はこちら(Twitter)↓
人が歩くより速い速度が出せます。重心が前になると全く小回りが利かなくなるのが難点です。でも2人乗っても走りましたし台車としての性能は申し分ないのではないかと思います。次は自律制御ですね。
さて、文化祭まで残りわずかとなりました。文化祭は9/18~9/20に開催されます。ESTransはもちろん様々なロボットを展示しておりますのでぜひぜひお越しくださいませ。
コメントお待ちしております!
RSS feed for comments on this post. TrackBack URL