Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/user/web/mal.scrum360.ru/public_html/wp-includes/functions.php on line 6260

Notice: Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка перевода для домена cyr2lat была запущена слишком рано. Обычно это индикатор того, что какой-то код в плагине или теме запускается слишком рано. Переводы должны загружаться при выполнении действия init или позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.7.0.) in /home/user/web/mal.scrum360.ru/public_html/wp-includes/functions.php on line 6260
Око Саурона на OpenCV. Проект для Raspberry Pi

Ведутся технические работы. Это может временно повлиять на скорость работы сайта. Приносим извинения за неудобства и благодарим за ваше понимание!

Око Саурона на OpenCV. Проект для Raspberry Pi


Warning: Undefined array key 1 in /home/user/web/mal.scrum360.ru/public_html/wp-content/themes/malitikov/single.php on line 15
Заведи Raspberry Pi — http://amperka.ru/product/malina?utm_source=proj&utm_campaign=sayrons-eye&utm_medium=youtube
Cегодня видео о необычной картине. Это пейзаж Мордор, и в его центре живёт механический глаз Саурона. Он будет следить за любым, кто пройдёт мимо картины. Сделано это на OpenCV для Raspberry Pi.

Начну с самого сложного — картины. С Raspberry и OpenCV я работал и раньше, а вот с изобразительным искусство — не сложилось. Поэтому я скачал подходящую картинку из Инета, прошёлся парой фильтров в Photoshop и распечатал. Только не на бумаге, а на специальном холсте для плоттера. Полотно на 70 процентов состоит из хлопка, а на 30 из синтетики. Внешне ткань очень похожа на настоящую картину, но она прочнее холста и легче натягивается на подрамник.

Картинка получилась размером 120 на 85 сантиметров. Это чуть больше стандарта А0. Поэтому купить раму не составило труда — выбор готовых рам огромный. Я натянул холст на подрамник и закрепил его строительным степлером.

Всевидящее око сделаю из точечного светильника. Самый мощный, который я нашёл оказался со светодиодом на 3 Вт. Он дал чёткое белое пятно. Но у Саурона глаз был огненный! Если покрашу линзу или поставлю цветной фильтр, световой поток упадёт в разы — его не хватит для нужного эффекта.

Заменю белый светодиод жёлтым на 10Вт. Старому диоду хватало 600 мА, новому нужно в полтора раза больше. Поэтому выкину регулятор питания, а диод подключу через внешний адаптер Robiton.

Конструкция весит больше килограмма. Поэтому для вращения глазом использовал сервоприводы с металлическим редуктором — FS5109M. На 6В они выдают крутящий момент в 10 кг·см. Управляющая плата — Raspberry Pi 3B+. Подключю к ней сервы через Troyka Cap — это как Troyka Shield, только не под Ардуино, а для Распбери.

Подключу оригинальную камеру с сенсором Exmor от Сони. Можно было бы использовать обычную вебку, но тогда я потерял бы в скорости обработки видеопотока. USB-хост — ахилесова пята малинки. Мне нужны все ресурсы Расспбери, ведь движение буду отслеживать с помощью OpenCV.

OpenCV — это открытая библиотека алгоритмов компьютерного зрения. Она справляется с распознаванием символов и лиц, трекингом движущихся объектов и автоматической обработкой видеопотока. Версию библиотеки под Python легко установить из репозитория.

Я же пошёл путём настоящего самурая — скачал исходники и собрал OpenCV. Не всё прошло гладко, но зато я сформулировал четыре правила:
— для OpenCV не хватит карты на 8 Гб. Подойдёт microSD на 16 или 32 Гб;
— для сборки используйте только два ядра, иначе Raspberry рискует перегреться и зависнуть;
— отключите в конфиге компиляцию всех примеров. Это сэкономит кучу времени;
— не забудьте поставить GTK, пакет для работы с оконными интерфейсами.
Следуйте этим заповедям, и библиотека соберётся с первого раза, всего за пять-шесть часов.

Использую алгоритм поиска движения в кадре. Не буду лезть в сложную математику — достаточно что библиотека определяет движущийся объект и сообщает координаты его центра. Напишу несложный код на C++, который будет управлять сервами и наводить луч света по этим координатам.

Осталось решить последнюю проблему. Око должно оставлять чёткий луч света, прямо как в фильме. Вариант «поправить на посте» я не рассматриваю, поэтому подпущу дым. Помните как выглядит свет маяка в тумане? Попробую повторить этот эффект. Для этого у меня есть аж три ультрозвуковых увлажнителя. Их силёнок не хватило. Поэтому возьму профессиональную дым машину на 400 Вт. Залью в неё смесь глицерина, спирта и воды. И…

Let’s go party!

В проекте использованы:
• Raspberry Pi 3 B+ — http://amperka.ru/product/raspberry-pi-3-model-b-plus
• Troyka Cap — http://amperka.ru/product/raspberry-troyka-cap
• microSD-карта с ОС Raspbian — http://amperka.ru/product/raspbian-micro-sd-card
• Raspberry Pi Camera Board v2.1 — http://amperka.ru/product/raspberry-pi-camera-board-v2
• Сервопривод FS5109M — http://amperka.ru/product/servo-fs5109m?utm_source=proj&utm_campaign=sayrons-eye&utm_medium=youtube
• Импульсный блок питания (1000 мА) — http://amperka.ru/product/wall-plug-1a?utm_source=proj&utm_campaign=sayrons-eye&utm_medium=youtube

#проекты #amperka #raspberry #rpi3 #opencv

Warning: foreach() argument must be of type array|object, null given in /home/user/web/mal.scrum360.ru/public_html/wp-content/themes/malitikov/single.php on line 44