
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47


Pozdrav dečki, u ovom Instructableu učinit ćete prepreku izbjegavajući robota. Ovaj Instructable uključuje izgradnju robota s ultrazvučnim senzorom koji može detektirati obližnje objekte i promijeniti njihov smjer kako bi se ti objekti izbjegli. Ultrazvučni senzor bit će pričvršćen na servo motor koji stalno skenira lijevo i desno tražeći predmete na svom putu.
Dakle, bez daljnjih odlaganja, počnimo!
Korak 1: Ono što vam treba u ovom projektu:


Evo popisa dijelova:
1) Arduino Uno
2) Štit vozača motora
3) Motor zupčanika, okvir i kotači
4) Servo motor
5) Ultrazvučni senzor
6) Li-ion baterija (2x)
7) Držač baterije
8) Muška i ženska žica kratkospojnika
9) Lemilica
10) Punjač
Korak 2: Dijagram kruga

Rad:
Prije nego što krenete raditi na projektu, važno je razumjeti kako ultrazvučni senzor radi. Osnovni princip rada ultrazvučnog senzora je sljedeći:
Koristeći vanjski signal okidača, okidač na ultrazvučnom senzoru postaje logički visok najmanje 10 μs. Šalje se zvučni signal iz odašiljačkog modula. Sastoji se od 8 impulsa od 40KHz.
Signali se vraćaju natrag nakon udarca u površinu i prijemnik detektira ovaj signal. Echo pin je visok od trenutka slanja signala i primanja. Ovo se vrijeme može pretvoriti u udaljenost pomoću odgovarajućih izračuna.
Cilj ovog projekta je implementirati robota koji izbjegava prepreke pomoću ultrazvučnog senzora i Arduina. Svi spojevi izvedeni su prema shemi kola. U nastavku se objašnjava rad projekta.
Kad je robot uključen, oba motora robota će raditi normalno i robot će se kretati naprijed. Za to vrijeme ultrazvučni senzor neprestano izračunava udaljenost između robota i reflektirajuće površine.
Ove podatke obrađuje Arduino. Ako je udaljenost između robota i prepreke manja od 15 cm, Robot se zaustavlja i skenira u lijevom i desnom smjeru za novu udaljenost pomoću Servo motora i ultrazvučnog senzora. Ako je udaljenost prema lijevoj strani veća od udaljenosti desne strane, robot će se pripremiti za skretanje ulijevo. No, prvo se malo sigurnosno kopira, a zatim aktivira motor lijevog kotača u obrnutom smjeru.
Slično, ako je desna udaljenost veća od udaljenosti lijeve udaljenosti, Robot priprema rotaciju udesno. Taj se proces nastavlja zauvijek, a robot se nastavlja kretati bez udarca u bilo koju prepreku.
Korak 3: Programiranje Arduino UNO
#uključi
#uključi
#uključi
# definirajte TRIG_PIN A1
# definirajte ECHO_PIN A0
# definirajte MAX_DISTANCE 200
# define MAX_SPEED 255 // postavlja brzinu istosmjernih motora
# define MAX_SPEED_OFFSET 20
Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motora3 (3, MOTOR34_1KHZ);
AF_DCMotor motora4 (4, MOTOR34_1KHZ); Servo myservo;
boolean goesForward = false;
int udaljenost = 100; int speedSet = 0;
void setup () {
myservo.attach (10);
myservo.write (115); odgoda (2000); udaljenost = readPing (); kašnjenje (100); udaljenost = readPing (); kašnjenje (100); udaljenost = readPing (); kašnjenje (100); udaljenost = readPing (); kašnjenje (100); }
void loop () {{100} {101}
int udaljenostR = 0; int udaljenostL = 0; kašnjenje (40);
if (udaljenost <= 15) {moveStop (); kašnjenje (100); moveBackward (); kašnjenje (300); moveStop (); kašnjenje (200); distanceR = lookRight (); kašnjenje (200); udaljenostL = lookLeft (); kašnjenje (200);
if (udaljenostR> = udaljenostL) {
skrenuti desno(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } udaljenost = readPing (); }
int lookRight () {
myservo.write (50); kašnjenje (500); int udaljenost = readPing (); kašnjenje (100); myservo.write (115); povratna udaljenost; }
int lookLeft () {
myservo.write (170); kašnjenje (500); int udaljenost = readPing (); kašnjenje (100); myservo.write (115); povratna udaljenost; kašnjenje (100); }
int readPing () {
kašnjenje (70); int cm = sonar.ping_cm (); ako (cm == 0) {cm = 250; } return cm; }
void moveStop () {
motor3.run (RELEASE);
motor4.run (RELEASE); }
void moveForward () {
if (! ide naprijed) {
ide naprijed = istina;
motor3.run (NAPRIJED);
motor4.run (NAPRIJED); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // polako povećavajte brzinu kako biste izbjegli prebrzo punjenje baterija {
motor3.setSpeed (speedSet);
motor4.setSpeed (speedSet); kašnjenje (5); }}}
void moveBackward () {
ideForward = false;
motor3.run (NAZAD);
motor4.run (NAZAD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // polako povećavajte brzinu kako biste izbjegli prebrzo punjenje baterija {
motor3.setSpeed (speedSet);
motor4.setSpeed (speedSet); kašnjenje (5); }}
void turnRight () {
motor3.run (NAPRIJED);
motor4.run (NAZAD); kašnjenje (500);
motor3.run (NAPRIJED);
motor4.run (NAPRIJED); }
void turnLeft () {
motor3.run (NAZAD);
motor4.run (NAPRIJED); kašnjenje (500);
motor3.run (NAPRIJED);
motor4.run (NAPRIJED); }
1) Preuzmite i instalirajte Arduino Desktop IDE
- Windows -
- Mac OS X -
- Linux -
2) Preuzmite i zalijepite datoteku knjižnice NewPing (biblioteka funkcija ultrazvučnog senzora) u mapu Arduino knjižnice.
- U nastavku preuzmite NewPing.rar
- Raspakirajte ga na stazu - C: / Arduino / libraries
3) Prenesite kôd na Arduino ploču putem USB kabela
Kod za preuzimanje:
Korak 4: Odlično

