著者:米田 聡
小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第7回は、ボリュームスイッチのような操作を実現する拡張基板を扱います。
シェルスクリプトマガジン Vol.74は以下のリンク先でご購入できます。
図4 サンプルプログラム(sample.py)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import smbus import struct import time ADRSZRE_ADDR = 0x54 VALUE_HI = 0x00 RESET = 0x02 STEPS = 80 # 1回転=80カウント bus = smbus.SMBus(1) degree = 0.0 try: while True: temp = bus.read_word_data(ADRSZRE_ADDR, VALUE_HI) value = struct.unpack(">H", struct.pack("<H", temp))[0] if value == 0: bus.write_byte_data(ADRSZRE_ADDR, RESET, True) # Zero Reset degree = (value % STEPS) * 360.0 / STEPS print("%.1f" % degree, end='\r', flush=True) time.sleep(0.1) except KeyboardInterrupt: pass |