Оглавление:

Проект 3: SonarDuino: 9 шагов
Проект 3: SonarDuino: 9 шагов

Видео: Проект 3: SonarDuino: 9 шагов

Видео: Проект 3: SonarDuino: 9 шагов
Видео: Уроки по программированию Arduino, Урок 1 - Знакомство с Arduino 2024, Сентябрь
Anonim
Image
Image

Дорогой любитель, В этом проекте мы исследуем возможность наличия радара на 360 градусов для обнаружения объектов. Установка этого модуля отдельно позволит вашему передвижному роботу определять границы своего окружения. Он также может служить инструментом навигации в темноте, но только если вы идете достаточно медленно; p

Шаг 1. Что вам понадобится

Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика

Чтобы сделать эту сборку, вам нужно будет купить следующее:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwv0YZZpO: rk: 2: pf: 0

Платы для прототипирования: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:NQ4A ~ Zbl232: rk: 13: pf: 0

Серводвигатели: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Ультразвуковые датчики: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd: ~ IAAOSw - xbD5Fp: rk: 2: pf: 0

Шаг 2: документация

Как некоторые из вас, возможно, уже знают, этот проект вдохновлен другим проектом с открытым исходным кодом под названием «Arduino Radar Project», созданным Деяном из «How to Mechatronics» по следующей ссылке: https://howtomechatronics.com/projects/arduino -радар-проект /

Еще один момент, требующий документации, - это загрузка следующих двух библиотек в вашу среду разработки:

Adafruit-GFX-Library:

Adafruit_SSD1306:

При этом, чтобы действительно понять код C, вам необходимо составить некоторую документацию по обеим вышеупомянутым библиотекам. Помимо этого, функции, которые я использовал в своем коде, имеют имена, которые говорят о том, что они делают.

Шаг 3: Подготовьте опору ультразвукового датчика

Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика
Подготовьте опору ультразвукового датчика

Возьмите любой кусок картона и отрежьте его по размеру соединительных кабелей, прикрепленных к датчику, как показано на первом рисунке. После этого сложите его и приклейте к опоре серводвигателя. Как только это будет сделано, приклейте два ультразвуковых датчика в соответствии с последней картинкой. Обратите внимание, что разъем датчиков должен быть припаян таким образом, чтобы кабели выходили наружу перед датчиком. Это позволит кабелям датчиков не мешать друг другу при повороте на 360 градусов.

Шаг 4: Установите все на макетную доску

Установите все на макетную доску
Установите все на макетную доску
Установите все на макетную доску
Установите все на макетную доску
Установите все на макетную доску
Установите все на макетную доску

На этом шаге вы начнете с установки жатки, подготовленной на предыдущем шаге, в соответствующий серводвигатель. После того, как серводвигатель будет тщательно освоен, вы соберете все вместе в макетную плату. Вы начнете с пайки Arduino Nano, а затем приклейте сервопривод рядом с ним. Наконец, вы припаяете маленький OLED-дисплей к другому краю платы.

Шаг 5: Заключительные соединения

Заключительные соединения
Заключительные соединения
Заключительные соединения
Заключительные соединения
Заключительные соединения
Заключительные соединения

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

Шаг 6: загрузка программы

Загрузка программы
Загрузка программы

Есть два кода, которые вам понадобятся для загрузки

Ардуино (C):

Обработка (java):

При запуске кода у вас будет два варианта на выбор:

Вариант 1. Используя OLED-дисплей, для этого вам нужно будет установить для переменной MODE в коде C значение 0.

Вариант 2: с помощью монитора, для этого вам необходимо установить для переменной MODE в коде C значение 1. Кроме того, вам нужно будет загрузить и установить среду разработки Processing и загрузить шрифт радара по этой ссылке: https:// github.com/lastralab/ArduinoRadar/blob/ma…

И добавьте этот файл в свой файл кода обработки, чтобы ваш Java-код распознавал шрифт при вызове.

Шаг 7: понимание кода C

Понимание кода C
Понимание кода C

Код состоит в основном из двух циклов for. Один связан с проходом вперед, а другой - с проходом назад. Внутри обоих много раз вызывается основная функция draw_scanner (), которая рисует линии радара на экране. После тестирования нескольких конфигураций я пришел к выводу, что нам нужно перезаписать белые линии радара в момент времени t на те же самые линии радара черным цветом в момент времени t + 1, чтобы удалить их. В противном случае мерцание будет происходить каждый раз, когда вы очищаете дисплей с помощью функции «clearDisplay ()» перед тем, как нажимать новую сетку пикселей. Поскольку я имел дело с 7 строками - для целей дизайна - мне приходилось сохранять и передавать целочисленный массив из 7 элементов, где каждый элемент обозначает радиус между центром радара и обнаруженным объектом, если таковой имеется. Имея это в виду, остальная часть кода должна быть простой для понимания.

Шаг 8: понимание кода Java

В обработке мне пришлось обойти вызов функции для serialEvent (), который работает только с последовательными портами с именем COM. Когда я работал на Mac, мои последовательные порты носили другое имя. При этом я распаковал эту функцию в основную функцию обработки «draw ()». Что касается всего остального, я обновил приложение, чтобы оно соответствовало дизайну полной революции. Наконец, я обновил все нарисованные формы и тексты с учетом ширины экрана, чтобы конечный продукт соответствовал разным разрешениям экрана. Я лично тестировал его для разрешений 1000X1000 и 500X500, и он работал нормально:).

Шаг 9: Заключение

Эту работу можно расширить до 3 ультразвуковых датчиков, каждый из которых покрывает угол обзора 120, или даже до 4 датчиков (90 градусов * 4) -> быстрее на 360 градусов. сканировать.

Вы также можете расширить диапазон действия радара с 40 см до 60 см или даже 80 см. Я лично протестировал функцию pulseIn и отрегулировал переменную TIMEOUT относительно 40 см. Эта переменная зависит от многих факторов, включая длину отправляемого импульса и поверхность объекта, на которой отражается импульс.

Наконец, как было сказано ранее, следующим шагом будет объединение radarDuino с локомоционным роботом для сканирования окружающего периметра.

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