スキップしてメイン コンテンツに移動

投稿

ライフログ

FemtoCubeを移動時に鞄に放り込み、移動時間の間ずっと記録してみたものを、GoogleDocsのグラフ作成機能でトレンドとして表示してみた。 上から、バッテリ、カラーセンサのRGB値(12bit)、SCP1000の温度と気圧の順となっている。3秒間隔でだいたい1時間半程度のスパンを持つ。 シリアルSDロガーの消費電力分が加わっているので、本来の運用ではもっと緩やかに電圧降下するだろう。今のままでも一日は持ちこたえそう。 カラーセンサは今回WayPointの記録用に使った。ピークは乗り込んだ駅と降りた駅で鞄から取り出して明かりに当てた様子を表す。 温度はだいたい鞄の中の温度となる。 最後は外に出し、部屋に置いたのでだんだん低下していく。  気圧は高度を表す。途中地下を経由するので、その高度変化が高くなる方へ現れている。 これに加速度とか加えると楽しそうだ。そしてディテールを増やしすぎて生活が駄々漏れに・・・  記録をこうしたグラフにするだけでなく、一日のログから消灯時間が勝手に決まるスマート住宅とか(やや迷惑だが)、蓄積したデータから何か現実や行動者自身にフィードバックがかかるものも面白いだろう。生活リズムから健康診断するとかそういう用途は、今あるスマートフォンとかでも十分できそうではある。ライフターゲティング広告ビジネスとかとか。人がアフィリエイトを稼ぐために運動し外出する時代はもう来ていたのだ・・・(完) ********** オムロンのPC連携できる歩数計 上を書いた後で、新古品として見つけた歩数計。 最近の歩数計は加速度センサで歩行リズムの周期だけを取り出してカウントするらしい。 オムロンの製品はRFIDによる非接触データ通信に対応していて、一日ごとのデータを会員制サイトにアップロードできる。同じ仕組み(WirelessLink)に対応した体重計と血圧計もあるようだ。 ライフログに重点を置いたヘルスケア製品はどんどん増えていくだろう。 通信端末もNFCやBT4LE規格などによってより柔軟な機器連携をするようになりつつあるので、体重計や血圧計の管理画面がスマートフォンアプリ、という形態は容易に想像できる。 ライフログの悪用の危険性についてはどうなのだろう。 歩数も体重も心拍も、日付以外にGPS...

FemtoCubeの外装とA/D周り

12月と比べると見た目はあまり変わってないけど、中身のほうがだいぶ完成したFemtoCubeプロトタイプ機。この機体は最初から宇宙志向では無いので(考え方は流用したが)、気圧センサや地上仕様の照度センサなどを実装して、ワイヤレス気象センサとしての作り込みをすすめている。 過去作のローバーなどは、ひとつのマシンの制作にはそれほど時間をかけて来なかったけれど、それに比べると今回は回路的にだいぶ充実した構成になった。 プロトタイピング病を回避するために、ATmega328Pでできること(I/Oピン)という制限を課し、外形を制限してたけど、結構うまくいったと思う。 50mm角のキューブケースに収めるという制約は健在。 観測センサが一段落ついたので、タイムスタンプ用RTCと照度計、回路電圧などの計測chを実装した。RTCは秋月のものを基板の端っこに立てて取り付けている。 ブロック図 電源周りなどがまだ未完成だけれど、だいぶ完成形に近づいてきた。 A/D周り 照度、回路電圧、太陽電池発電電圧はAVRのA/Dを使う。内蔵Ref1.1Vに設定したので、測定電圧は抵抗分圧で電圧変換した。手持ちの1MΩ台の1608抵抗などを動員する。 電源電圧については、現在はバッテリから直に取り出しているため非安定化バスとなっている。電子系はDCDCも搭載していない状態だが、4.2V~3.0V程度でなら回路の動作範囲なので、回路電圧(=バッテリ電圧)を監視しておき、照度センサなどの電圧依存なセンサのために補正値を提供するという対応でよさそうだと判断した。(4.2V側が若干高めなので、3VくらいのLDOを挟んでもいいかもしれない・・・) 照度はS9706の電源端子と共用だが、明るさによっては電流がポートの許容範囲を超えそうで怖い。 とりあえずセンサ電源OFFでクロックダウン中の消費電流は実装前とあまり変わらずに済んでいる。 奥に立ってるのがRTC カオス配線 電源系と電子系あわせて 電源についてはバッテリを大容量Li-ion生セル(880mA)にした。そうなるともともと小容量バッテリ向けのLTC4071では負荷がキツくなったため、FETなどのディスクリート部品で充放電回路を実装することにする。 生セルなどは扱いを...

物語駆動開発

※脈略のない話です。 組立中の本物の人工衛星を見る機会に恵まれていたこともあり、時々、「陸にあるときの衛星ってなんて呼べばいいんだろう」というロクでもない思考を始めることがあった。  人工衛星という単語自体は、まず天文学的な定義がある。惑星をまわる物体を衛星といい、中でも人が打ち上げたものが該当する。 速度的には第一宇宙速度に達したものとなる。(速度を得るのはロケットの仕事だけれど)  冒頭のどうでもいい疑問については、宇宙機(SpaceCraft)という上位の言葉が用意されている。手のひらサイズのキューブサットから、大型衛星、惑星探査機まで含まれる。人工衛星の制作現場では、単に「衛星」と略されるため、はじめは混乱する。地上でいえば、携帯電話とその携帯基地局くらい規模の違うシステムが含まれている。  衛星って一般的にどう理解されているのか。その思いはMAKE会場で展示に興味を持ってくれた人の衛星観を見聞きしてきた中でだんだん育っていった。 普段衛星技術そのものを考えたことのない人が衛星について抱くイメージを知るチャンスってなかなか無い。 大学衛星も時折ニュースにはなるが、それほど数は多くないので、まったく知らない人が多いだろう。  軌道には決して投入されない模擬衛星実験や高層気球でも衛星と混同するような説明の文章をたまに見かける。(これは英語でも見かける)、広報媒体で採用される言葉には公報用語的な飛躍が見え隠れすることも多いので、さらに混乱を招いているかもしれない。  話を交わした中で、特徴的な誤解には以下のようなものがあった。 ・ロケットが打ちあがった姿でそのまま回っている ・地上から昇っていく ・静止衛星の一種 衛星の立場から見て、上の誤解の中でやや懸念したのが、「地上から昇っていく」という認識だった。 実際には第一宇宙速度を稼ぐロケットがあってはじめて、衛星は軌道を巡ることができる。 ウェブではしばしば高高度気球がバルーンサットと紹介され、そこに載せた搭載カメラのHD映像が大手ブログサイトなどでも取り上げられて結構有名になった。 メディアの書き方をみると、気球と衛星を混同している人は結構いるらしい。 ということで、低軌道衛星というものはどうもスルーされている気がする。(その事実...

続、FemtoCube電力管理 (SCP1000とプリスケーラ編)

お散歩デバッグ 引き続き、SCP1000の制御とATmega328p自体の電力を下げる方法を探る。SCP1000はArduinoIDEのSPIライブラリでサンプルスケッチとして載っているので、それを使った。 バグ情報などを参考にして、若干修正している。このソースではDREDYピンをタイミング監視用に使っているようだ。 SCP1000-D01の読み出し SCP1000は通常でも25μAと省電力だが、垂れ流し状態の連続取得モードではなくトリガ読み出しを行う。使わないときは待機していてもらえると助かるので。 このモードを使うためには, ・オペレーションレジスタ(0x03)に0x0cを書き込む               or ・TRIGピンにパルス入力を入れる (from SCP1000データシート 2.2.2 Measurment mode selection) という2通りがあるようなので、オペレーションレジスタの方を試した。オリジナルがすでにメインループの先頭で高速読み出しモードに設定しているので、設定値を0c に書き換える。あとは一連の処理を関数化しておいた。ちゃんと動いている様子。 他のセンサと読み出しタイミングを揃えなくて良ければ、TRIGピンは省略できそうだ。 (空きIOピンが1本増えた!)  この状態で電池駆動し、動作テストを試みた。 電車に乗って移動していたときの気圧変化が以下となる。(5秒周期のパワーセーブ) 気圧が下がれば高度は上がる。1000秒あたりで列車が地下に潜って、地下鉄を乗り継いで都心に出たので、いい感じに大深度地下を経由してる気がするような・・・  標準大気で「hPa]から高度[m]を出し、出発地の高度補正をかけてみた。 路線は途中から高架を走り、新宿あたりで地下に入って、それからどんどん潜って最後に似たような高度の目的地に出てくる。という感じだろうか。 時刻管理と他のセンサによる地点を推定する情報と自分の活動を示す情報が欲しい。 (歩数計かな・・・) もともとライフログ用途では作ってなかったから、これはまた別に検討したい。 プリスケーラ 消費電流削減のためにもともと8MHz駆動だが、さらにクロック分周比を変えてみる。ライ...

