FC2ブログ

夜行虫無線局を開局する

ちょっと前と言うかかなり前と言うか、無線局を開局したので…

最近は携帯電話が普及したので、無線機で会話する事って少なくなりました。とは言ってもひっきりなしに会話をする時や車同士で会話をする場合にはやっぱり無線機の方が便利なことが多いです。私が星の撮影に行く時に良く一緒に行く人が無線をやっているので、私も真似をして無線機を購入してみました。
P4030001.jpg
購入したのはStandard(八重洲)のFT-60という最大出力5Wのハンディ機です。使っていて判明したのですが、コイツのマイクの端子がすぐ抜けかかってしまい、そうなると無変調の電波が出っ放しになるという重大な欠陥があります。私は太い輪ゴムをジャックの所に巻いて、抜けないようにして使用しています。

ところで、アマチュア無線で電波を飛ばすには二つの免許(免状)が必要です。一つは無線従事者免許で、良く、○級アマチュア無線技士とか言われる奴です。私は三級アマチュア無線技士の免許を持っていますが、無線機を買って電波を出すにはこれを持っているだけではできません。そこで必要になるのが無線局免許状です。この二つが揃って初めて電波を出すことが出来るようになります。無線局免許状は総務省に申請を出して審査が通れば交付されます。申請はインターネットで出来ます。できるのですが、これが意外と面倒です。電子納税(e-tax)程ではありませんが。まず、開局する無線局・無線機の情報を記入して申請を出します。するとしばらく審査中というモードになりますが、これが結構長い。私の場合は2週間近くかかりました。審査が無事に通ると手数料納付待ちというモードになります。審査が通るとメールで通知が来ます。この時は2,900円をpay easyにて支払いをしました(電波使用料の支払いも後で来ます)。免状の受け取りは、直接取りに行くのと郵送があるのですが、無線機を使用したい日が間近に迫っていた為、郵送ではなく直接取りに行くのを選択しました。

無線局免状
これが免許状です(個人情報の部分は割愛してます)。基本的に電波を出す場合はすべてこういう免状が必要なのですが、携帯電話は必要ないですよね?実は、携帯電話の電話会社には必要な従事者免状を持っている人がいて、携帯の台数分の無線局免状が(まとめて)有るんです。私が先ほどのような無線機を使う場合は、周波数を変えたりアンテナを取り換えたりなどが自由にできますが、携帯電話ではそれは認められていません。なので、携帯電話を使っている人は無線機の操作をしているとはみなされないのだそうです。

私は知らない人と無線で会話をするという事は無いと思いますので、JARLにコールサインを登録するなんてことはしていません。
スポンサーサイト
line

気圧計測のその後(第3報)

前回の書き込みからずいぶん時間が開いてしまいました。

昨年11月からLPS331APで気圧を計測し始めてから9か月ほど経ちました。これまで出してきた誤差の傾向は、センサー温度が低い時には高めの気圧を出し、センサー温度が高い時には低めの気圧を出してくる傾向が有りました。ただ、測定開始以降はずっと寒い時期でしたので、低い温度のデータはかなり豊富に得られていましたが、最近になってやっと高い温度域のデータも溜まってきたので統計を出しなおしました。

以前も書きましたが、気圧を測っている場所の「正確な」気圧値は不明です。なので、気圧を測っている気象官署のデータから推定する事にします。当方の住んでいるつくば市は、ちょうど気象庁の東京と水戸の気象台を結ぶ線上にあります。ですので、両地点の気圧差から距離で比例配分してつくばの気圧を推定してこれを仮の真値として扱います。

誤差150716
Y軸のプラスはLPS331APの方が実際の気圧より高い値を出していることを表します。黒の曲線は2次多項式を当てはめたものですが、十分近似できていると思います。誤差の近似式は以下のようなものになっています。

測定誤差=0.004100893×t^2 - 0.258780317×t + 3.644061583  (t=センサー温度(℃))


これで計算される誤差をLPS331APの測定値から引いてやると正確な気圧の値になります。

