Оглавление:
- Шаг 1. Аппаратное обеспечение
- Шаг 2: настройка Raspberry Pi
- Шаг 3. Обработка перемещений (сервер Bluetooth)
- Шаг 4. Приложение для Android (клиент Bluetooth)
- Шаг 5: Подключение оборудования
- Шаг 6: потоковая передача
- Шаг 7: Двигайтесь
Видео: Дрон на базе Raspberry Pi, Android, IoT и Bluetooth: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Используя Raspberry Pi для бортовой логики, этот компактный мобильный компьютер создаст локальный порт, который передает видео в режиме реального времени, одновременно создавая Bluetooth-сокеты для чтения значений, отправленных пользовательским приложением для Android. Приложение синхронизируется с дроном и использует вводимые пользователем данные для мгновенной отправки инструкций дрону.
Этот проект довольно сложно сделать с нуля. Надеюсь, следующая информация даст представление о различных приложениях дронов. Предоставляется все программное обеспечение и схемы, относящиеся к этому проекту. Не стесняйтесь изменять и делиться кодом по своему вкусу. Пожалуйста, используйте предоставленную информацию ответственно и не стесняйтесь оставлять комментарии ниже.
Шаг 1. Аппаратное обеспечение
Ниже приведен список оборудования, которое я использовал.
- Raspberry Pi 3 Модель B
- Модуль камеры Raspberry PI
- Драйвер двигателя L298N
- 2, двигатели постоянного тока
- Клавиатура, любой монитор, мышь, кабель Ethernet и кабель HDMI (для Pi)
- Карта MicroSD на 8 ГБ
- Винты, лента и т. Д.
- 2 колеса
- Устройство Android Bluetooth (мой телефон)
- 2, 18650 ячеек
- Регулятор на 5 Вольт
- Компьютер для программирования приложения
Raspberry Pi: для более высоких разрешений потока (или для новичков) я бы порекомендовал новейшую версию модели B, в то время как более компактные версии могут использовать либо новейшую модель A +, либо Pi Zero (версия камеры). Помните, что если вы используете Raspberry Pi Zero, вам понадобится ключ Bluetooth и / или WiFi. В этом руководстве предполагается, что вы используете Raspberry Pi 3 B.
Драйвер двигателя: Я использовал L298N, хотя любой драйвер двигателя должен работать. Просто убедитесь, что он может выдерживать напряжение и ток ваших двигателей.
2 двигателя постоянного тока: убедитесь, что они выдержат вес вашего дрона.
Корпус: используется для удержания всех компонентов. Обычно твердый пластик или алюминий являются прочным и легким материалом. Для достижения оптимальных результатов можно использовать даже 3D-принтер.
Источник питания: это почти всегда самое сложное решение при выборе запчастей. Требуемый аккумулятор зависит от потребляемого тока. Для приложений с низким энергопотреблением (например, 1 или 2 ампера) должно хватить аккумулятора на 9 В. Для более высокой силы тока я рекомендую литий-ионный аккумулятор 18650 или литий-полимерный аккумулятор, поскольку они легкие, могут выдерживать большую мощность для своего размера и перезаряжаемые.
2 колеса: просто убедитесь, что ваши колеса имеют тот же размер отверстия, что и вал вашего двигателя. Также убедитесь, что диаметр колес достаточно велик для вашего дрона. Поскольку для этого проекта существует множество возможных вариантов и конструкций, их можно использовать с разными типами и размерами колес.
Стабилизаторы напряжения: для питания пианино от батареи требуется регулятор на 5 вольт. Я использовал понижающий преобразователь постоянного тока LM2596.
Большинство продуктов по ссылкам использовались в этом проекте и были лучшими предложениями, которые я мог найти в то время.
Теперь, когда у вас есть все необходимое, давайте настроим пи.
Шаг 2: настройка Raspberry Pi
Этот шаг покажет вам, как настроить Raspberry Pi, чтобы вы могли начать кодирование. Если у вас уже есть настройка pi с Raspbian, не стесняйтесь переходить к следующему шагу.
Для начала нужно скачать операционную систему для малины. Получите NOOBS, если вы новичок. Если у вас уже есть значительный опыт работы с Raspberry Pi, возможно, вас заинтересует Raspbian. Я предполагаю, что вы используете NOOBS для этого урока.
Во время загрузки отформатируйте SD-карту с помощью SD Formatter.
Теперь извлеките и скопируйте содержимое загрузки в корень вашей SD-карты. Root просто означает, что его нет в каких-либо папках. Если была создана новая папка для хранения всех извлеченных файлов, скопируйте этот файл.
Затем прикрепите SD-карту к пи. Во время вставки он должен либо «щелкнуть», либо просто сесть в нижней части пи.
Подключите мышь и клавиатуру к пи. Затем подключите кабель HDMI к пи от монитора. Наконец, подключите адаптер сетевой розетки micro USB на 3 А к пи. Хотя рекомендуется настенная розетка, я использовал свой ноутбук в качестве источника питания (USB от моего ноутбука до Micro USB в пи).
Пусть пи делает свое дело. Если будет предложено, выберите Raspbian и позвольте ему установить. Следуйте инструкциям установщика. Это может занять некоторое время. Если все пойдет правильно, вы должны увидеть экран рабочего стола, аналогичный показанному выше.
Подключите кабель Ethernet от вашего маршрутизатора к pi. Затем откройте командную строку (значок черного «прямоугольника» вверху экрана). Вам нужно будет обновить pi через проводную сеть, чтобы подключить его к беспроводной сети.
Затем щелкните значок кабеля в верхней части экрана. Введите сведения о вашей сети, где будет предложено.
Введите текст в следующей строке точно так, как показано, и нажмите Enter. Это обновит pi. Это может занять некоторое время. Просто позвольте ему делать свое дело.
sudo apt-get update
Затем введите код в следующей строке. Это тоже займет некоторое время. Ничего не делайте, пока не закончите.
sudo apt-get dist-upgrade
Теперь у вас должна быть возможность отсоединить кабель Ethernet, щелкнуть значок беспроводной связи в верхней части экрана, ввести информацию о вашей сети и, наконец, подключиться к вашей сети через беспроводное соединение.
Теперь давайте закодируем часть дрона, которая обрабатывает движения.
Шаг 3. Обработка перемещений (сервер Bluetooth)
Для обработки движений используется язык программирования «Python 3». Сообщения, которые говорят роботу двигаться, будут отправлены через Bluetooth из приложения.
Во-первых, вам нужно установить библиотеку Bluetooth. Для этого введите следующие команды.
sudo apt-get update
sudo apt-get установить bluetooth
sudo apt-get install bluez
sudo apt-get install python-bluez
Теперь на рабочем столе щелкните значок меню «Пуск», затем «Программирование», затем «Python 3». Затем на панели инструментов нажмите «Файл», «новый». Должно появиться новое окно.
Скопируйте в окно содержимое вложения «bluetoothpi.rtf».
На панели инструментов нажмите Файл, Сохранить как. Сохраните его в каталоге / home / pi / Desktop / как Movement.py.
Теперь, чтобы проверить код, щелкните значок Bluetooth в правом верхнем углу экрана. Подключите raspberry pi к своему устройству Android. Загрузите приложение BlueTerm на свое устройство Android. Затем в командной строке введите следующий код полужирным шрифтом. Это выполнит код Python.
sudo python /home/pi/Desktop/movements.py
На знаке «пи» должен появиться текст «Ожидание подключения».
Запустите BlueTerm и щелкните значок параметров, а затем кнопку «Искать подключения».
В приложении должно появиться имя вашего raspberry pi. Нажмите на кнопку с именем числа "пи". Текст «Принятое соединение от» должен появиться рядом с числом «пи», за которым следует его адрес. Теперь все, что вы набираете в телефоне, должно отображаться в виде числа "пи".
Вы успешно закодировали свой собственный серверный сокет Bluetooth!
Шаг 4. Приложение для Android (клиент Bluetooth)
Загрузите Android Studio здесь. Установите его и следуйте инструкциям установщика.
Начать новый проект. Создайте пустое действие под названием MainActivity.
Скопируйте содержимое вложения «Logic.txt» в файл «MainActivity.java» (вкладка). Это содержит всю логику, лежащую в основе приложения. Возможно, вам потребуется изменить имя вашего устройства в нижней части файла.
Затем скопируйте содержимое файла «GUI» в файл «activity_main.xml» (вкладка). Он содержит очень простой графический интерфейс для приложения.
Теперь вам нужно будет импортировать в приложение кнопки со стрелками (изображения). Разархивируйте прикрепленный файл Arrows.zip. Слева от студии Android откройте файловую структуру, чтобы увидеть приложение, разрешение, миникарту. Скопируйте изображения стрелок (файлы PNG), щелкните правой кнопкой мыши мини-карту файла и вставьте изображения в файл, сохраняя имена стрелок одинаковыми. Когда закончите, он должен выглядеть как на картинке.
Наконец, скопируйте содержимое файла «Manifest» в свой файл «AndroidManifest.xml» (вкладку).
Чтобы протестировать приложение, вам нужно будет запустить его на своем устройстве. Для этого вам нужно будет перевести устройство в режим разработчика и включить отладку по USB. Для большинства устройств вам нужно будет зайти в «Настройки», «О телефоне», прокрутить вниз и семь раз щелкнуть «Номер сборки», пока не появится сообщение «Теперь вы разработчик!» Вернитесь назад, и теперь вы должны увидеть вкладку «Параметры разработчика». Щелкните по нему и включите отладку по USB.
Подключите устройство Android к компьютеру через USB, щелкните значок запуска в Android Studio и выберите свое устройство.
На пи запустите код Python, созданный на шаге 3, набрав команду, выделенную жирным шрифтом:
sudo python /home/pi/Desktop/movements.py
Затем нажмите кнопку подключения в приложении. При подключении в приложении должны появиться стрелки. Каждый раз, когда вы щелкаете по одному из них, он обновляет состояние «перемещения» пи.
Ничего страшного, если фон приложения выдает ошибку. Это будет исправлено позже.
Вы только что создали собственное приложение и Bluetooth-клиент.
Шаг 5: Подключение оборудования
Припаяйте соединения, показанные на схеме выше. Присоедините модуль камеры к пи тоже.
Запустите приложение и запустите файл motion.py. Если двигатели работают правильно при использовании приложения, не стесняйтесь помещать все компоненты в доработанную оболочку для дрона. Вам может потребоваться изменить значения кодов "ВЫСОКИЙ" и "НИЗКИЙ", чтобы он двигался правильно.
На следующем этапе мы добавим функцию стриминга дрона.
Шаг 6: потоковая передача
У них есть несколько способов потоковой передачи видео с помощью Pi, но использование uv4l - это, безусловно, самый простой способ практически без задержек.
Небольшое примечание: если вы уже собрали свой дрон и не можете подключить его к монитору и клавиатуре, вам понадобится SSH в свой дрон. Для этого скачайте Putty на свой компьютер. Откройте его и введите IP-адрес вашего малины (найдите IP-адрес, набрав команду ifconfig). Вам будет предложено ввести имя пользователя и пароль. Имя пользователя и пароль по умолчанию - pi и raspberry соответственно. Теперь все, что вы вводите в поле команд, будет похоже на ввод команд непосредственно в дрон.
настройка uv4l
Введите эту команду:
sudo nano /etc/apt/sources.list
Добавьте следующую строку в последнюю строку файла.
deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main
Выйдите и сохраните файл, нажав Ctrl-X, а затем набрав Да.
Затем введите следующую строку и нажмите ввод.
sudo apt-get update
тогда это:
sudo apt-get install uv4l uv4l-raspicam
Построчно введите следующие команды. Подождите, пока он закончит свою работу, прежде чем вводить следующую строку.
sudo apt-get install uv4l-raspicam-extras
sudo service uv4l_raspicam перезапуск
sudo rpi-update
sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp
sudo apt-get install uv4l-webrtc
sudo apt-get install uv4l-xmpp-bridge
sudo apt-get install uv4l-raspidisp-extras
После этого все, что вам нужно сделать, это ввести следующую команду, чтобы начать потоковую передачу (замените «raspberrypi» на IP-адрес малины / имя хоста в вашей сети)
cvlc https:// raspberrypi: 8080 / stream / video.mjpeg
Это запустит потоковую передачу видео в реальном времени на порт 8080. Теперь поток должен отображаться в фоновом режиме вашего приложения. Чтобы просмотреть поток в любом браузере, введите этот URL (где «raspberrypi» - IP-адрес вашего дрона).
https:// raspberrypi: 8080 / stream / video.mjpeg
Поздравляю, вы создали свой шпионский дрон.
Шаг 7: Двигайтесь
Щелкните выключателем питания и начните исследование.
Если вы хотите узнать, как сделать что-нибудь еще, спросите меня, и я посмотрю, что я могу сделать.
Если у вас есть какие-либо вопросы, прокомментируйте их ниже, и я постараюсь на них ответить.
Спасибо за прочтение!
Рекомендуемые:
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: в рамках этого проекта реализуется светодиодный дисплей на основе WS2812 с разрешением 20x10 пикселей и размером 78x35 см, который можно легко установить в гостиной, чтобы играть в ретро-игры. Первая версия этой матрицы была построена в 2016 году и перестроена многими другими людьми. Это ожидание
Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)
Интернет-радио на базе Raspberry Pi: есть что-то приятное в повороте переключателей и нажатии кнопок, как на старых радиоприемниках. К сожалению, многие из этих радиоприемников сломаны или на станциях не работает звук. К счастью, не так уж сложно превратить любое радио в интернет-радио с помощью
Дрон Raspberry Pi с голосовым управлением Alexa с IoT и AWS: 6 шагов (с изображениями)
Дрон Raspberry Pi с голосовым управлением Alexa с IoT и AWS: Привет! Меня зовут Армаан. Я 13-летний мальчик из Массачусетса. В этом руководстве показано, как вы можете сделать вывод из названия, как построить дрон Raspberry Pi. Этот прототип демонстрирует, как дроны развиваются, а также насколько большую роль они могут сыграть в
MicroPython IoT Rover на базе WEMOS D1 (ESP-8266EX): 7 шагов (с изображениями)
MicroPython IoT Rover на основе WEMOS D1 (ESP-8266EX): ** Обновление: я опубликовал новое видео для версии 2 с копьем ** Я провожу семинары по робототехнике для маленьких детей и всегда ищу экономичные платформы для создания интересных проектов. Хотя клоны Arduino дешевы, они используют язык C / C ++, которым дети не являются
Домашняя автоматизация на базе Android и Arduino с помощью SMS: 5 шагов (с изображениями)
Домашняя автоматизация на базе Android и Arduino SMS:! ! ! УВЕДОМЛЕНИЕ ! ! ! Из-за того, что в моем районе модернизируется вышка сотовой связи, я больше не могу использовать этот модуль GSM. Более новая башня больше не поддерживает устройства 2G. Поэтому я больше не могу поддерживать этот проект. Недавно я повторно