Съдържание:

Проект 3: SonarDuino: 9 стъпки
Проект 3: SonarDuino: 9 стъпки

Видео: Проект 3: SonarDuino: 9 стъпки

Видео: Проект 3: SonarDuino: 9 стъпки
Видео: Sound Sensor Potentiometer Adjustment 2024, Септември
Anonim
Image
Image

Уважаеми колеги любители, В този проект ще изследваме възможността да имаме 360 градусова радарна система за откриване на обекти. Поставянето на този модул отделно ще позволи на вашия двигателен робот да открие границите на заобикалящата го среда. Може да служи и като навигационен инструмент при тъмно, но само когато ходите достатъчно бавно; стр

Стъпка 1: Какво ще ви трябва

Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор

За да направите тази конструкция, ще трябва да закупите следното:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-контролер-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpO: 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:gAOS4Ag4Ag4Ag4Ag4Ag4Ag4Ag4Ag4Ag4Ag4A: ~ 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=item27ca47f5d ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

Стъпка 2: Документация

Тъй като някои от вас може би вече знаят това, този проект е вдъхновен от друг проект с отворен код, наречен „Arduino Radar Project“, направен от Dejan от „How to Mechatronics“@ на следната връзка: https://howtomechatronics.com/projects/arduino -radar-проект/

Друг момент, който изисква документация, е да изтеглите следните две библиотеки във вашата среда за разработка:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Като се има предвид това, за да разберете наистина C кода, ще трябва да направите някаква документация и за двете горепосочени библиотеки. Освен това, функциите, които използвах в кода си, имат имена, които са показателни за това, което правят.

Стъпка 3: Подгответе опората за ултразвуков сензор

Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор
Подгответе опората за ултразвуков сензор

Вземете всяко парче картон и го изрежете според размера на свързващите кабели, прикрепени към сензора, както е показано на първата снимка. След това сгънете последното и го залепете към опората на серво мотора. След като това стане, залепете двата ултразвукови сензора според последната снимка. Обърнете внимание, че заглавката на сензорите трябва да бъде запоена по такъв начин, че кабелите да излизат навън пред сензора. Това ще позволи на сензорните кабели да не се намесват помежду си, когато се осъществи въртенето на 360 градуса.

Стъпка 4: Монтирайте всичко в дъска за прототипи

Монтирайте всичко в дъска за прототипи
Монтирайте всичко в дъска за прототипи
Монтирайте всичко в дъска за прототипи
Монтирайте всичко в дъска за прототипи
Монтирайте всичко в дъска за прототипи
Монтирайте всичко в дъска за прототипи

В тази стъпка ще започнете, като монтирате заглавката, подготвена в предишната стъпка, в съответния й серво мотор. След като сервомоторът бъде внимателно свикнат, ще монтирате всичко заедно в прототипна платка. Ще започнете със запояване на Arduino Nano, след което залепете сервото точно до него. Накрая ще запоите малкия OLED дисплей в другия край на платката.

Стъпка 5: Осъществяване на окончателните връзки

Осъществяване на окончателните връзки
Осъществяване на окончателните връзки
Осъществяване на окончателните връзки
Осъществяване на окончателните връзки
Осъществяване на окончателните връзки
Осъществяване на окончателните връзки

Тази стъпка ще завърши хардуерната страна на този проект. Ще трябва да следвате предоставените схеми, за да установите всички необходими връзки.

Стъпка 6: Стартиране на програмата

Стартиране на програмата
Стартиране на програмата

Има два кода, които ще трябва да стартирате

Arduino (C):

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

Когато стартирате кода, ще имате две възможности за избор:

Вариант 1: Използвайки OLED дисплея, за това ще трябва да зададете променливата MODE в C кода на 0.

Вариант 2: Използвайки монитора си, за това ще трябва да зададете променливата MODE в C кода на 1. Освен това ще трябва да изтеглите и инсталирате среда за разработка Processing и да изтеглите шрифта на радара от тази връзка: https:// github.com/lastralab/ArduinoRadar/blob/ma…

И добавете този файл към вашия код за обработка, така че вашият Java код да разпознае шрифта при извикване.

Стъпка 7: Разбиране на C кода

Разбиране на кода C
Разбиране на кода C

Кодът се състои главно от два цикъла „за“. Единият е свързан с прохода напред, а другият с прохода назад. Вътре и в двете, основната функция draw_scanner (), която ще изтегли линиите на радара върху екрана, се извиква много пъти. След тестване на множество конфигурации стигнах до заключението, че трябва да презапишем белите радарни линии в момент t със същите тези радарни линии в черно в момент t+1, за да ги изтрием. В противен случай трептенето ще възникне всеки път, когато почиствате дисплея, като използвате функцията „clearDisplay ()“, преди да натиснете новата решетка на пикселите. Тъй като се занимавах със 7 реда- за целите на проектирането- трябваше да продължа да запазвам и да предавам цяло число от 7 елемента, където всеки елемент представлява радиуса между центъра на радара до открития обект, ако има такъв. Имайки предвид това, останалата част от кода трябва да бъде ясна за разбиране.

Стъпка 8: Разбиране на Java кода

В Processing трябваше да заобиколя извикването на функция за serialEvent (), което работи само със серийни портове с име COM. Докато работех на Mac, серийните ми портове бяха под друго име. Като се има предвид това, разопаковах тази функция в основната функция при обработката на „draw ()“. Що се отнася до всичко останало, актуализирах приложението, за да отговаря на дизайна на пълната революция. Накрая актуализирах всички нарисувани форми и текстове по отношение на ширината на екрана, така че крайният продукт да пасне на различни разделителни способности на екрана. Лично съм го тествал както за резолюции 1000X1000, така и за 500X500 и работи добре:).

Стъпка 9: Заключение

Тази работа може да бъде надстроена до 3 ултразвукови сензора, всеки от които покрива ъгъл на видимост 120, или дори 4 сензора (90 градуса*4) -> по -бързи 360 градуса. сканиране.

Можете също така да разширите обхвата на радара от 40 см до 60 см или дори 80 см. Аз лично съм тествал функцията pulseIn и коригирах променливата TIMEOUT по отношение на 40 cm. Тази променлива зависи от много фактори, включително дължината на изпращането на импулса и повърхността на обекта, където импулсът се отразява.

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

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