*

ライブラリでRasPiのピンにアクセス(3)-SPIのインターフェース追加(その2)

公開日: : C++, pigpio, 開発

どもです。

今回のエントリも、前回に引き続き、RaspberryPiのピンをより簡便に使用できるようにするために作り始めたライブラリのSPIのサンプルです。

前回は、Arduinoをスレーブにして通信する例を紹介しました。
この例では、とくに通信のプロトコルやデータフォーマットを決めていませんでした。
しかし、一般的に他のデバイスと通信する場合には、特定のプロトコルやフォーマットが規定されています。
そこで今回は、今回作成しているライブラリを使用して、特定のプロトコルやフォーマットに対応する例を示します。

1.通信相手

今回、「特定のプロトコルやフォーマットが規定」されたデバイスとして、「MDK001」を使用します。
これはデジタル温度センサ「ADT7310」をDIP化したモジュールです。

過去の記事で、RaspberryPiとpigpioを使用して、このデバイスと通信、センサー値(ここでは「温度」)を取得する例を紹介しています。
この記事をベースに、現在作成しているライブラリを使用するように変更し、例として紹介していきます。

2.ライブラリの使い方

SPI通信を行う場合には、CPartクラスを継承した新規のクラスを作成します。
今回の場合、CPartを継承した「CMDK001 」というクラスを実装します。
そして、そのクラスでは、MDK001固有のデータを読み出すプロトコルを実行する処理を実装します。
具体的には、以下のようなクラスになります。

デバイスの初期化、Shutdownモードの開始、および終了、そしてセンサー値の読み出しと、それに基づく物理値を取得する処理を実装しています。
MDK001では、(現状では)必要な処理が上記に示した内容だけでした。
基本的に、1つのセンサーから取得できる値は、それほど多くありません。
加えて、1つのセンサーが持つ機能もそれほど多くありません。
そのため、クラス化する際にも、実装する必要があるメソッドは、それど多くなりません。
(いや、たぶん…)

3.作ったライブラリを使ってみる

では、作ったクラスを使って温度を測定、取得する処理を実装します。

これにより、センサー値および温度を取得し、表示できます。
自画自賛ですが、過去のコードと比べると、か~な~りすっきりしています。

4.まとめ

今回は、作成しているライブラリを用いて、SPIで通信するセンサーから値を取得する例を示しました。
センサーと通信する場合には、CPartを継承したクラスを作成し、そこにセンサー固有の処理を実装する、という方法を提案/提供します。
こうすることで、上記のようにすっきりとした、分かりやすいコードで機能を実装できるようになるかと思います。

ではっ!

ex.公開しています

最新のライブラリ、および前回、今回のエントリの中で紹介したサンプルのコードをGitHubにて公開しています。
詳細は、そちらを参照して下さい。

関連記事

RasPi_Qt

QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その2)

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱりQtは出てきません。

記事を読む

no image

QtでRaspberryPi/GUI開発(3):ためしに時計を作ってみた(其の参)-StyleSheetの適用

どもです。 前回のエントリーでは、グループ化されたボタンに対するイベントハンドラについて書きました

記事を読む

toppers

C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

toppers

C言語でEV3開発(20)-超音波センサと安全状態

どもです。 前回は、BluetoothでPCとEv3を接続してコマンドの送受信について書きました。

記事を読む

MY_MFC_LOGO

MFCプログラミング(3):クリップボードへのデータ形式の登録

どもです。 今回も、クリップボードネタです。 1.背景(簡単に) アプリケーションにコピー

記事を読む

no image

C言語でEV3開発(8)-opOUTPUT_POWERコマンド

どもです。 今回のエントリーでは、EV3でモーターを動かします。 なお、今回のエントリーでも

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(2)-SPIのインターフェース追加

どもです。 前回のエントリでは、RaspberryPiのピンをより簡便に使用できるようにするた

記事を読む

no image

Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(7):pigpioを使用したチャタリング対策の問題

どもです。 前回のエントリーで、pigpioを使用したチャタリング対策について記載しました。 今

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

c_sharp_eye_catch
Windowsでのカバレッジ測定-OpenCoverageを使ってみた

どもです。 以前、OpenCppCoverageを使用してWindo

EF_GRY-OR_png
Eclipseで単体テストするときの注意点(?)

どもです。 今回のエントリは、Eclipse/cygwinで単体

cygwin_my_image
Windows10/cygwinの音を消す

どもです。 最近、Windows10/cygwinで作業をする場

raspberry-pi
ライブラリでRasPiのピンにアクセス(3)-SPIのインターフェース追加(その2)

どもです。 今回のエントリも、前回に引き続き、Raspberry

cygwin_my_image
cygwinでstartコマンド

どもです。 このエントリでは、cygwinでWindows/コマ

→もっと見る

PAGE TOP ↑