Оглавление:

Автономный дрон-последователь линии с Raspberry Pi: 5 шагов
Автономный дрон-последователь линии с Raspberry Pi: 5 шагов

Видео: Автономный дрон-последователь линии с Raspberry Pi: 5 шагов

Видео: Автономный дрон-последователь линии с Raspberry Pi: 5 шагов
Видео: 【生放送】ロシアによる戦争犯罪の証拠が続出。ロシア軍撤退地域で多数の住民が残虐行為で命を奪われていた 2024, Ноябрь
Anonim
Автономный дрон-последователь линии с Raspberry Pi
Автономный дрон-последователь линии с Raspberry Pi

Из этого туториала Вы узнаете, как в конечном итоге сделать беспилотный летательный аппарат.

Этот дрон будет иметь переключатель «автономного режима», который переводит дрон в режим. Таким образом, вы все еще можете управлять своим дроном, как и раньше.

Имейте в виду, что на создание и настройку потребуется время. Но последнее… заставляет задуматься о том, что оно того стоит.

Чтобы приступить к созданию собственного беспилотного летательного аппарата с автономным отслеживанием линий, убедитесь, что у вас есть;

  • Rasberry Pi 3 или Raspberry Pi Zero W с доступом по SSH
  • Готовый к полету дрон с полетным контроллером APM или Pixhawk
  • Arduino Leonardo или другой Arduino с высокой тактовой частотой
  • По крайней мере, 6-канальный передатчик
  • Веб-камера USB, поддерживаемая Raspberry Pi и OpenCV
  • ПК
  • 6 транзисторов общего назначения
  • Электропроводка кабелей

Шаг 1. Идея и связи

Идея и связи
Идея и связи

APM, также известный как ArduPilot, - это полетный контроллер на базе Arduino Mega. Это означает, что мы можем изменить его, чтобы он лучше подходил для нашего случая. Но поскольку у меня нет информации для этого, я пойду другим путем.

К сожалению, Raspberry Pi не чувствительны ко времени, что означает, что они не могут обрабатывать сигналы PPM.

Вот почему нам нужна дополнительная плата Arduino.

Таким образом, Raspberry Pi обработает изображения, вычислит инструкции по полету и отправит их в Arduino через последовательный интерфейс UART. Карта Arduino будет выступать здесь как кодировщик / декодер PPM, который кодирует инструкции полета в сигналы PPM, которые нужны APM. Чтобы иметь представление, вы можете изучить символическую принципиальную схему.

Raspberry Pi будет вести себя как передатчик телеметрии вместе с линией обнаружения.

Основная схема показана на изображениях. Я продолжу объяснять в следующих шагах.

Шаг 2: Подключения и настройка Raspberry Pi

Подключения и настройка Raspberry Pi
Подключения и настройка Raspberry Pi
Подключения и настройка Raspberry Pi
Подключения и настройка Raspberry Pi

Raspberry Pi будет подключен к адаптеру Wi-Fi (опционально), веб-камере USB, Arduino Leonardo через USB, APM через встроенный последовательный интерфейс. APM - соединение RPI показано с подробностями на изображениях.

Для настройки у вас есть два варианта: чистый Raspbian с необходимыми пакетами или специальный образ для подключения MAVLink под названием APSync. Если вы собираетесь использовать Raspbian, убедитесь, что вы установили следующие пакеты:

sudo apt-get update

sudo apt-get install -y screen python-wxgtk3.0 python-matplotlib sudo apt-get install -y python-opencv python-pip python-numpy python-dev sudo apt-get install -y libxml2-dev libxslt-dev python- lxml sudo pip установить будущее pymavlink mavproxy pyserial

Чтобы использовать встроенный последовательный интерфейс Raspberry Pi, вы должны указать ОС, чтобы она не использовала его. Для этого введите

sudo raspi-config

и выберите Параметры интерфейса> Последовательный интерфейс.

Вы должны отключить последовательный интерфейс, но включить последовательное оборудование.

На данный момент остальное подходит как для Raspbian, так и для APSync.

В домашнем каталоге создайте три файла: сценарий перезагрузки и сценарий процессора изображений. Вторая строка делает скрипт перезагрузки исполняемым.

