2011/11/28

太陽電池を求めて

小さい工作で太陽電池を使いたい時に困ることは、小さいソーラーセルがあまり売ってない(入手性が悪い)ということ。 (ここで言う小さいとは、1~3センチ程度の幅を持つもの)

PowerFilmもちょっと大きいので丁度よい大きさの物を探してみた。

千石電商で見つけたソーラーLEDライト。¥250だった。

販売元 http://www.henj.in/LED.html

最近は太陽電池を使った小さい携帯充電器や、ライトが結構出ている。それにしても安い。
かなり長い時間点灯する。ボタンは押すたびに点灯・点滅・消灯と切り替わるので、ICが入っているらしい。 
光量は眩しすぎると思うほど。 でも光は次第に弱まるので、昇圧したり電圧管理などはしていないようだ。(値段を考えれば当然だが)

お約束の分解。むしろ部品取りなので・・・

見た感じ、 コイン型リチウム充電池とLED、ボタンと制御IC基板が付いている。
太陽電池は逆流防止ダイオードでバッテリにつながっていた。


部品調査

太陽電池はSC-3722-9http://detail.china.alibaba.com/buyer/offerdetail/311771373.html

 中国のVIMUN社の製品らしい。
けっこう種類がある。(けど大きさとかあまり書いてない)
http://www.aliexpress.com/wholesale/wholesale-vimun.html

リチウム二次電池はLIR-2032 http://jp.eemb.com/pdf/Li-ion/LIR2032.pdf
コイン型セルのようだ。 
ちなみに充電管理されてないので、買った半分は電圧が1V程度だった。
いつ充電できなくなってもおかしくはない。 ということで適度に過充電しつつ、使うときはあまり放電しないように気をつけよう (充電管理も人間の仕事です)

部品代考えても、LED3つにバッテリまで手に入るのでけっこうおいしい。

太陽電池の電流
一枚でリチウム電池を充電するので、おそらく最大電力点は5V程度と見ていたがそのとおりだった。 屋外では一枚で最大5mAとのこと。効率は、同じアモルファス系のPowerFilmより減るが、どっちも10%台で少ないという点では同じ。 A-Siは電力が欲しければ面積を稼がないといけない。
価格の安さに加え、設置面積をあまり気にしないなら、これでいいですね。

本題
粘着テープでくっついているので、ゆっくり刃を差し込んで取る

さっそく2枚載せてみた。 丁度良さげ。
しかしこれでもトランスミッタの連続送信には難しい電力量。 数分に1回 パケットを出せるかどうか。

効率

効率28%の宇宙用GaAs系なら、2センチ角で30mAは出る。けど、お値段的に手が出ない。宇宙機の値段のうち、太陽電池の価格は結構大きい。

例 http://www.clyde-space.com/cubesat_shop/solar_panels/0u5_solar_panels/290_0-5u-cubesat-solar-panel  

充放電管理という点では、さっきのライトは電池をスーパーキャパシタで置き換えて、チャージポンプICを付けると、放電の下限を気にせずに済む。 (充電は電圧上限でストップさせる) コスト的にはもちろん釣り合わない。

