2013年8月3日土曜日

量産型スピナー(赤外線コントロール2輪ラジコン)_“電装部”

量産型スピナー(赤外線コントロール2輪ラジコン)_“電装部”


<電装部解説>

●部品一覧

 

 

 




 ● 回路設計・パターン設計

回路図データ、パターンデータは、回路図CADのEAGLEで作成しました。
モータドライバに供給するモータ用電源は、mbedからのPWMで変調を行い、モータ回転数(速度)を可変できるようにしています。
今回の回路では、モータからのノイズが、赤外線リモコン受信モジュールや、mbedの赤外線リモコン受信モジュール信号端子に入り、受信が出来なくなることが頻繁に起こりました。この対策として、モータ端子とGND間に0.1[uF]のコンデンサ(ノイズキャンセル)を入れています。もしこのコンデンサだけでは、誤動作が収まらない場合は、プリント基板上のC1,C5,C6,C7にチップコンデンサ(2.4[uF])を取り付けてください。モータに取り付けるコンデンサ、基板に取り付けるコンデンサの何れも、容量値は0.1[uF]以上あればよいです。
 回路図1



 


 回路図2






 回路図3




 パターン図

パターンデータから、ガーバーデータを作成します。
EAGLEで作成した回路図データ、パターンデータとガーバーデータ、ドリルデータと次で説明するWINSTAR PCB for iModelaのデータは、次のアドレスからダウンロードできます。(http://p.tl/v4zy)

● iModela切削用データ設計とプリント基板作成

WINSTAR PCB for iModela でガーバーデータから、iModlaでの切削用データを作成します。


 

 WINSTAR PCB for iModela 画面

切削データを確認して、切削できず短絡している箇所が無いかなどを確認します。
問題なければ、iModelaで基板を切削します。今回は切削時間を節約するため、不要銅箔の剥離は行いませんでした。この不要銅箔部分をGNDに接続すれば、ベタアースとして利用できます。

使用した切削工具は、
エンドミル90°:パターンカット
ドリル0.8mm :穴あけ
ルータ1.0mm :外形カット
です。

回路図CADのEAGLEの扱い方、WINSTAR PCB for iModela、基板切削の方法については、解説本「コンパクト3D切削マシンで作るMyプリント基板」(http://p.tl/VT-M)や、エレキジャックweb(http://p.tl/N-gT)を参照してください。






プリント基板完成(試作時のプリント基板なので一部パターンが違います)


● 部品実装と動作確認

半田付けする部分にフラックスを塗布しておくと、スムーズに作業が出来ます。
今回は不要銅箔部分を剥離しなかったので、半田ブリッジする可能性があります。このため、半田付けする毎に、周りのパターンとショートしていないか確認していくと良いです。



 半田付け完了(コネクタは手持ち部品の関係で2列型になっています)

モータのリード線の接続は3Pinピンヘッダで行います。
ピンヘッダのL字部分が基板の外側に向くようにコネクタに差すようにすると、半田付けしたリード線の取り回しが楽になり、逆差しの可能性もなくなります。
ピンヘッダの真ん中がGNDで、これは、モータの筐体に半田付けします。両側の2Pinはモータ端子に接続しますが、半田付けの具合でモータの回転方向が変わります。この調整は動かしてみてPropoの操作と一致するように半田付けしなおします。

 
 



モータへの3Pinピンヘッダ半田付け

電池ボックスへの2Pinピンヘッダの半田付も、ピンヘッダのL字部分が基板の外側に向くようにします。基板上のコネクタのmbed側がマイナス、SW側がプラスになります。これに合わせて、ピンヘッダに半田付けします。




 

電池ボックスのリード線へのピンヘッダの半田付け

● モータノイズ対策

モータから出るノイズによって、赤外線リモコン受信モジュールや、mbedが影響を受けて、モータが動作している間は、Propoの赤外線信号を受付できなくなりました。この対策として、モータの端子とモータ筐体(GND)間に0.1[uF]のコンデンサを接続します。これでも誤動作する場合は、モータ端子間に0.1[uF]のコンデンサを入れたり、基板上に用意した表面実装用パターンへのコンデンサの追加を行います。

 
 


モータ端子へのノイズキャンセル用コンデンサの半田付け


 ● 車台への基板の固定

車台の四隅に立てた長さ50[mm]のネジに基板を差し込みます。


基板は、ナットで基板をはさみこみ固定します。走行時の振動でナットが緩むので、ナットは2個重ねて締め付けます。

 

ナットでの基板の固定部分



 ●車軸にCDの車輪を取り付けて完成

 車軸に、CDで作った車輪を差し込んで完成です。



CD車輪を取り付けて完成

2013年7月30日火曜日

量産型スピナー(赤外線コントロール2輪ラジコン)_機構部

量産型スピナー(赤外線コントロール2輪ラジコン)_機構部


<機構部解説>


1.部品一覧



 <加工>


●車台

車台を中心として、ギヤボックス、電池ボックスと基板を固定します。加工にはiModelaを使用するので、iModelaの加工範囲(86×55[mm])に収まる大きさで設計します。
加工は、車台外形の切り出しと、ネジ穴開けになります。ネジはM3を使用するため、ネジを切る穴は下穴として、φ2.5[mm]、ねじ切りしない穴はφ3.0[mm]で穴あけします。



車台設計図

車台設計図から、iModela Creatorに設定していきます。iModela Ceatorでは、左下を原点として設定していくので、上記の車台設計図もそれに合わせて原点を左下に設定しています。
iModela Creator窓の左下にある、“サイズ”は、iModelaの最大加工範囲のW=86[mm]、
L=55[mm]に設定します。厚みはT=3.0[mm]とします。(使用するアクリル板はW=90[mm]、L=60[mm]と一回り大きく切り出したものを使用します)

iModela Creatorのデータはこちら: http://p.tl/p4Qx



iModela Creatorでの切削データの設定

データ設定が完了したら切削に入ります。

切削工具は、ルータの刃物径1.0[mm]で、刃物長が3.0[mm]以上(アクリルの厚みを切り抜くのに必要な長さ)のものを使用します。今回の加工では、iModelaのスピンドルシャフトを交換して、シャンク径(切削工具の固定部分の直径)が3.175[mm]のものを使っています。(シャンク径3.175[mm]の切削工具はプリント基板の切削に使用されています。私の場合は主にプリント基板加工に使用しているため、このスピンドルシャフトに合う工具を使用しています)

iModela Creatorで、切削工具の設定と切削条件の設定を行います。この設定は記憶されないようで、ファイルを読み込む毎に設定し直す必要があります。


iModela Creatorでの切削条件の設定

これらの設定を行ったら、iModelaにアクリル板を固定して切削します。
切削結果が次の写真です。写真で赤線で囲んだ部分が、設計図にある穴です。その他の穴は、試作検討のために開けた穴で不要です。


車台切削完了

ギヤボックス固定には、さら子ネジを使用します。ネジの皿部分がアクリル板にはまるように、φ6.0[mm]のドリルで深さ2.0[mm]程度ザグリを入れておきます。車台の片方にギヤボックスを固定して、反対面に電池ボックスを固定します。この時、電池ボックスの下に、ギヤボックスを固定するネジの頭が来るので、ネジの頭が飛び出ないことを確認しておきます。

● ギヤボックスの組立て

ギヤボックスの取扱説明書にしたがって組み立てます。ギヤ比は114.7:1を選択します。ギヤ比によって、動きに変化が出ます。これは車軸の回転速度とトルクの関係が変わるためです。(ギヤ比を変えてみて動作の違いを確かめてみると色々学べると思います)

●車輪の作成

車輪はCDを使用します。車軸との接続はプーリーで行い、CDとプーリーの中心が合うように固定します。CDのレーベル面に予めプリンタで印刷しておくと良いでしょう。

 CDレーベル面への印刷

CDとプーリーは、プーリーに付属している軸径2.0[mm]のネジとナットを使い固定します。このネジ穴を開ける必要があります。プーリーは直径50[mm]プーリーを使います。プーリーの軸に差し込むブッシュは、S(シングルブッシュ)を使用します。
CDへ開けるネジ穴の位置は、次の設計図の通りです。この穴あけ加工は手作業で行いました。(iModelaにはCDが大きすぎて加工できません)



 CD加工設計図


CDとプーリーをネジ固定している様子が次の写真になります。ネジの軸が長いので、車軸へ組み付けたときに、車台に引っかからないところで切断します。


CDとプーリーのネジ止め

 ● 車台へのギヤボックスと電池ボックスの組み付け

車台を中心にして、片方にギヤボックス、反対側に電池ボックスをネジ止めします。



電池ボックス-車台-ギヤボックス の位置関係(側面)



電池ボックス-車台-ギヤボックス の位置関係(底面)

まず、さら小ねじの頭を埋め込むためのザグリをいれた面から、ネジを通して、車台を抱き込むようにギヤボックスをナットで固定します。(下の写真ではすでに電池ボックスが固定されています)





次に、車台の反対側に電池ボックス側から車台にネジ止めします。電池ボックスのネジ穴の位置では、ネジ頭が電池ボックスの側面に当たるため、この部分を削り落としておきます。また、皿小ねじを使うため、φ6.0[mm]のドリルで、電池ボックスのネジ穴部分にザグリを入れておきます。これは、電池を差し込んだときに、ネジ頭が接触しないようにするためです。





次に車台の4隅に、長さ50[mm]のネジを電池ボックス側から差し込みます。このネジはギヤボックス側にプリント基板を固定するために使用します。
プリント基板は、ネジの途中で固定するため、ナット2個を使ってプリント基板を固定する位置を決められるようにします。



これで機構部の組立ては完了です。












2013年7月28日日曜日

量産型スピナー(赤外線コントロール2輪ラジコン)_概要

量産型スピナー(赤外線コントロール2輪ラジコン)_概要

<概要>

CDを車輪にした2輪ラジコンです。

(youtubeリンク:http://p.tl/I_Av)





上面



前方



側面

IRCヘリコプター”SWIFT”のプロポを流用し、mbedで赤外線データ受信とモータの制御を行っています。
Propoを流用するためには、送信されてくる信号の解析が必要です。これは、このブログの過去の記事で解説しています。mbedのライブラリにこのPropoからのデータ受信と解析を行うライブラリを作成してあります。(http://p.tl/uvkM)



IRC Helicopter と Propo

車台には3[mm]厚のアクリル板を使用しています。加工にはiModelaと設計ツールのiModela Creatorを使用してます。外形の切り出しと穴あけ加工を行っています。車台には、ギヤボックスと電池ボックスをそれぞれ2本のネジで止めています。このネジ穴開けの精度が悪いと、ネジ止めできなくなりますが、iModelaで0.1[mm]精度で加工できるので、手作業では望めない精度での加工が可能です。
ネジのタップ立ては手作業で行います。このため、下穴をiModelaで開け、タッピングを行います。
このほかに、車台の4隅に穴を開けています。ここには、長さ50[mm]のネジを固定して、プリント基板を保持するようにしています。
写真にはそれ以外の穴が開いていますが、試作時に車台のバランス保持用に開けたもので、最終的には使用しません(穴あけする必要はありません)


車台

 プリント基板もiModelaで加工します。回路図、基板レイアウトは回路図CADのEAGLEで行い、iModela切削用データ作成にWINSTAR PCB for iModelaを使用しています。基板加工の方法については書籍(http://p.tl/VT-M)を参照してください。




プリント基板(半田面)


 mbedで、Propoからの赤外線受信・解析とモータの制御を行っています。
iModelaの加工範囲はキャッシュカードサイズ(86×55[mm])でmbedがギリギリ搭載できるサイズになります。



プリント基板(部品実装済)

2013年6月29日土曜日

赤外線リモコン送信データの解析


<概要>

mbedのライブラリに、赤外線リモコンからのデータを解析するライブラリ(RremoteIR)があります。このライブラリは、一般的なフォーマットである、“NECフォーマット”、“SONYフォーマット”、“AEHAフォーマット”に対応しています。

これ以外のフォーマットの場合は、波形を解析して、プログラムを作る必要があります。
今回、波形のHi,Lo時間を1[us]単位で測定して出力する処理を”RemoteIR”ライブラリに追加して、”Propo_RemotoIR”ライブラリとして公開しました。
この解析方法を説明します。


<サンプルプログラムで動作確認>


mbedのWebから”irRawDataDisplay”のProgramをダウンロードします。(図1)
http://mbed.org/users/suupen/code/irRawDataDisplay/




図1 irRawDataDisplay  Program Web

このプログラムに入っている、”Propo_RemotoIR”ライブラリフォルダの”ReceiverIR.h”の23行目の”IR_RAW_DATA_ANALYSIS”マクロ定義を有効にして、コンパイルをしてください。このマクロ定義で条件コンパイルして、赤外線データの波形測定処理を有効にします。(図2)



図2 Propo_RemotoIRライブラリ - ReceiverIR.h 変更箇所




 main.cpp 側では、USB-COMの通信速度の設定と、赤外線受信モジュールのポート設定がありますが、main側ではそれ以外の処理はありません。赤外線データの解析とパソコンへの送信処理はすべて、ReceiverIR.cpp/.h で行っています。


mbed側での赤外線受信モジュールの接続方法は図3のようにします。


図3 mbedの接続図

パソコンには、ターミナルソフト(TeraTarmなど)を起動して、COM設定を図4のようにします。


図4 パソコンのターミナルソフトのCOM通信設定


mbedとパソコンとは、USBで接続して、パソコン側はUSB-COMとして認識させます。

赤外線データ(IRC Helicopter “SWIFT”のPropo)の受信データを表示させたところが、図5になります。


図5 赤外線通信波形の解析表示


この解析結果から、通信波形のHi,Loの時間を確認して、信号先頭のリーダーや、データビットの時間幅を推定します。


2013年6月28日金曜日

IRC Helicopter “HonyBee”プロポ送信データ受信mbed用Test Program


<概要>

HonyBeeのプロポから送信される赤外線データを受信、解析するmbed用プログラムを作りました。

<送信データの解析>

こちらのWebにPropoからの送信データの解析記事があります。
http://www.oidenansho.com/pic/26kpic/26k1010tx2_honey/26k1010tx2_honey.htm
送信波形自体は”SONY”フォーマットで1フレーム20bitのデータになります。
(このWebでは、スタートビットを4bitとしていますが、通信フォーマット仕様としては、最初の1bitはヘッダとなり、データは20bitとなります)

通信フォーマットについては、こちらに解説があります。
http://elm-chan.org/docs/ir_format.html


<テストプログラム>

テストプログラムは、下記のWebにおいてあります。
http://mbed.org/users/suupen/code/HonyBeePropoIR_TestProgram/



このプログラムでは、mbedの”p5”端子で赤外線受信信号を受け、解析したデータはUSBでパソコンに送信します。
パソコン側には予めUSBからのデータをCOMデータとして受信するドライバをインストールしておきます。

パソコンでの受信データの表示にはターミナルソフト(TeraTarmなど)を使い、
ボーレート:38400[bps]
データ長:8[bit]
パリティ:なし
ストップビット:1[bit]
の設定で使用します。




mbedの準備
赤外線受信モジュールとmbedは図1のように接続します。電源は、USBから供給します。



図1 mbedと赤外線モジュールの接続

mbedに、プログラム(SwiftPropoIR_TestProgram)をダウンロードします。

main.cpp のファイルヘッダの直下(28,29行目)のマクロ定義で、Propoデータ解析内容を変更することが出来ます。マクロは”PROPO_RAW_DATA”と、”HONYBEE_NORMALIZE”の2つになります。

<プログラムの実行>

1. Propoデータの機能毎のデータ出力
“PROPO_RAW_DATA”、”HONYBEE_NORMALIZE”の両方をコメントアウトしてコンパイルします。(図2)


図2 マクロの設定


Propoからの送信データをmbedで解析して、PC(Treatram)で表示した結果が図3になります。

 図3 TreaTramでの受信データ表示


2. Propoデータの出力を正規化

“PROPO_RAW_DATA”はコメントアウト。
“HONYBEE_NORMALIZE”は有効。
としてコンパイルします。(図4)。データの表示結果が図5になります。



図4 コンパイル条件



図5 データ表示結果




3. Propoデータの生データ
“PROPO_RAW_DATA”を有効、”HONYBEE_NORMALIZE”はコメントアウトしてコンパイルします。(図6)。データの表示結果が図7になります。



図6 コンパイル条件



図7 データ表示結果






<ライブラリについて>

赤外線データ受信ライブラリ
”RemoteIR”ライブラリ(http://mbed.org/users/shintamainjp/notebook/remote_ir_ja/)
を改造した”Propo_RemotoIR”(http://mbed.org/users/suupen/code/Propo_RemotoIR/)
を使用していますが、元のライブラリ”RemoteIR”でも使用できます。
これは、HonyBeeの送信データが”SONY”フォーマットで、”RemoteIR”がこのフォーマットに対応しているためです。
改造した”Propo_RemotoIR”はSWIFTのPropoが送信するデータ受信のための改造と、未知の通信波形を解析するための仕組みも組み込みしてあります。

 <受信データ解析ライブラリ>

“CodecIRPropoHonybee”ライブラリを新作しました。”Codec”となっていますが、現状は受信解析(Decode)のみの対応です。


2013年6月26日水曜日

IRC Helicopter “SWIFT”プロポ送信データ受信mbed用Test Program

IRC Helicopter “SWIFT”プロポ送信データ受信mbed用Test Program


<概要>

SWIFTのプロポから送信される赤外線データを受信、解析するmbed用プログラムを作りました。

<テストプログラム>

テストプログラムは、下記のWebにおいてあります。
http://mbed.org/users/suupen/code/SwiftPropoIR_TestProgram/




このプログラムでは、mbedの”p5”端子で赤外線受信信号を受け、解析したデータはUSBでパソコンに送信します。
パソコン側には予めUSBからのデータをCOMデータとして受信するドライバをインストールしておきます。

パソコンでの受信データの表示にはターミナルソフト(TeraTarmなど)を使い、
ボーレート:38400[bps]
データ長:8[bit]
パリティ:なし
ストップビット:1[bit]
の設定で使用します。






<mbedの準備>

赤外線受信モジュールとmbedは図1のように接続します。電源は、USBから供給します。



図1 mbedと赤外線モジュールの接続

mbedに、プログラム(SwiftPropoIR_TestProgram)をダウンロードします。

<プログラムの実行>

main.cpp のファイルヘッダの直下(28,29行目)のマクロ定義で、Propoデータ解析内容を変更することが出来ます。マクロは”PROPO_RAW_DATA”と、”SWIFT_NORMALIZE”の2つになります。

1. Propoデータの機能毎のデータ出力

“PROPO_RAW_DATA”、”SWIFT_NORMALIZE”の両方をコメントアウトしてコンパイルします。(図2)



図2 マクロの設定

Propoからの送信データをmbedで解析して、PC(Treatram)で表示した結果が図3になります。



図3 TreaTramでの受信データ表示


2. Propoデータの出力を正規化
“PROPO_RAW_DATA”はコメントアウト。
“SWIFT_NORMALIZE”は有効。
としてコンパイルします。(図4)。データの表示結果が図5になります。



図4 コンパイル条件




図5 データ表示結果




3. Propoデータの生データ

“PROPO_RAW_DATA”を有効、”SWIFT_NORMALIZE”はコメントアウトしてコンパイルします。(図6)。データの表示結果が図7になります。



図6 コンパイル条件



図7 データ表示結果





<ライブラリについて>

赤外線データ受信ライブラリ
”RemoteIR”ライブラリ(http://mbed.org/users/shintamainjp/notebook/remote_ir_ja/)
を改造した”Propo_RemotoIR”(http://mbed.org/users/suupen/code/Propo_RemotoIR/)
を使用します。
これは、SWIFTのPropoが送信する赤外線通信波形が一般的なものではなく”RemoteIR”ライブラリでは受信解析できなかったためです。今回の改造に合わせて、未知の通信波形を解析するための仕組みも組み込みました。

受信データ解析ライブラリ
“CodecIRPropoSwift”ライブラリを新作しました。”Codec”となっていますが、現状は受信解析(Decode)のみの対応です。


2013年6月16日日曜日

IRC ヘリ “SWIFT”のPropoデータ解析

IRC ヘリ “SWIFT”のPropoデータ解析


<概要>

東京マルイ のIRCヘリ“SWIFT”のプロポ信号を解析しました
http://www.tokyo-marui.co.jp/products/rcirc/helicopter/6001


<通信フォーマット>

(受信回路側での測定)
・ 単位時間:T=350[us]
・ リータ:10T+3T
・ データ:32ビット固定長
・ データ:1T+2T(ビット0),  2T+1T(ビット1)
・ ストップビット:1T(Low Level)
・ 送信順序:LSB fast
・ 送信間隔:60[ms], 160[ms]

<プロポの動作について>

プロポの左側ステックを操作している間は赤外線信号を出力する。
送信間隔は、送信データに変化が無い場合は160[ms]、ある場合は60[ms]となる。




図1-1 赤外線通信のフレームとタイミング構成




図1-2 赤外線通信 データ構成




図1-3 データ割付




図1-4 パリティ計算

パリティ計算では、DATA0~DATA2の下位6bitが対象となっている(上位2bitは無視)