Оглавление:
- Шаг 1: история
- Шаг 2: теория и методология
- Шаг 3: Настройка оборудования
- Шаг 4: установка программного обеспечения
- Шаг 5: Устранение неполадок
- Шаг 6: код Arduino
Видео: Простая радарная система от Magicbit: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
В этом руководстве показано, как создать простую радиолокационную систему с использованием датчика HC-SR04 и платы разработки Microbit с обработкой и IDE Arduino.
Запасы:
- Микро-серводвигатель SG90
- Перемычки (общие)
- Макетная плата (универсальная)
- Magicbit
- Кабель USB-A - Micro-USB
- Ультразвуковой датчик - HC-SR04 (универсальный)
Шаг 1: история
В этом уроке мы узнаем, как создать простую радарную систему с использованием основной платы разработчика Magicbit. Для этого мы используем ультразвуковой датчик HC-SR04, а для отображения данных используем среду обработки. Приступим.
Шаг 2: теория и методология
Во-первых, давайте обсудим, как это работает. Принцип очень простой. Сначала мы непрерывно вращаем наш датчик вокруг вертикальной оси на 180 градусов. Во время этого движения мы снимаем данные о расстоянии до ближайшего объекта от ультразвукового датчика под любым углом. Для этого мы используем базовую плату Magicbit. После этого мы должны установить соединение со средой обработки для отображения наших данных. Поэтому мы используем протокол последовательной связи с подходящей скоростью передачи. Затем мы проектируем интерфейс нашей радиолокационной системы, используя IDE обработки. В этой среде IDE мы настраиваем нашу последовательную связь для получения данных в реальном времени через последовательный порт. Таким образом, мы общаемся с Magicbit в реальном времени и показываем данные, которые отправляются из Magicbit в обрабатывающую среду IDE.
Шаг 3: Настройка оборудования
В этом проекте мы использовали в основном три аппаратных компонента. Это Magicbit, серводвигатель и ультразвуковой датчик. Связь между всеми этими частями показана на рисунке выше.
Ультразвуковой датчик использовал 3,3 В. для включения. Поэтому мы использовали правый нижний порт платы Magicbit для подключения ультразвукового датчика к Magicbit. Но для правильной работы серводвигателя используется напряжение 5 В, поэтому мы использовали левый нижний порт для подключения серводвигателя к Magicbit. В данном случае мы используем модуль сервоконнектора Magic bit. Но если у вас нет этого модуля, вы можете использовать три перемычки для подключения 5V к 5V, Gnd к Gnd и сигнальный контакт к 26 pin на magicbit.
После построения схемы нам нужно построить небольшую механическую деталь. Установите односторонний серворазъем на серводвигатель с помощью маленькой гайки. Затем закрепите датчик на этом разъеме, используя какой-нибудь L-образный кронштейн или подходящим способом. После всей системы мы закрепили на макетной плате. Но вы можете использовать другую поверхность для установки сервопривода и Magicbit.
Шаг 4: установка программного обеспечения
Программная сторона немного сложна. Для правильного понимания вы можете обратиться к следующим ссылкам, прежде чем переходить к следующей части.
magicbit-arduino.readthedocs.io/en/latest/
hello.processing.org/editor/
Давайте посмотрим на код IDE Arduino и на то, как этот код работает.
Для управления сервоприводом мы используем библиотеку сервоприводов ESP32. Эта библиотека почти включена в волшебный менеджер битовых плат в Arduino IDE. Для работы с ультразвуковым датчиком мы используем библиотеку newPing. Его можно скачать по следующей ссылке.
bitbucket.org/teckel12/arduino-new-ping/do…
Загрузите zip-файл и выберите инструменты> включить библиотеку> добавить библиотеку Zip в Arduino. теперь выберите загруженный zip-файл с новой библиотекой контактов. Для связи с обработкой мы использовали последовательную связь со скоростью 115200 бод. Это наиболее подходящая частота для ESP32. Под любым углом мы отправляем наши данные на компьютер, используя этот протокол. В эти данные включены расстояние до ближайшего переднего объекта от датчика, направление вращения и угол поворота. Используя два цикла for, мы вращаем сервопривод в двух направлениях. При повороте на один градус мы отправляли последовательные данные 4 раза. Причину этого вы можете понять в объяснении части обработки.
Теперь пора взглянуть на среду обработки. Это программное обеспечение для программирования на основе Java. Мы можем написать скетч нашей программы в этом скетче в обрабатывающей IDE. Мы также можем генерировать визуальный результат при запуске нашей программы. Также вы можете выводить как 2D-, так и 3D-объекты. Мало того, это можно использовать для обработки изображений и многого другого.
В эскизе обработки сначала мы проектируем наш интерфейс отображения данных, используя простые графические функции. В начале кода мы устанавливаем нашу последовательную связь, включая последовательные библиотеки. В функции настройки вам необходимо внести некоторые изменения в зависимости от того, какой USB-порт вы использовали для подключения Magicbit к компьютеру. вы можете проверить свой порт с помощью Arduino IDE при настройке Arduino IDE для загрузки кода. Затем измените имя com-порта в части настройки при обработке скетча. когда доступны последовательные данные, автоматически запускается функция Serialevent. Поэтому основная логика кода - это включение в последовательное событие для предотвращения потери углов и данных. когда доступны новые данные, мы рисуем линию на экране в соответствии с нашим углом. В это время, если объект не обнаружен, вся линия окрашивается в зеленый цвет. В противном случае часть линии будет красной в зависимости от расстояния от датчика до объекта. Также в соответствии с направлением вращения мы рисуем еще 200 линий рядом с этой линией с уменьшением уровня зеленого цвета. между каждым Main у нас есть разница в 0,25 градуса. Поэтому мы получаем 4 показания Magicbit за раз при каждом повороте на градус. Благодаря этому мы можем создавать красивый поиск на экране вручную.
После успешной загрузки кода и установки аппаратной части успешно откройте обрабатывающую среду IDE и запустите код, нажав кнопку «Выполнить». Теперь у вас очень простая радиолокационная система.
Вы можете настроить коды так, как хотите, что вы хотите отображать.
Шаг 5: Устранение неполадок
Обработка скетча не выполняется.
- Подождите немного. Поскольку время запуска зависит от вашего ПК и производительности графического процессора.
- Проверьте правильность номера последовательного порта на эскизе обработки.
- Проверьте правильность подключения USB-соединения.
- Проверьте соединение между ультразвуковым датчиком и Magicbit.
- Откройте последовательный монитор и проверьте, что данные поступают от Arduino. Если нет, то проблема в вашем коде Arduino или в вашем USB-соединении.
Сервопривод не работает.
- Убедитесь, что соединение USB установлено правильно.
- Проверить проводку.
- Убедитесь, что сервопривод в хорошем состоянии.
Шаг 6: код Arduino
#включают
#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Эхолот NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // включить библиотеку сервоприводов int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Определяет, к какому выводу прикреплен серводвигатель delay (3000); } void loop () {// вращает серводвигатель от 15 до 165 градусов for (int i = 0; i <= 180; i ++) {RadarServo.write (i); задержка (50); distance = sonar.ping_cm (); // Вызывает функцию для расчета расстояния, измеренного ультразвуковым датчиком для каждого градуса for (int j = 0; j0) {break; } Serial.print (i); // Отправляет текущий градус в последовательный порт Serial.print (","); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (j); // Отправляет текущий градус в последовательный порт Serial.print ("*"); Серийный принт (1); // Отправляет значение расстояния в последовательный порт Serial.print ("/"); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (distance); // Отправляет значение расстояния в последовательный порт Serial.print ("."); // Отправляет символ добавления рядом с предыдущим значением, которое понадобится позже в среде Processing для индексации}} // Повторяет предыдущие строки от 165 до 15 градусов для (int i = 180; i> = 0; i -) {RadarServo.write (я); задержка (50); расстояние = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {продолжить; } Serial.print (i); // Отправляет текущий градус в последовательный порт Serial.print (","); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (j); // Отправляет текущий градус в последовательный порт Serial.print ("*"); Serial.print (-1); // Отправляет значение расстояния в последовательный порт Serial.print ("/"); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (distance); // Отправляет значение расстояния в последовательный порт Serial.print ("."); // Отправляет дополнительный символ сразу после предыдущего значения, необходимого позже в среде Processing для индексации}}
}
Рекомендуемые:
Простая система статуса и бронирования кикера с интеграцией Slack: 12 шагов (с изображениями)
Простая система статуса и бронирования кикера с интеграцией со Slack: в компании, где я работаю, есть кикер-стол. Компания занимает много этажей, и некоторым сотрудникам требуется до 3 минут, чтобы добраться до стола и … осознать, что стол уже занят. Поэтому возникла идея построить ки
Простая система сортировки продуктов с Raspberry Pi и Arduino: 5 шагов
Простая система сортировки продуктов с Raspberry Pi и Arduino: я фанат инженерии, я люблю программировать и создавать проекты, связанные с электроникой, в свободное время, в этом проекте я бы поделился с вами простой системой сортировки продуктов, которую я сделал недавно. эту систему, пожалуйста, подготовьте компоненты
Дешевая и простая система умного дома: 7 шагов
Дешевая и простая система умного дома: Здравствуйте! Меня зовут Эд. Мне 15 лет, я увлекаюсь вычислениями, программированием и электротехникой. Так как я довольно молод, я живу в доме своих родителей. Этот проект начался, когда я решил переехать в чердак / чердак. В процессе проектирования
Радарная система Easy Desktop: 4 шага
Easy Desktop Radar System: Итак, вы (я) живете в той части США, где много снега и штормов. Вам (мне) нужна простая радиолокационная система для использования на моем компьютере, которая будет обновляться и будет проще, чем загрузка страницы погоды в Интернете. Вы (я) посмотрите в Интернете и найдете ГИС
Простая в изготовлении, дешевая и простая схема с миганием светодиодами на CMOS 74C14: 5 шагов
Простая в изготовлении, дешевая и простая схема с миганием светодиодами с CMOS 74C14: Иногда вам нужно просто несколько мигающих светодиодов, для украшения рождественских украшений, моргающих картинок или просто для того, чтобы повеселиться с миганием миганием. Я покажу вам, как сделать дешевую и простую схему с 6 мигающими светодиодами. Примечание: это моя первая инстуктивная и