Мазмұны:

3 -жоба: SonarDuino: 9 қадам
3 -жоба: SonarDuino: 9 қадам

Бейне: 3 -жоба: SonarDuino: 9 қадам

Бейне: 3 -жоба: SonarDuino: 9 қадам
Бейне: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Қыркүйек
Anonim
Image
Image

Құрметті әуесқой әріптес, Бұл жобада біз объектілерді анықтауға арналған 360 градус радиолокациялық жүйенің болу мүмкіндігін зерттейміз. Бұл модульді бөлек орнату сіздің локомотивті роботқа айналаның шекарасын анықтауға мүмкіндік береді. Ол сондай -ақ қараңғыда навигация құралы бола алады, бірақ сіз баяу жүргенде ғана; б

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:DkoAAOSw0YZZp: 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=item4cg8a70 ~ Zbl232: rk: 13: pf: 0

Servo Motors: 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=it27 ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

2 -қадам: құжаттама

Сіздердің кейбіреулеріңіз білетіндей, бұл жоба Дежанның «Мехатрониканы қалай ұстау керек?» @ Келесі сілтемедегі «Arduino Radar Project» деп аталатын басқа ашық бастапқы жобадан алынған: https://howtomechatronics.com/projects/arduino -радар жобасы/

Құжаттарды қажет ететін тағы бір мәселе - келесі екі кітапхананы сіздің даму ортасына жүктеу:

Adafruit-GFX-кітапханасы:

Adafruit_SSD1306:

Бұл C кодын түсіну үшін жоғарыда аталған екі кітапхананың кейбір құжаттарын жасау қажет болады. Бұдан басқа, менің кодымда қолданған функциялардың не істейтіні туралы айтатын атаулары бар.

3 -қадам: Ультрадыбыстық сенсордың қолдауын дайындаңыз

Ультрадыбыстық сенсордың қолдауын дайындаңыз
Ультрадыбыстық сенсордың қолдауын дайындаңыз
Ультрадыбыстық сенсордың қолдауын дайындаңыз
Ультрадыбыстық сенсордың қолдауын дайындаңыз
Ультрадыбыстық сенсордың қолдауын дайындаңыз
Ультрадыбыстық сенсордың қолдауын дайындаңыз

Картонның кез келген бөлігін алыңыз және бірінші суретте көрсетілгендей сенсорға бекітілген жалғағыш кабельдердің өлшеміне сәйкес кесіңіз. Осыдан кейін, оны соңғы бүктеп, оны серво қозғалтқышының тірегіне жабыстырыңыз. Мұны жасағаннан кейін, соңғы ультрадыбыстық датчиктерді соңғы суретке сәйкес жабыстырыңыз. Датчиктердің басы сенсордың алдында кабельдердің сыртқа шығуына мүмкіндік беретін етіп дәнекерленген болуы керек екенін ескеріңіз. Бұл 360 градусқа айналу кезінде сенсорлық кабельдердің бір -біріне кедергі жасамауына мүмкіндік береді.

4 -қадам: Барлығын прототиптеу тақтасына салыңыз

Барлығын прототиптік тақтаға орнатыңыз
Барлығын прототиптік тақтаға орнатыңыз
Барлығын прототиптік тақтаға орнатыңыз
Барлығын прототиптік тақтаға орнатыңыз
Барлығын прототиптік тақтаға орнатыңыз
Барлығын прототиптік тақтаға орнатыңыз

Бұл қадамда сіз алдыңғы қадамда дайындалған тақырыпты тиісті серво қозғалтқышына орнатудан бастайсыз. Серво қозғалтқышы мұқият үйренгеннен кейін, сіз бәрін прототип тақтасына біріктіресіз. Сіз Arduino Nano -ны дәнекерлеп, содан кейін оның жанындағы сервоны желімдеуден бастайсыз. Соңында сіз тақтаның екінші шетінде кішкентай OLED дисплейді дәнекерлейсіз.

5 -қадам: Соңғы байланыстарды орнату

Соңғы байланыстарды жасау
Соңғы байланыстарды жасау
Соңғы байланыстарды жасау
Соңғы байланыстарды жасау
Соңғы байланыстарды жасау
Соңғы байланыстарды жасау

Бұл қадам осы жобаның аппараттық жағын аяқтайды. Барлық қажетті байланыстарды орнату үшін сізге берілген схеманы орындау қажет.

6 -қадам: Бағдарламаны жүктеу

Бағдарламаны жүктеу
Бағдарламаны жүктеу

Сіз жүктеуіңіз керек екі код бар

Arduino (C):

Өңдеу (java):

Кодты іске қосқан кезде сізде екі таңдау болады:

1 -нұсқа: OLED дисплейін қолдана отырып, C кодындағы MODE айнымалы мәнін 0 -ге орнату қажет.

2 -нұсқа: Мониторды қолдана отырып, сіз C коды бойынша MODE айнымалы мәнін 1 -ге орнатуыңыз керек. Сонымен қатар, Processing development ортасын жүктеп, орнатып, мына сілтемеден радар қарпін жүктеу қажет болады: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Және бұл файлды өңдеу коды файлына қосыңыз, сонда сіздің java кодыңыз қаріпті танитын болады.

7 -қадам: С кодын түсіну

С кодын түсіну
С кодын түсіну

Код негізінен екі «for» ілмегінен тұрады. Біреуі алға өтуімен, ал екіншісі артқа өтуімен байланысты. Олардың екеуінде де радардың сызықтарын экранға шығаратын draw_scanner () негізгі функциясы бірнеше рет аталады. Бірнеше конфигурацияны тексергеннен кейін, мен оларды жою үшін t+1 уақытында ақ түсті радар сызықтарын t+1 уақытында қара түсті радармен қайта жазу керек деген қорытындыға келдім. Олай болмаған жағдайда, жаңа пиксельдік торды итермес бұрын дисплейді «clearDisplay ()» функциясын қолданып тазалаған сайын жыпылықтау пайда болады. Мен 7 жолмен жұмыс істегенде- дизайнерлік мақсатта- мен 7 элементтен тұратын бүтін массивті сақтап, беруді жалғастыруға тура келді, онда әрбір элемент радиолокатордың ортасы арасындағы радиусты анықталған объектіге дейін көрсетеді. Осыны ескере отырып, кодтың қалған бөлігі түсінікті болуы керек.

8 -қадам: Java кодын түсіну

Өңдеу кезінде мен тек COM деп аталатын сериялық порттармен жұмыс істейтін serialEvent () функциясының шақыруын айналып өтуге тура келді. Мен Mac -де жұмыс істеп жүргенде, менің сериялық порттарым басқа атаумен аталды. Айтпақшы, мен бұл функцияны «draw ()» өңдеудегі негізгі функцияға шығардым. Қалғанының бәріне қатысты мен революцияның толық дизайнына сай болу үшін қосымшаны жаңарттым. Ақырында, мен барлық сызылған пішіндер мен мәтіндерді экранның еніне қатысты жаңарттым, осылайша соңғы өнім экранның әр түрлі ажыратымдылықтарына сәйкес келеді. Мен оны 1000X1000 және 500X500 ажыратымдылықтары үшін жеке тексердім және ол жақсы жұмыс істеді:).

9 -қадам: Қорытынды

Бұл жұмысты 3 ультрадыбыстық сенсорға дейін жаңартуға болады, олардың әрқайсысы 120 көру бұрышын немесе тіпті 4 датчикті (90 градус*4) -> 360 градусқа жылдамырақ болады. сканерлеу

Сондай -ақ, радардың ауқымын 40 см -ден 60 см -ге дейін, тіпті 80 см -ге дейін кеңейтуге болады. Мен pulseIn функциясын жеке тексердім және 40 см -ге қатысты TIMEOUT айнымалысын реттедім. Бұл айнымалы көптеген факторларға байланысты, оның ішінде импульстің ұзақтығы мен импульс шағылатын объектінің беті.

Ақырында, бұрын айтылғандай, келесі қадам - айналадағы периметрді сканерлеу үшін локомотивті роботпен бірге radarDuino қосу.

Ұсынылған: