2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

« 2010年11月 | トップページ | 2011年1月 »

2010年12月

2010年12月26日 (日)

アクエストークモジュールを作る(その2-ハンダ付け)

花岡ちゃんのウィークエンド

今回はちょっと寄り道をして、面実装ICのハンダ付けの方法です。

僕が仕事を始めた1980年ころには、ベークの基板にピッチ0.8mmくらいのQFPを手ハンダで付けていました。
基板のラインに行くと、熟練したおばちゃんが、ハンダごてをICの外周をなぞるように動かして、あっというまに実装するさまに感心しましたが、実際やってみると意外と簡単で、手が足りないときにはラインに入ったりしたものです。

そんな経験があれば、ピッチの狭い面実装のICも怖くないのですが、学生さんや、そういった仕事に従事したことの無い人には難しい技術に思えるかも知れません。ここでは、比較的簡単なハンダ付け方法を説明したいと思います。

■必要な道具
写真のような道具が必要です。

Dscn1402  Dscn1403

フラックスは大変に重要です。ドロドロではなく、さらさらしたものを選びます。写真のものはサンハヤトのHB-20Fです。ふたの内側にハケがついていて使い易いです。
ハンダ吸い取り線は細めのものを用意します。ハンダブリッジの修正に使います。ハンダは0.6Φくらいの細いもの、鉛フリーの時代ですが、アマチュアの工作には鉛入りのハンダをお薦めします。
ハンダごてはコテ先の尖っているものが都合が良いです。もちろん、ハンダの乗りが良いものが必要です。コテ先は消耗品ですから、この機会に取り替えるのもよいでしょう。
それから、僕のような年寄りには拡大鏡が必須です。ハンダ付けの状態やブリッジを確認する必要があるからです。

■ハンダ付けの手順
面実装ICの基板(変換基板など)へのハンダ付けは次の手順で行います。

1・ICを基板に乗せ、1番ピンをハンダ付け
2・すべてのピンがランドに乗るよう調整しながら、対角のピンをハンダ付け
3・残りの四隅のピンをハンダ付け
4・フラックスを塗って一辺ずつすべてのピンをハンダ付け
5・目視でハンダ不良をチェック

最初にハンダ付けするピンは、なるべく1番ピンにします。ICのパッケージにも基板にも、1番ピンにマークがある場合が多いので、取付け方向違いの防止になります。

■ハンダ付けのテクニック
まずはフラックスです。フラックスにはハンダをランドやピンの金属部になじみ易くし、ハンダブリッジが起き難くする働きがあります。四隅を固定後、すべてのピンをハンダ付けするときには、フラックスはこのようにランドとピンにたっぷりと塗ります。

Photo

最初に1ピンをハンダ付けする時は、ランド部分にちょんと塗り付けます。

次はコテへのハンダの乗せ方です。
写真のように、ハンダをちょっとコテ先に押し付け、コテ先が銀色になる程度にハンダを乗せます。乗せすぎるとブリッジします。最初は「少ないかな」と思う程度で試してください。たっぷりついてしまったら、コテ先クリーナーで軽く落とします。

Photo_2

最後にピンのハンダ付け作業です。
フラックスを塗ったあと、写真のようにランド部分からピンに向けてコテ先で軽くなぞります。これは最初にコテ先が触れた部分に、ハンダが沢山ついてブリッジする可能性が高いので、ブリッジしても修正し易い部分からコテを当てるためです。ICの足の奥の方でブリッジすると、修正は困難です。

Photo_3

ランドの金メッキがハンダで覆われるように気を配ります。コテ先はランドからピンの接地部分まで滑らせて、ハンダをランドとピンの接触部の隙間に流しこみます。ランドだけでなく、ピンにもコテ先を当てて加熱するようにしてください。
なるべく、一ピンずつ作業しますが、隣のピンにコテ先が触れても、それほど問題ありません。フラックスが効いているので、ブリッジはし難いと思います。
作業中、ハンダのノリが悪いと感じたら、フラックスを塗り直します。

ハンダ付けが終わったら、拡大鏡でハンダ部分をチェックします。ピンのところでランドの金メッキが見えている場合はハンダ不足の可能性がありますから、そのピンの周辺にフラックスを塗って、ハンダをし直します。

ハンダブリッジを発見したら、吸い取り線でハンダを取ります。このときランドをいためないよう気をつけます。小さなブリッジなら、フラックスを塗った後でクリーニングしたコテ先を当てると修正できる時があります。

仕上げに無水アルコールを付けた綿棒で軽くピン周辺を拭きます。余剰フラックスのカスを取って見た目を良くするためなので、マストの作業と言うわけではないです。
HB-20Fフラックスは無洗浄タイプなので、そのままでも腐食などの問題はありません。

Dscn1420

こんなところでしょうか。慣れると写真のモノなら1~2分くらいで作業できます。
これで、高価な評価キットを買わなくとも、100ピンくらいまでのICなら変換基板で実装することが出来るようになります。
最初のうちは、写真のモータードライバのように、16ピンくらいのモノで経験を積むのが良いかと思います。

次回は、スピーチボードの動作の模様や、気をつけることを書きます。


2010年12月25日 (土)

アクエストークモジュールを作る(その1)

花岡ちゃんのウィークエンド

今回はしゃべる機械を作ってみます。ホストからシリアルで日本語のテキストを送信すると、それを読み上げるTTS(Text To Speech)方式です。主要な機能を集約したアクトブレインのMICRO TALKというデバイスがあるので今回はそれを利用します。

このデバイスはおなじみのアクエストのアクエストークを組み込んだものです。基本的にはひらがなの文字列から音声に変換するソフトウェアで、ネットタンサーにも使われています。シリアルでコマンドを送れば発声します。したがってほとんど周辺回路が要りません。

MACRO TALKは千石電商で2.5K円で購入しました。3.3V動作、5MHzの水晶を接続するだけで動作します。とても簡単ですが、問題はパッケージです。0.5mmピッチのQFP100pinですからねえ。ハンダ付けはちょっと大変です。今回は同じく千石でダイセン電子の変換基板を購入、コレに載せることにします。

013

水晶はラジオセンター2階の菊池無線で4.9152MHzのモノを360円で購入。丸善もトヨムラもツクモもなくなってしまった現在、がんばって電波もの部品を置いている貴重な店の一つです。ぴったり5MHzではないですが1.7%くらいの誤差なので問題はなさそうです。この周波数の水晶は昔から結構出回っているんですが、用途がイマイチわかりません。映像関係かなんかでしょうか?  5Mの水晶は意外と入手困難です。無線関係ではあまり使わない周波数ですしね。どうしても欲しいならdigi-keyにたよるのがよさそうです。

回路図です。最低限の構成ですが、これでとりあえず動作しています。

「MICROTALK.pdf」をダウンロード

手ハンダのコツ、製作のポイントなどは次回に。

2010年12月20日 (月)

シリアルJPEGカメラをテストする

花岡ちゃんのウィークエンド:

この週末は、シリアル接続のJPEGカメラをテストします。
CMOSカメラモジュールにJPEG圧縮機能を持たせたもので、シリアルポートで画像を取得できるのが最大の特徴です。
画像の転送には数秒から数十秒かかるので動画は無理ですが、ワンチップマイコンに写真撮影能力を持たせるにはもってこいのデバイスです。

今回はこのカメラを使いました。国内ではスイッチサイエンス以外にストロベリーリナックスでも入手できます。本当は4D Systemsのこのカメラがいいなと思ったのですが、いつものここで通販すると、送料込みで10K円くらいになってしまうので今回はパスです。

4D systemsのカメラはJPEGの他にRGBのデータも読め、また80X60という超低解像度モードもあるので、色判別や明るさ検出などのちょっとした画像認識にも、ワンチップマイコンで挑戦できるのです。
まあ、またの機会にということにしておきます。

閑話休題。購入したカメラのマニュアルは、大変あっさりしたものです。確かにカンタンですが、使い方にはちょっとコツが必要でした。この辺をまとめてみたいと思います。

写真のようにレベルコンバータを接続し、パソコンに接続してテストします。自作のコンバータは単三電池を内蔵し、5V、3.3V、それぞれのロジックレベルに切り替えて使えるようになっています。外部への電源供給機能もあるので、このようなシリアル接続のモジュールのテストには便利です。

Dscn1291_2