S9706の電源制御とFemtoCube電子系

 独立して動く回路では、周辺回路の電源を必要な時以外はOFFにすることで無駄な消費電力を削減することができる。  既にFMトランスミッタはコマンドで電波発信を止められるようにしている。 S9706はデータシートを読むと消費電流が10mAとある。 http://jp.hamamatsu.com/resources/products/ssd/pdf/s9706_kpic1060j10.pdf   これならAVRのポートでも駆動できそうなので、VccはATmega328のピンから取ることにした。 FemtoSatの回路は周辺機能全OFFで定常6mA程度(クロック8MHz) ここで期待通りON/OFFができているかどうか確認するため、回路の消費電流を測定することにした。 まずは、単純にソースの上端下端で電源ピンをHIGH/LOWしてみた。 FemtoCubeの回路自体はLチカだけさせている状態で6mA以下なのだが、そこでS9706が一旦ONになったタイミングから、突然データシートの4倍くらいの電流が流れ続けた。異常な数値だ。これに送信中のFMトランスミッタが加わると回路の消費電流は80mAを超える。 ・異常電流でもS9706の動作は問題ない。 前記事 ・S9706の電源OFFをやめると10mA程度で一定に。  消費電流は嘘をつかない。ということで、電源ピンをONにしないで起動してみたところ、データは届かず、やっぱり4倍の電流が現れた。どうも電源OFFにした時、データラインはそのまま放置してるのが問題だった様子。 とりあえず電源OFF時にS9706の全てのピンをLOWに落とすようにしたら、こんどこそはデータシート通りの消費電流が再現できた。単純なことだったね・・・ 読み出し時だけONなので、連続取得以外では消費電流はピーク値として扱えそう。 電子系の作り込み デモ用プロトタイプ の頃からすると、少し思想を変える。FMトランスミッタは乗っけておくけど、データ通信はXBeeに譲る。太陽電池で運用することを視野に入れたEM設計を進める。 現在の電流モード (3.3v時) ・待機 6mA ~20mW ・計測 10mA  ・電波送信 41mA 135mW...

1画素ドットカメラの実装

カラーセンサで実現したかったのは、1画素カメラ。 カラーピッカーとかスポイトのリアル世界版。 エリアでもなく、ラインでもない、ドットカメラ。 これで地球を観測したら、なにか有意義なデータとなるんだろうか。 理学系の人とかに聞いてみたいな。 個人的には青空の青さと、夕焼けの色を取得したいというモチベーションで載せている。 レンズ部:S9706、奥:NaPiCa ハードウェア ストラップ衛星に搭載したものを動かし、データを評価してみた。 秋月電子の取り扱うS9706はカラーフィルタ付きなので、赤外線の補正などはそれほど気にしなくて良いらしい。 ネットで見る応用例はロボットのボール認識、メディアアートなどの検討例が多い。  こちらは大雑把な空間の色を取得したいので、センサ面にはジャンクUSBカメラから取り外したフィルタ無しのレンズをシリコン充填剤で貼りつけている。 センサの消費電流は最大10mA程度とのことなので、AVRのピンから直接供給している。 これで測光時以外は電源を落とせる。 露光時間とAE S9706はゲート操作の時間で露光時間が調節できるので、環境光に応じたAEができるといいかもしれない。出力される12ビット値から、レンジの最大値に張り付いたり、最小値に近づいたりしたら露光時間を変えるという手が簡単そう。  AE制御をすると、色検出の精度は良くなるけど、定点で明るさを含めた時間変化を記録したい場合は、パラメーターを固定したほうがいいこともある。 快晴の青空が検出できる値に固定して、日没までの2時間、露出時間100ms固定で取得したデータはこんな感じになった。 日没2時間のセンサデータ変化(約1fps 100ms露光、高感度モード) グラフ色はRGBと対応させてある。各12ビットなので、普通のカメラに比べると表現が豊かということになる・・・ 赤と緑の成分はほぼ同じカーブで、青の波長だけが飛び出しているのがわかる。この時の空は快晴だったが、靄のせいで若干白っぽくなっていた。 モニタ上でRGBを合成してみると、白っぽい青になるので大体あってそう。 空の青さを測ることで、大気の透明度がわかるかもしれないな・・・  動作テストを兼ねて数日分のデータを取ってみたい。 夕焼けの影響が出るかとおもいきや、太...

