Управление 2 серводвигателями с использованием python и Arduino - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать проект для отслеживания объекта на основе его цвета, используя скрипт python3 и передавая релевантную информацию в arduino с помощью модуля pyserial.

К моей плате arduino uno присоединены 2 сервопривода , Итак, что делает мой скрипт python, это говорит arduino перемещать сервоприводы влево / вправо, вверх / вниз в зависимости от положения объекта (например, если объект перемещается вправо, python передает команду "R" в arduino). Мой скрипт python работает нормально и передает информацию должным образом. Я проверил, что проблема в моем коде arduino. Пожалуйста, помогите мне!

#include <Servo.h>
Servo X;
Servo Y;

int posX = 90;
int posY = 90;

char p;

int pinX = 6;
int pinY = 5;

void setup() {
  X.attach(pinX);
  Y.attach(pinY);
  Serial.begin(9600);
  X.write(90);
  Y.write(90);
  }

void loop() {
  if(Serial.available() != 0){
  p = Serial.read();
  lookx();
  looky();
  }
 }


void lookx() {
  if(p == 'R') {
    if(posX <= 175){
      posX = posX + 5;
      X.write(posX);
      }
    else {
      X.write(posX);
      }
    }
  else if(p == 'L') {
    if(posX >= 5){
      posX = posX - 5;
      X.write(posX);
      }
    else {
      X.write(posX);
      }
    }
  else if(p == 'X') {
    X.write(90);
    }  
  }

void looky() {
  if(p == 'U') {
    if(posY <= 175){
      posY = posY + 5;
      Y.write(posY);
      }
    else {
      Y.write(posY);
      }
    }
  else if(p == 'D') {
    if(posY >= 5){
      posY = posY - 5;
      Y.write(posY);
      }
    else {
      Y.write(posY);
      }
    }
  else if(p == 'Y') {
    Y.write(90);
    }  
  }

Заранее спасибо

...