山本ワールド
加速度ロガー
概要
ある機械(アーム)の動作頻度と動く量を2日程度計測するために、PIC18Fを使用した加速度ロガーを開発した。
1秒に1回加速度をサンプルし、224回サンプルすると日時データを合わせて256ByteをEEP-ROMに書き込む。
128kBytesのEEP-ROMを2個使用しているので、224*(4*65536/256)=229,376秒 2日15時42分56秒間のデータを保存できる。
クロックはUSB-IOで接続済みの12MHzのセラミック振動子を使用しPLLで4倍にしている。書込みはPICKit3を前提とする。
保存されたデータはRS-232Cを介してパソコンへ取り込める。
ROMの容量の関係で日時の修正機能はパソコンからRS232C経由で設定する。
電源は単3のニッケル水素電池(1800mAh)4本を使用した。(写真は乾電池を使用しています。)
屋外で使用するために100円ショップで購入したプラスチックケースに格納し蓋にビニールテープを巻いて防水しました。(写真は撮影のために蓋を外しています。SDカードコネクタが写真に写っていますが、電気的に接続していません。)
初期メニュー
加速度ロガーを起動すると液晶に下記のメニューが表示される。
希望の内容が表示されたらSW0を押すと選択される。
SW0:RUN SW1:next loggerSW1を押すとメニューが切り替わる。
希望の内容が表示されたらSW0を押すと選択される。
ロガーモード
SW0:RUN SW1:next logger
モニターモード
SW0:RUN SW1:next monitor
日時表示
SW0:RUN SW1:next clock
バッテリ電圧表示
SW0:RUN SW1:next Battery
省電力モードに移行 再起動は電源を入れなおす
SW0:RUN SW1:next power off
ロガーモード
液晶に下記の内容が表示される。
SW0を長押しすると計測を終了し初期メニューに戻る。
SW0:RUN SW1:next Push -> Startロガーを開始させる時SW0を押すと計測を開始する。
SW0:RUN SW1:next Push -> Start計測中は、液晶に例えば下記の様に表示される。
X-0009 13/09/22■ 00000 18:13:38X-0009はX軸の加速度、2行目の最初の5文字は、現在選択されているEEP-ROMの先頭アドレス、日時と時刻の表示、右上の四角はバッテリの電圧を表している。
SW0を長押しすると計測を終了し初期メニューに戻る。
モニターモード
RS232Cでパソコンと接続する。専用ソフトにより計測データを取り込める。またターミナルによりEEP-ROMの読み込み、日時の設定を行える。
パソコン側は下記の設定にする。
パソコン側は下記の設定にする。
ボー・レート 19200 データ 8bit パリティ 無し ストップ 1bit フロー制御 無し
コマンド
ターミナルで接続した場合下記のコマンドが使える。dihex [アドレス]
I2C EEPROMより指定アドレスを先頭とする256バイトのデータを読み込みIntel HexフォーマットでRS232Cに送信するdate 年 月 日
指定された日時で時計を設定するtime 時 分
指定された時刻で時計を設定する 秒は0で設定されるq
RS232Cモニターを終了し初期メニューに戻る日時表示
日時が表示される。日時が間違っていればモニターモードで日時を修正する。
13/09/22 18:29:07SW0を押すと初期メニューに戻る。
バッテリー電圧表示
日時が表示される。日時が間違っていればモニターモードで日時を修正する。
SW0を押すと初期メニューに戻る。
Battery ■ 05094mV右上の四角はバッテリの電圧を表している。 電圧が4V~4.8Vまで四角の高さで表示している。
SW0を押すと初期メニューに戻る。
省電力モード
PICを省電力モードにする。電源を切断することが可能となる。液晶には
Power Offと表示されている。
回路図
プログラムの説明
ソースファイル
以下のファイルと付帯するヘッダーファイルで構成されているmenu.c ・・・ メインプログラム logger.c ・・・ 計測部 1秒置きの割り込み処理 mon.c ・・・ モニター rtc.c ・・・ RTC関係 sw.c ・・・ タクトスイッチ adxl345.c ・・・ ADXL345 i2c_ex.c ・・・ I2C i2c_eep.c ・・・ EEP-ROM lcd.c ・・・ 液晶モジュール
ソースファイルのダウンロード alogger.zip
RS232Cによりロガーに保存された加速度データを読み出すプログラム
以下の2つのプログラムを併用することによりCSVファイルでデータを取り出すことができる。
プログラムはEEP-ROMの生データをそのままインテルHexフォーマットとバイナリ形式で保存するプログラム aread104
インテルHexフォーマットとバイナリ形式よりCSVファイルを作成するプログラム aconv102
ソースファイルのダウンロード aread104.zip
プログラムはEEP-ROMの生データをそのままインテルHexフォーマットとバイナリ形式で保存するプログラム aread104
インテルHexフォーマットとバイナリ形式よりCSVファイルを作成するプログラム aconv102
aread104
RS232Cでパソコンと接続し、ロガーをモニターモードに設定後aread104を実行する。COMポートの一覧が表示されるので接続されているCOMポートを入力するとlogger.binとlogger.hexが作成される。ソースファイルのダウンロード aread104.zip
aconv102
logger.binとlogger.hexから例えば以下のようなCSVファイルを作成する。13/10/1 0:41:36,0.00,-1 13/10/1 0:41:37,0.00,-1 13/10/1 0:41:38,0.00,-1 13/10/1 0:41:39,0.00,-1 13/10/1 0:41:40,0.00,-1 13/10/1 0:41:41,0.00,-1ソースファイルのダウンロード acond102.zip
Copyright (C) 2012 山本ワールド All Rights Reserved.