цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Управляем курсором мышки на компьютере с помощью джойстика Arduino

Управляем курсором мышки на компьютере с помощью джойстика Arduino

Автор: Mike(admin) от 10-04-2020, 05:05

В качестве альтернативы для управления курсором с помощью компьютерной мыши или трекпада можно использовать джойстик. Джойстик может перемещать курсор в любом направлении (по оси X и Y), а также выполняет функцию щелчка с помощью встроенного переключателя джойстика.


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Джойстик состоит из двух потенциометров, выровненных в направлениях x и y. Arduino считывает аналоговые значения с джойстика в диапазоне от 0 до 1023. Таким образом, когда джойстик находится в своем положении по умолчанию (в центре), аналоговое значение также становится близким к 500 (между 0 и 1023).


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Скетч Arduino запрограммирован таким образом, что, когда джойстик находится в центральном положении, выводится значение 0 в последовательный монитор, а когда джойстик отведен от центра, выводится значение в диапазоне от -80 до 80. Таким образом, когда джойстик находится в одном крайнем положении, Arduino выводит значение 80, а если джойстик перемещается в другое крайнее положение, то выводится -80.


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


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Для того, чтобы ноутбук или компьютер распознал значения, нам понадобится программа на Python. Для этого также нужен установленный Python, который можно скачать с официального сайта. Для Windows также можно установить pyautogui из командной строки, введя следующие строки:



cd C:\Python27
python –m pip install –-upgrade pip
python –m pip install pyautogui

Программа python предназначена для чтения текста, выведенного Arduino, и распознавания значений направления x и y, а также состояния переключателя. Текущие координаты курсора получают из функции pyautogui – pyautogui.position(), которая предоставляет координаты X и Y курсора в виде пикселей. Когда джойстик перемещается, аналоговые значения (от -80 до 80), предоставленные arduino, добавляются с текущей позицией курсора для перемещения курсора в нужном направлении. Чтобы переместить курсор в заданном направлении, функция pyautogui.moveTo(X + x, Y + y) удовлетворяет этой цели. В ней X и Y – текущая позиция курсора, а x и y – позиции увеличения или уменьшения, предоставляемые Arduino. Для выполнения операции щелчка используется функция pyautogui.click(x, y). Код на Python имеет следующий вид:



import pyautogui, sys
import time 
import serial

ArduinoSerial=serial.Serial('com3',9600)
time.sleep(1)

while 1:
   data=str(ArduinoSerial.readline())
   (x,y,z)=data.split(":")
   (X,Y)=pyautogui.position()
   x=int(x)
   y=int(y)
   pyautogui.moveTo(X+x,Y-y)
   if '1' in z:
      pyautogui.click(button="left")

Скетч Arduino следующий:



void setup() {
  Serial.begin(9600);
  pinMode(9,INPUT);
  digitalWrite(9,HIGH);

}

void loop() {
  int z=0;
  int x=analogRead(A0);
  int y=analogRead(A1);
  int xpos,ypos;  
  if(x>450 and x<550)
 xpos=0;
  if(x>=550)
  xpos=map(x,550,1023,0,80); 
  if(x<=450)
  xpos=map(x,450,0,0,-80);   
  if(y>450 and y<550)
  ypos=0; 
  if(y>=550)
  ypos=map(y,550,1023,0,80);  
  if(y<=450)
  ypos=map(y,450,0,0,-80); 
  if(digitalRead(9)==LOW)
  z=1;
  else
  z=0;
  Serial.print(xpos);
  Serial.print(":");
  Serial.print(ypos);
  Serial.print(":");
  Serial.println(z);
  delay(120);
 
}

Схема подключения Arduino и джойстика:


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Загрузите скетч в свой Arduino и подключите джойстик к контактам Arduino, как показано на схеме. Убедившись, что pyautogui установлен на вашем компьютере или ноутбуке, выполните следующие действия. Сначала скопируйте код питона в файл блокнота. Укажите правильный COM-порт Arduino. Из диспетчера устройств вы можете получить COM-порт, к которому подключена плата Arduino. Сохраните файл как «.py» после внесения изменений.


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Управляем курсором мышки на компьютере с помощью джойстика Arduino

Откройте приложение Python IDLE (python GUI) и откройте из него файл блокнота.


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Управляем курсором мышки на компьютере с помощью джойстика Arduino

Запустите модуль.


Управляем курсором мышки на компьютере с помощью джойстика Arduino

Затем вы вернетесь к предыдущему экрану. Если вы видите какие-либо ошибки, перезапустите приложение и проверьте, правильно ли вы указали COM-порт Arduino. Если ошибок нет, управляйте джойстиком, и вы увидите движение курсора.




© digitrode.ru


Теги: Arduino, джойстик




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий