2

いくつかのセンサー データを記録するためのプラットフォームを構築する必要があります。そしておそらく後で、このログに記録されたデータに対していくつかの計算を行います。

Raspberry Pi は、このための興味深い (そして安価な!) デバイスのようです。

私は、1.25 ms ごとに 1 つのサンプルに相当する 800 Hz でサンプリングできるジャイロスコープを持っています。ジャイロスコープには、32 個のサンプルを保存できる FIFO が組み込まれています。これは、少なくとも 32 * 1.25 = 40 ミリ秒ごとに FIFO を空にする必要があることを意味します。そうしないと、サンプルがドロップされます。

私の質問は次のとおりです。指定された時間内に、カーネル ドライバーがこの FIFO からデータを抽出できることを 100% 確信できますか?

ジャイロスコープは i2c 経由でホストと通信し、「ほぼ満杯」のイベントで割り込みピンをトリガーすることもできます。しかし、一定の間隔でデータを取得するループをドライバーに入れることができれば、最も簡単です。

データをカーネル空間に保存して、ユーザー空間に移動する頻度を減らすことができます (時間の制約はありません)。

低いサンプル レート (400 または 200 Hz が許容範囲) でジャイロスコープをサンプリングすることもできます。

これはストック カーネルに関するものであり、特別なリアルタイム カーネルではなく、これは現在 Raspberry Pi ではサポートされていないようです。

4

1 に答える 1

2

タイトなタイミングのためにリアルタイムのLinux環境が必要になります。

Raspberry PiでXenomaiを試すことができます:http: //diy.powet.eu/2012/07/25/raspberry-pi-xenomai/

ただし、このブログをフォローします:http: //linuxcnc.mah.priv.at/rpi/rpi-rtperf.html(デッド、ウェイバックまたはグーグルキャッシュで見つかりませんでした)

彼はストックカーネルから繰り返し可能な+/-20µSのタイミングを得ているようです。タイミング分解能は1250µSであるため、ブルームーンYMMVでサンプルを1回失っても構わないと思っている場合は、ストックカーネルで問題ない可能性があります。

私はまだこれを自分でテストしていませんが、ラズベリーパイでws2811 LEDコントローラーを駆動しようとして読んでいて、これは私にとって最も有望に見えました。

RT linuxパッチもあります:https
://rt.wiki.kernel.org/index.php/Main_Page少なくとも1つのpiバージョンがあります:https
://github.com/licaon-kter/raspi-rt しかし私はこのパッチを詳しく調べてみると、多くの否定的な発言者に出くわしました。

間隔を逃した場合は、MSタイマーを読み取り、LEDをログに記録するか点灯してから、いくつかの解決策を試してみることをお勧めします。ハッピーハッキング..

于 2013-02-02T11:49:16.890 に答える