коснитесь reboot.sh image_processor.py

chmod + x reboot.sh

Скопируйте все строки в файлах, приведенных ниже, в свой домашний каталог (/ home / pi) в Raspberry Pi.

Сценарий перезагрузки будет содержать триггеры, которые будут запускать скрипты процессора изображений и телеметрии. Также несколько настроек. Обратите внимание: если вам не нужна функция телеметрии, добавьте # перед этой строкой.

нано reboot.sh

#! / bin / bash

python3 /home/pi/image_processor.py

Сохраните его с помощью CTRL + O и выйдите с помощью CTRL + X. Последний шаг - регистрация в файле запуска ОС, rc.local.

sudo nano /etc/rc.local

Добавьте эту строку над выходом 0:

/home/pi/reboot.sh

Наш сценарий перезагрузки будет выполняться при каждой загрузке.

Мы хотим, чтобы Raspberry Pi записывал видео в реальном времени, обрабатывал его на лету, вычислял инструкции полета, отправлял их контроллеру полета и был телеметрией. Но поскольку Raspberry Pi не может генерировать сигнал PPM, который требуется APM, нам нужен другой способ добиться этого.

Raspberry Pi отправит свои выходные данные обработки изображений в Arduino (в моем случае Arduino Leonardo) через последовательный порт. Arduino будет генерировать сигнал PPM с этого входа и отправлять его в контроллер полета через перемычки. Это все для Raspberry Pi.

Переходим к следующему шагу.

Шаг 3. Подключения и настройка APM

Подключения и настройка APM
Подключения и настройка APM

С APM все просто, так как он уже готов к работе. Нам нужно знать скорость передачи данных последовательных портов и убедиться, что порт TELEM включен.

В вашем наземном программном обеспечении, в моем случае Mission Planner, проверьте список параметров полетного контроллера и узнайте скорости передачи. Например, SERIAL_BAUD - это скорость передачи данных USB, а SERIAL_BAUD1 - это скорость порта TELEM для APM. Обратите внимание, что values.

Самая важная часть - это соединения контактов INPUT. Как показано на изображении, соедините цифровые выводы 4 Arduino через 9. Вы можете использовать для этого хлебную цепочку, поскольку мы собираемся добавить несколько транзисторов и выходы приемника. (См. Изображения) (Транзисторы будут работать, если вы захотите взять под контроль свой дрон)

ARD 4 ↔ APM ВХОД 1

ARD 5 ↔ ВХОД APM 2

ARD 6 ↔ ВХОД APM 3

ARD 7 ↔ APM ВХОД 4

ARD 8 ↔ APM ВХОД 5

ARD 9 ↔ ВХОД APM 6

Подключите все выводы 5V на входе APM к выводу 5V Arduino Leonardo. Аналогичным образом подключите все контакты GND входа APM к контакту GND Arduino Leonardo.

Шаг 4: Конфигурация Arduino Leonardo

Мы соединили все провода для Леонардо, поэтому остался только код.

Загрузите приведенный ниже код в свой Arduino Leonardo. Обратите внимание на скорость передачи.

Шаг 5: Первый полет

Когда вы закончите со всеми предыдущими шагами, это означает, что вы готовы.

Включите все карты и подключитесь по SSH к Raspberry Pi. Введите терминал:

sudo su

mavproxy.py --master = / dev / [SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] --aircraft [CUSTOM NAME

Встроенный последовательный интерфейс Raspberry Pi по умолчанию - ttyS0 (/ dev / ttyS0)

Скорость передачи данных порта APM TELEM по умолчанию - 57600.

Скорость передачи данных USB-порта APM по умолчанию составляет 115200 бод.

Вы можете дать своему самолету любое имя, выбирайте его с умом, чтобы потом распознать.

Если все в порядке, теперь подключитесь к Raspberry Pi через VNC, чтобы вы могли смотреть, что видит дрон в режиме реального времени.

Теперь вы можете вооружить свой дрон. Интересно, правда?

Снимите дрон и пролетите над линейной трассой. Теперь вы можете активировать режим отслеживания линии с помощью переключателя CH6.

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