2009年03月13日 [ColdFire] ColdFire×P2P地震情報(11) 改めて,ノイズを見る: 24時間(1)
_ [ColdFire] ColdFire×P2P地震情報(11) 改めて,ノイズを見る: 24時間(1)
Interface 9月号付録基板を使い,P2P地震情報のサービスを作ってしまう勝手な企画です.過去の記事は,タイトルのColdFireカテゴリからどうぞ.
24時間サンプリングをやってみました
あまり時間がないので,FFTスペクトラムの画像だけ放り投げ.
FFTスペクトラム画像(PNG, 854KB, 1564x840)
測定データ
- 2009/03/11 21:00 〜 2009/03/12 21:00
- ColdFire基板 加速度センサ 全軸データ(画像はX軸のみ)
- 293.3Hzサンプリング
測定環境
- 天気は晴れ,午後には基板に日差しが当たることも
- 周辺温度が上昇しやすい.
- 温度は測定せず.過去に温度計を使っていた経験からすると,今回は最低12度〜最高22度ぐらい
- 基板 / 輪ゴム / 床 (基板 on 輪ゴム on 床)
- ACアダプタは LTE 101U-A320,交流周波数は60Hz(西日本)
- 電源ケーブル両端にフェライトコアを1つずつ取り付け
送信部
- telnet接続→ InitAd(0x70) → 下記プログラム(U_Fwd::main)
- 送信されるデータはバイナリ,16進数表記で次のようになる.
- XX XX YY YY ZZ ZZ 0D 0A
- XX XX 〜 ZZ ZZ は各軸データの2バイト整数値
- 0D 0A はCRLF(改行)を示すが,特に意味はない
- ビッグエンディアンであるから,コンピュータ側の処理に注意すること.
- XX XX YY YY ZZ ZZ 0D 0A
main() { char soc,*ctr;ctr=0x40190000;int *dat;dat=0x40190012; int *sd=MemoryAlloc(8); soc=CreateSocket(0);if(soc<0){PrStr("S!");return;} Bind(soc,6909,0);sd[3]=3338;PrStr("MARIO START!\r\n"); for(;;) { *ctr=32; sd[0]=dat[4]>>3;sd[1]=dat[5]>>3;sd[2]=dat[6]>>3; SendTo(soc,<IP Address>,<Port Number>,sd,8); SystemSleep(); } PrStr("GAME OVER\r\n"); CloseSocket(soc); }
解析部
- いったんリトルエンディアンに変換し,ファイル保存
- 各軸2バイト,計6バイトのデータと,1日の経過秒数を示す4バイト整数値をあわせて記録.
- AudacityでRawデータとして読み込む.
- Signed 16 bit PCM, リトルエンディアン, 5 チャンネル, 293 Hz
- 経過秒数を示す2チャンネル(4バイト)は削除.
- FFT 4096でスペクトラム表示.