MCU Gear用の初心者向けPython サンプルプログラムを作りました。
Pythonを使うことで、Raspberry Pi の GPIOのピンアサインを見なくともモジュールに信号線を割り当てることができるようになりました。
インストール方法はこちら
ホームページからダウンロードしたファイルを解凍し、
点滅プログラムを見てみましょう。
BlinkLEDフォルダにあるsample.pyの解説です。
基本的な流れ
1、初期化部分(コピーアンドペーストして使ってください。)
2、モジュールの初設定 ピンはモジュール定義のカッコ内に追加すればモジュール端子の0番、1番、2番…と増やせます。
例えば
,p.outpin[0], p.outpin[1], p.inpin[0]....)など 1モジュールあたり最大8端子割り当てられます。
出力ピンの最大値は6つ
p.outpin[0]、p.outpin[1]、p.outpin[2]、p.outpin[3]、p.outpin[4]、p.outpin[5]
入力ピンの最大値は2つ(何もつなげないと入力がLOWとなるので、スイッチなどを使う場合はHigh信号を与えてください)
p.inpin[0]、p.inpin[1]
SPIバスは import spidev を追加して
p.MISO、p.MOSI、p.SCLK、p.CE0
I2Cバスはモジュールには配線せずに、コネクタから出ているSDA SCLに直接接続してください。
ただしアドレスが競合しないように注意してください。
また、競合する場合はマルチファンクションモジュールで別系統のI2Cバスを増設できます。
UART端子は動作させるサンプルを用意していませんが、p.TX、p.RX で割り当てることができます。
設定、動作に関してはこちらを参考に設定できます。http://mcugear.blogspot.jp/2014/01/raspberry-pipython-uart.html
3、モジュールとの接続connect()と切断disconnect()で動作中に配線切替ができます。
#!/usr/bin/python このファイルがPythonの物と明示してください
import MCUGear MCU Gear のベースボードに関するプログラムが入っています
import MCUGearModule モジュールへの配線に関するプログラムが入っています
import p GPIOピン設定に関するプログラムが入っています
import RPi.GPIO as GPIO Raspberry Pi のGPIOを動かすプログラムが入っています
import time 時間に関するプログラムが入っています
if __name__=='__main__': メイン関数
#Start--------
try: とりあえず試しに以下のプログラムを動かしてみて、[ctrl]+ [C]を押して終了する
print("If you want to finish, press [ctrl]+ [C] \n")
#setup IOs-----
GPIO.setmode(GPIO.BCM) GPIOを使います
for var in range(0,len(p.inpin)-1): GPIOの入力を設定(通常このままコピペ)
GPIO.setup(p.inpin[var], GPIO.IN)
for var in range(0,len(p.outpin)-1): GPIOの出力を設定(通常このままコピペ)
GPIO.setup(p.outpin[var], GPIO.OUT) #set outpin as a output
MCUGear.initBase() ベースボードの初期化
#Universal Module address & IO Setting-------------
UNI = MCUGearModule.MCUGearModule(MCUGear.N_VDD_VDD_VDD,p.outpin[0])
1、好きな名前(ここではUNI)という名前でユニバーサル基板を定義します。
2、ユニバーサルモジュール基板裏面のアドレス設定 (AD2=3.3V AD1=3.3V AD0=3.3V) N_VDD_VDD_VDD
3、「モジュールの0番端子にp.out[0]出力を割り当てる。」という処理をしています。
#loop-----
while True: ループ
UNI.connect() Raspberry Piの端子 とモジュール端子とを接続
GPIO.output(p.outpin[0], True) 先ほど設定したp.out[0]を HIGH にします
time.sleep(0.5) 0.5秒待ちます
GPIO.output(p.outpin[0], False) 先ほど設定したp.out[0]を LOW にします
time.sleep(0.5) 0.5秒待ちます
UNI.disconnect() Raspberry Piの端子 とモジュール端子とを切断
except KeyboardInterrupt: tryから続いています[ctrl]+ [C]を押したら以下を実行して終了します。
print("detect key interrupt [ctrl]+ [C] \n")
UNI.disconnect() 念のためもう一度切断
GPIO.cleanup() Raspberry PiからGPIOの制御を一時無効にする
print("Program exit\n")
0 件のコメント:
コメントを投稿