Оглавление:

Робот-шпион Raspberry: 8 шагов (с изображениями)
Робот-шпион Raspberry: 8 шагов (с изображениями)

Видео: Робот-шпион Raspberry: 8 шагов (с изображениями)

Видео: Робот-шпион Raspberry: 8 шагов (с изображениями)
Видео: Шокировал всех словами о России • Илон Маск 2024, Ноябрь
Anonim
Image
Image
Робот-шпион Raspberry
Робот-шпион Raspberry

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

Шаг 1. Робот-электроника

Робот-электроника
Робот-электроника

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

Шаг 2: настройка Pi

Настройка Pi
Настройка 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

Запуск Raspberry SPy
Запуск Raspberry SPy
Запуск Raspberry SPy
Запуск Raspberry SPy

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

Рекомендуемые: