2010/06/28

自作両面基板の簡易スルーホール加工


 基板を制作する際に、実装効率を上げるために両面基板を使うと、外注しない場合は両面のビアのスルーホール加工(表裏の配線をつなぐため、接続穴をメッキする)に相当する配線をしないといけない。
こういうときは在庫の抵抗の余分な足とか、工作でカットした足を再利用して、両面をつなぐ。(スルーホール用の専用器具があるが高価だ)
  頑張って穴を減らしても30~60個通す羽目になると、一つ一つ加工したらかなりめんどうだ。
ということで謎の量産体制をひとつ。

剣山あらわる
 おわかりいただけただろうか…
1

最低限の品質管理ということで、片側は飛び出す配線の高さを統一しておきたい。
 そこで1のような専用の治具を厚紙で作る。 スルーホールしたい穴さえ塞がなければ大丈夫。
2
 治具に基板を重ねることで、厚紙の厚さ分裏側に抵抗の足が飛び出す。

3
 剣山状態で抵抗をハンダ付け。 真ん中からハンダ付けしていきましょう

4
治具を外して、裏面にもハンダした所。あとは抵抗をニッパで除去する。
 一つ一つやっても良いけど、量産体制となるとそれぞれの工程を作ったほうが効率よく作業が進む。
 さすがに両面基板を一から作るのはめんどうだなあ… 外注したいです。

番外:こんな基板で宇宙に行ってよかったのかなー(お

2010/06/19

糸巻き戦車型ローバー


車輪型で一輪駆動のローバー型ロボットを試作。


 糸巻き戦車。 ぎりぎり作ったことある世代です。荒地を走破するロボットを構想していたところ、
ふとドラム缶を転がしたらまっすぐゴールまでたどり着くのでは、ということで、進路変更能力を犠牲にした直進ロボットを製作。

シンプルすぎた内部

 Rollyと糸巻き戦車を足して2で割った程度のフォルムを目指してます。

 誰得なメリット
・簡単すぎて壊れにくい。 軽量化できる。
・安い。 車体コストは1500円程度。(広口ビン、スポンジ、キャスター車輪)

 車体=車輪な、外骨格ロボットというべきでしょうか。 広口ビンの蓋を取り除いて、中に連続回転サーボとArduino,XBeeを内蔵。 今はとりあえず2軸ジャイロセンサをつけて、垂れ流しているところですが。 指令停止オプション付き。



 その走破性は、車輪のEVAスポンジが低すぎたというミスも補うほど。
車輪の凹凸をもっと深くするべきだった

坂にチャレンジ 泥だらけに・・・

 どうやって曲がるか?
 片側をアームで持ち上げれば、内輪差が生まれてターンします。(たぶん)
 あと、試してないけど逆進すると、棒が引っかかり、車体が寝返るので120度ほど方向転換出来ます。 そこらへんはこれから考えよう・・・

 棒はとても大事な部品です。 トルクを地面に効率良く伝えるために、できるだけ長いものがいいでしょう。

以上、誰得実験。

2010/06/17

宇宙SF初歩

 今回は趣向を変えて宇宙SFの紹介をしてみます。
もらいものと自給自足したもの

 SFと言っても色々な題材があるし、特に一部のハードSF(論理武装を売りにしたもの)などは、受け付けるかどうかは読む人次第なので、今回は宇宙に関連したものをちょっとだけ紹介してみます。


 宇宙開発・技術的小説

 アーサー・C・クラークの本全般は外せません。 通信衛星のアイデアの提唱者でもあり、宇宙と海洋という2つのユートピアを謡う作家でした。 小学校の頃、イルカの島というジュブナイル小説を読んで以来、訳された本は片っぱしから読んでいました。  タイムリーで代表的なものをいくつか。

 「楽園の泉」 ハヤカワ文庫   軌道エレベーターを設計した男の物語です。 (けっこう軌道エレベーターという単語がメジャーになっていて驚いたのですが、某アニメの影響というのを最近まで気づきませんでした)
 この小説のポイントは、あるものの完成に向けて奔走する主人公が思いがけず遭遇する自然、宇宙の神秘。状況を忘れ去るような美しさ。

 クラークのSFはそういった展開が多いですね。文章に込められまくった高度なギャグも含めて。

 ソーラーセイル実証機 イカロスの帆が展開に成功しましたが、 ソーラーセイルでいえば 「太陽からの風」 をおすすめします。 短編集に収められたものです。 月を目指したソーラーセイル競技の形で、話が進みます。
 次々とリタイアする光子帆船たち。 レースを勝ち進む主人公。 突如発生した太陽フレアで避難命令が出たとき、主人公が下した決断とは…。

 クラークの本は、オチで遥か未来か大宇宙スケールの視点が登場するので、テンションとしてはオチることなく、読者のifを刺激することで宇宙への興味のブレーキを外していくという副作用があります。 無限に思いを馳せ、深淵に見つめられし者、数知れず。 私も興味のブレーキをクラークに持ち逃げされたひとりです。 集めたブレーキを手にして、今頃もあの世で悪戯していることでしょう。

 宇宙規模の建築物の話はさておき、 ソーラーセイルがもはやSFでなくなったというのがすごいことです。  しかも自画像まで送ってきている。  はやぶさの物語などは、地に足の着いたサイエンス・ノンフィクションの素晴らしさを教えてくれます。

 「未来はすでにそこにある。 平等に分配されていないだけだ」 とサイバーパンクの火付け役 ウイリアム・ギブスンが言うように、SF的未来も既に社会に浸透していて、当たり前すぎて誰も気づかない状態なのかもしれません。

 話がずれましたが、他にも山ほど小説があります。 古典的な物を求めるなら、H.G.ウェルズの宇宙戦争。 18世紀後半の本とは思えないリアリティがあります。

 日本人作家のものも楽しめると思います。 最近読んだ「星の舞台からみてる」 は、エージェントネットワークと衛星間通信が作り出すネットワーク社会と宇宙開発が融合した物語で、自分としては身近で新鮮なテーマでした。 日本発の民間衛星サービスって殆ど無いので、超小型衛星群が軌道に乗ったら、この本の未来を現実化するのはあと少しのところにあると思われます。

無自覚に未来を消費するよりも、未来をつくる仕事に加わるほうが楽しいものです。

2010/06/15

ローバーあれこれ


まずは出オチから。 
 荒地を走るローバーを研究してはや数年 
2輪という要求仕様が進化圧力となり、いろいろな形が脳裏を過ぎっては断片化し、時々上記のように繋ぎ合わされる。 Rollyの無生物な外殻と、動きの生物感というアンヴィヴァレントさ、小惑星探査機の無重力バレエの優雅さ。両者の衝突事故である。
  何かに最適化されたロボットはカッコいい。


Arduinoのおかげでずいぶん応用までの時間が短縮された。 とても便利。 電子部品も充実してきているし、まさに電子工作の黄金時代がやってきている。

 アイデアに戻ると、
最近出てきたのが糸巻き戦車型ローバーという概念。

 つまるところ一輪ローバー。

 ※ロッカーボギー型とか、そういう真面目な方向とは違って、もともと円筒形のカーゴに収めるという制約条件で考えてます。 ロケットのカーゴベイとか。

 もちろん、糸車戦車とは、使い終わった糸車のボビンの軸に割り箸を使って輪ゴムを張り、ネジって力を貯め走らせるあれである。

GPS誘導ランバックに置いて、距離に対する進路変更操作はそんなに細かくなくて良いはずだ。
 であれば、2輪タイプの車輪は、それほど効率的とは言えないのではという仮説を立てた。

 その対抗案としてあるのが一輪ローバーである。
 キャタピラーと比べると、機構の単純さ、速度で優っていると思う。 モーターも一つで済む。
 接地面は底面全体で、片軸あるいは両軸にスタビライザーを添える。 二輪ローバーを半分にぶった切り、全体を車輪化したような感じだ。

一輪 VS 二輪

一輪でお忘れじゃないかといわれそうな、方向転換だが、いろいろ考えられる。
 ひとつは、片側のスタビライザーをブレーキに使い、特定方向に進路を変える方法
 もうひとつは、車輪径を変化させることでカーブすること。

 全方位カメラ
 片輪に半球ミラーを内蔵させ、全周囲撮影、などもしてみたい。
 パラシュート降下時は、全方位を撮影できる。
試験装置

JPEGカメラ+半球ミラー
 フレームそのものに組み込めば、いろいろ実験出来そう。
以上とりとめも無いネタでした。




2010/06/10

GPSminiMod Mod


GPS mini Mod は通信ピンがTx1つだけという割り切ったモジュール。

割り切ったモジュール、なのだ・・・。

(ホントはGPS microminiが欲しかったけど、間違えてしまった^^)
性能はEM-406aよりちょっと感度が劣るが、なかなか使い易い。 小ささと軽さを生かした方面に向いているだろう。

EM-406aと一緒に動作検証する中で、 一つ問題が上がった。
どうもXBee、ArduinoのNewSoftSerialを使った仮想シリアルと接続した場合に相性が発生。
NMEAセンテンスがところどころ欠落してしまう。

 ここでいろいろ調べた。 Sparkfunの回路図をみると、FETで1.8V-3Vのレベル変換をしている。
…3.3Vレベルではないようだ。  arduino を3.3V動作させている場合は ポートのHiレベルに達しているみたいなので、そこは問題ではないらしい。 (5Vでも問題は無かった)   回路を改造したけど結論は出ず。 NewSoftSerialで仮想COMポートを作ってArduinoとPCをつなぎ、ハードウェアポートに割り当てると問題は無かったため、この問題からはちょっと離れることにする。

使われているチップはmicro modular technologiesのMN1010だが、Orion ソフトウェアプロトコルを採用している。 SiRFとは違うチップセットである。  回路的には1PPS出力等もあるので、勿体無い。

(チップセットには他にも、RTC,SDカード回路が接続できる、ソフトウェアを改造すればそのままGPSロガーになる、とあった) 

 コマンドデータシートを見た感じ、かなり細かい設定変更が出来る。ロボット用途には、sleepコマンドがあるのがとても便利そうだ。 チップへのコマンド送信手段を塞がれているのは面白くないので、ヘッダピンを交換して、1PPSとRxピンを追加してみた。
GPS-miniMod's mod


 感度向上になればと、LNA等がつながる1.8Vレギュレータの出力段にデータシート通りの4.7μFを追加。

 改造前に検証していないのでなんともいえないけれど、窓辺だけでなく、2メートルほど室内に入っていても信号を得られるようになっていてびっくり。 電源を入れておくと、測位状態になった時点でLEDが点灯する。 だいぶ改善した気がする。

 写真では1PPSを配線していない。 チップの出力が1.8V系らしいので、利用するには外部にレベル変換回路が要るだろう。
 Rxはレベル変換していないので推奨出来ない。 3.3V程度のデバイスでのみ使用すること。
これでコマンド授受は正常に行えている。 

 ボーレート変換のほかに、Sleep,start,ホットスタート,センテンス変更 等ができる。
センテンスにはDTMも使える。 特定の測地系表示が可能になるようだ。

以上レシーバー改造でした。

2010/06/09

秋月USBオーディオモジュール のケース

 プラスチックのケースに入れて数年使っていた、秋月USBオーディオモジュールが熱暴走するようになったので、新しい基板とアルミケースで見栄えのあるアンプを製作してみた。
 薄型アルミケースを加工。 ヘッドホンジャックを装備。(排他利用じゃないけれど・・・)

秋月USBオーディオモジュール
 このモジュールは秋月電子で入手できる出物な基板。 安くなったときに3つ買っておいた。
Apple製の外付けアンプ基板らしい。USBで全てをまかなおうとしており、昇圧レギュレータの熱がハンパない。 それを取り外し、直接外部からアンプの電源をとることで多少は熱が収まる。 多少。
 タカチのプラスチックケースだとダメだったようだ。

D級ICは TRIPATHのデジタルアンプ TA1101Bが載っている。
いろんな方がこのモジュールで遊んでいる様子。 700円で買えるのに、音質は市販アンプと引けを取らない。以前製作したLA4902を使った10W級アンプよりも駆動力がある。
(なにせ林檎の設計。G4シリーズのロジックボードには全部この系列のD級アンプが載っている) 

どちらにせよ借りアパートで最大音量出して聞くことはないので、コストパフォーマンスは絶大だ。


  中身。 配線の適当さが垣間見えますね。 気にしない気にしない・・・
  USB端子の固定だけちょっと工夫を要した。 力がかかるので、基板にハンダ付け後、シャーシにネジ止めしてある。 今回は前回の反省を生かし、固定にホットボンドは一切使用していない。

このアンプに適役と思われるApple Pro Speakers
 自作スピーカーが乾燥中なため、いまは拾ってきたApple Pro Speakersをつなげている。  もしかして現役時代にはこの組み合わせだったのではないだろうか。
 音は申し分ない。  イヤホンジャックが排他利用じゃなかったところが少々残念で、このままだとどちらからも音が出てくる。そこまで改造するかどうかは未定。


GPS+Arduino FIO+SDカード


Arduino FIO と、GPS(EM-406A)、SDカードソケットを組み合わせたしろもの。
XBeeで無線化されている。


部品一覧。 シールドに該当する基板に GPSとMicroSDカードソケットを配線した。
GPSユニットのピンヘッダは内側についている。

シールドと分離したところ。 GPSの裏側は金属筐体なので、カプトンテープで絶縁済み。

書き込み器をセットしたところ。 残念ながら手持ちのXBeeがSeries2なため、今のところワイヤレスで書きこむことが出来ない。 

 このまま書き込むソフトによっては、GPSロガーにもなるけれど、
まだArduinoのソフトウェアシリアルにGPSをつなぎ、シリアル出力をXBee経由でPCに送る中継器としてしか使っていない…。 
 SDにGPS信号を書き込むタイミングとか。32バイトごとの書き込みとか。
 回路作成地獄からのリハビリとして、ソフトをお勉強中。
 無線のメリットとしては、ログ記録につかうPDAにXBeeをつないで、記録部として鞄に入れたまま散歩したり、別なロボットカーに乗っけてGPSの軌跡の評価をしたり。
 窓の外に置いて衛星をモニタリングできて便利。 バッテリと無線は持ち歩くデバイスの開発の効率を高めてくれる。
いずれロボットのGPS誘導に必要な技術を得るところまでやってみよう。 

※PDA : シグマリオンのシリアルポートにXBeeをつなげた代物

2010/06/06

GPSユニット EM-406Aのコマンド

EM406AはSiRF starⅢを搭載したモジュール。 前記事で比較したうちの一つ。

標準では4800bpsだが、ボーレートの変更、NMEAセンテンスの追加(VTG,GLL)に必要な設定をまとめた。
なお、データシート通りにコマンドを送りたいとき、チェックサムだけ計算するのめんどいね というときは、NMEAモニタを使うと、コマンド送信機能で コマンドの後ろ *__ に自動で付加してくれる。

 大抵のGPSユニットは、データシートにコマンドの説明があるので、探して読めば書いてあるけど、任意のコマンドを打ちたいときは、チェックサムを計算しなくてはならない。

チェックサムの導出
NMEAセンテンスは、チェックサム計算を含んでいる。
計算方法をまとめてみた。

------------------------------------------------------------------
プロトコルに従って設定 例:ボーレートを9600bpsにしたいとき
$PSRF100,1,9600,8,1,0*0D

0D がChecksum

 PSRF100,1,9600,8,1,0     // $ , * を除いた文字列
 ↓
ASCIコードに変換 = 50,53,52,46,31,30,30,2c, 31,2c, 39,36,30,30,2c, 38,2c, 31,2c, 30
 ↓  
各HEXで順にXORをとってゆく(OSの電卓を関数電卓モードでいけた)
ひたすらXOR  二度打ち、間違い注意
  = D

 でてきたチェックサムを2桁に直す

$PSRF100,1,9600,8,1,0*0D
 ↓
$PSRF100,1,9600,8,1,0*0D

GPSモジュールに送信
ボーレートの場合、チェックサムと設定が正しければ、文字化けして望みの速度に落ち着いてくれます。


チェックサムの間違いは単純に受け付けられないだけですが、

設定が望みのものかどうかはよく確認しよう。

その他設定


4800bps にしたいとき
$PSRF100,1,4800,8,1,0*0E
VTG ON
$PSRF103,05,00,01,01*20
VTG OFF
$PSRF103,05,00,00,01*21

GLL ON
$PSRF103,01,00,01,01*24

GLL OFF
$PSRF103,01,00,00,01*25

------------------------------------------------------------------
参考


コマンドその他

ASCIコード10進/ HEX / 該当文字

44 0x2c ,

48 0x30 0
49 0x31 1
50 0x32 2
51 0x33 3
52 0x34 4
53 0x35 5
54 0x36 6
55 0x37 7
56 0x38 8
57 0x39 9

65 0x41 A
66 0x42 B
67 0x43 C
68 0x44 D
69 0x45 E
70 0x46 F
71 0x47 G
72 0x48 H
73 0x49 I
74 0x4a J
75 0x4b K
76 0x4c L
77 0x4d M
78 0x4e N
79 0x4f O
80 0x50 P
81 0x51 Q
82 0x52 R
83 0x53 S
84 0x54 T
85 0x55 U
86 0x56 V
87 0x57 W
88 0x58 X
89 0x59 Y
90 0x5a Z

------------------------------------------------------------------

他のユニットもだいたいこんな感じでいけるかも。 おっと、設定は自己責任で。

※EM406Aの場合、数時間~数日たてば内蔵バックアップ電池(EDLC?)が揮発して元に戻るようです。 戻ってしまうので問題がある場合もあるようで・・・。

参考 EM406Aのコマンドリファレンス
http://elmicro.com/files/sparkfun/em406a_ug.pdf

追記: GPS-NMEAモニタのコマンド送付欄に、チェックサムの自動付加機能が… あれ、この記事の意味は・・・。

2010/06/05

GPSユニットの比較

GPSユニットを比較してみた。

経緯: 2008年に、秋月でGPSユニットを手に入れて遊び、しばらく放置していた間に、いろんなユニットが入手しやすくなっていたので、いくつか見ているところ。
2年もしないうちに、高性能なセンサとかユニットが普通に売られているようになった。

(お粗末な経緯としては、最近GPSユニットを手に入れたら、期待していたものと違ったので、比較対象として成仏させる必要が生じたから、という・・・)

Sparkfun製のちいさなGPSモジュール。 12チャンネル(捕捉可能衛星数) ちょっと値が張った。
なにをやっちまったかというと、同じような大きさ、形で、SiRFStarⅢを搭載したユニットがあり、そちらを買うつもりだったのだ(泣) 自分のせいなのでしょうがない。

出ているピンも、電源ピンとTx端子のみ。LEDは測位可能になった時点で点灯するようだ。

唯一の利点は、そのシンプルさ。 Arduino FIOにも無改造で付いた。
小ささを生かした開発に使いたいものですね。(おまえなんてさぼてんのGHS時計にしてやる!)

次は本命、Sparkfun EM-406A 
SiRFStarⅢチップ搭載の20チャンネル高感度GPSモジュール。

そこそこの大きさだけれど、外付けは一切ないためコンパクト。 
Sparkfun曰く、もう古くなりつつあるユニットですが、どうでしょう。

3: GPS-52 レシーバー(秋月電子)
2008年頃に秋月で初めて出てきたGPSユニット。 

当時からGPS誘導のロボット製作に関わっていたので、これは研究用に買って、シグマリオンにつけて歩き回っていた記憶が。
古いカーナビ用らしく、SiRFStarⅡですが、測地系がTokyoだったりして、癖のあるユニットです。

このたびジャンク箱から蘇り、別なプロジェクトの試験機として余生を送っておられたところ。グランドプレーンと外付け回路が結構場所とってます。

かくして三種類のユニットが揃ったのだった・・・

<消費電流>


お約束の消費電力を測定。電圧はすべて3.3Vで動作させた。
(データシートは4~5Vだったりするが、内蔵レギュレータの降下電圧分とみた)
非測位時の値が以下となる。

Sparkfun   SiRFStarⅢEM 406a 35mA
Sparkfun  GPS MiniMod          46mA
秋月     GPS-52               64mA

EM-406Aは流石というべきか・・・ 
意外にもGPS Miniモジュールのほうが消費電流が多め。外見によらず・・・

秋月のやつは結構食っている模様。ただ後発のGPSユニットGT-730FL)は、発熱、消費電流が多いらしい(初期ロット180mA 、追記:後期では下がっている様子)。
そう考えると、皆優秀なほうなのか。 30mA程度のユニットなら、FT232RLの3.3V出力でも駆動できてしまう。 GPS-52はさすがに駆動できないので、USBの5Vからシリーズレギュレーターを介して生成しています。


