Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Мышь, управляемая джойстиком

Компоненты и расходные материалы

Arduino UNO
× 1
Джойстик с двумя осями
× 1

Приложения и онлайн-сервисы

IDE Arduino
IDLE (графический интерфейс Python)

Об этом проекте

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

Основы-

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

Скетч Arduino запрограммирован таким образом, что, когда джойстик перемещается от центра, затем выводятся значения в диапазоне от -sensitivity до + value (значение по умолчанию vlaue установлено 10) в зависимости от положения. Таким образом, когда джойстик перемещается в одно крайнее положение, Arduino печатает значение 10, а если джойстик перемещается в другое крайнее положение, печатается -10.

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

Состояние кнопки джойстика (SW) печатается (1/0) на последовательном мониторе после значений x и y.

Чтобы ноутбук / компьютер распознал значения, нам понадобится модуль pyautogui для Python.

Программирование на Python

(отредактировано 11.12.2020 - библиотека изменена с pyautogui на mouse)

У пользователя должен быть установлен Python 3 на своем ноутбуке / компьютере. Его можно скачать здесь.

После установки скопируйте путь к расположению файла python.

Следующие шаги необходимо выполнить в командной строке. Откройте командную строку и введите следующее:

1. cd <вставьте путь к файлу Python>

2. py –m pip install –-upgrade pip

3. py –m pip install mouse

4. py -m pip install pyserial

мышь модуль используется для выполнения действий мыши и pyserial модуль используется для отправки / получения данных от Arduino. Я уже установил необходимые модули, поэтому получил это

Программа python предназначена для чтения данных, напечатанных Arduino, и распознавания x и y значения направления, а также состояние переключателя (SW).

Текущие координаты курсора получаются из функции мыши mouse.get_position () который предоставляет координаты X и Y курсора в виде пикселей.

Когда джойстик перемещается, аналоговые значения, предоставляемые Arduino, добавляются к текущей позиции курсора для перемещения курсора в желаемом направлении.

Чтобы переместить курсор в заданном направлении, функция mouse.move (X + x, Y + y) соответствует этой цели.

где X и Y - текущая позиция курсора, а x и y - позиции увеличения / уменьшения, предоставляемые Arduino.

пример: mouse.moveTo (100,150) перемещает курсор на 100 пикселей по оси x и 150 пикселей по оси y.

Чтобы выполнить операцию щелчка в зависимости от статуса ПО, mouse.click (button ="left") используется.

Окончательное исполнение

Загрузите эскиз Arduino (приведенный ниже) в ваш Arduino UNO и подключите джойстик к контактам Arduino, как показано на схеме.

Убедившись, что на вашем компьютере / ноутбуке установлены мышь и pyserial, выполните следующие действия.

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

2. Откройте IDLE Python (графический интерфейс Python) и откройте из него файл блокнота.

3. запустить модуль.

После этого вы вернетесь к экрану, показанному на рис. 4

Если вы видите какие-либо ошибки, перезапустите IDLE и проверьте, правильно ли вы указали COM-порт arduino.

Если ошибок нет, переместите джойстик, и вы увидите движение курсора.

Код

  • Код Arduino
  • Код Python
Код Arduino Arduino
 ////////////////////////////////// Мышь, управляемая джойстиком ////// by Shubham Santosh / //////////////////////////////////// void setup () {Serial.begin (9600); pinMode (9, ВХОД); // вывод SW digitalWrite (9, HIGH);} int prev_state =0; // предыдущее состояние switchvoid loop () {int z =0, xpos =0, ypos =0; int x =аналоговое чтение (A0); int y =analogRead (A1); int чувствительность =10; // вы можете настроить чувствительность в зависимости от вашего удобства if (x> =550) // при перемещении вверх xpos =map (x, 550,1023,0, чувствительность); if (x <=450) // при движении вниз xpos =map (x, 450,0,0, -sensitivity); if (y> =550) // при перемещении вправо ypos =map (y, 550,1023,0, чувствительность); if (y <=450) // при перемещении влево ypos =map (y, 450,0,0, -sensitivity); int curr_state =digitalRead (9); if (curr_state ==1 &&prev_state ==0) // при нажатии SW z =1; иначе z =0; if (xpos! =0 или ypos! =0 или z ==1) // печатает только при перемещении джойстика {Serial.print (xpos); // распечатать данные и разделить их ":" Serial.print (":"); Serial.print (ypos); Serial.print (":"); Serial.println (z); } prev_state =curr_state; задержка (10); // для нормальной работы} 
Код Python Python
 # Мышь, управляемая джойстиком # Автор:Shubham Santosh # последний раз редактировалось 11.12.2020import mouse, sysimport time import serialmouse.FAILSAFE =FalseArduinoSerial =serial.Serial ('com3', 9600) # Укажите правильный COM porttime.sleep (1 ) # задержка в 1 секунду при 1:data =str (ArduinoSerial.readline (). decode ('ascii')) # чтение данных (x, y, z) =data.split (":") # присваивается x, y and z (X, Y) =mouse.get_position () # прочитать текущую позицию курсора (x, y) =(int (x), int (y)) # преобразовать в int mouse.move (X + x, Yy ) # переместите курсор в желаемую позицию, если '1' в z:# прочтите статус SW mouse.click (button ="left") # щелкает левой кнопкой 

Схема


Производственный процесс

  1. Компьютерная мышь
  2. Вентилятор с регулируемой температурой
  3. Аквапоника под управлением Raspberry Pi
  4. Кнопка AWS IoT с управлением движением
  5. Робот Raspberry Pi, управляемый через Bluetooth
  6. Робот, управляемый Wi-Fi и использующий Raspberry Pi
  7. MajorTom:ARDrone 2.0 с голосовым управлением Alexa
  8. Радиоуправляемая машина с джойстиком
  9. Игра с джойстиком
  10. Сплав с контролируемым расширением Alloy 42