01-03-2022 07:58 PM
Raspberry Piを使ったLINXの使い方に慣れてきたと思いますのでArduino UNOで動かしたLabVIEW LINXを使ったプログラムを移植してみましょう。
この4桁LEDモジュールは3.3Vでも5Vでも動くので配線がとても楽です。安全のために電源がOFFの状態で接続してください。
VCC: 3.3V(1pin)
GND: GND(9pin)
CLK: DIO11(11pin)
DIO: DIO12(12pin)
プロジェクトエクスプローラーでRaspberry Piをターゲットデバイスに追加します。Arduinoで動作確認できたVIをターゲットデバイス直下に移動します。移動はドラッグするだけでOKです。VIの変更はLINXのopen.viをLocal I/Oに変更して、ピン番号を変更するだけです。
VIのフロントパネルの矢印をクリックすると、Raspberry Piに配置されてLED表示器が数字を表示しはじめます。
TM1637_Setup.viとTM1637_WriteByte.viのダイアグラムに使われているwait.viの入力値を1から0に変更すると目で追えないぐらいには早くなります。
ピン番号とストップボタンを定数に変更します。ビルド仕様を追加してソースファイルの設定を行います。
ビルドして、スタートアップとして実行するとできあがりです。
この記事で作成したZIPファイルを添付します。この4桁ディスプレイは手ごろな表示器として使えると思います。
01-03-2022 08:23 PM
4桁の数字だけでは物足りないと思いますので、ArduinoでもRaspberry Piでも使えるI2Cキャラクタディスプレイを紹介します。(3.3V系なのでArduinoで使うときにはI2C用電圧レベル変換モジュールが必要です。)
「有機ELキャラクタディスプレイモジュール 16×2行」で緑、白、黄色のバリエーションがあります。
自著の宣伝になり恐縮ですが、
ラズパイ×ArduinoでI/O! LabVIEWコンピュータ・プログラム集
の第7章と第14章、第16章で紹介しています。もしも書店で見かけたときには手に取ってみてください。
01-04-2022 05:55 AM
超音波距離センサー(HC-SR04)は安価でロボットカーに使うとそれなりに面白く使えます。トリガー信号を入れると超音波を出し、反射して戻ってくる時間をパルス幅で出力します。
5V系なので、echoと呼ばれるパルス出力は分圧して受ける必要があります。ここでは2kΩと3kΩの抵抗を直列に使って、echo→2kΩ→3kΩ→GNDとして、2kΩと3kΩの接続点を18ピンに接続しました。
triggerは3.3Vのパルスでも認識してくれるのでそのままでOKです。
GND: GND(6pin)
ECHO: DIO_18(18pin)
TRIG: DIO_16(16pin)
VCC: 5V(2pin)
プロジェクトファイルを添付します。
このプログラムを作る際にデジタルReadとデジタルwriteの動作時間が気になったので実測してみたところ書き込みが5マイクロ秒ぐらい、読み込みが40マイクロ秒ぐらいでした。なんとなくもっと速いと思っていました。