<即位測位>


深大寺公園の駐車場で、3つのモジュールに衛星を補足させて順番に記録し、GoogleEarthに表示。
座っていたところはだいたいEM406Aの測位地点内

EM-406Aは、ホットスタートの速さ、ズレの少なさ共にダントツ一位。 高度もズレが少ない。
DGPSも作動。
GPSMiniModの場合、補足さえ済めばほとんど同じ。 ちょっとズレ気味? 安定はEM406Aに劣る。
緑の円は、測位直後のフラつきなので無視してよい。
フラつきが406Aよりは多め。
GPS-52はそもそも測地系が違うため、コマンド入力による変更を諦めて、変換ツール(POT2KML)で換算したもの。
安定後は、判で捺したように同じ位置から動かなかった。 たしか自動車用なので、止まってると不都合があった気がする。 StaticNavigationが働いているのかな?


以上、ユニット間の簡易比較でした。 Sparkfunには他にも10Hz更新65chモジュールもあるけれど、ここまでくると知りたくなってきたな (おい 
 
あとで聞いた話、65chモジュールは場合によると安定しないことが多いみたいで。


<周辺機器>

PCへの接続は、使い易いよう改造した秋月のFTDIシリアル変換器で、電力も供給。 
このユニットはもともとArduino Pro( あるいは FIO)用の書き込み機として作成したもの。ピンソケットの配列はSparkfunの書き込み器に準拠。

 改良点としては、ボードの動作電圧に応じて3.3Vと5Vを使い分けられるようにスイッチを付けた。 (もちろん、オリジナルは取り違えないようにあえて分けてあるのだろう・・・)
 ジャンパー線でGPSモジュールを接続。

<ターミナルソフトなど>

海外のサイトで知った、RealTermが便利(シリアル通信の細かい設定ができる、コマンド送付し易い)
http://realterm.sourceforge.net/
Pot2KML (ログをKMLに変換、同時に測地系も変換できるので、GPS-52には便利)
http://www.geocities.jp/zymmt/
NMEA.モニター Ver1.60 GPSの監視と、記録に使用しました。
http://homepage2.nifty.com/k8/gps/indexj.htm

協力 akr氏 夜明け前にわざわざ公園まで同行してもらった GPS「即位しました」は、彼の自宅の車が元ネタ (誰得)