地球の3DモデルをShadeで作る

あけましておめでとうございます。 宇宙機お絵かきと題して宇宙機をモデリングしてきたけれど、さすがにGoogleSketchUpだとフォトリアリスティックにも限界があるので、Shade12にモデルデータを取り込んでレンダリングすることが多くなってきた。  Shadeだと色々と可能性が広がるので、試してみたかったことの一つが地球の3Dモデルを作ること。いままでまともな画像を使って来なかった。がこれからはそれなりの背景を作ることで、宇宙機のモデリングも向上せざるを得なくなる作戦?だ。 色々と文献を漁ると案外簡単そうなので、適当に作ってみた。 だいぶ青っぽくなった。地球のモデリングは作者の地球観が出ますね 基本的には、任意の大きさの球体にテクスチャ(地表、海面/湖水面、バンプ、雲)を重ねて、いくつか反射に関する設定を行なっていく。 上の画像はまだパラメーター調整に改善の余地があるような気がしている。 オブジェクトは3つの球(地球表面、雲、高層大気)で構成されている。大きさは実際の高度差を意識して少しずつ違う。 3つそれぞれにテクスチャ、反射、透過設定をする。 地球表面は、テカテカ反射しない大地と、太陽光を反射する水面とで光沢と反射率を別に設定する(そのために白黒の海面マップを使う)。 山岳地帯などの凹凸はバンプマップを適用することで、大陸の凹凸が表現される。 雲レイヤは、2つ目の球体(地球表面の球体より少しだけ大きく作る)に貼り付ける。黒背景は透過する設定にする。 ちなみに配布されていたテクスチャは、地表と海面を見せるためか雲量は控えめだ。実際に近づけたい場合は、もっと増やされたマップを用意するといいかもしれない。 最後に一番外側の球体を作る。テクスチャはなく、半透明にして拡散反射光を青色にすることで、直下の雲と地表面が大気圏を通しているかのように見せる。 テクスチャを提供するサイトはいくつか見つけた。NASAの観測データを加工したもののようだ。 今回は下記のサイトのデータ(8Kサイズ)を利用している。  http://www.shadedrelief.com/natural3/index.html ISSで撮影された画像などを参考に、もっと実際の見た目に近づけてみたい。 まずは海の色からかなあ・・・ もっと黒っ...

宇宙機お絵かき QFH NanoSatellite

QFHアンテナは半球状の領域でまんべんなく電波を捉えることが出来るので、衛星のように移動して偏波面の変化する電波源を捕えるには丁度よいとされる。( 自作してみた記事 )NOAA衛星の気象ファックス画像を受信するのに使われるけど、実はNOAA衛星本体にもこのアンテナが搭載されてたりする。 いつものように、衛星そのものに載せてみたらどうなるのかということで、モデリングしてみたものがこちら。 430M帯で設計するだと、ギリギリCubeSatにも搭載できそうな大きさになる。 螺旋状のエレメントが飛び出す形 びっくり箱方式 十分にかっこいいが、 (某衛星に似ているのと) 姿勢制御は面倒なので沿磁力線制御のみとしたい。このままではアンテナ側が地球指向するための制御が必要になるが、簡単さを求めると姿勢制御は永久磁石くらいに留めたい。となれば解決法は一つ・・・ DNA! かくして、上下面から飛び出したQFHアンテナにより、只者ではない外見と無指向性を手に入れた。残りのスペースで衛星の動作を行わなくてはならないけど、最近は1Uでも設計次第でかなり空間が余るというから大丈夫だろう。 そもそも、ほとんどのCubeSatはモノポールアンテナやダイポールで済ましている。こうした単純なアンテナは方向によって送受信感度が落ち込むポイントが生まれるのだが、そこは地上局側を高出力/高感度にすることで、感度が落ち込んでも十分通信可能な回線設計がなされている。 ちいさな衛星にとって、QFHは採用するほどの利点があまり無かった(完) (見た目以外に)無指向性を獲得して得られるメリットとしては、衛星の姿勢を考慮せずに済むことと、地上からほぼ一定の感度で電波が得られそうなことだろうか。 電波強度を測定するのに向いている気がする。 たとえば、世界中の430MHz帯の電波強度マップを作るといった業務が行えそう。それから気象ブイ等のテレメトリ収集だろうか。 アンテナそのものがミッションになるような用途だ。 以上お絵かきでした。