画像を確認するだけなら専用ソフトでカンタンですが、コマンドの流れやタイミングがわからないので、テスト用のソフトをC#で作って確認しました。こんな感じのソフトです。
(参考用にVC#のプロジェクトを公開します)
「JPEGcamTest.zip」をダウンロード

Photo

カメラの画像は白っぽい感じです。レンズがやや広角のせいか、画面外周部にややゆがみがあります。ドアカメラほどではないですが、視野は広いようです。

さて、マニュアルには画像のダウンロードが、あっさりしたフローチャートで説明してありますが、ちょっとわかり難いですね。試作ソフトで確認した結果が下記の詳細フローです。(クリックで拡大)

Jpeg

写真撮影のコマンドを送ると、カメラ内部のメモリにJPEG変換されたイメージが展開されます。
ダウンロードコマンドでは、このメモリのどこからどこまでをダウンロードするかを、先頭アドレスとチャンクサイズで指示します。試作ソフトではチャンクサイズを1Kバイトにしています。つまり、12Kバイトほどの画像ファイル(320X240)を、1Kバイトずつに分けて何回もダウンロードしているわけです。
JPEGファイルのおしまいを示すデリミタ、0xFF 0xD9が連続して読み込まれたなら、それを最終チャンクとしてダウンロードを終了します。

ここで重要なのが、スタートアドレス、チャンクサイズ、それぞれが8の倍数でなければならないと言うことです。

パソコンのようにメモリがたっぷりあるホストなら、画像のファイルサイズはわかっているので、先頭アドレスを0にしてファイルサイズ分一気にダウンロードしたくなりますが、ファイルサイズが8の倍数とは限らないので、1回はうまく行きますが、2回目以降が具合悪いです。

ファイルサイズを8の倍数に丸めてやれば、一気にダウンロードもうまく行くのかも知れませんね。

もっとも、普通はメモリの少ないワンチップマイコンに接続して、SDカードに画像を記録したり、ネットに送信したりするわけですから、時間がかかってもちょっとずつダウンロードするのが主流になるのでしょう。

それから、コマンドとコマンドの間にはフローにあるくらいの時間間隔を置くほうが安全なようです。カメラの問題か試作ソフトの問題かはハッキリわかりませんが、これがないと調子が悪いですね。

また、終了コマンドを送らずに、再度撮影コマンドを送ると、撮影されず、前の画像のままになります。これも要注意です。

このカメラと前回試したXbeeを使うと、ロボタみたいなものがカンタンに作れそうですね。

2010年12月13日 (月)

秋月のXBeeを使ってみる

先日秋月に寄ったらXBeeを見つけました。
今までは特に興味がなかったのですが、売ってるなら買ってみるか!ということで、衝動買いです。
カンタンに使い勝手を見てみようと言うわけですが、これが意外と大変だったのでレポートします。

テストの内容は「1対1でのデータ通信」です。
このページを参考にさせていただいて、トランスペアレントモードに設定し、まずは簡単なループバックのテストをします。なお、参考にさせていただいたサイトのトップはここです。ユニークなオリジナルキットには興味津々ですね。

実験を開始するには変換基板が必要です。スイッチサイエンスからPC接続用USBアダプタ変換基板を通販で購入しました。

設定は参考ページに従って行いますが、つまづいたことを列記します。

1・X-CTUは最新版を使うこと
秋月で売っているシリーズ2は最新型のようで、最新版でないとモデム情報の読み込みが出来ませんでした。それがわからず、接続を調べたりなんやらかんやらで時間を食ってしまいました。

2・MACアドレスは16進の文字列
通信のためには、End DeviceにCoodinatorになるXBeeのMACアドレスを設定します。
参考ページにはプロパティの設定について、次のような記述があります。

"DH Destination Address High   CoodinatorモジュールのMACアドレス(上位4バイト)
DL Destination Address Low  CoodinatorモジュールのMACアドレス(下位4バイト)"

4バイト=4文字と理解したため、???になってしまいました。MACアドレスはモジュール裏に8文字ずつ、2行にわたって16文字プリントしてあるからです。
しばらく考えて、MACアドレスは16進表記で、2文字で1バイトなのでは?と思い当たりました。
そこで、そのまま一行ずつ、上位・下位に設定してOKでした。

3・USBアダプタにリセットボタンは必ずつける
最初はそんなにリセットすることは無いだろうとタカをくくって、ジャンパー線を接続してリセットするつもりでしたが、実際にやってみると頻繁にリセットが必要で、リセットボタンを追加しました。

こんなとこですかねえ。

ということで設定は完了です。下記のように接続してループバックさせてみます。

Xbee1

で、結果は?
4・ルーブバックの調子が悪い
TeraTermからぽちぽちと入力すると、打ち込んだ文字が返ってきます。一見うまくいってるようですが… 数文字入力すると返ってこなくなります。あれれ?と思っていると、しばらくして思い出したように返ってきます。なんか変ですね。ここであきらめて英文マニュアルを読むことにします。

5・送信時CTSによるフロー制御が必要
マニュアルを読むと、送信時にフロー制御が必要とあります。まあ、当たり前ですが。
そこで、TeraTermでハードウェアフロー制御にしてみましたが、明らかな変化はありません。
これは、End Deviceの送信時にフロー制御をしてないためです。
そこでループバックをやめて、次の図のようにPICマイコンを使い、End DeviceからTeraTermに"A"を連続送信してみます。
CTSが0ならば送信し、1ならば0になるまで待つプログラムになっています。

Xbee2

これでうまく行きました。何バイトでも問題なく連続送信できます。115Kbpsで試しましたが、データのロストもありません。送ったバイト数だけ、キチンと受信しています。

それからマニュアルを見て気づいたことは…

6・XBeeは半二重通信
普段はあまり意識していませんが、普通のシリアルは全二重通信、つまり送りと受けのラインが独立しています。だからループバックで回線のテストが出来るわけです。
XBeeはトランシーバーなので送信と受信を同時には行いません。そのため、単純なループバック接続だと「何か」が起こり前述のような結果になるようです。
トランスペアレントモードで使うときには、このことを意識する必要があると思います。

2010年12月11日 (土)

ジャイロ制御のレーシングカーをテストする(その2)

■試作ハードとソフト

回路図はこれです↓
「gyrocar.pdf」をダウンロード
muRataのジャイロはいつもの秋月基板を使わず、ジャイロを裏返しに基板に接着して、細いスズメッキ線でハンダパッドから引き出しています。写真をご覧下さい。工夫すればもっと小さくできるでしょう。

Dscn1246

ジャイロの出力は直接PICのADに入力しています。3.3Vで10ビットだから分解能は3mVほど、ちょっと感度不足です。ゆっくりした回転は検出できません。
ジャイロ基板は前の投稿の写真のように、スポンジで基板に取付けています。

モーター駆動中ドライバが発熱しますが、なんとか許容範囲内かなというところです。


ccscのプロジェクトファイルはこれです↓
「gyrocar.zip」をダウンロード

ジャイロは200usのタイマー割り込み4回に1回、つまり800usごとに読み込まれ、直近8回の平均をジャイロの値としています。まあまあローパスフィルタとして働きますが… ホントーは数十us周期でサンプリングしたいところです。

シリアルポートからはジャイロコンパスの値を9600bpsで送信します。レベルコンバータを使ってPCに接続できます。

プログラムのシーケンスは下記のとおりです。

リセット後ジャイロが安定するまで1分ほど待つ
 ↓
ボタンを押すと1秒後シリアルポートから、ジャイロ基準値:ジャイロの読み出し値:コンパスの値が100ms周期で送信される。コンパスが0が現在の方向、右回りで減少、左回りで増加。負数は補数表現。
 ↓
もう一度ボタンを押すと3秒後に走行開始。
 ↓
ボタンを押す度に走行を繰り返す

■実験結果の分析
走行時に振動の少ないグリップ走行で、コース5周分くらいだと、ジャイロコンパスはまあまあ安定です。シリアルでジャイロの状態をモニタしてみても、あまりずれません。

後輪をプラのタイヤに変えてスピンするようにすると、コンパスがずれてくるようです。スピンの振動の影響がまず考えられます。スピンした時のように、駆動輪を軽く接地させながら空転させ、ジャイロの出力をシンクロで見るとこんな感じです。

Dscn1295

電圧軸500mV/div、時間軸10ms/divです。画面右端の波形が不連続になっているのは、そこでHOLDしたためなので、実際にそういう波形な訳ではありません。

これを見ると、100Hz-200mVPPくらいの結構大きなノイズが乗っているのがわかります。これはジャイロが機械的に振動するためと思われます。現在のプログラムは150Hzくらいのフィルタ特性なので、ちょっとキビシイかも知れません。かといって、フィルタのカットオフ周波数を落としてくると、計算量も増えるし、応答も遅くなるので、簡単にはいきませんね。

ジャイロから信号を引き出している固いケーブルを柔らかいものに変えたり、インシュレータを工夫して、車体の振動を伝えないことも重要です。ソフトやハードの工夫より、こっちの方が本命かも知れません。

それから、急速なスピンがジャイロの測定範囲を越えてないかの検討も必要でしょう。muRataのジャイロは測定範囲が300deg/sec、毎秒1回転くらいですから、あまり速い回転だと、測定値の直線性が崩れてきます。画像を見ると、もっと早そうなスピンもあります。

ともあれ、目隠し運転でも、この程度はいけることが確認できたのは収穫です。どんな模型の乗り物でも運転できる、ロボットドライバーなんかが出来たら面白いでしょう。

2010年12月 6日 (月)

ジャイロ制御のレーシングカーをテストする(その1)

大きな工作が進まないので…気分転換です。(こればっかり)

ねずーiRoverでは旋回の角度制御や、進行方向のロックにmuRataの圧電振動ジャイロを使ってみました。
差動ドライブのロボットにジャイロを使う利点は、工作の難しい高精度のホイールエンコーダが必要ないことと、スリップしても正確な旋回が出来ることです。
さらに、歩行ロボットやホーバークラフトなどの駆動輪のないものでも、旋回角度や直進補正の制御が出来ることも魅力でしょう。

今回は、おもちゃのラジコンカーにマイコンとジャイロを搭載し、インディのようなオーバルコースを自動操縦で走らせてみようと言うわけです。

アッカーマンステアリングとデフギアを備えた自動車は、タイヤがグリップしているならば、いずれかの車輪のオドメトリとステアリングの運動から、旋回角度を計測することが出来ます。ラリーカーのように悪路をぶっ飛ばすと、グリップが失われタイヤがスリップするので、この方法では旋回角度に誤差が出ます。もっとグリップが悪くなると、車は横滑りを始め、制御が失われてスピンします。

この状態で走行を続けるためには、スピンしたら逆ハンを切って車を立て直し、いわゆる「ドリフト走行」する、というのが「サーキットの狼」で仕入れた豆知識です。ジャイロをコンパスとして使えば進行すべき方向がわかるので、風吹裕矢(僕らの世代だと三船剛の方がわかり易いかも)ばりのドリフトを見せてくれるかも知れません。今回はこれにチャレンジします。

改造ベースのラジコンカーはここで購入したCCPのインサイトです。自宅で走行テストするにはちょっと大きめですが、安いので我慢します。ボディはブリスターできちんと内側から塗装されており、ホビーラジコンや往時のスロットレーシングを彷彿とさせます。さらに、この車はちゃんとFFで、前輪が駆動輪です。おもちゃなのでデフはありません。つまり、旋回時には駆動輪が必ずスリップします。

ステアリングはおもちゃのラジコンによく見られる、モーターとトルクリミッタを組み合わせたもので、モーターを回している間、ステアリングが左右いっぱいに切れ、オフにするとセンターに戻ります。遠心クラッチを使っているのではないでしょうか。プロポのように自由な角度にステアリングを切ることは出来ません。

改造後の写真がこれです。マイコンはおなじみPIC16F886、ジャイロはmuRataのこれです。スポンジで振動をアイソレートしています。

Dscn1282  Dscn1283

簡単なソフトを作って、オーバルコースを5周させた様子がこれです。直進補正と180度旋回の制御をジャイロで行っています。1回目はグリップタイヤでグリップ走行、それ以降は後輪をプラのタイヤに変えてドリフト走行をさせています。

グリップ走行では、割と正確にオーバルコースを走行します。ドリフトをさせるとコースが乱れますが、まあなんとか格好がついているのでないでしょうか。

次回は、テスト結果の分析とソースコードや回路の説明をします。


« 2010年11月 | トップページ | 2011年1月 »