
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05



Этот проект позволяет вам управлять роботом через веб-страницу и просматривать прямую трансляцию. Его можно использовать для слежки за домашними животными, чтобы убедиться, что в вашей духовке ничего не горит, и даже для наблюдения за птицами! DFRobot предоставила Raspberry Pi 3 и модуль камеры Raspberry Pi.
Шаг 1. Робот-электроника

Я начал со сборки комплекта шасси 2WD MiniQ от DFRobot. Я надел колеса на валы двигателей, затем вставил их в кронштейны и прикрепил к шасси. Наконец, я добавил металлические опоры. Пришло время построить основную плату. Драйвер двигателя L293d был припаян на место вместе с проводами, идущими к контактам GPIO Raspberry Pi. Затем я припаял разъем для аккумулятора, так как он обеспечивает основное питание. После того, как был добавлен источник питания, я установил регулятор на 5 В.
Шаг 2: настройка Pi

DFRobot обратился ко мне и прислал свой модуль камеры Raspberry Pi 3 и Raspberry Pi. Итак, открыв коробки, я сразу приступил к установке SD-карты. Сначала я зашел на страницу загрузок Raspberry Pi и загрузил самую последнюю версию Raspbian. Затем я извлек файл и поместил его в удобный каталог. Вы не можете просто скопировать / вставить файл.img на SD-карту, вы должны «записать его» на карту. Вы можете загрузить утилиту записи, например Etcher.io, чтобы легко перенести образ ОС. После того, как файл.img был на моей SD-карте, я вставил его в Raspberry Pi и подал питание. Примерно через 50 секунд я отключил шнур и вынул SD-карту. Затем я вставил SD-карту обратно в свой компьютер и перешел в «загрузочную» директорию. Я открыл блокнот и сохранил его как пустой файл с именем «ssh» без расширения. Я также добавил файл под названием "wpa_supplicant.conf" и поместил в него такой текст:
сеть = {ssid = psk =}
Затем я сохранил, извлек карту и вставил ее обратно в Raspberry Pi 3. Теперь это должно позволить использовать SSH и подключаться к Wi-Fi.
Шаг 3. Подготовка камеры

По умолчанию камера на Pi отключена, поэтому вы должны открыть терминал типа sudo raspi-config, чтобы вызвать меню. Перейдите в «Параметры интерфейса» и включите камеру. Теперь просто выберите «Готово» и вставьте ленточный кабель модуля камеры в правильную область Pi.
Шаг 4: Установка программного обеспечения
Есть несколько различных программ, которые могут передавать видео, например vlc и motion, но я решил использовать mjpeg-streamer из-за его низкой задержки и простой установки. Согласно инструкциям на сайте, сделайте git clone https://github.com/jacksonliam/mjpg-streamer.git в папку, затем введите sudo apt-get install cmake libjpeg8-dev, чтобы установить необходимые библиотеки. Измените свой каталог на папку, которую вы загрузили, а затем введите make, а затем sudo make install, чтобы скомпилировать программное обеспечение. Наконец введите экспорт LD_LIBRARY_PATH =. и для его запуска введите./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Вы можете получить доступ к потоку, перейдя по адресу https://: 8080 / stream.html, чтобы просмотреть поток.
Шаг 5: Контроллер


Затем пришла часть того, как управлять Raspberry Pi через Wi-Fi, потому что у Bluetooth слишком маленький диапазон. Я решил использовать сервер Flask, работающий на Raspberry PI, и модуль ESP8266 ESP12E для отправки на него данных. ESP8266 имеет только один аналоговый вход, что означает, что я не мог использовать джойстик напрямую, поскольку он принимает два аналоговых входа. Лучшим вариантом был ADS1115, устройство I2C, считывающее аналоговые сигналы с разрешением 16 бит. Я просто подключил SDA к 4 и SCL к 5 вместе с VCC и GND. Ось X джойстика подключается к A0 на ADS1115, а ось Y подключается к A1. НО, я случайно сгорел ADS1115, поэтому мне пришлось прибегнуть к следующему лучшему: кнопкам! Итак, теперь моя установка - это ESP8266 Sparkfun Thing Dev Board с 3 кнопками - вперед, вправо и влево. Теперь при каждом нажатии он отправляет данные, чтобы повернуть колеса в этом направлении.
Шаг 6: Код для робота

