カテゴリー : 倒立振子ロボット

倒立振子ロボットとBluetoothでPCと通信が出来た。

mbed倒立振子ロボットにBTStackを載せてBluetoothでPCと通信できた。
PCとの接続は東芝のBluetoothスタック・アプリで接続している。

PCのBluetoothスタック・アプリ

PCのBluetoothスタック・アプリ

これがBluetoothのSPPを使って通信しているところである。

BluetoothのSPPモードにてPCと通信

BluetoothのSPPモードにてPCと通信

現在のところは、ロボットの前進・後進・回転を制御するルーチンのアルゴリズムの検証ができていないので動かせてないが、PCからコマンド(と云ってもアルファベット1文字)でロボットの姿勢情報の表示・非表示をさせいてる。

未実装なとこもあるが、これでPCやスマホでアプリを作れば制御できるということ。PCなら姿勢データをグラフ表示させた制御プログラムを作りたいがVC++とかVC#とかに慣れてない。  :-x
スマホやPCでの制御プログラムはじっくりと楽しみながら作ればいいだろう。

今現在の課題というか問題点は以下の通り

  1. スマホ・PCとのBluetooth接続できるが、PCは東芝製のBluetoothスタック以外成功していない。
  2. mbedの消費電力は大きすぎ、電池駆動では致命的だ。

1.は当方がナントカできるレベルを越えてるかも知れない。 :oops: 2.に関してはmbedは高機能なためEtherモジュールが実装されてたりしている。CPUの初期設定で使わないデバイスにクロックを配給しないとか色々と省電力の工夫ができると思うのだが…研究が必要である。

【追加】
動作具合を動画に撮ったのでyoutubeにアップロードした。
You need to a flashplayer enabled browser to view this YouTube video

倒立振子ロボットが、もう少し立った…

制御プログラムで使われてるマジックな係数を調整したところ倒立振子ロボットが更に安定して、10分ほど立つようになってきた。
姿勢制御はこのあたりにして、次はBluetoothの回りのプログラミングだ。

更に安定した倒立振子ロボット

更に安定した倒立振子ロボット

倒立振子ロボットが少し立った

調整してた倒立振子ロボットが少し立った。iCHIROさんのソースをベースにしてはいるのだけど、ジャイロの3.3V駆動やモータ制御がオリジナルと違うので、そのままでは動かいない。ソースを修正して、なんとか30秒ほど立った。それがコレ

少し立ったmbed倒立振子ロボット

少し立ったmbed倒立振子ロボット

ハードウェアの問題はなさそうだ。後は”頑張れロボコン号”にあったアルゴリズム(味付け)を加える必要がある。

倒立振子ロボットをBluetoothで制御

参考させて頂いてる”うぉーるぼっと”はBlueTooth対応のWiiリモコンで制御できるのだが、我が”頑張れロボコン号”もBlueToothマウスでモータ制御できた。
Wiiリモコンを持ってないので、所有してる唯一のBluetoothデバイスであるマウスなのである。 8-)

Bluetoothで制御されてる倒立振子ロボット

Bluetoothで制御されてる倒立振子ロボット

mbedでBluetoothを実現したスタックは”うぉーるぼっと”で利用してるBlueUSBではなく、Okamotoさんが移植された“BTStack”を利用させていただいた。

Windows7とSPPでの接続に成功してないのだが、東芝製Bluetoothスタックソフトを利用したXP環境では安定して接続できた。これで目標のひとつだった”動作中の倒立振子ロボットの姿勢制御情報をBluetoothを通じて受け取る”ことが可能になった。

さらに嬉しいことに”BTStack”でmbedとandroidスマホをSPPプロトコルで接続できた。androidスマホを倒立振子ロボットのコントローラーにする目処がたった。

これまで、

  1. ステッピングモータ制御プログラム
  2. ジャイロ情報処理プログラム

を実装した。今回のBluetoothを加えれば、制御プログラムは揃ったのだが、さてさて動くことやら…

ステッピングモータ制御プログラムは最高回転数を10等分した速度で調整できるようにし、低速回転時の電流制御ができるようPWMで細かく制御した。ジャイロ情報処理プログラムは、iCHIROさんのプログラムを参考に実装したのだが、これで動くかどうか…である。

倒立振子ロボットのmbedのコントローラーボード その2

はじめに

倒立振子ロボットのmbedのコントローラーボードの回路は、PIC18F2550版のコントローラーボードの回路と “うぉーるぼっと”の回路を参考に作成した。

工夫と言えば、パワーユニットボードで使用したステッピングモータ駆動IC MP4401のオン電圧が4Vであるらしく3.3Vのmbedでは駆動できないので、秋月で買った8ビットレベル変換ボード(3ステートバッファ)を入れた。

回路図とボード図

回路図のmbedはロゴ入りの豪華版だ。 ;-)
mbedのコントローラーボードの回路とボード図は以下の通り

mbedのコントローラーボードの回路図

mbedのコントローラーボードの回路図

mbedのコントローラーボードのボード図

mbedのコントローラーボードのボード図

