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

投稿

Leonardにプロトシールドを乗っけてみる(2012/07)

 Arduino Leonardを手に入れてまず書いたのは、Keyboard関数でSkypeチャットに定型文を自動POSTするスケッチだった。 案の定5分で飽きた。   送信間隔をランダムにすれば完璧だっただろう。 普段のログ見返しても、驚くほどバリエーションが少ないものだからつい…  普段はスタンドアローンで動作していて、時たまPCにつなぐとExcelに直接ログを出力する気象センサとか、そういう方向性はありかな、と思った。 ところでUNO R3とLeonardはピン配列にすこし変更がある。デジタルピン側にI2Cが引き出されている。と言うことは既存のシールドでI2Cを使うものはそのままでは使えない。 どうしたものか。 電源とアナログポートは増えたヘッダもそのまま使えるが… デジタル側は後ろに追加されたI2Cも使いたいと思うとこうなる。 I2Cも含めて引き出したかったので、ドリルで穴を開けて、ピンヘッダの端子を横のスルーホールにスズメッキ線で留めた。  そのうちLeonard対応のシールドが出てくることだろう…。              白のシールドと、裏面の印刷の白が映える。  UNO、Leonardと版を重ねるに連れ、PCBの見た目は確実に綺麗になってる。

FCDとRTLSDRの周波数補正

FunCube DongleやRTLSDRはどちらもチューナーに E4000を使っていて、癖が似ている。 どちらも初期状態だと430M帯で数k~数十kHzずれてしまい、衛星の信号を探すのはとても骨が折れる。  Funcubeで受かるはずの衛星をSDR-Radioで逃しっぱなしなので調べることに。 具体的にはお借りした高級SGでそのズレを調査してみた。  RTL編 RTL-SDR(RTL2832U+E4000)での周波数設定の範囲を調べたところ、59.6MHz~2200MHzまで設定できた。 ただし 300MHzと1200MHz付近は合わせようとするとPLLが外れる。この周波数をまたいでスイープしようとするとPLLが外れてしまう。  外れてしまったら、リセットしないといけない。ソフトを再起動するか、ドングルを一度取り外す必要がある。 SGで基準信号を出しながら調べる。受信側はGNURadio 改造したRTL2832U+E4000の素の状態で、この個体は100M帯で約-1Hz、430M帯で-6kHz、2G帯で-40kHz程度のエラーがあった。綺麗に傾きが出ている。   ACARS(131.25)で補正しても430帯でずれてたのはこのせいか・・・ FunCube Dongle pro編  FunCubeはSGに対して標準のFCHID+Spectravueで調べた。こちらでは上記グラフのような周波数エラーをFrequency Correctionという数字のボックスで補正できる。 初期値のままだとどんどんズレていって500MHzあたりで48kHz以上外へ抜けてしまうので、傾きを減らすとちょうど良い感じになった。  公式によると、 http://www.funcubedongle.com/?p=617 最近のFCD(v1.1版)であれば、FCHID のFreq Corrのデフォルト値が   999,885/1,000,000 (-115ppm)だった 場合は、 999,988/1,000,000 (-12ppm)に設定すると良いとある。      こちらのFCDもv1.1だったので、-12ppmにするとだいぶズレが小さくなった。  個体値を追い込むと-6ppmあたりがちょうど良さげだ。  Qt...

ジャンク学

中古屋のジャンク箱に詰まっているのはたんなるガラクタだが、物好きの眼を通せば、ラックの列は産業考古学の資料庫に変わる。 大都会の店舗では、天井まであふれんばかりのジャンク品が、今にも崩れそうな臨界状態を保っている。 箱には10年遅れの技術が捨て値で投げ込まれ、積み重なって地層を成している。地震が起きたら居合わせたくない場所だ。 ゴミと見分けがつかない状態でも、実際に壊れている機器は少ない。拡張カード、ネットワーク機器、iPodに息の根を止められたMD、アナログ携帯テレビ。 規格が終わるとき、機器の命は尽きる。  PSP/DS以前の携帯ゲーム機とROMカセットの山、スマートフォンに負けたデジタルカメラ、アンティークになれなかったフィルム式カメラ群。 かつては広く普及し時代を象徴したガジェットが 織りなす、作者不在の コーネルの箱 が、所狭しと並ぶ。 ここに実用性を求めるなら、製品本体よりも、周辺機器や電源ケーブル等を探すと良い。 しかし物好きは過去の製品を所有したい欲から逃れられず、齧歯類のごとく自分の部屋の片隅によりすぐりのジャンクの山を築いていく。  そのうち物欲の原始的衝動をうまく飼い慣らせるようになり、最低限の修理技術と、故障ではなく時流に置き去りにされただけの完動品を見分ける勘、製品史を頭に納めて、月に1度は狩りに出かける。 故郷にはネット以外にこれといって最新なものが無かった。 ヘッドの壊れたβデッキはすべてDIP部品で、はんだこてを覚えたころはそこから部品を集めるのが任務だった。作業に飽きて、ゲルマラジオのコイルを巻いては秋月の通販が届くタイムラグが待ちきれなかったあのころ。 最初は通販で部品を入手するほどの知識も教育も無かったこともあって、分解して回路に手で触れ、ショートさせて、壊してその限界を知るというプロセスを通すしか経験を積む手段が無かった。 家のガジェットやPCを分解して親を怒らせたり、単なる動作不良や紛失にまであらぬ嫌疑をかけられるよりも、中古屋のジャンク品コーナーの100円程度の製品を漁るほうが害が少ないと気づいてからは、goodのハンダごて片手にいろいろな製品のネジと中身を机に並べ、手触りや見た目、配線の巧妙さに感心して部品箱をいっぱいにしていた。 たまにマイコン工作で見かける石...

ソーラー目覚ましキーホルダー

キーホルダーサイズの模擬衛星を目指していたので、ここはひとつキーホルダーに収めてみようという試み。 150円で買えるソーラーLEDライトの筐体と太陽電池を流用した。 いま千石等で買えるカラフルなバージョンは、以前買った時とは違うロットらしく、中身はボタン型ニッケル水素3直3.6Vセルと、点滅制御の無いただのスイッチに変更されている。コイン型リチウム充電池を使っていた時よりはマシな選択になっているようだ。ニッ水セルはありがたく使わせていただこう… PIC12F1822をこれに押しこむのはそれほど難しくない。 だがプログラム用のISCPヘッダをつけると自由度が下がるので、今回はヘッダを付けず別の方法を選んだ。 中身 今はブザーと1.5Fの電気二重層コンデンサだけ。 センサやトランスミッタを搭載する余地を残し、まずはブザーをつけた。 太陽電池は逆流防止用にショットキーダイオードをひとつつけただけ。このケースが製品だったころと同じ方式。 省電力設定にしたので、ブザーとLEDを駆動する程度なら、5V1.5Fのキャパシタで満充電から、PICのBORで設定した1.9Vまで下がるのに3~4時間掛かる。 Arduinoで作ってた頃は電力確保で悩んだけど、最初から超低消費電力ならそういった心配も大掛かりな回路も要らない。 そして朝日とともに充電され、日没後数時間までブザーが鳴り続ける迷惑な目覚ましがここに誕生した。 フォトトランジスタや温度センサをつけて、もうちょっとインテリジェントな動作をさせよう…。 見た目はPICのブザー工作とかわりないけど、I2Cインターフェースのセンサ/メモリを繋げられるという拡張性もあるのが面白いところ。 もとはスイッチだった部分にPICを出した。これはプログラム書き込み用の配置。 秋月で売っているICテストクリップをはさむと、このように簡単に書き込みできる。 ブレッドボードでICSP用の配線が面倒だったので買ったけど、結構便利。 同じシリーズでは端子配置が共通なので、1823でもそのまま使える。

PIC12F1822のDSMを使ってみる

