2011/07/31

SpinnerTwo制御MCU(Wiring互換)

 ArduPilotMegaに代わり、ATmega1284で組んだWiring S互換のローバー制御ボード。


Spinnerは規模的に丁度良いアプリケーションだった。 UART2chとPWM6chはなかなか便利。  

まだ3.3Vで無理やり動かしているけれど、前述の1284の設定ではブラインアウトリセットがキツいので、とりあえずEx huse はFF(ブラインアウトリセットOFF)にした。そのうちMCUだけでも5Vに昇圧して動作させるつもりでいる。

Wiring上でコンパイルしたプログラムも今のところ問題なく動いている。Arduinoと違ってあまりピン数で煮詰まらないのがいいですね。

MCUだけでもだいぶコストダウン出来た。この基板には眠っていたPSoCも載せたのでモータードライバ制御とセンサ処理をさせたい。

とりあえず当初の目的である制御まわりの試作は進んでいる・・・といえる
最近はまた太陽電池のようなものが・・・(続く)

Sparkfunのガイガーカウンタにブザーとロガーを追加

キャップを外してみたところ。 ただし付け直すのがえらく大変なのでやめたほうがいいです
前回ケースに入れたSpakfunのガイガーカウンタに、ブザーとSDロガー(OpenLog)を取り付けられるようにしてみた。

上の蓋を閉めれば、他に開口部は無いためたぶん防滴
ブザーは本体に載ってるATmega328PのTQFPにUEW線を一本はんだ付けして、放射線を検知して割り込みが掛かったときにピッとなるようにした。公開されているファームウェアにピン設定を追加しただけ。最初はLEDから出力を頂こうと思ったけど、シンク電流なので信号は常時HIGHで使えず…。
(外に反転ロジック組めばこんなことも要らないですね)

このキットの外部ピンというと、AVRを介さないGM管からのカップリングされたパルス出力と、RX,TX(印字は接続する機器側から見たものだった)くらいしか無く、無改造ではマイコンを新たに増設するほうが早い。
デフォルトでは、
・LEDが光るのを目で見る
・PCでモニタリングする
・オーディオジャックを付けてiPhoneなどのカウントアプリを使う
といった用途があると思う。
ATmega328Pが搭載されているのにちょっともったい気はする。(その328Pにしても内蔵オシレータ駆動だったり)

定点観測がメインになるならこれらはあまり関係ないので、それとは別にポータブル用途ではOpenLogを取り付けて記録することにした。放射線検知とともに出力される1ビットの乱数をひたすら記録する。ただしタイムスタンプは無し。そのうちCPMも吐き出すようにするつもりだ。
OpenLogの青のステータスLEDは書き込み時に青く光るので、放射線検知とともにこれも一瞬青く光る。 結構明るい。

外付け回路シールド(006P電池と5V生成部、ブザー、OpenLog)


検知した瞬間
光だけでなく音が加わると印象もかなり変わった。 なぜか大量に検知している気がする。 でも平均したCPMでみると7~8にあがったくらいで、やはりそんなに変わってない。雨が降ったのでやや回数は増えているようだ。鳴った瞬間だけを覚えているせいで、連続して鳴った事象ばかり印象に残り誤解しやすい。人間の記憶のタイムスタンプも大雑把ということが露呈しますね。 


2011/07/28

ATmega1284Pの検討

ATmegaXX4P (XX=ROM容量)シリーズは秋月電子でも取り扱いがあるAVRマイコンで、
IO数は32ピンある。 UARTは2chあり、XX8Pシリーズには無いJTAGとOCD機能が存在したりする。このMCUを使ったArduino互換機はSanguinoと呼ばれている。
http://akizukidenshi.com/catalog/g/gI-04416/ TQFP

Sanguino公式http://sanguino.cc/

DIPとTQFPをそれぞれ入手して、Wiring(Arduinoの本家)環境として使うためのブートローダを書き込んでみた。

新しくWiring Sというボードが登場して、ATmega644Pを採用したために、644Pと1284Pがターゲットボードに追加された、ということらしい。(注:現時点ではまだβ版)
 
2011/11月 追記:今は1.0が出てます。

個人的には、現行のローバーに使っているATmega1280(Arduino MEGA)を代替するのが目的となる。ArduPilotは小さいので便利なのだが、高い上にローバーには不要な機能が多く、入手性が悪い。 UARTが4chあるのが救いなのだけれど、値段的にはARMに移行したくなってくる。

ブートローダーの書き込み

今回はじめて秋月のブレッドボード基板に組んで配線してみた。これがなかなか便利で、番号が書いてあるので配線を間違えにくい。ただ16MHzの水晶の取り付けに夢中でResetピンの生出力をピンヘッダに引き出すのを忘れていた。ICSP書き込みの際はリセットピンへの接続が要るので注意。
ICSP書き込みはブートローダーのHexファイルを焼くだけなので、各種ライタが使えそう。
今回はArduinoUNOをArduinoISP化して使用した。
この環境だと、幾つかのAVRについて、ICSP書き込み前提なら、ArduinoIDE上でも開発ができるようだ。(XX4PはSanguinoとコンパチ?)


Wiring内にあったBoards.txtに従って、ヒューズを設定する。 

JTAGやOCDを有効化する際のヒューズ設定は下記のサイトのフォームで調べることができる。


ヒューズビット計算機 http://www.engbedded.com/fusecalc/

下記は適当に作ったピン配置図。 DIPパッケージ版。


ボードをSanguino互換で制作した場合、Wiring上でLEDは16番に接続されていることになるので注意。

1284PはRAMが16kBあり、ATmega1280/2560の倍という謎の規模を誇るので、それを生かした何かができるといいなあ。(個人的には、644Pが丁度よい規模に感じる)

追記
644P/1284PでNewSoftSerialライブラリを使う場合の設定について調べました。ライブラリの記述をいくつか書き換える必要があります。 記事



2011/07/27

Spinner+VS1033D+Jpeg trigger

踊るローバーロボットとして順調に進化しているSpinnerTwo。
現在はカメラ部の処理を別マイコンに分離して、音声コーデックICを追加した演奏部の追加中。
そろそろ専用基板を開発したい規模になってまいりました。

なぜロボットに音声かというと、動いているときに液晶は見えにくい/屋外でLEDは夜くらいしか見えない。 という問題があるため、動作中のデバッグという点でも、インタラクティブであるという点でも魅力的だからです。(細かいステータスはXBeeで見ればいいし…) 音声合成等はともかく、単純なブザーを取り付けるなら簡単ですね。
外観。 幾つAVRを搭載していることやら
 VS1033D breakoutは千石電商に生産終了品特価で見つけたもの。現在同じ製品は後発の1053Dが搭載されている。IC単体は秋月で取り扱いがあるので今度買うときはそっちを使うといいかも。
とりあえずリアルタイムMIDIでの動作に挑戦中。

Jpeg trigger
 VS1033Dボードはたまたま手に入れていたJpeg Triggerに接続。カメラ制御とMIDI再生を担当してもらうことに。
 MP3 player Shieldの配線を参考にして、UEW線で接続したもの。
 むむむ…もうちょっとシンプルにつくりたい。





2011/07/21

Geiger Counter


Sparkfun製のガイガーカウンタをひょんなことから貸してもらったので、色々と可能性を探ってみた。
http://www.sparkfun.com/products/9848

 USBシリアル変換とATmega328が搭載されている。 デフォルトでは天然乱数源として使えるように、放射線検知とともに1ビットの乱数を9600bpsで送信し続けるようになっている。
 
 シリアル端末につないで24時間放置したところ、生成された一様乱数は約1.4kバイトになった。自室の24時間平均カウント数は約7.5CPMということになる。 外に置くと15CPMくらいには増える。(熱雑音系と比べたら、乱数生成器としてはかなり鈍臭いようだ…)


得られた乱数の一部
0101101001001011010100101011010001010001110110010100110010110110110010110110101010001010110110101011101010100011010011011100100010110010101001101010010110101100110111011001110001100101010101110001101010101100010110101010110110101010001010011101011010100100110110011110101010101010010100001101001010000011001010110101110000101100

雲母窓の付いたLND712を使用している。キャップはβ線遮断

100円ショップの5VUSBチャージャーでも動作した。 消費電流は全体で30mA程らしい。
赤色LED消せばもっと減るかも

ケースに入れ、9電池から5V生成。ブザーはコンパレータにつなぐべきなのだが、
せっかくなのでAVRの空きピンに出力を増設したいところ。


ガイターカウンタの正しい利用法はここ数ヶ月で沢山告知されているので、そちらを参考にしていただければ…。

とりあえず、適用範囲は短時間では強い放射線源がある/ないの確認と、長時間の積分=定点観測になるとおもうので、持ち運ぶ形態よりは、サーバーにつないでモニタリングする方向を探りたい。 
屋外観測するということなら、最低でもCPMにタイムスタンプと位置情報は付加したい。スタンドアロンにこだわるなら、GPSを取り付けることになると思う。

構成として一番お手軽そうなのは、Open-WRTが走る無線LANルーターのシリアル端子につなぎ、観測用のスクリプトを走らせることだろうか。LUAをいじれば、Webページまで自前で用意出来るはず(そこまで触ったことがまだ無いけれど…)

2011/07/09

自作全方位カメラアダプタ アップデート後

夜の甲州街道にて。 RICOH GX200 F12 ISO100 15s  
夜の作例をひとつ。 F値を絞りまくって、長時間露出を行ない自動車のライトを流してみた。ミラーを経由するために光量不足になりがちな全方位カメラの欠点を逆手にとったもの。
panoramaliveで一部を展開してみた。

システム
オーバーホール
 数日前、用事で久しぶりに撮影に使った後、不用意に落として軽く貼りつけていたステンレス半球が外れたので、オーバーホールもかねて作り直し。 といってもビニールテープを巻き直し、アクリル円筒にフィルターネジ径変換アダプタとミラーをホットボンドで付け直すだけという・・・。 (原価2千円程度なので単純です)
左は自作GX200用レンズフード。厚紙製。ゴム製レンズフード(フィルターネジ付き)を取り付け、内側を植毛紙で処理したもの。




もうすこしいろいろなところを撮ってみよう・・・。

最初の製作時の記事 http://sites.google.com/site/kemushicomputer/Home/products/panorama-cam-1

Qcam orbit AF

バルク扱いのQcam Orbit AF (200万画素)を入手。今年に入り、いろいろなところに流れているようだ。
市販品には無いドーム型ケースが付属する。
物自体は申し分のない、パン・チルト可能な高性能ウェブカメラ。 レンズにこだわってるだけあって、他の200万画素モデルと比べても解像感が素晴らしい。これで3千円とは・・・

ハウジングにいれたところ
ハウジングに入れても画像はクリア。 ただカメラの固定機構があるわけでは無いようだ。置いて使えということらしい。 イベント、展示等で使うためのものだろうか・・・。
おまけ
実は首のところで分離できる。チルト機構から下は(一般パッケージでは同梱されている)支柱を挟む目的でminiUSB端子で刺さっているだけなので、普通のmini-B端子でPCとつないでも問題なく動作する。カメラ部だけだとかなり軽い。 重たい台座にはマイクが入っているらしい。分解したところカメラ側コネクタに配線が消えている。 多分mini-B規格になぜかあるNCピンを利用してマイク入力を行っているのだろう。 よく考えられてる。

USB端子のついたUSBプリントサーバーみたいな、小さいLinuxボードで動かせたらいいなあ。