記念すべきWeb回路Coder最初の記事...何をするか考えました。
...倒立振子です。ずっと「とうりつふりこ」だと思ってましたが「とうりつしんし」と読むようです。倒立振子とは、平たく言って振子を逆さにしたもので要するにセグウェイがそれ。
振子の端につけた加速度センサー等を使って、足となるモーターを制御することで立たせることができます。簡単そうで意外に難しいらしく、よく制御プログラミングの練習として使われてます。
制御の入門ということで、まずはこの倒立振子を作っていきたいと思います。
部品
まず揃えたのがこちら。
タミヤのギアボックス。どこにでもある、そして何にでも使われる便利な子。
某所から借りてきました。
タミヤのギアボックス |
次に制御基板。基板には巷で流行りのSTM32 F401 Nucleoを採用します。このマイコンボードにはARM Cortex M4シリーズを乗せたSTM32 F401が載っていて、秋月電子でお値段1500円。その上クロック84MHz・64Pin・Flash 512KB・SRAM 96KB...etcというコストパフォーマンスに優れ過ぎているおそるべき開発ボードです。書き込みに使用するST-LINK/V2-1も基板に実装されているので、Mini USBで繋ぐだけで開発が開始できます。Arduinoのピン配置にも対応しており、mbedも使える...低価格帯では恐らく無敵のマイコンボードです。
一時期Atmel社のチップを使ってオリジナルボードを作ろうと考えてましたがこれを見てやめました。
左上の赤いやつはMMA7361というアナログ加速度センサです。重力加速度を取ることができるので、角度を図ることもできます。ちょっと前までよく使われてました。最近はI2Cとかで繋ぐデジタルタイプの方が主流な気もしますが、安くていい感じなのでチョイスしました。STM32と繋ぐときにはSTM32でA/D変換をかけてやります。
加速度センサMMA7361とSTM32 F401 Nucleo |
バッテリーはこちら。何の変哲も無いSilicon Powerのモバイルバッテリー。
5V2.1Aの良くあるバッテリーです。2.1Aもあるのでモーターの電源も共有できそう。
0 件のコメント:
コメントを投稿