12F1822/16F1823 ここ数年PICはご無沙汰だったけど、別件で扱う必要が出てきたのに合わせて、拡張ミッドレンジのF1世代がおもしろそうだったので、手に入れて触ってみた。 DATA Signal Modulator 入手したのは8pinのPIC12F1822と14pinの16F1823 とても安い。 データシートを読むと、EUSART、SPI、I2Cなどひと通りの通信に対応している。 こうなってくると、少ピンなPSoC1とMSP430バリューラインの利便性に食い込んできてる気もする。 気になるのが22章にあるDATA Signal Modulatorという機能。説明を読むと、データ出力にキャリアー信号を合成してくれるらしい。 ・キャリアー(High/Low2種) ・データ信号 を用意することになる。それぞれレジスタが用意されている。 ・キャリアー信号源は外部入力/CCP1/リファレンスクロックが選べる。OOK(モールス)の時はHighだけ使うので、Lowキャリアーは入力をVSSにつなぐ。 ・データはUSARTのTX、MDBITレジスタの直接操作、外部入力が選べる。 設定によってはASK(OOK)、FSK、PSKが生成できるとある。 今回は試しにOOKを作ってみる。キャリアー1つで出来て、周波数を可聴域にすればブザーを鳴らせる…  ・DSMの出力ピンは1822の7番ピン/RA0/MDOUTピン。 ・CCP1によるキャリア生成 CCP1をPWMモードでDuty比50%の波形を生成する。設定は12F1822覚書というサイトを参考にした。 ・CCP1もUARTも外部出力ピンがあるけれど、DSMで使う信号について、外部ポート出力はMDCARH/MDCARLなどのレジスタでDisableできる。 ・リファレンスクロックによるキャリア生成 CCP1は簡単にできたのだが、12F1822にはひとつしか無いので、もう一つの信号源としてリファレンスクロックを使ってみた。  リファレンスクロックは128分周しかできないので、クロック1MHzでもちょっと周波数が高い。思い切ってシステムの動作クロックを31.25kHzにして、32分周した976HzをDSMモジュールに入力する。 省電力なので、5V...

horyu2パス 3エレ固定八木+rtlsdr

28日昼、真上を通る鳳龍弐号の信号とらえたパスのデータを解析した。上のウォータフォールは縦が時間で、およそ5分の間のドップラーシフト量が見えるように調整したもの。  まだrtl-sdr自体も周波数ズレを測定していないので周波数軸は目安です。 FM―CW―FM―CW(かすか)―FMというサイクルが見えると思う。 開始直後真横に走る信号は蛇行したノイズ。多分移動局の信号。 CWとFMで数kHzのずれがあるのかな・・? rtl-sdrも利得がとれていればそれなりに受信できることがわかった。 このとき自作八木アンテナは上に向けて固定して、指向性を減らすために半分の3エレにしている。 手動で振り回せばデコード可能な利得を得ることができるかもしれない。 1MHzの帯域で取ると、8ビット解像度といえど十数分でwavファイルのデータ量が1GB超えてしまうのがちょっと悩み。 運用のお供にSDR

蟹SDRで小型衛星を追う

RTL-SDRをつかって小型衛星を追ってみた。 最近打ち上がった鳳龍弐号が無事電波を出している。元気にさえずっていてとても受信しやすい。 超小型衛星運用の現場は意外と保守的で、SDRを活用しているという例はあまり聞かない。IC-910のようなリグを置いて、ドップラーシフトやローテータ管理をPCで行い、パケットはハードウェアTNCを通すという設備が多い。  自分が関わった時は全く違う理由で、導入された受信機がSDRとして使える機種だった。それ以来何かとSDRを軸にしている。 DJ-X11(I/Q出力可)、FunCube Dongle、そしてRTL-SDR。 最初のSDRはどちらかと言うとソフトウェアとの闘いがメインだった。フリーズした時やPLLロックが外れた時のウォータフォール画面を見分けられないと、重要な観測データが吹っ飛んでいることに気づかない。電波とは関係ない部分でだいぶ気を削がれる。 試行錯誤してやっと運用時の使用法を会得しつつある。慣れないときは従来通りの受信機と併用するのが一番安全。 SDRはレコーダーとして使う。取得中はパラメーターに触らない、など。 RFデータを再生しながらデコードを何度も試したりといった面ではかなりの威力を発揮する。得られたI/Q信号のwavファイルをあとから調理する感じだ。 RTL-SDR + HDSDRによる受信実験  WindowsでRTL-SDRを使用する場合、HDSDRがソフトとして使われる。 記録オプションにRFデータの生成があるので、I/Qデータファイルを記録するようにする。 パスの前に、予めドップラーシフト幅をOrbitronなどで出しておいて、SDRの中心周波数のノイズを避けつつ、HDSDRが保存してくれる帯域幅に収まる範囲で衛星の電波を記録できるようにする。 あとはパスが始まった時に記録を開始。LOSで停止させる。 衛星追尾は手元のハンディ機と八木アンテナ、方向指示用スマートフォンで行う。ハンディ機は受信確認に使えるので、実験の始めは信号をアンテナからSDRとハンディ機に分岐させた。お手軽な受信環境を試してここらへんに行き着いた。 受信装備 SDR受信PCは屋内に同軸を引きこんで直射日光を避けた。 ...