著者:米田 聡
小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第7回は、ボリュームスイッチのような操作を実現する拡張基板を扱います。
シェルスクリプトマガジン Vol.74は以下のリンク先でご購入できます。![]()
![]()
図4 サンプルプログラム(sample.py)
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