Sada je vaš robot spreman izbjeći svaku prepreku …
Rado ću odgovoriti na sva vaša pitanja
Pošalji mi e -poštu: [email protected]
Web stranica:
Pretplatite se na moj YouTube kanal:
Instagram:
Facebook:
Hvala vam:)
Preporučeni:
Robot za izbjegavanje prepreka pomoću ultrazvučnog senzora (Proteus): 12 koraka

Robot za izbjegavanje prepreka pomoću ultrazvučnog senzora (Proteus): Općenito nailazimo na robota za izbjegavanje prepreka posvuda. Hardverska simulacija ovog robota dio je natjecanja na mnogim fakultetima i na mnogim događajima. No softverska simulacija robota s preprekama rijetka je. Iako ga možemo negdje pronaći
Arduino brojač s TM1637 LED zaslonom i senzorom za izbjegavanje prepreka: 7 koraka

Arduino brojač pomoću TM1637 LED zaslona i senzora za izbjegavanje prepreka: U ovom ćemo vodiču naučiti kako napraviti jednostavan brojač pomoću LED zaslona TM1637 i senzora za izbjegavanje prepreka te Visuina. Pogledajte video
Kako napraviti domaćeg robota za kontrolu pokreta Arduino kod kuće: 4 koraka

Kako napraviti domaćeg robota za upravljanje pokretima Arduino: Kako napraviti robota za upravljanje pokretima DIY Arduina kod kuće. U ovom projektu pokazat ću vam kako napraviti DIY Arduino upravljački pokret za kretanje
Arduino robot 5 u 1 - Slijedi me - Redak slijedi - Sumo - Crtanje - Izbjegavanje prepreka: 6 koraka

Arduino robot 5 u 1 | Slijedi me | Redak slijedi | Sumo | Crtanje | Izbjegavanje prepreka: Ova upravljačka ploča robota sadrži mikrokontroler ATmega328P i upravljački program motora L293D. Naravno, ne razlikuje se od Arduino Uno ploče, ali je korisnije jer ne treba drugi štit za pogon motora! Bez skokova
Kako koristiti IC osjetnik za izbjegavanje prepreka na Arduinu: 4 koraka

Kako koristiti IC osjetnik za izbjegavanje prepreka na Arduinu: Pozdrav svima, U ovom članku ću napisati kako koristiti IC osjetnik za izbjegavanje okolnosti na Arduinu. Potrebne komponente: Senzor za izbjegavanje IC prepreka Arduino Nano V.3 Jumpe žica USBminiPotreban je softver: Arduino IDE