工作している物:が実用度で言うと250円のライトにも劣るとかそういう話は(お

一個はバラすのが忍びないのででそのまま使い続けよう・・・。

2011/11/26

ストラップ模擬衛星 (5x5x5cm)


「人工衛星」というハードの規模は幅広いスペクトルがあり、その規模は無線付きワイヤレスセンサと呼べるものから、遠隔操作の重機までくらいの差がある。

CubeSatは間違いなく前者の領域に入る。それもアマチュア無線技術に基づく、CWなどの人間向きの信号をやり取りする。

ということで、この無線でのやり取りに焦点を当てた模擬衛星キットを作ってみた。できるだけ簡素化したので、電源部含めて5x5x5cmに収まる。

実はCubeSatにも5x5x5cmサイズの計画がちらほらあるようだ。
海外では10センチ角以下で100g以下の衛星はFemtoSatと呼ばれている。

(フェムト: 10のマイナス15乗)

重さでの分類によると、
Mini 10kg~100kg
Nano 1kg~10kg
Pico 100g~1000g
Femto ~100g

(ちなみに、CubeSat規格での0.5Uは10x10x5cm)
宇宙では大きさで発電電力が決まってしまうので、小さいということは積めるものにもいろいろと制限が大きい。




概要
主要部品
FMトランスミッター (新潟精密 NS73M)
ATmega328P 8MHz外部水晶/Arduino用ブートローダー
LM60   温度センサ

検証中
S9706       カラーセンサ(レンズはジャンクの組み込み用WebCamから)
MMA7361 加速度センサ
LTC3105  低電圧MPPC動作DCDCコンバーター
LTC4071  低電圧起動Li-Po/ionチャージャー
太陽電池 SC-3722-9
Li-Poセル 100mAh
スーパーキャパシタ(5V/1.5F~)

基板 UP-204GSR 二枚組のユニバーサル基板
10mmジュラコンスタッド
塩ビのキューブケース(50mm四方) ハンズにて発見。ぴったり。


通信系

この回路の目玉ははNS73M FMステレオトランスミッタ。カーステレオにDAPの音楽を飛ばすためによく使われるもの。

XBeeのようにモジュール同士での遮蔽された通信ではなく、普通のFMラジオを使って直接受信できる。

本当はCWを出してみたいけど、ここでは簡単さを優先してFM(WFM)に絞った。
まだ受信系すら積んでないので、赤外線入力くらいは付けたい。

微弱無線に適合するためアッテネーターを外部に追加している関係で、あまり距離は出せない。それでも実際の衛星が使う電波通信の感覚を模擬できる。

モジュール自体はワイドFMで飛ばしているのだが、無線機のFMモードで聞くと、帯域制限がかかるためそれっぽい音が聞こえる。(飛距離も伸びる)

トランスミッタにAVRで生成したモールスとAFSKパケットを音声入力する。ステレオ入力なのでちょうど1chずつ割り当てている。OPアンプでミキサを作れば、他の音源ソースを入力するなんてこともできる。 音声合成ICや、マイクロホン、音楽プレーヤーのライン出力などなど・・・。

衛星のフォーマットに限らず、センサデータで自由な音が出すことができる。ワイヤレスセンサーシンセと呼んだほうがいいだろう。

信号生成には、Arduino向けのMorseライブラリとSoftModemライブラリを使わせてもらっている。(Bell202規格の復変調ICが入手しづらい今日この頃)



ありあわせの部品で簡単に作れるのだが、まだ問題が山積み。
・電源管理
 FMトランスミッタが起動した時点で、回路の消費電流は3.3V、40mAとなる。ピーク132mWの収支をとるのが結構難しい。
テレメトリ送信頻度は数十秒に一度へ減らし、平均消費電力を発電量以下に持っていく必要がある。 
大容量EDLCでの初期充電時間の壁をなんとかしたい。

・太陽電池の選定
おあつらえ向きの太陽電池があまり無いという罠がある。PowerFilmの最小サイズでも縦幅がオーバーする。 動かすときは、素直に外部にパドルを広げたほうがいいだろう。

衛星は超絶技術の塊ではなく、枯れた技術の故障回避設計の塊。そう。プロトタイピングの先には長い長い検証が待っているのです。

関係ないけど、ニトリのバナナハンガーはヘッドホン吊るせたりして色々と便利ですね。

2011/11/22

SH-2A基板のボード製作


SH-2A基板を入手して1年半。人に貸すも埃をかぶって戻ってきたので、成仏させるために少しづつ組み立ててみた。毛虫計算機と名乗るからには計算機作らないとね・・・(木製PCケース製作からずいぶん遠くへ来たもんだ)

想定分野は、差動シリアルI/Fがメインのちょっとした産業向けOBC。
4つあるD-SUB9ピンは1つが上位システム(PC)との制御ポートで、あとの3つはRS422トランシーバを介した周辺機器制御ポートになる予定。
基板は秋月のDSUB基板(大)

必要に応じて増設っ

化粧板は0.5mmPET樹脂板2枚と、間にいろいろ印刷した厚紙をはさんでいます。
寸法設計、出力はEAGLEを使用。
DSUBのポートは基本的に独自ピンアサインで


開発環境はHEW+KPITのGCCコンパイラで整備中。





2011/11/17

AR天体望遠鏡


八木アンテナにARを導入してみたりしてきたけど、一発で分かる本命はこっちだろうか。

GoogleSkyMapを望遠鏡のガイドの代わりにしてみた。

ターゲットの望遠鏡はジャンク扱いで発見したMEADEの入門機DS-60
実は中学の頃、電動式で反射望遠鏡なDS-115ECを買ってもらったがために、もっと変なことしようとして専門用語のたくさんあるサイトを巡回するようになった気がする。
 
動かしてみると、HT-03Aではあまりポインティング精度が出ない。
しっかりした視野への導入はまだガイド望遠鏡が必要ですね。

広視界な双眼鏡と組み合わせたら最適だと思う。グリグリ好きな宙域を眺める事ができて、そこにある星座名や、明るい恒星名を一つ一つ覚えられたら良いなあ。

 人工衛星と違って、星は逃げないのでじっくり観察しやすい。

時間と方角の予備知識だけで見つけた小さい彗星は未だに忘れられない。星と違ってエメラルドグリーンの薄い尾がコマのまわりを囲んでいた。写真とくらべたら肉眼で見られるものはごく一部の明るいところだけだけど、あの彗星はだいぶ意識に残っている。(マックホルツだったかなあ・・・ 

 
 本物は見てみないとわからない。ハートレー第二彗星をフライバイしたエポキシ探査機ミッションの責任者が「バーチャルが流行ってるけど、(探査機のダウンリンクした画像ををみながら)これこそがリアルで、実際に起きたことです」とustで語っていたのが印象に残っている。
 

昔ならプラネタリウムソフトを動かしたノートPCをお供に抱えて運用していたわけだけど、それがおおまかな現在位置と姿勢追従を伴って小さな端末で出来るようになったのは面白い。
 昔のオーバーレイは現実の環境とリンクするセンサが無かったけど、スマートフォンみたいな物理インターフェースを搭載したものでは、現実オーバーレイという呼び方のほうがしっくり来るような気もする。

 個人的にはコンパスと六分儀をマスターしたい。これで旅も怖くないはず。



2011/11/14

三軸磁気センサの搭載(SpinnerTwo)




ローバー向けキラーアプリであるコンパスを試してみたい。
とおもってお金をケチった結果、デジタルコンパスではなくデジタル3軸磁気センサを手に入れてしまった。



HMC6343のような傾き補正付きデジタルコンパスモジュールとして入手できるものは、3軸磁気だけでなく、加速度から得られる姿勢情報なども含めて色々と処理をしてから方位角を算出してくれる。そこら辺はユーザー側ではあまり気にせずに済む。

対して、この3軸磁気センサは3軸の磁界強度を得られるシンプルなモジュール。
シンプルなので色々と計算しないといけない・・・。

色々文献を漁って、回り道をしたけど、適当に本体を360°回しながらX,Y軸の磁界強度をグラフにプロットするとこういうモノができた。
mag3110でのXY磁界の強度変化グラフ(鉄製のテーブル上にて)

おお・・・ちょっと計測点が少なすぎたけど、ちゃんと円を描いてる。(X軸のスケールはスルーで・・・)
まずは磁界強度で描かれた円の中心がわかれば水平での方位角を求めることができそうだ。(Sparkfunで見かけたソースでは、中心を出す計算が省かれており、方位は出てこない・・・)

調べる中で、地方磁気の角度とか、軟鉄/鋼鉄など、磁気を帯びた物体上での撹乱などについても文献を見つけたが、とりあえず中心点のキャリブレーションをしてから使うことになりそうだ。
このセンサを使うにあたって、いくつか注意点としては、磁界が近くにあると正常な値が出せないこと。
特に小型ローバーはモーターが近いので、センサ周辺は磁気遮蔽用のアルミテープを貼っている。 覆う前は5000近い値まで出ていたが、現在は安定して地磁気を拾えるところまで来ている。
3軸磁気センサと磁気遮蔽アルミテープ 横は加速度センサ
もし路面付近に強い磁気を帯びた物体があったらと思うと、ナビゲーションには限定的な使い方しかできないのかなあ・・・。今度GPS走行させて確かめたい。

他の方向としては、検索時に見つけた例として、スマートフォンで指に磁石を付けて磁場ジェスチャー(テルミン風の楽器インターフェースとか)として利用したりといった、新しいインターフェースとして使うというのもありかなあと思う。


ATmega644P/1284P向けNewSoftSerialライブラリ(Wiring)

Wiring1.0上でターゲットMCUをATmega644P/1284Pに選択し、NewSoftSerialを使おうとした場合、うまく動かない。

個人的な事象として、JPEGカメラをローバー(ATmega1284P)で設定してみたところ動かなかったので、調べてみた。


ライブラリ内にあるNewSoftSerial.cppを見ると、ピン割り込み設定において、ピン割り当てが互換ボードの一つである、Reduino:LEDheadに設定されている。

このボードとWiringS/互換機ではピン割り当てがだいぶ違う。D7までのピンなら動作した理由は、ここだけ割り込みピンとの対応が共通であるからだった。

これをWiringS用に書き換えてみる。

\Wiring\cores\AVR8Bit\libraries\NewSoftSerial\NewSoftSerial.cppの中で、
644Pの該当箇所を以下のように書き換える。

変更点

・ATmega1284P追加
・Wiring用にピン割り込み関連のレジスタの番号とIDE上で扱うポート番号を対応させる作業)
----------------------------------------------------------------

#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)

//for WiringS

#define digitalPinToPCICR(p)    ( ((p) >= 0 && (p) <= 31) ? (&PCICR) : ((uint8_t *)NULL) )

//for Wiring S
#define digitalPinToPCICRbit(p) ( ((p) <= 7) ? 3 : \
( ((p) <= 15) ? 2 : \
( ((p) <= 23) ? 1 : \
0 ) ) ) 


