著者:大川善邦
ページ数:246

¥515¥0

Raspberry PiのGPIOを介して、センサーから、データを取得するプログラム、を作ります。
サンプルとして、いくつかの状況、を考えます。

たとえば、ビニールハウスに、温度センサーを取り付け、午前1回、午後1回、ハウスの温度を、サーバーへ送る、とします。
GPIOに、ADCを取り付け、センサーの電圧をディジタルデータに変換して、インターネット回線を経由して、サーバーへ、送信します。
Raspberry Piのプログラムを作る上において、なんの問題も発生しません。

ビルの耐震診断を行う、とします。
ビルの外壁に、ジャイロセンサーを貼り付け、振動を計測します。
計測したデータを、フーリエ変換して、周波数解析を行い、結果を、スクリーンに、プロットします。
この問題において、センサーデータのサンプリング問題、が発生します。
サンプリング問題とは、時間軸を、等間隔で分割する際に、それを妨害する事象が発生する、という問題です。

サンプリング問題が発生する原因は、
OSの介入
通信による遅延
です。

Linuxは、ユーザーのプログラムに対して、予想できない時刻に、「待った」をかけます。
OSの要求は、ユーザープログラムに優先するので、ユーザーのプログラムは、一時停止、します。
救急車が来たので、自動車を、道路脇へ寄せて、救急車の通過ち、そういった状況です。
実機を使って実測したところ、最大、5 msecの遅延、を観測しました。
サンプリングの時間幅が小さい場合、この遅延は、データ処理に対して、重大な影響を与えます。

Raspberry Piは、アナログ-ディジタル変換回路(ADC)、を搭載しません。
このために、センサーデータを取り込むために、GPIOに、ADC回路、を外付けします。
GPIOとADCは、たとえば、I2Cプロトコルなどの通信仕様を使って、シリアル通信、します。
このため、アナログデータを取り込む時間に、大きな遅延、が発生します。
データの取り込みが未完の状態において、データを要求すると、ADCは、前回採取したデータを、再送、します。
これが、データのダブリ、です。
逆に言えば、ダブリが発生しない時間間隔においてのみ、センサーデータを、正常に、取得できる、となります。

本書において、標準信号発生器を使って、厳密に、Raspberry Piのサンプリング問題を、解明します。
Raspberry Piのサンプリングの限界を、実機を使って、突き止めます。
ADCを使って、センサーデータを取り込み、処理する際に、参考にしてください。

1章
1.1 はじめに
1.2 Raspberry Pi
1.3 JDK 8
1.4 pi4j
1.5 ツール
1.6実験器材
1.7 プログラムによる検証

2章 GPIO
2.1 はじめに
2.2 GPIOのピン
2.3 ディジタル入出力
2.4 サンプリング
2.5 区間データの非保存

3章 タイマー
3.1 はじめに
3.2 タイマーによるサンプリング
3.3区間幅の分布
3.4 キーボード入力
3.5 データの非保存
3.6 GUI

4章 アナログ入力
4.1 はじめに
4.2 ADS1115
4.3 チャート
4.4 タイマー計測

5章 センサー
5.1 はじめに
5.3 化学溶液などの温度測定(密封型サーミスタ)
5.4 光センサー(CdS型)
5.5 照度センサー(NJL7502L)
5.6 音センサー(マイクロフォン)
5.7 圧電振動ジャイロ(ENC-03R)
5.8 ジャイロ角速度の積分

終章
参考資料

Raspberry Piにセンサーを接続すれば、それ以後は、何でもできる、…、ではありません。
センサーデータの取得は、スタート、です。
それに続く処理を考えなければいけません。
Raspberry Piは、ここまで、できる、しかし、これ以上はできない、その境界を、科学的に、示しました。

シリーズ一覧

  • 同シリーズの電子書籍はありませんでした。

 

  Kindle Unlimitedは、現在30日間無料体験キャンペーンを行っています!

この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。

Kindle Unlimited 無料体験に登録する