Как сделать 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: Сборка компонентов

Теперь, когда мы знаем основные рабочие компоненты, которые мы собираемся использовать. Давайте начнем собирать компоненты, чтобы сделать окончательный рабочий продукт.

  1. Подключите контакты Vcc и заземления обоих ультразвуковых датчиков к 5 В и заземлению платы Arduino Nano. Контакт триггера и эхо-сигнала первого ультразвукового датчика подключен к контакту 11 и контакту 10 Arduino Nano соответственно. Триггерный и эхо-контакт второго ультразвукового датчика подключен к контактам 6 и 5 Arduino nano соответственно.
  2. Прикрепите наноплату Arduino к задней части скотча на экране ноутбука. Оба ультразвуковых датчика будут прикреплены к обоим верхним углам ноутбука.

Шаг 4: Начало работы с Arduino

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

  1. Загрузите последнюю версию Arduino IDE с Arduino.
  2. Подключите плату Arduino Nano к ноутбуку и откройте панель управления. Затем нажмите «Оборудование и звук». Теперь нажмите на Устройства и принтеры. Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но он отличается на разных компьютерах.Поиск порта
  3. Нажмите на меню «Инструменты» и выберите в раскрывающемся меню плату Arduino Nano.Настольная доска
  4. В том же меню «Инструменты» установите для порта номер порта, который вы видели ранее в «Устройствах и принтерах».Настройка порта
  5. В том же меню «Инструменты» установите для процессора значение «ATmega328P» («Старый загрузчик»).процессор
  6. Загрузите приведенный ниже код и вставьте его в свою Arduino IDE. Нажмите на кнопку загрузки, чтобы записать код на вашей плате микроконтроллера.Загрузить

Чтобы скачать код, кликните сюда.

Шаг 5: установка жестов

Мы хотим написать код, который будет определять и преобразовывать расстояние в соответствующую команду для выполнения задачи.

давайте сначала составим список всех задач, которые мы хотим выполнить с помощью жестов. Ниже приведен список всех этих задач.

  1. Переключитесь на следующую или предыдущую вкладку в веб-браузере.
  2. Прокрутите вверх и вниз на веб-странице.
  3. Воспроизведение и приостановка видео в VLC Player.
  4. Увеличивайте и уменьшайте громкость.
  5. Переключайтесь между двумя задачами.

Теперь мы установим жесты для выполнения всех этих операций.

  1. Жест 1: положите руку перед правым ультразвуковым датчиком на расстояние от 15 см до 30 см. Через небольшой промежуток времени уберите руку. Это позволит прокрутить страницу вниз и уменьшить громкость.
  2. Жест 2: Поместите руку перед правым ультразвуковым датчиком на расстоянии примерно 15-30 см. Через небольшой промежуток времени подтолкните руку к ультразвуковому датчику. Это позволит прокрутить веб-страницу вверх и увеличить громкость.
  3. Жест 3: Чтобы перейти к следующей вкладке, проведите рукой перед правым ультразвуковым датчиком.
  4. Жест 4: Чтобы перейти к предыдущей вкладке, проведите рукой перед левым ультразвуковым датчиком. Это также будет воспроизводить / приостанавливать ваше видео на плеере VLC.
  5. Жест 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)distance2)
    {
     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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *