Top Page Index About Link Mail Form ●このページの応用機器製作します |
2013.4.27
昨年製作した小型ライントレーサはスピード制御が難しく、なんとかトレースはするものの、あまりスムーズには走れませんでした。さすがにモーターのシャフトでタイヤを直接駆動するのは少々無理があったかなとは思いましたが、かと言ってギアを使うとメカの作りこみが面倒だし。
というわけでインホイールモーターにしてモーター=ホイールで走ればいいんじゃないかと思ったのですが、ちょうどいいのが無いのでモーター自体も作ってしまいました。
念のため、回路設計、基板のアートワーク、部品実装、マイコンのプログラミングも全部自分でやってます。基板の板の製作は Fusion PCB(業者)に発注してはいますが。
回路構成。今回はコントローラに 32bit ARM STM32(STM32F100C8)を使いました。処理能力的には 8bitの AVRでも大丈夫だとは思いますが、STM32だと内蔵タイマーが豊富で PWMも便利なのでこちらにしてしまいました。値段も安くなってきて 8bitとあまり変わりないですし。ただ、パッケージが小さいのでハンダづけが大変。
モーターは3相のブラシレスモーターです。この3相を直接結線せずに独立したままで制御します。モータードライバは DRV8835を使っています。これは本来 DCブラシ付き、あるいはステッピングモーター用ですが、今回のモーターは3相が独立しているので流用可能です。
赤外線センサ、カラーセンサは前回とほぼ同様です。ブラシレスモーターの回転モニター用にホールセンサも追加しています。
今回は加速度センサ(MMA8451Q)も追加してみました。以下の用途に使います。
3は何かというと、電源投入直後はロータの磁石の位置がわかりません。その状態でいきなりステータのコイルを励磁すると磁石が引っ張られたり反発したりして車体がとんでもない向きを向くことがあります。ホールセンサは回り出さないと位置が検出できないのでこの場合は使えません。
そこでコイルを弱く、走り出さない程度で励磁しつつ磁界を回転させ、それにより車体が左右にピクッと動くのを加速度センサーで検出することで磁石の位置を推定します。それに合わせて回転を始めることでとんでもない向きに走り出さないようにします。
また、走行開始時はモーターの回転が大変不安定です。これはロータの磁石とステータの鉄心が引き合う「コギング」によるものです。ゆっくり一定速度で回しているつもりでも、実際は速度が振動します。これが左右のモーターで異なる振動をすると直進せずにとんでもない方向を向いて走りだしたりします。
コギングの影響を抑えるにはある程度速度を出せばいいのですが、加速しすぎると今度はウイリー走行したりします。このさじ加減が難しい。結局、加速度センサーでコギングの動作に合わせて加速してやることである程度スムーズに走行開始するようになりました(完璧とは言えないが)。ウイリー走行するのは電池BOXが上にあって重心が高いせいでもあるのですが、さすがにこれは今更変更できないし。
前方から見たところです。モーターと電池で重量のほとんどを占めます。全体では 65g程度。加速度センサーの右上ののコネクタはデバッグやファームウェア書き変え用のシリアルコネクタです。
裏側。赤外線センサーとカラーセンサーは前回と同様。百均ビーズのキャスターも同じ。
モーターの回転をフィードバックする為にホールセンサを追加しています。ただ、当初の基板位置だと遠くてうまく検出できなかったので無理やりモーター近くに移動しています。
モータードライバ(DRV8835)は IC1個にHブリッジが2つ入っているので左右で合わせて6コイル分、3個使っています。基板パターンはあたかも ICパッケージに「足」があるような感じになっていますが、実際にはパッドがあるだけです。手ハンダしやすいようなパターンにしてあります。
電池BOXとモーターのロータ兼ホイールを外したところ。ホイールの内側にネオジム磁石を貼り付けてロータとしてあります。ブラシはありませんが、代わりにステータのコイルの励磁を順次切り替えることでロータを回します。
ステータはとりさんのところで配布していたものを分けていただいています。無事完成しました。どうもありがとうございました。
このステータに φ0.12mmのホルマル線を巻いています。1刃あたり 100回づつで、1相あたり約7Ωになりました。細い線を使っているのは電源が Ni-MH電池2本で電圧が低く、大電流があまり流せない為。
モーターのコイルは PWMで磁界の強さを制御します。理想的にはサイン波形相当になればいいのですが、回路の都合等もあるので今回は 30度ごとに強さを切り替えて擬似サイン波形で駆動します。sin(60°)は 0.866なのですが、計算量を抑えるために 7/8で済ませています。
これを 120°づつずらして3相を駆動します。この程度の階段波形でも実にスムーズに回ります。
電池の消耗に伴ってモーターの強さが変化したりしないよう、常に電池電圧を A/Dコンバータで測定して波形のピークを設定しています。
ロータの内側には 5x5x1mmのネオジム磁石を6枚貼り付けてあります。そのすぐ外側にはケイ素鋼板を巻いて閉磁路を構成しています。
ホイールの中央の軸受には小型ベアリング(NSK MF106ZZ)を使っています。内径 6mmなので 3mmのネジで止めるためにスペーサとワッシャを使っています。
タイヤのゴム部分は実は近所のホームセンターで買った配管用のパッキンです。継ぎ目もなく、かっこいい。
ホイールに貼りつけた赤いのは百均で売ってたデコシールで、動作テスト中にスムーズに回転しているか確認するためのものです。ホイールもタイヤものっぺらぼうなのでこれが無いと正転と逆転の区別さえできません。あたりがちょっと暗いと回っているのかどうかさえわかりません。
ロータ兼ホイールは当初、1mm厚のフォーレックスをコンパスカッターで切り出し、それを接着・積層して作っていました。旋盤等の工作機械無しで作れる反面、やはり精度が出ず、回すとステータと磁石がぶつかったりしました。また、フォーレックスは柔らかいが故にコンパスカッターで切れるのですが、完成後に変形したりもします。かなりの数(10個前後)作ってみましたが、満足のいくものが作れませんでした。
そこで地元のプラスチック加工業者の新潟タキロン化工さんにホイール製作をお願いしてみました。価格は4個で税別 8,000円。特注ですから。
さすがに今度は硬質のエンプラ(POM)を旋盤で切り出したホイールなので精度もよく、丈夫です。ホイールを浮かせた状態で回転させると 1,000rpmでも安定して回りました。と言っても実際に走らせる場合はせいぜい 100rpm程度ですけど。
フォーレックスでの試作は全く無駄だったわけではありません。あれをやったからこそ、特注の際の寸法がきっちり決まったわけなので。何度も特注したらお金がかかってしかたがない。
XBee無線ユニットを取り付けた状態。プログラムのデバッグや走行の調整、ファームウェアの書き込みなどもこの状態で行えます。これも前回と同様。
動画 UPしました。よく見ると走行直前にピクピク動いていますが、これはモーターの磁石の位置を確認する為、弱くステータコイルを励磁してその動きを加速度センサーで見ています。また、衝突や持ち上げられたこと、床に置かれたことも同センサーで判断しています。
とか書くと派手ですが、キャスターのビーズ玉の所に自転車のタイヤ用の虫ゴムを切って入れただけです。これで路面の凸凹による衝撃を吸収……するはず。平らな所を走っているので加速度センサーのZ軸(上下方向)の値はほとんど変化しないように思えますが、実際は意外に大きく変動します。±0.5Gくらい。これは車体が軽いせいもあると思いますが。
キャスターが路面を転がる際の音が本体に伝わりにくくなったので走行音が静かになったような気がします。元々モーター自体がホイールであまり高速回転せず、「ゴロゴロ」と転がる音がするだけなので動作音は静かです。PWMの 20kHzの音が聴こえるという人は別かもしれませんが。
加速度センサ MMA8451Qはわずか 3mm角でいわゆる「足」も無い QFNパッケージです。普通考えて手ハンダできないのですが、それでも今回は手ハンダ用のパターンを基板に作り、自分でハンダづけしてみました。
ちなみに Strawberry Linuxで MMA8451Qのモジュールを販売しています。無茶をせずにこちらを使うのもよろしいでしょう。
裏側のパッドに少量のハンダを盛っておきます。作業しやすいように固定する為に机に両面テープを貼り、そこに MMA8451Qを貼り付けて作業します。
基板パターンは外形よりも四方に細長くパターンを引き出してあります。ここにすずめっき線を這わせ、全てのパターンを同時に温めるようにします。
作業の前に余計な所にハンダがつかないようにマスキングテープで覆っておきます。また、すずめっき線の固定もこのテープで。
ハンダを溶かしてすずめっき線と基板パターンをつなげった状態にしておき、そこに MMA8451Qを置きます。と、文章で書くと簡単だなあ。実際はむちゃくちゃ小さいのでなかなか大変。ちなみに作業はルーペスタンドで拡大して見ながらやっています。
チップの向きもわかりにくいのでホワイトマーカーで印をつけておいた方がいいですね。
はんだづけが終わったらすずめっき線を外し、余分なハンダを吸い取り線で除去します。で、すずめっき線を取る時に MMA8451Qもずれがちなので何度かやりなおすことになるでしょう。
というわけでそれらしくついたのですが、パッドが横からは全く見えない為、本当についているのか、ブリッジしていないのか見ただけではわかりません。結局は動作させてみないと。