【RevPi】DIOモジュールから入出力(Python)

スポンサーリンク

[ 産業用ラズパイ ]と言われる< RevPi >を今日も使っていく。
前回までにIOモジュールの接続&設定しました。
今回は『IOモジュールの出力設定と入力取得』に挑戦した備忘録を紹介する。
DIO(デジタル入出力)モジュールを使った場合に特化して紹介する。
分かりやすく、一から説明するように心がけます。

電気回路の作成(ハードウェア)

準備するモノ

■ブレッドボード
■スイッチ
■抵抗  ※1kΩがあったのでソレを使う
■LED
■配線(ジャンプワイヤー)

オンラインで購入する場合は、『秋月通商』とかがオススメである。
自分は、『ハンズマン』で購入した記憶がある。
近くのホームセンターの電気コーナーで購入する事も可能であろう。

電気回路図の作成

電気は専門ではないので不安を感じながら接続します。
HARTING社で公開されているデータシートでは、回路例が紹介されている。
参考にさせてもらった事で回路図を完成させることが出来ました。。

出力はLチカ(LEDチカチカ)の回路を作ってみた。

デジタル出力回路

入力はスイッチのON/OFFがみえるようにしてみた。

回路作成

【美しくない】とか言われそうですが…実際に作った時の写真です。


余談ではありますが、
DIOモジュールの配線の接続方法】です。
オレンジ部分のボタンをマイナスドライバーで押します。
押した状態で配線を奥まで差し込みます。
奥まで差し込めたら、オレンジ部分のボタンを離します。
配線を引っ張って、抜けないことを確認しましょう。

プログラムの作成(ソフトウェア)

Pythonを使って、DIの取得(入力取得)DOの設定(出力設定)を行います。
サンプルを紹介します。

処理内容

処理の内容としては、下記の内容を実施する。

1秒ごとに処理を行う。 
  (10回の繰り返し)
■処理内容として、入力はスイッチの状態の取得
■処理内容として、出力はON/OFF切替(ON→OFF→ON→...)

Python起動

デフォルトでインストールされている『Thonny Python IDE』で開発していきます。
[ Menu ] → [ Programing ] → [ Thonny Python IDE ]

Thonny Python が起動したら、[New]をクリックして、新規ファイルを作成する。

サンプルコード

先ほど作ったファイルに
下記に記載するコードを記載してください。
※写し間違いがあったら、ゴメンナサイ

import revpimodio2
import time

revpi = revpimodio2.RevPiModIO(autorefresh = True)

for cnt in range(0,10):
    print(f'count:{cnt+1}')

    #Input
    val = revpi.io.I_1.value
    print(f'input:{val}')

    #Output
    tmp = revpi.io.O_1.value
    if(tmp == 0):
        print('change D01 1')
        revpi.io.O_1.value = 1
    else:
        print('change D01 0')
        revpi.io.O_1.value = 0

    time.sleep(1)

print('Finish')

実行結果

Shellウィンドウには、下記のように表示されました。
スイッチを押している時は、[True]
スイッチを話している時は、[False] でした。

出力は、「ON:1 / OFF:0」でした。
ONの時にLEDが点灯
OFFの時にLEDは消灯 しました。

実際の回路は下記のようになりました。
※初めて動画をアップしましたが、重いですね。。。

まとめ

今回は『DIOモジュールの入出力の制御方法』についての備忘録でした。
RevPiを使う人は、使用する機会は多いのではないのでしょうか?
今回使用したパッケージ[revpimodio2]は標準でインストールされているような気がします。
色々していてこのパッケージをインストールした記憶がないんですw

自分が使う機会は少ないと思いますが、
他にもCodeSysというソフトウェアPLCをインストールして制御する方法もあるようです。

次回は、『AIOモジュールの入出力制御』についてできればいいなと考えています。
もしかしたら違う事になるかもしれませんが、更新を楽しみにしていてください。

コメント

  1. かまぼこ より:

    かみさまーー。ありがとうございます。ハーティング標準サンプルプログラムは難しくてわかりませんでした。

    • 育児パパ より:

      参考になって、何よりです。自分も電気的知識が乏しいため、試行錯誤でした。
      最近使う機会が減っているので、忘れている事が多いですが、使う機会があれば、備忘録を増やしていきたいと思います。

      今回作成したサンプルのプログラムの内容ですが、
      1秒おきに入力の確認と出力の反転を行っています。
      それを10回繰り返しているプログラムになっています。

タイトルとURLをコピーしました