組立

我が”頑張れロボコン号”のコントロールユニットを載せ替えてみた。少しの加工で取り付けることが出来た。
結構適当に筺体を作ったのだが、mbedコントローラーボードはピッタリと収まった。

mbedコントローラーが載ったロボコン号

mbedコントローラーが載ったロボコン号

加工したのはココ

加工したのはココ

おわりに

簡単なソフトを組んでステッピングモータは回せたのだが、mbedの三端子レギュレータが熱を持つのを確認した。
熱は電力のロスそのものなので改善が必要だろう。

パワーユニットからの9V(実際は7.6V)をmbedに入れてるのが原因。mbedの電源は、mbedのコントローラーボード上の三端子レギュレータからの5Vに改造することにする。

倒立振子ロボットのmbedのコントローラーボード作成

うぉーるぼっとの回路などを参考にmbedの倒立振子ロボットのコントローラーボードを作成した。
それがこれである。

mbedのコントローラーボード

mbedのコントローラーボード

まずはステッピングモータ駆動テスト。そしてジャイロを用いて倒立振子のテストだ。

倒立振子ロボット その3

5VのACアダプタでの動作が安定してきたので、上部に電池を取付て更にバランスを取って電池駆動に切り替えた。

荷物はナロータイヤ、今日届いた。Amazonにて発見したので今更感もあるが発注した。ナロータイヤをつけても安定したが、この筐体にはワイドタイヤが似合ってるので元に戻した。

電池を上部に配置してさらに安定した倒立振子ロボット

電池を上部に配置してさらに安定した倒立振子ロボット

電池駆動になって、邪魔な5VのACアダプタの電線がなくなったので、赤外線リモコンでクルクル舞わせてみた。
タイヤの摩擦が若干違うようで段々とずれるが倒れません。

You need to a flashplayer enabled browser to view this YouTube video

かなり安定してるので、電池が切れるまで立つようになった。測ってなけど一時間ぐらいは立つのではないだろうか。iCHIROさんのLIBRA-ZEROのテストは完了したようだ。これからはLIBRA-ZEROを元に、独自の”ロボコン”を作ってみよう。

倒立振子ロボット その2

倒立振子ロボットをヘタリ気味の百均のニッケル水素電池で動かすと、すぐに電池が無くなってしまい調整しづらかった。そこで5VのACアダプタを繋いで調整してみた。電池を背負わない分、重心が筐体の中心に移り安定感のある太いタイヤを履いた筐体では、電源を入れないでも立つ。かなりパランスのよい筐体になってる。

しかしまだまだ調整し必要で、重い物を載せると転倒するし、リモコンで動かせると言っても回転まで、前後に動かそうとしてもゲインの値が悪いのかキビキビとは動かない。

You need to a flashplayer enabled browser to view this YouTube video

追記

さらに調整してみたところ、ペットボトルを載せても安定した姿勢を保つことができるようになった。
電池を背中に背負わない筐体はバランスは良いみたいだ。電池は左右に分けて配置すれば良いのかもしれない。

ペットボトルを載せても安定した。

ペットボトルを載せても安定した。

倒立振子ロボットが立った。

iCHIROさん作のLibra(からくり小箱)を元に、当方も倒立振子ロボットを作ってた。
部品が揃って自立テストできるところまで組み立てができたのでテストし、2~3秒立つところまでできました。

倒立振子ロボット(前)

倒立振子ロボット(前)

PIC18F2550でのコントロールの目処がたったらコントローラ部をmbedなどに変更する予定なので、コントローラ部と電源&モータ制御部の2枚の基板で構成してます。

倒立振子ロボット(後)

倒立振子ロボット(後)

倒立振子ロボット(横)

倒立振子ロボット(横)

筐体は余ってた赤の2mmのアクリル板をコの字に曲げて作った。結構適当だったので、重心は電池を背負った分後ろにある。筐体は作りなおしたほうがいいかもしれないが、取り敢えずもう少し長く立つまで調整してみよう。

2012/4/2追記

赤いロボットといえば赤い彗星のシャア専用ザクってところだろうだけと、この倒立振子ロボットはどう見ても”かんばれロボコン”だょなぁ。

倒立振子ロボットのモジュール

倒立振子ロボットのモジュールを作った。大元はからくり小箱のLIBRA-ZERO。
現在はPIC18F2550でコントールしてるが将来mbedでもコントロールできるよう、回路をコントロール部と電源&モーター制御部に分離した。

それがこれ、

コントロール部

コントロール部

電源&モーター制御部

電源&モーター制御部

ステッピングモーターを単三電池4本で動かすためLibraの作者のiCHIROさんは、15Vに昇圧できる電源ユニットを設計されてます。電源は3つのユニットから構成されてて、左右のステッピングモーター用の15V電源ふたつと、コントローラー用7Vユニットひとつの構成。写真のように1000uFのコンデンサが大きくコンパクトとは言えないサイズになった。
MP4401モーターコントローラーは、テストがまだ済んでないので取り付けてない。

Get Adobe Flash player