Я сделал предыдущий проект, в котором использовалась библиотека Pi GPIO PWM для управления двигателями через json, поэтому я просто переделал код для приема данных через приложение Flask. Flask - это библиотека Python, которая по сути превращает ваш Pi в веб-сервер, способный отправлять и получать данные. Используя ШИМ, можно управлять двигателями с большей точностью по сравнению с приводом от танка. Это также означает, что робот может двигаться с переменной скоростью, а не с фиксированной. Мое приложение для фляги настроено на изменение ШИМ двигателей после получения данных из запроса GET через http от ESP12e. Он также использует библиотеку subprocess. Popen для запуска скрипта веб-потоковой передачи в фоновом режиме. Я прикрепил код к странице проекта, поэтому все, что нужно, - это загрузить.
Шаг 7: Код контроллера
Код был довольно простым: просто снимите показания с 3 контактов, прогоните их через некоторые операторы if, чтобы определить направление колеса, и, наконец, отправьте эти значения в Raspberry Pi. Дополнение к плате ESP8266 для Arduino IDE поставляется с библиотекой HTTPClient, которая обрабатывает заголовки и отправляет данные. Сервер Flask должен получать данные через вызов POST, поэтому код запускает соединение с веб-сервером Raspberry Pi, затем добавляет заголовок к данным, обозначающий, что они закодированы в JSON, и, наконец, он отправляет данные в форме объекта JSON.. Я добавил задержку в 40 мс, чтобы предотвратить перегрузку Raspberry Pi данными.
Шаг 8: Запуск Raspberry SPy


Все, что требуется, это ввести sudo python.py! Вы должны увидеть, как загорится камера, и, перейдя по веб-адресу пи с портом 8080, поток должен стать видимым. Теперь вы можете использовать контроллер в любом месте дома, а также вести прямую трансляцию.
Рекомендуемые:
Arduino - Робот для разгадывания лабиринта (MicroMouse) Робот, следующий за стеной: 6 шагов (с изображениями)

Arduino | Робот для решения лабиринта (MicroMouse) Робот, следующий за стеной: Добро пожаловать, я Исаак, и это мой первый робот «Страйкер v1.0». Этот робот был разработан для решения простого лабиринта. В соревновании у нас было два лабиринта и робот смог их идентифицировать. Любые другие изменения в лабиринте могут потребовать изменения
Робот-конфетный робот на Хэллоуин: 7 шагов (с изображениями)

Робот-конфетный робот для Хэллоуина: если вы ищете новый веселый способ взаимодействия с хеллоуинскими трюками этого года и готовы принять вызов, который несет этот проект, тогда приступайте к делу и создайте свой собственный! Этот социальный дистанцирующийся робот «увидит», когда угощение
ГОЛОДНЫЙ РОБОТ ДЛЯ БУМАГИ - Робот Pringles Recycle Arduino: 19 шагов (с изображениями)

PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: это еще одна версия Hungry Robot, которую я построил в 2018 году. Вы можете сделать этого робота без 3D-принтера. Все, что вам нужно сделать, это просто купить банку Pringles, серводвигатель, датчик приближения, ардуино и некоторые инструменты. Вы можете скачать все
[DIY] Робот-паук (четвероногий робот, четвероногий): 14 шагов (с изображениями)
![[DIY] Робот-паук (четвероногий робот, четвероногий): 14 шагов (с изображениями) [DIY] Робот-паук (четвероногий робот, четвероногий): 14 шагов (с изображениями)](https://i.howwhatproduce.com/images/001/image-1641-34-j.webp)
[Сделай сам] Робот-паук (четвероногий робот, четвероногий): если вам нужна дополнительная поддержка с моей стороны, будет лучше, если вы сделаете мне подходящее пожертвование: http://paypal.me/RegisHsu Обновление 2019-10-10: новый компилятор вызовет проблему с вычислением плавающего числа. Я уже изменил код. 2017-03-26
Балансировочный робот / 3-колесный робот / STEM-робот: 8 шагов

Робот-балансировщик / 3-колесный робот / STEM-робот: мы создали комбинированный балансировочный и 3-колесный робот для использования в учебных заведениях и после школьных образовательных программ. Робот основан на Arduino Uno, специальном щите (предоставлены все детали конструкции), литиево-ионном аккумуляторном блоке (все стро