#define digitalPinToPCMSK(p)    ( ((p) <= 7) ? (&PCMSK3) : \
                                ( ((p) <= 15) ? (&PCMSK2) : \
                                ( ((p) <= 23) ? (&PCMSK1) : \
                                ( ((p) <= 31) ? (&PCMSK0) : \
                                ((uint8_t *)NULL) ) ) ) ) 

#define digitalPinToPCMSKbit(p) ( ((p) <= 7) ? (p) : \
                                ( ((p) <= 15) ? ((p) - 8) : \
                                ( ((p) <= 23) ? ((p)- 16) : \
                                ((p) - 24) ) ) ) 
----------------------------------------------------------------

これで644P/1284PのどのピンでもNewSoftSerialが使えるようになるはず。

デフォルトでWiring Sといった公式?ボードに対応してないのは深遠な理由がありそうでなさそうだが・・・うむ。

なんだかんだで、最近は環境がWiring1.0に移行しつつある・・・。

1284Pのピンをだいぶ使いきって、あとはアナログピンが幾つかだけという状態。

2011/11/09

新JPEGカメラのライブラリ(VC0706)をLS-Y201で使ってみる



最近簡単に入手できるJPEGカメラとしてはLS-Y201がある
http://www.sparkfun.com/products/10061
http://www.switch-science.com/products/detail.php?product_id=453
アナログビデオ出力(PAL)も付いていて、JPEGカメラとしても動作するという不思議な特徴をもったカメラ。
(以前の比較記事)

搭載しているDSP(VC0706)は、販売元の説明以外にもいろいろと隠された機能があるらしいということは知っていた。けど仕様がわからないとどうしようもないので、ローバーに搭載したり赤外線カットフィルタを内蔵しておかしな色相を直したりと、主に外側の改善ばかりしていたのだが・・・

さて、Adafruitで販売され始めた新しいJPEGカメラ。よく見てみると同じチップを搭載している。こちらは映像出力もちゃんと謳っている。(NTSC・・・だと・・・^^;)

さらに、仕様書からライブラリも作ってくれたようで、GithubからVC0706用のライブラリが入手できる。http://github.com/adafruit/VC0706-Serial-Camera-Library

チップが同じなら、きっとこのライブラリも使えるはず・・・
ということでLS-Y201で使ってみた結果、ちゃんと動きました。 
問題なく撮影できてます。

(ソースがSDカードへの保存を要求するけれど、めんどくさいので画像データをシリアルに垂れ流すようにいじりました)

注目点としては

・スリープモード
・JPEG圧縮率の設定(高画質にしたい・・・)
・TV出力のON/OFF制御(OFFにすれば消費電流が減るよ!)
・映像の簡易制御(ミラーなど)
・動体検知撮影
・OSD機能(機能しないらしいけど・・・)

