Оглавление:
- Шаг 1. Что вам понадобится
- Шаг 2: документация
- Шаг 3: Подготовьте опору ультразвукового датчика
- Шаг 4: Установите все на макетную доску
- Шаг 5: Заключительные соединения
- Шаг 6: загрузка программы
- Шаг 7: понимание кода C
- Шаг 8: понимание кода Java
- Шаг 9: Заключение
Видео: Проект 3: SonarDuino: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Дорогой любитель, В этом проекте мы исследуем возможность наличия радара на 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
Код состоит в основном из двух циклов 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 с локомоционным роботом для сканирования окружающего периметра.
Рекомендуемые:
Проект стабилизатора подвеса: 9 шагов (с изображениями)
Проект стабилизатора подвеса: как сделать подвес Узнайте, как сделать 2-осевой подвес для своей экшн-камеры В современной культуре мы все любим записывать видео и снимать моменты, особенно когда вы являетесь создателем контента, как я, вы наверняка сталкивались с проблемой такое шаткое видео
Проект автоматизированной миски для корма для домашних животных: 13 шагов
Проект «Автоматизированная кормушка для домашних животных»: в этом руководстве будет показано и объяснено, как построить автоматизированную программируемую кормушку для домашних животных с прикрепленными мисками для корма. Я прикрепил сюда видео, показывающее, как работает продукт и как он выглядит
(Проект IOT) Получение данных о погоде с помощью ESP8266 и Openweather API: 5 шагов
(Проект IOT) Получение данных о погоде с помощью ESP8266 и Openweather API: в этом руководстве мы собираемся создать простой проект IOT, в котором данные о погоде в нашем городе будут извлекаться из openweather.com/api и отображаться с помощью программного обеспечения для обработки
Коробка допамина - Проект, похожий на Майка Бойда - Не быть Майком Бойдом: 9 шагов
Коробка допамина | Проект, похожий на Майка Бойда - Не быть Майком Бойдом: я хочу один! Мне нужна одна! Я прокрастинатор! Ну, я хочу ящик дофамина … Без необходимости программировать. Никаких звуков, только чистая воля
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (веселый проект также должен быть очень качественным деревом): 3 шага
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (забавный проект также должен быть из очень хорошего дерева): НЕ ДЕЛАЙТЕ ЭТО С ПОМОЩЬЮ USB !!!! я узнал, что это может повредить ваш компьютер из всех комментариев. мой компьютер в порядке. Используйте зарядное устройство для телефона на 600 мА, 5 В. Я использовал это, и он отлично работает, и ничего не может быть повреждено, если вы воспользуетесь предохранительной вилкой, чтобы отключить питание