Съдържание:

Инфрачервен радар с Arduino: 6 стъпки
Инфрачервен радар с Arduino: 6 стъпки

Видео: Инфрачервен радар с Arduino: 6 стъпки

Видео: Инфрачервен радар с Arduino: 6 стъпки
Видео: how to use infrared sensor using arduino/By Aryan #shorts #experiment 2024, Ноември
Anonim
Image
Image

В този малък проект бих искал да ви покажа как можете да създадете прост радар у дома с Arduino. В интернет има много подобни проекти, но всички те използват ултразвуков сензор за измерване на разстоянието. В този проект използвам инфрачервен сензор за измерване на разстоянието.

Моята цел е да създам много проста и евтина LIDAR система с нея и да внедря картографиращо устройство.

Консумативи

  • Arduino (използвах Maple Mini)
  • Сензор за рязко разстояние (използвах Sharp GP2Y0A02YK0F)
  • Микро серво (9g)
  • Платформа, проводници
  • По избор: 4.7k резистор, 100nF кондензатор

Стъпка 1: Ултразвуков VS инфрачервен сензор

Схематично
Схематично

Основната разлика между ултразвукови и инфрачервени сензори за разстояние е, че ултразвуковият сензор измерва разстоянието в по -широк диапазон. Следователно той не е в състояние точно да определи позицията на препятствие. Това означава, че измерва разстоянието до най-близкия обект, който се намира в диапазон от ъгъл ~ +-30 °.

Разбира се, това не означава, че сензорът Sharp е по -добър. Понякога това свойство може да бъде много полезно (например използвано от дронове за измерване на височина от земята). Правилният избор зависи изцяло от изискванията на вашия проект.

Стъпка 2: Схеми

Схематично
Схематично
Схематично
Схематично

Създаването на връзка между части е много лесно. Изберете ШИМ изход и аналогов вход на вашата платка Arduino и свържете Servo и Sharp сензорите за разстояние към тези щифтове. За тази цел използвах следните щифтове:

  • PA0: Аналогов вход за сензор за рязко разстояние
  • PA9: ШИМ изход за серво

Понякога IR сензорът Sharp може да има шумен изход, затова трябва да поставите обикновен нискочестотен филтър върху него. Използвах 4.7k резистор и 100nF кондензатор, за да намаля шума на аналоговия щифт. Освен това също филтрирах измерената стойност в кода, като я прочетох няколко пъти и изчислих средната стойност.

Стъпка 3: Характеристика на сензора

Характеристика на сензора
Характеристика на сензора
Характеристика на сензора
Характеристика на сензора

За съжаление използваният инфрачервен сензор за разстояние има нелинейни характеристики. Това означава, че за да получите разстоянието, не е достатъчно да умножите измерената стойност на ADC с постоянна стойност и да добавите към нея друга постоянна стойност.

Въпреки че листът с данни на сензора предоставя характеристиката, предпочитам да го измервам сам в конкретния проект (може да зависи от използваното напрежение). За целта направих двойки от измерената стойност на ADC и разстояние за всеки 10 см. (Моят сензор успя да измери правилното разстояние от 12 см).

Използвах тези двойки в кода, за да получа правилното разстояние с линейна интерполация.

Ще намерите прост код на Arduino в края на документа, за да измерите стойността на ADC по време на характерното измерване.

Стъпка 4: Серийна комуникация

Последователна комуникация
Последователна комуникация

Използвах серийна комуникация, за да изпратя измерените стойности на ъгъл-разстояние до компютъра. Тъй като трябва да изпращам множество байтове и различен тип съобщения, проектирах прост комуникационен протокол.

Този протокол позволява дефиниране на различни типове съобщения по общ начин. В този проект използвах 2 типа съобщения:

  • Параметри: Използва се за изпращане на параметри към компютърно приложение, определени на Arduino като максимално разстояние и брой препятствия в кръг.
  • Препятствие: Използва се за изпращане на открито препятствие. Той се идентифицира по ъгъла на серво и измереното разстояние. Позицията x-y ще бъде изчислена от компютърно приложение.

Стъпка 5: Приложение Qt

Приложение Qt
Приложение Qt

За да комуникирам с Arduino и да нарисувам измерените точки като радар, направих компютърно приложение в Qt (C ++). Той получава някои параметри (дефинирани на Arduino) и измерените точки на разстоянието.

Можете също да изтеглите приложението и неговия изходен код.

Стъпка 6: Изходният код на Arduino

Можете да персонализирате някои параметри в горната част на кода с макроси.

Имайте предвид, че ако промените характеристиката на сензора за разстояние Sharp, трябва да промените стойностите на масива distAdcMap !

  • InfraRadar.c: Код на радар. Копирайте и го поставете във вашия Arduino проект.
  • InfraRadarMeasurement.c: Код за характеристично измерване. Копирайте и го поставете във вашия Arduino проект. Използвайте Serial Console, за да проверите ADC стойностите.

Препоръчано: