Компьютерное зрение и Arduino
В этом видео мы объединим Arduino с компьютерным зрением. За буквально 15 минут мы получим управление светодиодной лентой при помощи жестов вашей руки. Сделаем так чтобы один палец управлял яркостью ленты, два – цветом, ну а другие жесты – всем, что вам придет в голову.
В работе будем использовать библиотеки OpenCV и Mediapipe.
Схема и использованные компоненты в видео
Минимальный вариант
-
Arduino Uno 1 шт.
Вы можете взять любой другой микроконтроллер или платформу - например, Arduino (UNO, Nano, Micro и т.д.)
-
Адресная лента WS2812B 1 шт.
-
Веб-камера 1 шт.
Можно взять любую, даже использовать камеру телефона
Исходники программ для Arduino и PyCharm
Программа управления яркостью и цветом адресной ленты жестами руки
Код виртуальной клавиатуры из видео
Для этой программы потребуются доп. библиотеки: cvzone (!! обязательно версия 1.4.1), time, numpy, pynput – устанавливаются так же, как opencv и другие (см. ниже)
Установка необходимых программ
PyCharm
Перейдя на сайт разработчика, выберите версию Community
Arduino IDE
При создании этого видео использовалась Arduino IDE версии 1.8.13
Python 3.9
При создании этого видео использовался Python версии 3.9
Библиотека FastLED для Arduino
После установки библиотеки, в меню Arduino IDE Файл -> Примеры -> Название библиотеки вы можете найти примеры использования этой библиотеки. Также эти примеры хранятся в архиве библиотеки: папка libraries -> Имя библиотеки -> Example
Для скачивания нажмите Code -> Download ZIP
установка в Arduino IDE
В меню Arduino IDE выберите Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку… и выберите скачанный вами архив с библиотекой.
установка вручную
Распакуйте скачанный вами архив с библиотекой. Найдите папку libreries в архиве и в ней папку с названием библиотеки. Перенесите эту папку по следующему пути: Мои документы -> Arduino -> libreries
Библиотеки mediapipe, opencv и serial в PyCharm
Шаг 1
В верхнем меню выберите: File -> Settings -> Project -> Python Interpreter и нажмите значок “+”
Шаг 2
- opencv-python
- mediapipe
- pyserial