Technical Information/GR-CITRUS

Edit  

GR-CITRUS+WAMIKAN+TFTタッチシールドを用いたデータロガー

2018/03/31

GR-CITRUSにAdafruitのタッチシールドを接続し、GR-CITRUSのRTCとWA-MIKANのSDカードホルダを用いてタッチ入力IFを供えたデータロガーを作成しました。GR-CITRUSの最新のファーム V2.42に対応させたjabara用のファームを用いています。 このファームではRTCの補正機能を利用できるようにしました。

TFTc_Logger_02.jpg
 
Edit  

構成

 
Edit  

機能

  • ポート入力のデータログ機能(SDカード保存)
  • ログデータ表示機能
  • タッチ入力IF
  • RTC時刻設定機能
  • RTC時刻補正機能
  • RTCバックアップ機能
 
Edit  

使用方法

  • 下記リンクよりソースをダウンロードし、firmware_releaseフォルダ以下のソースでGR-CITRUS用ファームウェアをビルドしてください。あるいは、 firmware_developフォルダのバイナリをGR-CITRUSに書き込んでください。
  • GR-CITRUSのファームウェアv2.42をベースに変更を加えています。TFTcファームのバージョンは1.01を使用しています。
    WAKAYAMA.RB Board Ver.CITRUS-2.42(2018/2/18),TFTc-1.01,f4(256KB), mruby 1.4.0
  • 接続図・回路図
    TFTc_Logger_sch.PNG
  • 外観
    P1050078.JPG P1050079.JPG
 
Edit  

動作説明

  • 予めWA-MIKANのSDカードホルダにSDカードを挿入しておきます。
  • モバイルバッテリーとGR-CITRUSのUSBコネクタをUSBケーブルで接続し、モバイルバッテリの電源を入れると、自動的にプログラムが起動します。LCD画面に「Checking log file ...」と表示され、SDカード内のログファイルの検索が開始されます。しばらくすると、ログアプリの初期画面が表示されます。
  • 初期画面では「STOP」のタッチボタンがハイライトされています。RTCの時刻設定が行われている場合は画面最下行に日時が表示され、1秒毎に現在日時の表示が更新されます。時刻設定が行われていない場合は何も表示されません。
  • 必要に応じて、パソコンと接続して日時を設定します。本機とパソコンをUSBコネクタで接続し、ターミナルソフトを起動します。ターミナルより 下記コマンドを入力してrubyプログラムを起動します。
    R main.mrb
    上記のシーケンスの後起動画面が表示されたら、「SET TIME」ボタンを押します。ターミナルの画面に TIME> という文字のプロンプトが0.5秒おきに表示されますので、テキストエディタなどで予め加工した日時データを貼り付けます。フォーマットは以下のとおりです。
    YYYY/MM/DD HH:MM:SS
    2018/ 2/ 9 12:52:46
    スラッシュとコロンの位置で入力データの妥当性を判定しています。ゼロパディングしても受け付けますが、日時と時刻の間にスペースを挿入して下さい。
    時刻が正常に接続されると、入力したデータとRTCから取得した日時データがコンソール画面に表示されます。また、TFTタッチパネルLCDの最下行の日時が更新され、秒の更新表示が再開されます。
  • 監視する電気信号を、GR-CITRUSのポートに接続します。信号の種類(アナログ、デジタル)やポート位置はRubyプログラムで任意に変更できます。このサンプルプログラムでは3ピンと4ピンのデジタル入力をログしますので、監視対象の電気信号を接続します。動作サンプルでは4ピンにアクティブLの信号を接続しています。
  • 測定の準備が出来たら、「START」ボタンを押して記録を開始します。ログ画面をクリアした後、画面上部にログファイル名と「Now logging」の文字列が表示され、記録が開始されます。監視対象ピンの状態が変わると、画面上にログ記録が一覧形式で表示され、6秒ごとにまとめてSDカードに記録されます。
  • 測定中でも未測定の状態でも、「CLEAR」ボタンを押すとログ一覧表示がクリアされます。
  • 測定中に「STOP」ボタンを押すと、測定動作を終了し、測定待機状態になります。
  • 測定中でも未測定の状態でも、「EXIT」ボタンを押すとRubyプログラムを終了します。
 
Edit  

ライブラリの説明

  • GR-CITRUS向けTFTタッチシールド用ファームと内容は殆ど変わっていませんが、TFTc_clr()メソッドを使用しなくても、Rubyプログラム再起動時のリソース未開放による起動不可状態が生じなくなっています。(Rubyプログラムの互換性のためメソッドは残してあります)
  • RTC の補正機能を追加してあります。
    Rtc.deinit()
    Rtc.init(-20)	# RTC補正:10 秒毎に 20/32768 秒遅らせる
    Rtc.setTime([year,mon,da,ho,min,sec])
    GR-CITRUSのRTCは、個体差もあると思いますが1日あたり約5秒進みますので、24*60*6*20/32768 = 5.2734秒を遅らせることでほぼ誤差はなくなるようです。補正の最小単位は1日あたり0.2637秒ですので、これ以上細かく追い込むことは出来ません。GR-CITRUSに搭載しているマイコンRX631のRTC自動補正機能は1分単位か10秒単位かどちらかを選ぶことが出来ますが、補正の最大カウント数が6bitですので±63 カウントとなります。1分単位にすれば補正の最小単位が0.0439秒と細かく出来るのですが、1日に補正できる最大が±2.7686秒ですので、現状のGR-CITRUSのずれを補正しきれません。10秒単位だと1日あたり±16.6113秒まで補正できますので、今回はこちらで補正してあります。なお、本ファームとGR-CITRUSのv2.43以降はRtc.init()の実行時、引数を省略するとデフォルトで-20の補正が行われるようになります。補正を行いたくない場合は0を引数に与えます。
 
Edit  

ソフトウェア

  • GR-CITRUS用ソースコード
      filemain.rb
  • 動作時の様子(業務で使用)
    TFTc_Logger_01.jpg
      ※ソフトはデバッグ時のもので、タッチ部分にドットを描くようにしていたため画面にゴミが表示されています。

それほど変化の早くない電気信号のログを取るのに、コンパクトでスタンドアロン動作するツールは魅力です。本システムは変化の履歴も一覧で確認できますので、重宝しています。RTCが動作するマイコンボードは便利ですね。


トップ   リロード   一覧 単語検索