上記回帰式で得られた気圧の値と東京-水戸の気圧から推定したつくばの気圧との差(≒残差)の分布は下記のようになります。
残差150716
(母)標準偏差は0.25hPaとなりますので、およそ95%の測定値が±0.5hPaの精度で求まっていると推定されます。

line

気圧計測のその後(第2報)

LPS331APで気圧の計測を始めてから2か月余りが経過しました。水戸と東京の気圧からつくばの気圧を推定して、観測された値と比較することもその間ずっと続けて来ました。

誤差推移141215
開始直後から20日間程はだらだらと測定値が大きめになる方向に推移していましたが、その後はほぼ横ばい状態となりました。しかし、11月の中旬頃から誤差の分布が振動するようになってきました。これは気圧の測定をRaspberry PiからBeagle Bone Blackに移行し、計測場所を北側の窓の下に移したためと考えられます。それ以前は太陽光発電の電力を計測する測定器のケースの中で測定していました。その為、かなり温度が高い場所ではありましたが、それなりに一定の温度を保っていたようです。しかし、引っ越し後は気圧センサーを単独でケースの中にしまうようにしましたので、室温の影響を大きく受けるようになりました。しかも北側の部屋なので、最近の早朝の室温はかなり低くなっています。
そこで、センサー温度と誤差の関係を調べてみることにしました。

Ts-r.png
するとこのようにかなりきれいな関係があることが判りました。センサー温度が低いと気圧が高めに計測されるような傾向が有ります。2次の多項式を当てはめてみると

E = 0.0038*Ts^2 - 0.2521*Ts + 3.6521

というものになります(Tsはセンサー温度(℃))。残差の分布を見てみると

zansa141215.png
ほぼ±0.5hPaの範囲に入っているようです。補正をしないと時には2hPa以上も誤差が出るので、気象の観測に使用するには誤差の補正は必須とみて良いでしょう。



2015.03.04追記
最新のデータです
Ts-r150302.png

zansa150302.png

センサー温度と誤差の関係式は

E = 0.003497027*Ts^2 -0.245028502*Ts + 3.561234972


となっています。
line

Beagle Bone Blackで遊ぶ

気圧計に続き気温の観測もしようと思い立ち、センサーその他を買いに秋葉原に出かけました。

秋月電子の店頭で見かけたBeagle Bone Black。つい買ってしまいました。
DSC5027.jpg
Beagle Bone Black(以下BBB)はRaspberry Piと同じようなシングルボードコンピュータです。Piよりは若干性能が上との事。値段もPiよりは高めです。秋月では6500円で販売していました。米国では$55で売られているようですから、割とまともな値段設定なんじゃないでしょうか。

DSC5022.jpg
これがBBBのボードです。見てわかるように、Piに比べるとIOピンの数が大幅に増えています。Piにはなかったアナログ入力(A/D)も備わっているようです。

Raspberry Piと大きく違う点は、PiがSDカードにOSを書き込む作業をしなければ起動できなかったものが、BBBの最新のRev.Cでは4GBのフラッシュメモリにDebian Linuxが起動可能な状態で書き込まれていること。電源を入れればすぐ起動するというのは大きいですね。

BBBを附属のUSBケーブルでPCに繋ぐと、BBBがUSBディスクとして認識されます。

share.png
このフォルダーを開くと

folder.png
こんな感じの中身になっております。この中のREADME.htmを開くと

readme1.png
こういうページが現れます。BBBの機能について書かれていますが、ちょっと説明書きが古いかも。このページの中に

driver.png
BBBの為のドライバソフトをインストールするためのリンクが出ています。ここから自分のPC用のドライバーをダウンロードしてインストールすると、BBBがUSBで繋がったネットワークインターフェイスとしてセットアップされ、192.168.7.2というIPアドレスでBBBにsshを使ってログインすることが出来るようになります。また、USBに変換されたシリアルポートとしてもアクセスでき、tera termなどでcomポートからもログインすることが出来ます。このように、Raspberry Piで割と敷居が高かった最初のインストール作業がBBBではほとんど必要ないというのは特筆すべきだと思います。

USBからネットワークで繋がっているhttp://192.168.7.2にブラウザでアクセスすると
bb101.png
こんなページが表示されます。BBBでは、Bone ScriptというJavascriptを使って、ブラウザからIOピンなどの入出力がコントロールできるようです。その為のスクリプトを打ち込む窓がこのページ内にあります。
bb101_2.png
この窓の中にはスクリプト例が予め表示されていますが、自分で書き換えることも可能です。初期表示のままrunを押すと、ネットワークポートの横に付いている4個の青のLEDが2秒間点きっぱなしになります。Bone Scriptは例えば

#!/usr/bin/node

var b = require('bonescript');
var led = "USR3";
var state = 0;

b.pinMode(led, 'out');
toggleLED = function() {
state = state ? 0 : 1;
b.digitalWrite(led, state);
};

timer = setInterval(toggleLED, 100);

stopTimer = function() {
clearInterval(timer);
};

setTimeout(stopTimer, 3000);

みたいなファイルを作成しLinuxのシェル環境からも実行可能です(これはDEMOで入っていたプログラムです)。Lチカだけでなく、A/D変換までこれで可能みたいです。

ちょっとBBBを気温測定専用機とするには勿体ないのですが、BBBの練習を兼ねて気温の観測装置を作ってみようと思います。

BBBはSDカードにOSを書き込んで使用することもできますが、フラッシュメモリーに入っているOSもそのままで十分使えるものです。今回はこれをそのまま使用することにします。

まずネットワークですが、無線LANのドングルを刺して使用することにします。私の家の無線LANの場合、/etc/network/interfacesに以下のように登録する必要がありました。

auto wlan0
iface wlan0 inet dhcp
wireless-essid SSID
wireless-key s:パスワード

また、DHCPで繋ぐたびにアドレスが変わるとログインするのに苦労するので、MACアドレスをDHCPサーバに登録して固定したIPアドレスが割り振られるように設定しました。

データの保管場所はフラッシュメモリーに書いてしまうとメモリーの寿命を早めたりデータの取り出しに苦労したりしますので、Raspberry Piで気圧のデータを格納している外付けディスクをNFSマウントして使用することにしました。サーバーの方のRaspberry PiでSambaを動かせばWindowsからでもデータの参照が可能になります。また、データの測定には時刻が非常に重要です。コンピュータに内蔵されている時計は誤差が大きいので、長期間使用していると時計のずれが無視できなくなってきます。なので、NTPを使用して常に時計を補正することにします。NTP serverにはもちろん以前作成した自前のstratum 1のサーバーを筆頭にしておきます。(注)

気温のセンサーは秋月電子でADT7414というI2Cで接続できる16bitのセンサーモジュールを買ってきました。
M-06675.jpg

BBBのピンアサインですが、下図のようになっています。
cape-headers.png
I2Cの信号線はP9の19、20ピンにそれぞれSCL, SDAが出ているようです。その他、GNDとVDDの3.3Vを引っ張り出すようにして作ったのがこれです。
DSC5024.jpg

ADT7414はアドレス決定のジャンパーをすべてオープンにしましたので、アドレスは0x48となります。BBBから見えるかどうかテストしてみます。

root@beagle1:~# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

ちゃんと0x48にセンサーが見えています。

ADT7414は連続的に測定できるモードも備えていますが、計測は1分おきくらいですので、ワンショットモードで計測することにしました。ワンショットモードでの計測開始と16bitモードで測定する設定にするためconfiguration register(0x03)に0xa0を書き込み、status register(0x02)の最上位ビットが0になるのを待ちます。0になっていれば計測が完了しています。計測結果は0x00にMSB、0x01にLSBが16bitの2の補数形で格納されています。

root@beagle1:~# i2cset -y 1 0x48 0x03 0xa0
root@beagle1:~# i2cget -y 1 0x48 0x02
0x00
root@beagle1:~# i2cget -y 1 0x48 0x00 w
0xd60b
root@beagle1:~# i2cget -y 1 0x48 0x02
0x80

リトルエンディアンなので得られた0xd60bをスワップした0x0bd6を10進に変換すると3030になります。これを128で割ると摂氏の温度になります。 この例の場合は 3030÷128=23 となり、23.0℃となります。因みに、status registerは測定結果を読み出すと最上位ビットが1に変化します(最後のi2cgetの例)。

