Как сделать Arduino на основе управления жестами вашего компьютера?
Контроль жестов рук – не новость. Мы видели много роботов, которые управляются жестами рук. Технология движется так быстро, что все, о чем мы думаем, уже присутствует на рынке. Очень интересным проектом является управление вашим персональным компьютером или ноутбуком с помощью небольшой платы микроконтроллера Arduino Uno. Используя Arduino, мы можем выполнять некоторые простые функции, просто махнув рукой, а не мышью или клавиатурой. Эти функции включают в себя перемещение изображений, прокрутку страниц вверх и вниз, переключение между вкладками веб-браузера, воспроизведение или приостановку видео, переключение между настольными приложениями и т. Д.
Принципиальная электрическая схема
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Как выполнять различные операции на ПК с помощью жестов рук?
Теперь, когда мы знаем реферат проекта, давайте двигаться вперед и собирать различную информацию, чтобы начать работать. Сначала мы составим список компонентов, затем кратко их изучим, затем соберем все компоненты, чтобы создать работающую систему.
Шаг 1: Сбор компонентов
Лучший подход к запуску любого проекта – составить список компонентов и провести краткое изучение этих компонентов, потому что никто не захочет зацикливаться на середине проекта только из-за отсутствующего компонента. Список компонентов, которые мы собираемся использовать в этом проекте, приведен ниже:
Шаг 2: Изучение компонентов
Так как у нас есть полный список всех компонентов. Давайте двигаться дальше и кратко рассмотрим работу всех компонентов.
Arduino Nano – это плата микроконтроллера, которая выполняет различные операции в разных цепях. Требуется C-код, который сообщает доске, какие задачи выполнять и как. Он имеет 13 цифровых входов / выходов, что означает, что мы можем управлять 13 различными устройствами. Arduino Nano обладает точно такой же функциональностью, что и Arduino Uno, но довольно небольшого размера. Микроконтроллер на плате Arduino Nano – ATmega328p. Если вы хотите управлять более чем 13 устройствами, используйте Arduino Mega.
Ардуино Нано
Плата HC-SR04 – это ультразвуковой датчик, который используется для определения расстояния между двумя объектами. Он состоит из передатчика и приемника. Передатчик преобразует электрический сигнал в ультразвуковой сигнал, а приемник преобразует ультразвуковой сигнал обратно в электрический сигнал. Когда передатчик посылает ультразвуковую волну, он отражается после столкновения с определенным объектом. Расстояние рассчитывается с использованием времени, которое требуется ультразвуковому сигналу, чтобы пройти от передатчика и вернуться к приемнику.
Ультразвуковой датчик
Шаг 3: Сборка компонентов
Теперь, когда мы знаем основные рабочие компоненты, которые мы собираемся использовать. Давайте начнем собирать компоненты, чтобы сделать окончательный рабочий продукт.
- Подключите контакты Vcc и заземления обоих ультразвуковых датчиков к 5 В и заземлению платы Arduino Nano. Контакт триггера и эхо-сигнала первого ультразвукового датчика подключен к контакту 11 и контакту 10 Arduino Nano соответственно. Триггерный и эхо-контакт второго ультразвукового датчика подключен к контактам 6 и 5 Arduino nano соответственно.
- Прикрепите наноплату Arduino к задней части скотча на экране ноутбука. Оба ультразвуковых датчика будут прикреплены к обоим верхним углам ноутбука.
Шаг 4: Начало работы с Arduino
Если вы еще не знакомы с Arduino IDE, не беспокойтесь, потому что пошаговая процедура настройки и использования Arduino IDE с платой микроконтроллера описана ниже.
- Загрузите последнюю версию Arduino IDE с Arduino.
- Подключите плату Arduino Nano к ноутбуку и откройте панель управления. Затем нажмите «Оборудование и звук». Теперь нажмите на Устройства и принтеры. Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но он отличается на разных компьютерах.Поиск порта
- Нажмите на меню «Инструменты» и выберите в раскрывающемся меню плату Arduino Nano.Настольная доска
- В том же меню «Инструменты» установите для порта номер порта, который вы видели ранее в «Устройствах и принтерах».Настройка порта
- В том же меню «Инструменты» установите для процессора значение «ATmega328P» («Старый загрузчик»).процессор
- Загрузите приведенный ниже код и вставьте его в свою Arduino IDE. Нажмите на кнопку загрузки, чтобы записать код на вашей плате микроконтроллера.Загрузить
Чтобы скачать код, кликните сюда.
Шаг 5: установка жестов
Мы хотим написать код, который будет определять и преобразовывать расстояние в соответствующую команду для выполнения задачи.
давайте сначала составим список всех задач, которые мы хотим выполнить с помощью жестов. Ниже приведен список всех этих задач.
- Переключитесь на следующую или предыдущую вкладку в веб-браузере.
- Прокрутите вверх и вниз на веб-странице.
- Воспроизведение и приостановка видео в VLC Player.
- Увеличивайте и уменьшайте громкость.
- Переключайтесь между двумя задачами.
Теперь мы установим жесты для выполнения всех этих операций.
- Жест 1: положите руку перед правым ультразвуковым датчиком на расстояние от 15 см до 30 см. Через небольшой промежуток времени уберите руку. Это позволит прокрутить страницу вниз и уменьшить громкость.
- Жест 2: Поместите руку перед правым ультразвуковым датчиком на расстоянии примерно 15-30 см. Через небольшой промежуток времени подтолкните руку к ультразвуковому датчику. Это позволит прокрутить веб-страницу вверх и увеличить громкость.
- Жест 3: Чтобы перейти к следующей вкладке, проведите рукой перед правым ультразвуковым датчиком.
- Жест 4: Чтобы перейти к предыдущей вкладке, проведите рукой перед левым ультразвуковым датчиком. Это также будет воспроизводить / приостанавливать ваше видео на плеере VLC.
- Жест 5: для переключения между двумя задачами проведите рукой по обоим датчикам.
Мы написали код и выполнили все условия, основанные на вышеуказанных жестах. И следует отметить, что мы используем Google Chrome в качестве нашего веб-браузера и VLC Media Player в качестве нашего медиа-приложения.
Шаг 6: Понимание кода Arduino
Мы написали код, который преобразует 5 жестов в цифровую команду. эта команда отправляется на последовательный порт. Мы напишем программу на Python для интерпретации этих команд и выполнения некоторых функций клавиатуры для выполнения различных задач.
1. В начале инициализируются все контакты, которые мы хотим соединить с датчиками. Различные переменные также инициализируются для хранения данных для расчета времени и расстояния.
const int trigPin1 = 11; // активировать выходной контакт (датчик 1)
const int echoPin1 = 10; // эхо входной контакт (датчик 1)
const int trigPin2 = 6; // активировать выходной контакт (датчик 2)
const int echoPin2 = 5; // эхо входной контакт (датчик 2)
// переменные, используемые для расчета расстояния
большая продолжительность;
int distance1, distance2;
float r;
длинная беззнаковая температура = 0;
int temp1 = 0;
int l = 0;
2. Мы написали функцию void find_distance (void), чтобы рассчитать расстояние до обоих ультразвуковых датчиков. Лучше не запускать оба ультразвуковых датчика одновременно, потому что это может вызвать некоторые помехи. Эта функция вернет расстояние в см.
void find_distance (void)
{
digitalWrite (trigPin1, LOW);
delayMicroseconds (2);
digitalWrite (trigPin1, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin1, LOW);
длительность = pulseIn (echoPin1, HIGH, 5000);
r = 3,4 * продолжительность / 2; // расчет для получения измерения в сантиметрах, используя время, возвращаемое функцией pulsein.
расстояние1 = об / 100,00;
digitalWrite (trigPin2, LOW);
delayMicroseconds (2);
digitalWrite (trigPin2, HIGH);
delayMicroseconds (10);
digitalWrite (trigPin2, LOW);
длительность = pulseIn (echoPin2, HIGH, 5000);
r = 3,4 * продолжительность / 2;
расстояние2 = об / 100,00;
задержки (100);
}
3. void setup () – это функция, которая инициализирует все контакты, которые будут использоваться как INPUT или OUTPUT. Скорость передачи данных также устанавливается в этой функции. Скорость передачи – это скорость, с которой плата микроконтроллера взаимодействует с подключенными датчиками.
настройка void ()
{
Serial.begin (9600);
pinMode (trigPin1, OUTPUT); // инициализируем выводы триггера и эха обоих датчиков как вход и выход:
pinMode (echoPin1, INPUT);
pinMode (trigPin2, OUTPUT);
pinMode (echoPin2, INPUT);
задержка (1000);
}
4. void loop () – это функция, которая многократно запускается в цикле. В этом цикле мы вычисляем расстояние во многих случаях и применяем условия для обнаружения жеста.
void loop ()
{
find_distance ();
если (distance2<=35 && distance2>= 15)
{
Темп = Миллис ();
в то время как (Миллис () <= (температура + 300))
find_distance ();
если (distance2<=35 && distance2>= 15)
{
Темп = distance2;
while (distance2 <= 50 || distance2 == 0)
{
find_distance ();
если ((температура + 6)
{
Serial.println ( “вверх”);
}
}
}
еще
{
Serial.println ( “следующий”);
}
}
еще если (расстояние1<=35 && distance1>= 15)
{
Темп = Миллис ();
в то время как (Миллис () <= (температура + 300))
{
find_distance ();
если (distance2<=35 && distance2>= 15)
{
Serial.println ( “Изменение”);
л = 1;
ломать;
}
}
если (л == 0)
{
Serial.println ( “предыдущий”);
в то время как (distance1<=35 && distance1>= 15)
find_distance ();
}
л = 0;
}
}
Шаг 7: программирование на Python
Мы установим PyAutoGUI и вызовем различные команды клавиатуры, просто читая входящие последовательные данные. С помощью этой программы мы можем имитировать многие операции мыши и клавиатуры, такие как щелчок левой или правой кнопки мыши или любое нажатие клавиши клавиатуры.
Сначала мы установим PIP на наши окна. Это простая процедура. кликните сюда чтобы открыть видео-руководство по установке pip на ваш компьютер. После установки PIP на нашем компьютере мы продолжим и установим pyAutoGUI. Для этого введите в командной строке следующую команду
python -m pip установить pyautogui
Эта команда установит puAutoGUI на ваш компьютер. Если до сих пор все идет хорошо, давайте продолжим и напишем программу на python для вызова различных клавиатурных команд. Поскольку мы получаем 5 различных команд в последовательном вводе с помощью кода Arduino, код Python может преобразовать эти команды в определенные команды клавиатуры следующим образом.
- Данные: «следующий» —–> Действие: «Ctrl + PgDn»
- Данные: «предыдущий» —–> Действие: «Ctrl + PgUp»
- Данные: «вниз» —–> Действие: «Стрелка вниз»
- Данные: «вверх» —–> Действие: «Стрелка вверх»
- Данные: «изменить» —–> Действие: «Alt + Tab»
Python можно использовать для программирования Arduino, просто импортировав pyfirmata, который может связывать Arduino с Python. Ниже приведен код Python, который потребуется для запуска проекта:
импортировать серийный номер добавить последовательную библиотеку для последовательной связи
import pyautogui # добавить библиотеку pyautogui для программного управления мышью и клавиатурой.
Arduino_Serial = serial.Serial (‘com12’, 9600) # Инициализировать последовательный и создать объект последовательного порта с именем Arduino_Serial
пока 1:
входящих_данных = str (Arduino_Serial.readline ()) # читать последовательные данные и печатать их в виде строки
напечатать входящие_данные # распечатать входящие серийные данные
if ‘next’ в прибывающих данных: # если входящие данные ‘next’
pyautogui.hotkey (‘ctrl’, ‘pgdn’) # выполнить операцию “ctrl + pgdn”, которая переходит на следующую вкладку
if ‘previous’ во входящих_данных: # если входящие данные ‘предыдущие’
pyautogui.hotkey (‘ctrl’, ‘pgup’) # выполнить операцию “ctrl + pgup”, которая переместится на предыдущую вкладку
if ‘down’ в input_data: # если входящие данные ‘down’
# pyautogui.press (‘down’) # выполняет операцию “стрелка вниз”, которая прокручивает страницу вниз
pyautogui.scroll (-100)
if ‘up’ в input_data: # если входящие данные ‘up’
# pyautogui.press (‘up’) # выполняет операцию “стрелка вверх”, которая прокручивает страницу вверх
pyautogui.scroll (100)
if ‘change’ incoming_data: # если входящие данные ‘change’
pyautogui.keyDown (‘alt’) # выполняет операцию “alt + tab”, которая переключает вкладку
pyautogui.press ( ‘Вкладка’)
pyautogui.keyUp ( ‘альт’)
входящие_данные = “”; # очищает данные
Это был самый простой способ управлять своим компьютером с помощью жестов рук. Выполните все шаги, упомянутые выше, и наслаждайтесь управлением своим ПК рукой, а не клавиатурой и мышью.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)