如何让python正确读取Arduino操纵杆变量中的数字

nnsrf1az  于 2023-01-03  发布在  Python
关注(0)|答案(1)|浏览(130)

我是python新手,昨天才开始尝试。我尝试用我的Arduino构建一个控制器,每个操纵杆都会告诉python它移动的方向。现在我尝试使用get1操纵杆来告诉python它正朝右,但我在代码中的最后一个“if”语句上遇到了麻烦。这是为了让乐高ev3通过python读取
下面是我的Arduino代码

char userInput;
int data = 0;
int RIGHT = 0;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
if (Serial.available()> 0) {
  userInput = Serial.read();

if (analogRead(A0) / 4.01176470588 >=145) {
     RIGHT = 1;
  } else {
    RIGHT = 0;
  }

  if (userInput == 'g') {
      Serial.println(RIGHT);
}
}
}

这是我的python代码

import serial

ser = serial.Serial('/dev/tty.usbmodem11201', baudrate = 9600, timeout=1)

direction = 0

while 1:
    ser.write(b'g')
    arduinoData = ser.readline().decode('ascii')
    direction = arduinoData 
    
    print(direction)
    
    if direction == '1' : 
        print("Joystick is turning right")

python终端没有输出任何内容。我只想显示“操纵杆向右转”,然后我可以继续其他方向,然后另一个操纵杆最终与乐高EV3接口

sdnqo3pr

sdnqo3pr1#

在Arduino代码中,您发送的是一个整数值,但在python代码中,您要检查方向是否是字符串版本的1。
对于if语句,请尝试以下操作

if direction == 1: 
    print("Joystick is turning right")

相关问题