当你已经将Triple Axis Accelerometer连接到Arduino上并上传了StandardFirmata程序,你可以使用Python的pyfirmata库在树莓派上读取传感器数据。以下是一个简单的Python程序,用于读取Triple Axis Accelerometer的XYZ轴数据:
import time
import pyfirmata
# 设置Arduino的串口
port = 'COM3' #'/dev/ttyUSB0' # 根据你的连接设置正确的串口
# 创建Arduino对象
board = pyfirmata.Arduino(port)
# 启动模拟输入的迭代器(经过多次询问和给出可运行程序后才修正)
it = pyfirmata.util.Iterator(board)
it.start()
# 获取Triple Axis Accelerometer的引脚
accelerometer_x_pin = 0 # 根据你的连接设置正确的X轴引脚
accelerometer_y_pin = 1 # 根据你的连接设置正确的Y轴引脚
accelerometer_z_pin = 2 # 根据你的连接设置正确的Z轴引脚
# 获取Triple Axis Accelerometer对象
accelerometer_x = board.get_pin('a:' + str(accelerometer_x_pin) + ':i')
accelerometer_y = board.get_pin('a:' + str(accelerometer_y_pin) + ':i')
accelerometer_z = board.get_pin('a:' + str(accelerometer_z_pin) + ':i')
try:
while True:
# 读取XYZ轴的加速度值
x_acceleration = accelerometer_x.read()
y_acceleration = accelerometer_y.read()
z_acceleration = accelerometer_z.read()
if x_acceleration is not None and y_acceleration is not None and z_acceleration is not None:
print(f"X轴加速度: {x_acceleration:.2f}, Y轴加速度: {y_acceleration:.2f}, Z轴加速度: {z_acceleration:.2f}")
time.sleep(0.1)
except KeyboardInterrupt:
# 清理资源
board.exit()
效果:
X轴加速度: 0.36, Y轴加速度: 0.47, Z轴加速度: 0.31
X轴加速度: 0.35, Y轴加速度: 0.49, Z轴加速度: 0.32