Kako napraviti jednostavnog robota

Kako napraviti jednostavnog robota

Izgradnja jednostavnog robota je zabavan način učenja o elektronici, osnovama mehanike i programiranju. Mnogi ljudi misle da roboti moraju biti skupi i komplicirani, ali zapravo možemo početi s malim projektima koje je lako sastaviti kod kuće. U ovom članku ćemo izgraditi jednostavnog robota za izbjegavanje prepreka koristeći ultrazvučne senzore. Ovaj robot može hodati naprijed i automatski se okretati kada detektuje objekt ispred sebe. Ovaj projekat je pogodan za početnike , studente ili bilo koga ko želi početi učiti robotiku.

1. Razumjeti koncept jednostavnih robota

Općenito, roboti imaju tri glavne komponente: mozak (kontroler), osjetila (senzori) i mišiće (aktuatori). U ovom projektu:

– Kontroler: Arduino Uno (ili kompatibilni)
– Senzor: HC-SR04 ultrazvučni senzor za mjerenje udaljenosti
– Aktuator: DC motor koji pokreće kotače
– Drajver motora: L298N (ili L293D) drajver motora tako da motor može biti kontrolisan pomoću Arduina

Kada senzor očita udaljenost ispred robota, a udaljenost je preblizu, Arduino će narediti upravljačkom programu motora da promijeni smjer kretanja, na primjer, da skrene desno ili lijevo.

2. Potrebni alati i materijali

Evo liste često korištenih komponenti koje se lako mogu pronaći u prodavnicama elektronike ili na tržištima:

1. Arduino Uno (1 komad)
2. L298N upravljački program motora (1 komad)
3. Ultrazvučni senzor HC-SR04 (1 komad)
4. DC motor + mjenjač i kotači (2 komada) za robota s 2 kotača (diferencijalni pogon)
5. Točak za okretanje (1 komad) mali balansirajući točak naprijed ili nazad
6. Baterije (npr. 2×18650 ili 7,4V paket) ili 6xAA, u skladu s potrebama motora
7. Šasija robota (može se kupiti gotova ili napraviti od akrila/šperploče)
8. Kablovi za paljenje (muško-ženski i muško-muški)
9. Prekidač za uključivanje/isključivanje (opciono, ali veoma korisno)
10. Mala ploča za izradu maketa (opciono)
11. Vijci, matice, odvijači i vruće ljepilo po potrebi

Ako želite nešto još jednostavnije (bez ultrazvučnih senzora), možete napraviti robota koji "prati liniju" sa linijskim senzorima, ali verzije za izbjegavanje prepreka često djeluju "življe" jer reaguju na objekte ispred sebe.

3. Dizajniranje šasije robota

Šasija je okvir na koji su montirane sve komponente. Možete koristiti gotov komplet za šasiju ili napraviti svoju vlastitu od laganih materijala poput akrila, PVC-a ili tankog drveta. Princip je sljedeći:

– Montirajte dva DC motora na lijevu i desnu stranu.
– Montirajte kotače na motocikl.
– Dodajte kotačić kao balanser kako biste robota učinili stabilnim.
– Postavite bateriju u položaj koji neće naginjati robota.
– Arduino i drajveri motora trebaju biti postavljeni na vrhu radi lakšeg pristupa.

Pazite da sajla ne visi kako se ne bi zapetljala u kotače.

4. Osnovni dijagram ožičenja

Evo općeg koncepta povezivanja (pinovi se mogu prilagoditi):

a) Motor do upravljačkog programa L298N
– Lijevi motor na izlaz OUT1 i OUT2
– Desni motor na izlaz OUT3 i OUT4

b) L298N drajver za Arduino
– IN1, IN2 za lijevi motor na neke Arduino digitalne pinove
– IN3, IN4 za desni motor na neke digitalne pinove Arduina
– ENA i ENB (omogućavanje) mogu se spojiti na Arduino PWM pinove za kontrolu brzine (opciono). Ako ne, neki L298N moduli već imaju kratkospojnik za omogućavanje koji omogućava motoru da radi punom brzinom.

c) HC-SR04 senzor za Arduino
– VCC na 5V Arduino
– GND na GND Arduino
– TRIG na digitalni pin Arduina
– ECHO na Arduino digitalni pin

d) Moć
Motoru je potrebna veća struja nego što Arduino može obezbijediti. Stoga:
– Glavna baterija ide na upravljački sklop motora (+12V i GND terminali na L298N).
– Arduino se može napajati i iz baterije (preko VIN-a) ili zasebnog powerbanka/USB-a.
– Uzemljenje: Uzemljenje baterije/drajvera i uzemljenje Arduina moraju biti povezani da bi kontrolni signal bio stabilan.

Najčešća greška među početnicima je zaboravljanje spajanja GND-a, zbog čega se robot kreće nepravilno.

5. Logika rada robota za izbjegavanje prepreka

Robot će raditi po jednostavnom toku:

1. Očitajte udaljenost sa ultrazvučnog senzora.
2. Ako je udaljenost veća od praga (npr. 20 cm), robot se kreće naprijed.
3. Ako je udaljenost ≤ 20 cm, robot se nakratko zaustavlja.
4. Robot se malo pomakne unazad, a zatim se okrene (na primjer udesno) na nekoliko stotina milisekundi.
5. Ponovo očitajte udaljenost i ponovite.

S ovim obrascem, robot će izgledati kao da "izbjegava" prepreke, čak i ako ne odabere najoptimalniji put.

6. Jednostavan primjer Arduino koda

Ispod je osnovni primjer koda. Možete prilagoditi pinove kako bi odgovarali vašem strujnom kolu:

“`cpp
definišite TRIG 8
definiraj ECHO 9

// Lijevi motor
definiraj IN1 2
definiraj IN2 3

// Desni motor
definiraj IN3 4
definiraj IN4 5

dugo trajanje;
udaljenost int;

int readUdaljenost() {
digitalnoPiši(TRIG, LOW);
kašnjenje mikrosekunde(2);
digitalnoPiši(TRIG, VISOKI);
kašnjenje mikrosekunde(10);
digitalnoPiši(TRIG, LOW);

trajanje = pulsIn(ECHO, HIGH);
int cm = trajanje 0.034 / 2;
povratak cm;
}

void forward() {
digitalnoPisanje(IN1, VISOKO);
digitalnoPisanje(IN2, LOW);
digitalnoPisanje(IN3, VISOKO);
digitalnoPisanje(IN4, LOW);
}

void obrnuto() {
digitalnoPisanje(IN1, LOW);
digitalnoPisanje(IN2, VISOKO);
digitalnoPisanje(IN3, LOW);
digitalnoPisanje(IN4, VISOKO);
}

void skretanje desno() {
digitalnoPisanje(IN1, VISOKO);
digitalnoPisanje(IN2, LOW);
digitalnoPisanje(IN3, LOW);
digitalnoPisanje(IN4, VISOKO);
}

void stop() {
digitalnoPisanje(IN1, LOW);
digitalnoPisanje(IN2, LOW);
digitalnoPisanje(IN3, LOW);
digitalnoPisanje(IN4, LOW);
}

void setup () {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);

pinMode(IN1, IZLAZ);
pinMode(IN2, IZLAZ);
pinMode(IN3, IZLAZ);
pinMode(IN4, IZLAZ);

Serial.begin (9600);
}

void loop () {
udaljenost = pročitajUdaljenost();
Serial.println(udaljenost);

ako (udaljenost > 20) {
nastaviti();
} Else {
zaustavi();
kašnjenje (200);
obrnuto();
kašnjenje (300);
zaustavi();
kašnjenje (200);
skrenite desno();
kašnjenje (400);
zaustavi();
}

kašnjenje (50);
}
"`

Ovaj kod je najosnovnija verzija. Ako se robot prečesto ruši, možete povećati prag na 25-30 cm ili povećati vrijeme okretanja.

7. Testiranje i podešavanje

Nakon što je robot sastavljen, izvršite testiranje korak po korak:

1. Prvo testirajte motor: pokrenite funkciju naprijed/nazad kako biste bili sigurni da se kotači okreću u ispravnom smjeru.
2. Testirajte ultrazvučni senzor: pogledajte rezultate udaljenosti u Arduino IDE serijskom monitoru.
3. Spojite sistem: pokrenite cijeli program i promatrajte reakciju robota.

Ako se robot okreće ili kreće unazad kada bi se trebao kretati naprijed, možda ćete morati zamijeniti kablove motora ili obrnuti logiku IN1-IN2 (i IN3-IN4).

8. Uobičajeni problemi i rješenja

Neke prepreke koje se često javljaju:

– Robot se uopšte ne pomiče: provjerite bateriju, provjerite upravljački program motora, provjerite je li kratkospojnik za omogućavanje aktivan.
– Arduino se resetuje dok motor radi: nedovoljno napajanje ili buka motora. Pokušajte koristiti zasebnu bateriju za Arduino, dodati kondenzator i popraviti uzemljenje.
– Očitavanje senzora udaljenosti je nestabilno: provjerite je li senzor okrenut ravno, držite ga podalje od prekomjernih vibracija i provjerite je li kabel labav.
– Robot je „zaglavljen“ u uglu: dodajte logiku nasumičnog okretanja ili koristite servo motore za pomicanje senzora kako bi mogli „gledati“ lijevo i desno.

9. Ideje za razvoj nakon uspjeha

Nakon što je osnovni robot pokrenut i u funkciji, možete ga nadograditi na nešto zanimljivije:

– Dodavanje servo motora za pomicanje ultrazvučnih senzora kako bi robot odabrao najbolju putanju.
– Dodata je Bluetooth kontrola (HC-05) tako da se može kontrolisati s mobilnog telefona.
– Korištenje linijskih senzora za izradu robota koji prati liniju.
– Podesite brzinu PWM-a za glatkije kretanje.
– Dodajte zujalicu ili LED kao indikator prilikom otkrivanja prepreke.

Zaključak

Izrada jednostavnog robota ne mora biti teška. Pomoću Arduina, DC motora, upravljačkog programa motora i ultrazvučnog senzora možete napraviti robota koji se može automatski kretati i izbjegavati prepreke. Ključevi uspjeha su uredno ožičenje, dovoljni resursi i temeljito testiranje. Nakon što uspješno završite ovaj projekat, bit ćete bolje pripremljeni za rješavanje složenijih robotskih projekata, kao što je pametni robot zasnovan na kameri ili onaj koji može pratiti objekte.

Ako želite, mogu vam pomoći da kreirate detaljniji dijagram ožičenja prema pinovima koje odaberete ili da prilagodite kod tako da robot može nasumično okretati lijevo/desno i biti "inteligentniji".

Tinggalkan komentar