adafruitのチュートリアルではうまく動かない機能も多いらしいが、

目玉機能である動体検知はちゃんと動いた。検知の感度などはライブラリ側でいじれる様子。

これでローバーも定点観測ができるように・・・
眠っていたLS-Y201がある方もぜひ。

(以前は全然みつからなかったあのDSPの資料がちらほら観測できてる・・・?)
某資料によれば、映像のNTSC/PAL切り替えはとある足のプルアップ/プルダウンで決まるらしい。試しに足を持ち上げたら映らなくなったので、慌てて修復したけど、どこかにプルアップ抵抗が設定されているおかげで、LS-Y201では標準のNTSCではなくPALが選択されている様子。さてどれだろうか・・・




2011/11/06

Whipper


可変径車輪を有する一輪ローバーの開発3



小型ロケット、無人航空機などのサブペイロードとして搭載されることを想定した小型軽量、最小限の探査車として、一輪ローバーSpinnerを開発した。(文献1)
Spinnerは一輪と方向転換のための一自由度の腕を備えている。EMモデルは容積1Lで500g以下の重量を実現している。
この1輪モデルの試験走行を経て、設計の効率化を図り、可変径1輪車のコンセプトを提案した。(文献2 「 SpinnerX 」)
この文章では、SpinnerXの改良案を述べる。

論文のような序文はここまで。

また次世代Spinnerを思いついたので、その機構をまとめる。

SpinnerX (シーソー型?)

SpinnerXで構想したシーソー型可変機構の場合、実は2つの手強い課題がある。
・耐衝撃性
・可変ゆえの不安定性

 機構自体を試作してみて、折れない/たわまないことが証明できるものを作るのが難しかった。
また、角度調節用のサーボから伸びた軸が足につながっているのだが、そこに衝撃が集中して壊れてしまう可能性が高い。。

この機構にこだわって、衝撃を伝えない方法を考えるのもいいけれど、機構や調整方法が複雑化するのは避けたい。
スムーズな進路変更を犠牲にしても、今まで通り腕で済ませたほうがよっぽど信頼性を確保できる。

変えたいのは左右の接地面の高さだけである。 シーソー型の良いところをとりつつ、簡単で壊れにくい仕組みは無いだろうか・・・。 
メカトロ以前のメカニクス的な機構を考えるのは楽しい。 SpinnerX以降、機構の検討は放置していたので、いい具合に思考がリセットされていた。
新しいスライド案も、友人のスライド式携帯の動作を見て思いついている。

<スライド式可変径機構の仕組み>
本体回転式の機体はSpinnerXを受け継ぎ、接地面をアーチ状のリボンに置き換える。リボンは柔軟な物質でできている。
リボンは片端を車体の端に固定され、もう片端はスライド可能な板材に固定する。
この板をスライドすることで、リボンのアーチはスライドした側に高さが偏る。板にサーボ機構を組み込むことで、可変車輪径が成り立つ。

この機構の場合、サーボの駆動軸は車体と水平で、接地面のリボン素材とアーチ構造そのものが衝撃吸収を行う余地をもつ。

さあ、それを踏まえて新型のCGはというと・・・



泡立て器みたいなので、Whipperと呼ぼう。

デザインはもとのSpinnerに収斂しつつある。

最近は忙しくて工作する暇が無いけれど、センサをSpinnerTwoにたくさん載せては配線しているので、制御系のソフトウェアの改良は続けています。

こいつも早く作りたいなー。