とりあえず気温を計測してファイルに記録するプログラムを作ってcronで1分おきに起動することにしました。Linuxですから、例えば温度が閾値を越えて高かったり低かったりしたらメールを送るとかが簡単にできてしまいます。さしあたり「今日は寒いぞ」メールを携帯に送ってみるとかをやってみようかな。

2014.11.8追記:
気圧計のセンサーもBBBに移してきました。その為、今までは気圧の海面更正を後処理でやっていましたが、それが気圧の計測と同時に出来るようになりました。
20141107.png
気圧のグラフに重ねて気温のグラフも毎日自動で作成しています。

(注)
BBBにはRTCが内蔵されていないので、起動時には時刻がリセットされて2000年1月1日になってしまいます。ネットワークI/Fをアップする時にntpdateが自動的に走って時刻を合わせるようですが、その後に起動するntpがタイミングの関係でうまく動かないようで、起動スクリプトの中に30秒のsleepを入れなければなりませんでした。

2014.12.9追記
ADT7414での測定から、SHT21という湿度も測定できるものに変更しています。SHT21はローダブルモジュールが最初からDebian wheezyに含まれていますので、一々i2cgetを呼ばなくても温度・湿度を取得できます。

/etc/modulesに
sht21
という1行を追加して再起動すればOK。使用宣言として

# echo sht21 0x40 > /sys/class/i2c-adapter/i2c-1/new_device

とすれば、

# cat /sys/bus/i2c/drivers/sht21/1-0040/temp1_input

で気温読取、

# cat /sys/bus/i2c/drivers/sht21/1-0040/humidity1_input

で湿度読取です(共に1000倍された数値が帰ってきます)。

グラフの方は、今までの気圧のグラフに加えて、気温と露点温度(湿度と気温から計算)を重ねて描いています。
20141209.png
青が気圧、赤が気温、水色が露点温度です。本日18時頃に露点温度が急変しました。前線か何かが通過したのかな?これがちょっと珍しかったので追記をしてみました。
line

LPS331SAその後

12日から計測を始めてかなりデータが揃ってきました。

誤差推移
気象庁水戸と東京の気圧から推定したLPS331の誤差の推移です。12日から一貫して小さくなってきました。これはエージングとみても良いのだろうか? ここの所は大体-0.3近辺をうろうろしています。誤差が一定であれば多少絶対気圧の測定に誤差があっても補正できるのですが、なかなか一定してくれません。

最初の頃は気圧と誤差は関連があるかも知れないと思って
T-E.png
気圧と誤差の分布図などを作ってみましたが、その関連性は無いようです。

前のページに、現地気圧を海面更正するには気温の値が必要であると書きました。上の補正ではアメダスのつくば観測点の気温を使用しています。多少距離がありますが、標高はほとんど我が家と同じなのでそのまま使っているのですが、気温も計測の対象として加えたいところです。しかし、一口に気温の観測と言っても結構難しいのです。直射日光が当たる家の南側ではほとんど正確な値が期待できません(気圧計は南側の窓の脇に設置しています)。北側の窓の近くにもう一台Raspberry PIを設置して無線LANで計測値を飛ばそうか… などと色々思案している所です。

2014.11.8追記:
11月8日までの推移です。
誤差推移141108
+0.5~+0.7程度の所で一定になってきたような気がします。最近になって暴れ方が変化した理由は謎です。データが暴れ出す少し前に、計測をRaspberry PiからBeagle Bone Blackに移したのですがその影響もあるのかも知れません。

line
line

line
プロフィール

夜行虫

Author:夜行虫
夜行虫とは天体撮影等、夜に出歩くのが多いことから名づけました。夜光虫の誤変換ではありません。海に潜ったり温泉浸かったりも趣味です。

line
最近の記事
line
最近のコメント
line
最近のトラックバック
line
月別アーカイブ
line
カテゴリー
line
ブログ内検索
line
RSSフィード
line
リンク
line
ブロとも申請フォーム

この人とブロともになる

line
sub_line