Python скрипт для мыши на базе акселерометра Arduino не работает - PullRequest
0 голосов
/ 19 апреля 2020

несколько дней go Мне пришла в голову идея управлять курсором мыши моего Windows 10 P C с помощью акселерометра и Arduino Leonardo.

Моя настройка Arduino такова, как Следующее: акселерометр ADXL335 подключен к Arduino Leonardo, короткая Python программа получает некоторый последовательный ввод от программы Arduino на Leonardo и управляет курсором мыши на моем Windows 10 P C.

Проблема в том, что Python выдает ошибку (см. Ниже).

Прежде всего, код Arduino (компиляция и загрузка прошли успешно):

const int x=A0;
const int y=A1;
int xh, yh;
int xcord, ycord;

void setup() {
  pinMode(x,INPUT);
  pinMode(y,INPUT);
  Serial.begin(9600);
}

void loop() {
  xh=analogRead(x);
  yh=analogRead(y);
  xcord=map(xh,286,429,100,999);
  ycord=map(yh,282,427,100,800);
  Serial.print(xcord);
  Serial.print(" ");
  Serial.print(ycord);
  Serial.println();
  delay(4000);
}

Сейчас , программа Python:

import serial
import pyautogui
ser=serial.Serial('com7',9600)
while 1:
    k=ser.read(8)
    cursor=k[:6]
    x=cursor[:3]
    y=cursor[3:]
    xcor=int(x.decode('UTF-8'))
    ycor=int(y.decode('UTF-8'))
    pyautogui.moveTo(xcor,ycor)

И ошибка:

File "C:\Users\User\Downloads\test.py", line 10, in <module>
ycor=int(y.decode('UTF-8'))
ValueError: invalid literal for int() with base 10: '7 3'

У вас есть какие-нибудь советы? Мне нужна ваша помощь.

Спасибо.

С наилучшими пожеланиями,

Майкл

1 Ответ

0 голосов
/ 19 апреля 2020

Если вы ожидаете, что значения значений для x и y будут включены в k, разделенные пробелами, вы можете сделать:

import serial
import pyautogui
ser=serial.Serial('com7',9600)
while 1:
    k=ser.read(8).decode()
    cursor_list = k.split()
    xcor=int(cursor_list[0])
    ycor=int(cursor_list[1])
    pyautogui.moveTo(xcor,ycor)

Если в один файл включены дополнительные данные прочитайте, индексы для x и y могут быть не 0 и 1, и вы можете убедиться в этом, проверив документацию для Arduino или распечатав k во время отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...