メカトロニクスの第一歩、モーター制御に踏み出す
東北地方に大地震と大津波が襲い、大勢の方が亡くなられた。東京も震度5で、経験したことのない長い揺れに驚いたが、テレビの画面で町を次々に飲み込んでいく黒い津波を見て背筋が凍えた。自然の力の前にいかに人間が無力か思い知らされる。亡くなられた方々のご冥福を心から祈りたい。
それはそうと、このブログの更新が20日以上滞っている。2月末から3月にかけてのこの時期は、例年、行事や仕事が集中し、電子工作どころではないのだが、このブログは自分の備忘録を兼ねている。あまり日を空けてしまうと、あとから何をやっていたのかわからなくなってしまう。たいしたこともやっていないが、とにかく作業記録だけは残しておくことにする。
次のプロジェクトはモーター制御と決める(2/16/2011)
FPGAのフォトフレームプロジェクトは一段落した。 I2CフラッシュROMを使ったレジューム機能など、部品を買ったまま、残している課題はまだ山ほどあるが、ここらで少し一休みしよう。次のプロジェクトは、いよいよ年初の挨拶でも触れたモーター制御をやってみたい。これまで電子工作と言われるものは手当たり次第、幅広くやってきたが、モーター制御だけは最後まで残っている。
前から興味は持っていて、モーター制御特集の雑誌を買ったりしていたのだが、この世界も奥が深い。そう簡単に手をつけられるところではない。というのも、どうせやるならモーター制御だけではなく、自動制御、ロボットの世界まで行きたいからである。いずれにしろ大電流の制御や、距離センサーなどの技術は、慣れ親しんだソフト開発の世界とは全く違う、所長にとっては一大フロンティアである。
このフロンティアの奥の院には、電子工作の最高峰、メカトロニクス、ロボットが聳えている。これまでFPGAやBealeBoardでは、進めば進むほど、パソコンやiPhoneの世界に近づき、苦心の末、出来上がったものを見せても、「で、それがどうしたの?」と聞かれる危険性を常にはらんでいるが、ここはまだ手付かずの世界が残っている。夢は広がる。
しかし、現実はそう甘くない。ときどき、これらロボット界の現状をウェブで垣間見るが、見る度に想像を絶する発展がアマチュアの世界でも繰り広げられ、新たにやってみようかという意欲を失わせるのに十分だ。
信じられない速度でマイクロマウスが迷路の中を駆け巡り、相撲ロボットは、圧倒的な迫力で、相手を土俵の外へはじき飛ばす。ロボットが色の違うボールを器用につかんで、色別に整理し、GPSを搭載して実際の町の中を障害物を避けながら通行する。ここも、素人が気楽に遊べるところが急速に失われつつある。
まあ、上を見ていたらきりがない。そこまで行かなくても面白いことはたくさんある。しかも、実用をモットーとするがた老AVR研究所としては、実用的な目的は既に考えてある。最初の応用例は、ウェブカメラのアングル制御である。BeagleBoardあたりにウェブカメラを載せ、遠隔地からカメラを自由に操作できるようにすれば、ウェブカメラの能力を飛躍的に広げることが出来る。カメラのアングル、ズームなどがサーボモーターによって制御出来れば、とりあえずの実用性は十分だ。
次のアプリケーションは、お掃除ロボットだ。小型掃除機を改良し、床の障害物を判別して、それを避けながら定期的に歩き回り、電池が減れば、自分でコンセントにつながりに行って充電する。すでに市販品もあるようだが、これが完成できれば、家族の中でも大威張りだ。夢(妄想)は大きい方が楽しい。
行き当たりばったりに部品を買ってくる(2/18/2011)
夢はどこまでも膨らむが、ただ考えているだけでは何も始まらない。千里の道も一歩からという。仕事の帰り、久しぶりに秋葉原に寄り、ウェブの情報を頼りに、千石3号館で、タミヤのツインモーターギヤ(ライントレーサー用 ¥710)とタイヤ(¥310)、秋月では、評判の良い在庫限りのFETアレイ(MP4401 ¥200)、ステップモーター(¥350)などを買い込んだ。何でも良いから、とりあえずは何か動くものを作ろうという方針である。
帰ってきてすぐ間違ったものを買ったことに気づく。買って来たFETアレイMP4401は、ステップモーター用のNMOS-FETだけのアレイで、一般のモーター用のドライバーではない。このままではタミヤのモーターは制御できない。モーターの正逆転をするにはHブリッジといってトランジスタで言えば、コンプリメンタリなFETアレイが必要なのだ。
それに、初心者がいきなりFETドライバーで動かすのは、どうもやめたほうが良さそうだ。FETのON抵抗は、0.1オーム台で、下手な制御をすると、一瞬に大電流が流れ機器を壊してしまう。やはり最初は、バイポーラの定番のトランジスタのモータードライバーを使うのが無難なようだ。
始めは何故、みんな電圧降下の大きい、こんな非効率なバイポーラのモータードライバーを使うのか理解できなかったが、調べるうちに理由がわかった。こちらの方が少々無理な制御をしても簡単には壊れないから安心なのだ。それに、タミヤのツインギヤセットについているモーターの定格の推奨は、1.5Vなので、3.7Vのリチウムバッテリーを使うのなら電圧降下の具合がちょうど良い。なにも損失の少ないFETドライバーを考える必要がない。
次の日、家族が日本橋に行きたいと言うので、また秋葉原に寄る。秋月で、定番のモータードライバーTA7291P(2つ入り¥300)と、過電流防止のポリスイッチ(1.5A近辺で3種ほど一ヶ¥30)、千石でHブリッジ用のFETモジュールMP4212(これも在庫限りらしいので今のうち ¥340)を仕入れた。
ライントレーサーなら、モーターを逆転させる必要はないが、まだアプリケーションを何にするか決めていない。とりあえずは気の付いた部品は揃えて置こうというぐらいの気持ちだ。当初は、ARM基板がついたライントレーサーキットを買おう(¥6000以上する)と思っていたくらいだから、少々余剰部品を沢山買ってもおつりがくる。
回路を真剣に検討し始める。良く調べてみれば、余り難しく考える必要はなかった。Hブリッジとか言っているが、要するに2極双投のスイッチをFETか、トランジスタが替わりをしているだけと考えれば理解が早い。モーターという誘導負荷を動かすので、逆起電電圧とか、両方の素子が導通しないためのデッドタイムとかに気をつければ、そうびびることはない。でも最初はバイポーラで始めることにする(臆病である)。
FETは、やっぱり1.5Vでは動かない(2/20/2011)
まずは、ブレッドボードで買ってきたパーツの動作確認テストをする。最初は、間違えて5ヶも買ってしまったMP4401である。生産終了なのに人気が高いと言うので、ついわけもわからず大目に買ってしまっている。一ヶ¥200で、モジュールひとつにN-MOSのパワーFETが4ヶも入っている(ステップモーターも買ってあるので無駄にはなるまい)。オペアンプのように最小動作電圧はデータシートにないが、想定している3V近辺でこのFETは動くのだろうか。
だめもとで、1.5Vの乾電池ひとつでFETをドライブしてみる。さすがに動く気配はない。3VのDCアダプターで実験する。おおー、動いた動いた。3V近く(2.7V)かかっているので、やたらモーターの勢いが良い。ライントレーサーにするには苦労しそうな速さだ。
結局、安全のため買ってあったバイポーラトランジスタのモータードライバーTA7291Pが思った通りちょうど良い早さになった。(1.4V。1.6Vも電圧降下があることになる非能率)。電池を積んで動かすことを考えれば、慣れてきた時はFETに換えるべきだろう。
TA7291Pは、単なるトランジスタアレイではなく、ロジックが内蔵されたICで、アナログ電圧(Vref)でモーターの出力電圧を変えられる。半固定抵抗でやってみる。ブレッドボードで組んで、モーターを動かしてみた。電源は車に積めるよう、プレーヤーに使った3.7Vのリチウムバッテリーである。
うむ、面白い。ちゃんと微速から全速まで無段階で変えられる。ここにPWMでチョッパーした出力をLPFでならせばアクセルが出来るはずだ。石はとりあえず、2313で十分だろう。ライントレーサーの前に、Xbeeか何かでラジコンのテストもしてみたくなってきた。秋月でもXbeeを売り出したことだし。
自走車の制作(2/22/2011)
車(自走車)のシャーシーを適当な汎用基板で作り出したら止まらなくなった。あちこちのウェブを参考に、それらしい形を作る。モーター制御の部分は、このシャーシーには作りこまず、FETとバイポーラの2つにわけてテストできるようにモーター制御のサブ基板を作る。
これを組み立ててみたらなんとなく自動車らしくなり昔を思い出してはまる。ただ工作の進捗が遅い。これは、この車体をラジコンカーにするのか、ライントレーサーにするのか、それともマイクロマウスのような自走ロボットにするのか方針が決まっていないからだ。
本来は、何を作るか最初に決めて、まず設計図を引き、次に部品を揃え、それから作らないと、良いものは出来ないのだが、こういう気ままな作り方も、「ゆるくて」面白い。まあ、モーター制御の最初の練習車だ。気楽に考えよう。
モーター2つで自由に方向を変えるため、もう一つの車輪は、カートのキャスターみたいのもので良いと思って調べてみたら、おあつらえのように、同じタミヤから「ボールキャスター」というのが売られていた(最初は自作しようと意気込んでいた)。ウェブを良く見たら、この部品を使っているサイトはやたらに多いことに気づいた。
このキャスターは¥400しない。しかしこれだけを買いに都心に出かけるのも何だかなあと思っていたら、最近のアマゾンは、自社直接の注文では、どんな安い商品でも送料を無料にしているのを発見した。早速、ネットで注文した。2日で届いた。
ライントレーサーにするか、ラジコン車にするか、まだ方針が決まらない。マイクロマウスは、その場で回転(両側の車輪を逆にまわす)できるように、大輪の車輪にステップモーターで駆動するのが定番のようで、この形のマイクロマウスはあきらめる。
とりあえずは、ライントレーサーにしようと、フォトセンサーのひとつ、フォトリフレクター(TPR-105F ¥50)を久しぶりに動かしてみた。このセンサーはライントレーサーを考えていて、たまたま、これを脈拍計にしようとしているサイトを見つけ、面白そうなので衝動買いしたセンサーである。実験をした後ブレッドボードにささったままになっている。
この実験をブログに載せたら、意外なことにいくつかのサイトで紹介され、ブログのアクセス急増に寄与したことがあるが、脈拍計としては、指の置く位置が微妙で、思うように脈拍がとれず、ちょっとテストしたままそれきりになっている。
本来のライントレーサーのテストのため、紙にマジックで黒線を入れリフレクターの上をずらせて変化を見る。しかし、どういうわけか思ったように動かない。かなり紙を密着させないと白黒の判定が明確に出ない。ウェブの記事を見ているとライントレーサーは、このセンサーでなく、秋月でのもうひとつの種類、LBR127HLD(TPR-105より少し大きく、フォトTRとLEDが外せる ¥60)を使っていることが多い。
うーむ、ライントレーサーも今のところ手持ちの部品では実験が進められない(折角あれから3つも買ったのに)。というと残るは、無線操縦くらいか。そういえば、このあいだhamayanさんのブログで、受信側をXbeeモジュールだけで動かすリモコンの実験が載っていた。これはまさしく当所長があたためてきたアイデアである。
久しぶりに、Xbeeをもう一度調べ始めた。当ブログの最近のアクセスのトップはXbee関連である。何かの縁を感じる。Xbeeは、UARTの通信機能やネットワーク機能以外に、チップにデジタルI/Oピンを8ヶ内蔵している。しかし、これまでこれをラジコンに使っている例はない。みんな慣れたUARTを通してコマンド受信し、受信側にマイコンを置いてモーターを制御している。XbeeモジュールのI/Oピンだけでモーターを制御できればマイコンなしで動かせる。これは少し面白くなってきた。
APIモードのXbeeだけでラジコンにする?(2/27/2011)
確定申告や、恒例の年度末の全国大会の準備など、そろそろ行事が集中してきて、電子工作に時間をかけられない時期がきた。それでも、暇を見ては、自走車(今はこう呼ぶしかない)の工作を続けている。
とりあえずはバイポーラのモータードライバーTA7291Pで、自走するところまで作ってみた。速度制御は、このドライバーはアナログでできるが、正逆進の切り替えは、2本の制御線の操作がそれぞれ必要である。とりあえず組み立て、少し長いコードをつけて動作テストする。小さなブレッドボードとリチウム電池フォルダー(Xbeeワイヤレス電力センサー子機から流用)を載せた車がビービー動く。下らないけれど楽しい。
勢いに乗って、モーター2つから出てくる4本の制御線を統合して、前進と後進が一挙動で出来るように、トランジスター1ヶをインバーターにして、1本のHLで動くようにする。ブレッドボードで、回路を組む。オシロを使って、2本の制御線が同時にプラスにならないよう、100pFのコンデンサーをかまして遅延させる。
よし、立ち上がりは、遅延回路のおかげでトランジスタがONになるまで持ちこたえ、OFFのときは、トランジスタの立ち上がりの遅さが効いて、制御線が両方プラスになることが避けられる。モーターは思ったように、正転と逆転を繰り返す。こんな簡単な回路だけれど、思うように動いた時の快感は、複雑なものを完成させたときと同じだ。
Xbeeのほうである。ラジコンにすると言っても、XbeeのPWMは、出力だけで入力は出来ない。細かい速度調整などには、PWM制御できるマイコンが必要だが、正進、逆進、停止、左右転回程度のラジコン操作ならXbeeのデジタルピンだけで動くはずだ。
hamayanさんのブログをもういちど仔細に調べてみた。Arduinoを使って、APIフレームを飛ばして、子機側のI/Oを操作している。APIフレームでリモートATコマンドを出せば、子機側のXbeeのI/Oを直接動かせるので、ラジコンが出来る理屈だ。ただ、PWMのような早い切り替えは出来ないだろう。
買ってきたXbeeが二つとも動かなくなる(3/6/2011)
秋月でもXbeeを売り出している。シリーズ2のXbee ZBが¥2400、Xbee ZB Proが¥3800とやはりどこよりも安い。ちょうど良い機会だ。仕事の出張が終わって一段落したので、帰りにラジコン用に2つ買ってきた。
ついでに2ミリメッシュの汎用基板を買って、Xbee基板を作り始める。Xbee用の変換基板はいくつかのショップで売っているが、この汎用基板はたったの¥80。変換基板は安いのでも¥315(ストロベリーリナックス)、¥500(スイッチサイエンス)する。根がケチというのか、へそ曲がりというのか、素直に変換基板を買ってくれば良いものを、何か違うことをやりたがる。2ミリピッチの基板を2つに切り、汎用ピッチのピンヘッダーをつけた基板の小片をネジ止めして自前のブレッドボード用の変換基板を作る。簡単に出来た。
例によって、XbeeのユーティリティX-CTUでパラメーターの設定に入った。あれえ、Xbee ZBは、前の無印Xbeeと違って、MY ADDRESSが設定できない。どうしてだろう。と、色々いじっているうち、X-CTUがおかしくなってファームアップデートが終わらなくなった。仕方なく強制終了させたところ、Xbeeそのものが動かなくなってしまった。例の、ファームウエアリカバリーでも駄目。何度やっても元へ戻らない。
そのうち、動いていたもうひとつのXbeeチップも、X-CTUの異常終了(こいつときどきこける)とともに同じような状態になる。買って間もないチップ2つが全部動かなくなった。大事件である。Xbeeラジコンどころではない。
DigiからのメールでXbee生き返る(3/9/2011)
思い余って、販売元の日本のDigi Internationalにメールする。余り期待していなかったが、一日もしないうちに返事が来た。しかし、教えてくれたのは、前にやって動かなかった手順である。さらにしつこく情報提供を要請する。無視されると思ったが誠実に回答が来た。好感が持てる。
なになに、DTRとRTSをつなげとある。DTRはつないであったが、RTSはCTSとジャンパーしてさぼっている。今までのXbeeはこれでも、問題なくリカバリーできていた。しかしhamayanさんのブログでも、ファームの書き込みは、DTRなどの制御線が必要とある。
そういえば、RTSはUARTのところでジャンパーさせてXbeeには届いていない。XbeeがRTSを聞いているのならつなぐ必要がある。制御線を追加する。
念のため、CTSとRTSのジャンパーもはずしてCTSをXbeeから送るようにする。あきるほどやったリカバリー手順を、また最初からやりなおし。おおお、何か違うぞ。オシロに受信のパルスが流れる。やった、やった。メッセージがOKになった。2つとも生きかえった。
いやあ、人の言うことは聞くものだ。こんなにきめ細かく制御していたとは。Xbeeシリーズ2はやはり、大分、無印Xbeeとは様子が違う。
何とか、Xbee2つを救ったところで一段落し、このあたりでブログに報告することにする。実は、このあと思ってもいない展開になったのだが、それは次回と言うことで。
| 固定リンク
「電子工作」カテゴリの記事
- 生存証明2(2022.10.19)
- 生存証明(2022.01.23)
- パソコン連動テーブルタップの修理を諦めて自作(2021.02.16)
- 半年ぶりのブログ更新に漕ぎつけた(2019.09.19)
- 研究所活動は停滞したままでCCDカメラ顕微鏡導入など(2019.02.08)
「Xbee」カテゴリの記事
- Xbee APIモードのラジコン制御成功(2011.04.09)
- Xbee ZB APIモード汎用モニターのソース公開(2011.03.30)
- Xbee ZB APIモードにはまる(2011.03.25)
- メカトロニクスの第一歩、モーター制御に踏み出す(2011.03.12)
- Xbeeワイヤレス電力ロガー親機のソース公開(2009.11.21)
コメント
情報ありがとうございました。
今、Xbeeの方に専念していますが、ライントレーサーを作るときには参考にさせていただきます。
投稿: がた老 | 2011年3月18日 (金) 20時39分
既に御存知の可能性が高いですが、参考情報です。
エフテックという会社のPICによる自走ロボット(製品)のページ(http://www.ftech-net.co.jp/robot/catalog/probo2/f0209.html)です。
Cプログラミングの学習にも持ってこいなので、ここ5年ほど、C社(経団連会長を輩出したIT企業)などの技術系新入社員研修(2週間ほど掛けてゼロからプログラム開発まで手がけるプロジェクト型)にも広く使われているとのこと。
研修成果発表会では、結構アクロバティックな動作をさせるプログラムを披露する者もいるようです。
メカ部分(専用のギアとギアボックス)や、回路図、サンプルプログラムも公開されている筈なので、初参入には有効と思われます。
ご参考まで
投稿: eNasty | 2011年3月18日 (金) 09時15分
>nastyという英語は余り良い意味ではないですが、承知の上?
そうなんです。
「良薬口に苦し」の格言もあり、辛口意見こそ重要と思っています。よろしく...
投稿: eNasty | 2011年3月16日 (水) 00時46分
みなさんコメントありがとうございます。
おお、kugaさんがマイクロマウスをおやりになっていたとは。これは心強い。
最近は外国勢にやられっぱなしのようですが、最近のマウスは信じられない速さですね。
eNastyさん、興味を持っていただいて恐縮です。
Xbeeは思ったより手ごわいです。
(nastyという英語は余り良い意味ではないですが、承知の上?)
投稿: がた老 | 2011年3月15日 (火) 23時57分
マイコン工作で、光物、動き物は楽しいです。
私はマイクロマウスを趣味にしています。(ここ数年はすっかりご無沙汰ですが)
初めて購入したノートパソコンもマイクロマウスのデバッグ用で、
シリアルケーブルでつないだマイクロマウスを追いかけながら
デバッグするためでした。
苦労して作ったマウスが始めてゴールまで到達したときの感動といったら、
もう涙でそうでした。
投稿: kuga | 2011年3月15日 (火) 19時28分
先日こちらのブログを発見し、始めから全部読まして戴き、幾つかの作品には非常に興味を感じ、その内再現させて戴きたいと目論んでいます。(1950年代生まれですが多分、同世代と思っています)。
今回の、自走車も面白そうですね。手頃なFETが手に入らなかったときTA7291Pとタミヤのギアボックスの組み合わせは自分も試しました。
hamayanさんの「M1A2 XBeeラジコン戦車」は、詳細が公開されていないので、ガタ老さんのモデルの今後の展開に一寸期待しています。
投稿: eNasty | 2011年3月14日 (月) 15時27分
細かいところ、わかっていません。
Hブリッジとコンデンサ遅延だけで反応しました。
回路図掲載があれば、ありがたいです。
投稿: きゅうる村 | 2011年3月14日 (月) 08時36分
きゅうる村さん、コメントありがとう。
前進、後進のアイデア、言葉だけでわかりましたか。
回路図を書こうと思ってさぼってしまいました。すみません。
TA7291Pでは、ブレーキがかかるだけで、ここまでやる必要は、
ないのですが、これはFETのモータードライバーのための練習回路です。
投稿: がた老 | 2011年3月13日 (日) 23時26分
モータ制御も、ラジコンも楽しいですね。
私は、どっちも目前までして、放置中ですが。
前転、後転のコンデンサによる遅延のアイデア、
勉強になりました。
こういうシンプルなのがいいなあ。
そういえば、秋月の、今はなき、サーボモータ実験キットは、コンデンサを遅延タイマ代わりにしていたっけ。ソースはアセンブラで。
ああ、なつかしい。
投稿: きゅうる村 | 2011年3月13日 (日) 22時26分