adding files
This commit is contained in:
48
dro_print.py
Normal file
48
dro_print.py
Normal file
@@ -0,0 +1,48 @@
|
||||
#/usr/bin/python3
|
||||
|
||||
"""
|
||||
is the port available:
|
||||
ls /dev/*i2c*
|
||||
|
||||
scan connected I2C slaves:
|
||||
sudo i2cdetect -y 1
|
||||
"""
|
||||
|
||||
from enum import IntEnum
|
||||
import time
|
||||
|
||||
|
||||
# Prefer system-installed `smbus2`, otherwise fall back to local `smbus2.py`.
|
||||
try:
|
||||
import smbus2
|
||||
except ImportError:
|
||||
import RPi.fake_smbus as smbus2 # type: ignore
|
||||
print('smbus2 not available; using fake smbus2.py')
|
||||
|
||||
_bus = smbus2.SMBus(1)
|
||||
|
||||
def poll_i2c_data():
|
||||
""" poll I2C data from Arduino """
|
||||
try:
|
||||
data = _bus.read_i2c_block_data(0x08, 0, 4)
|
||||
|
||||
x_position_update = int.from_bytes(bytes(data[0:2]), 'little', signed=True)
|
||||
z_position_update = int.from_bytes(bytes(data[2:4]), 'little', signed=True)
|
||||
print(f"X Position: {x_position_update}, Z Position: {z_position_update}")
|
||||
|
||||
except IOError as e:
|
||||
print(f"I2C read error: {e}")
|
||||
except OSError as e:
|
||||
print(f"I2C OS error: {e}")
|
||||
|
||||
def main():
|
||||
try:
|
||||
while 1:
|
||||
poll_i2c_data()
|
||||
time.sleep(0.2) # Poll every 200ms
|
||||
|
||||
except KeyboardInterrupt:
|
||||
raise SystemExit
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user