CMOSセンサ+FIFOカメラ

カメラを搭載する用途は結構いろいろ存在する。気づいたらそっち系にまで手を出していたので、最近調べた部品や、おもしろそうなパーツをまとめてみる。 用途は衛星(うぐっ)やローバーなどの小型ロボット機(1リットル以下)とする。 JPEGカメラは当然ながら取得できるのはJPEG圧縮画像だけで、撮影間隔も最短で数秒かかる。ほんとに撮影だけなので画像を処理するには向いてない。 http://www.electronics123.com/s.nl/sc.8/category.207684/.f CMOSセンサと処理系をつなげて作る 取り込み速度を落とすため、FIFOバッファが必要なことがある。今FIFOバッファメモリを売ってるところは少ないので、FPGAとRAMで同じ事を実現する例も多い。 FIFOメモリ付きCMOSカメラモジュールというのもあった。 http://csun.co.jp/SHOP/2011102801.html OV7670や7725などにAverLogic社のAL422Bがついている。380kBなので、解像度がVGAだったらRAWフォーマットで一枚収まるかどうかというところ。 FIFOさえ付けば、あとはゆっくり取り込んでいってね、ということで、無理のない所ではSTM32でfsmcバスを使うとか、撮影だけならCortex-M0で省電力にとか。 CMUcam3 FIFOバッファを使ったオープンソースの画像認識モジュールで有名なのがCMUcam3。(らしい) http://cmucam.org/ センサはちょっと古めだけど、ARM7TDMIコアのLPC2106(48ピン 64kRAM 60MHz)とAL440が付いている。色々と画像処理が行える様子。サーボ端子もあるので、このままボールを追うロボットが作れる。 ちょっと古いのと高いのが難点。 (ちなみにCMUcam1,2はSXマイコンをセンサに直結してクロックの力技で画像認識してるのでこれもまた面白い) Cortexになってからは足の数とクロックなどのCPU周りの規模がだいぶ住み分けが進んでいるけど、ARM7なLPC2106はこの用途に丁度よい規模&性能な気がした。  (LPC2000シリーズというと日本では09年の付属基板が有名だけど、あれはでかすぎ...

MSP430LaunchPad

世の中色々なマイコンがありすぎて、ビビっているうちにArduino使いになってしまっていた人です(ロボットの機構に集中できたので許してください・・・) ・・・と言いつつなんだかんだでひと通りのMCUを 積んで 試してきたわけですが、そんな部品箱にとうとうMSP430が仲間入り。 500円ちょっとでこのボリューム TIが出す16ビット低消費電力マイコンとその開発キット。ちょっと前からArduinoも真っ青な低価格で売ってました。TIのボードはみな真っ赤なのか・・・。 http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)/ja 本家ではピンヘッダを基板に取り付けるらしい?(某ボードの影響がここにも) 28ピンか、さもなければ100ピンなMCUばかり扱ってきた感覚で見ると、14ピンDIPの見た目はロジックICみたい。バリューラインとよばれる14/20ピンのラインナップはこのボードで開発可能とのこと。 性能的な対抗馬はPIC24で、RAMとROM容量はPIC16やATtiny2313を彷彿とさせる。特徴としては、温度センサ内蔵機種がある(キットの型番2231は温度センサ内蔵)ということ。消費電力はμアンペアオーダー。 買った段階ですでに電源をつなぐとLEDが点滅し、ボタンを押すと温度測定するプログラムが動作する。 恐ろしいことに5cm衛星用に作った太陽電池(5V5mA)を直結しただけでも動く。数百ルクスの室内でも動作していた。 開発情報も見やすい・・・ http://www.tij.co.jp/product/jp/msp430g2231 値段的におまけで買ってしまう範囲ではあるものの、試す気が起きたのは、海外のCubeSatではMSP430がけっこう採用されているという事実。PICと何が違うのだろう・・・という疑問が買うきっかけだったり。 パッケージにロケットが書いてあるし!(違 これはロケットに(ry 方向性としては、エナジーハーベスト電源と組み合わせた超低消費電力のデータロガーやロボットの制御向け・・・だろうか。 このコンセプトを突き詰めると、バリューラインではないものの、ROM/RAMを 総FRAM化した  フラ...