- Kā izveidot šķēršļus, izvairoties no robota, izmantojot ultraskaņas sensoru
- Nepieciešamās sastāvdaļas
- Ķēdes shēma
- Šķēršļu novēršana no robota, izmantojot Arduino-Code
Robotu novēršana no šķēršļiem ir inteliģenta ierīce, kas var automātiski sajust šķērsli, kas atrodas priekšā, un izvairīties no tiem, pagriežot sevi citā virzienā. Šis dizains ļauj robotam pārvietoties nezināmā vidē, izvairoties no sadursmēm, kas ir galvenā prasība jebkuram autonomam mobilajam robotam. Robota Šķēršļu novēršana pielietojums nav ierobežots, un tagad to izmanto lielākajā daļā militāro organizāciju, kas palīdz veikt daudz riskantu darbu, ko nevar paveikt neviens karavīrs.
Iepriekš mēs izveidojām robotu Šķēršļu novēršana, izmantojot Raspberry Pi un izmantojot PIC mikrokontrolleru. Šoreiz mēs izveidosim šķēršļu novēršanas robotu, izmantojot ultraskaņas sensoru un Arduino. Šeit tiek izmantots ultraskaņas sensors, lai uztvertu šķēršļus ceļā, aprēķinot attālumu starp robotu un šķērsli. Ja robots atrod kādu šķērsli, tas maina virzienu un turpina kustību.
Kā izveidot šķēršļus, izvairoties no robota, izmantojot ultraskaņas sensoru
Pirms došanās būvēt robotu, ir svarīgi saprast, kā darbojas ultraskaņas sensors, jo šim sensoram būs svarīga loma šķēršļu noteikšanā. Ultraskaņas sensora darbības pamatprincips ir pierakstīt sensora laiku, kas nepieciešams ultraskaņas staru pārraidei un ultraskaņas staru saņemšanai pēc trieciena virsmai. Tad tālāk tiek aprēķināts attālums, izmantojot formulu. Šajā projektā tiek izmantots plaši pieejamais ultraskaņas sensors HC-SR04. Lai izmantotu šo sensoru, tiks izmantota iepriekš aprakstīta līdzīga pieeja.
Tātad, HC-SR04 Trig tapa ir izveidota augsta vismaz 10 mums. Skaņas stars tiek pārraidīts ar 8 impulsiem pa 40KHz katrā.
Pēc tam signāls ietriecas virsmā un atgriežas atpakaļ, un to uztver HC-SR04 uztvērēja atbalss tapa. Echo piespraude tajā laikā jau bija izvirzījusies augstu.
Laiks, kas vajadzīgs, lai gaisma atgrieztos atpakaļ, tiek mainīts un pārveidots par attālumu, izmantojot atbilstošus aprēķinus, piemēram, zemāk
Attālums = (laiks x skaņas ātrums gaisā (343 m / s)) / 2
Mēs izmantojām ultraskaņas sensoru daudzos projektos, lai uzzinātu vairāk par ultraskaņas sensoru, pārbaudītu citus projektus, kas saistīti ar ultraskaņas sensoru.
Šā šķēršļa novēršanas robota komponentus var viegli atrast. Šasijas izgatavošanai var izmantot jebkuru rotaļlietu šasiju vai to var izgatavot pēc pasūtījuma.
Nepieciešamās sastāvdaļas
- Arduino NANO vai Uno (jebkura versija)
- HC-SR04 ultraskaņas sensors
- LM298N motora draivera modulis
- 5V līdzstrāvas motori
- Akumulators
- Riteņi
- Šasija
- Džemperu vadi
Ķēdes shēma
Pilna šī projekta shēma ir dota zemāk, kā redzat, ka tajā tiek izmantots Arduino nano. Bet mēs varam arī izveidot šķērsli, izvairoties no robota, izmantojot Arduino UNO ar to pašu shēmu (ievērojiet to pašu pinout) un kodu.
Kad trase ir gatava, mums ir jāuzbūvē šķērslis, lai izvairītos no automašīnas, montējot ķēdi virs robotu šasijas, kā parādīts zemāk.
Šķēršļu novēršana no robota, izmantojot Arduino-Code
Pilna programma ar demonstrācijas video ir dota šī projekta beigās. Programma ietvers HC-SR04 moduļa iestatīšanu un signālu izvadīšanu motora tapām, lai attiecīgi virzītos motora virzienu. Šajā projektā netiks izmantotas bibliotēkas.
Vispirms programmā definējiet HC-SR04 trigeri un atbalss tapu. Šajā projektā sprūda tapa ir savienota ar GPIO9, bet atbalss tapa ir savienota ar Arduino NANO GPIO10.
int trigPin = 9; // HC-SR04 trig pin pin echoPin = 10; HC-SR04 atbalss tapa
Definējiet tapas LM298N motora draivera moduļa ievadam. LM298N ir 4 datu ievades tapas, ko izmanto, lai kontrolētu tam pievienotā motora virzienu.
int revleft4 = 4; // Kreisā motora reversā kustība int fwdleft5 = 5; // ForWarD kreisā motora kustība int pa labi6 = 6; Labās puses motora reversā kustība int fwdright7 = 7; // ForWarD labā motora kustība
In iestatīšanas () funkciju, noteikt datu virzienu izmantoto GPIO pins. Četri motora tapas un sprūda tapa ir iestatīta kā OUTPUT un atbalss tapa ir iestatīta kā ievade.
pinMode (revleft4, OUTPUT); // iestatīt motora tapas kā izejas pinMode (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // iestatiet trig pin kā izejas pinMode (echoPin, INPUT); // iestatiet atbalss tapu kā ievadi atstaroto viļņu uztveršanai
In cilpas () funkciju, iegūt attālumu no HC-SR04, un, pamatojoties uz attālumu pārvietotu motora virzienā. Attālums parādīs objekta attālumu, kas nāk robota priekšā. Attālums tiek veikts, pārraujot ultraskaņas staru līdz 10 mums un saņemot pēc 10us. Lai uzzinātu vairāk par attāluma mērīšanu, izmantojot ultraskaņas sensoru un Arduino, sekojiet saitei.
digitalWrite (trigPin, LOW); kavēšanāsMikrosekundes (2); digitalWrite (trigPin, HIGH); // nosūtiet viļņus par 10 us delayMikrosekundes (10); ilgums = pulseIn (echoPin, HIGH); // saņemt atstaroto viļņu attālumu = ilgums / 58,2; // pārvērst par attāluma aizkavi (10);
Ja attālums ir lielāks par noteikto attālumu, tas nozīmē, ka tā ceļā nav šķēršļu un tas virzīsies uz priekšu.
ja (attālums> 19) { digitalWrite (fwdright7, HIGH); // virzīties uz priekšu digitalWrite (revright6, LOW); digitalWrite (fwdleft5, HIGH); digitalWrite (revleft4, LOW); }
Ja attālums ir mazāks par noteikto, lai izvairītos no šķēršļiem, tas nozīmē, ka priekšā ir kāds šķērslis. Tātad šajā situācijā robots uz brīdi apstāsies un pēc tam atkal atgriezīsies un atkal pagriezīsies citā virzienā.
ja (attālums <18) { digitalWrite (fwdright7, LOW); // Apturēt digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); kavēšanās (500); digitalWrite (fwdright7, LOW); // Movebackword digitalWrite (revright6, HIGH); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, HIGH); kavēšanās (500); digitalWrite (fwdright7, LOW); // Apturēt digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); kavēšanās (100); digitalWrite (fwdright7, HIGH); digitalWrite (revright6, LOW); digitalWrite (revleft4, LOW); digitalWrite (fwdleft5, LOW); kavēšanās (500); }
Tātad šādi robots var izvairīties no šķēršļiem savā ceļā, nekur neiesprūstot. Zemāk atrodiet pilnu kodu un videoklipu.