Želite li naučiti kako izgraditi vlastitog robota? Postoji mnogo različitih vrsta robota koje možete sami napraviti. Većina ljudi želi vidjeti robota kako izvodi jednostavne zadatke kretanja od točke A do točke B. Možete napraviti robota u potpunosti od analognih komponenti ili kupiti početni komplet od nule! Izgradnja vlastitog robota izvrstan je način da naučite i elektroniku i računalno programiranje.
Koraci
1. dio od 6: Sklapanje robota
Korak 1. Skupite komponente
Za izradu osnovnog robota trebat će vam nekoliko jednostavnih komponenti. Većinu, ako ne i sve ove komponente možete pronaći u lokalnoj hobi trgovini elektronikom ili u nekoliko prodavača na mreži. Neki osnovni kompleti mogu uključivati i sve ove komponente. Ovaj robot ne zahtijeva nikakvo lemljenje:
- Arduino Uno (ili drugi mikrokontroler)
- 2 servo servera s kontinuiranom rotacijom
- 2 kotača koji odgovaraju servo pogonima
- 1 kotačić
- 1 mala ploča bez lemljenja (potražite ploču s dvije pozitivne i negativne linije sa svake strane)
- 1 senzor udaljenosti (s četveropolnim priključnim kabelom)
- 1 mini prekidač na dugme
- 1 otpornik od 10 kΩ
- 1 USB kabel od A do B
- 1 set odvojnih zaglavlja
- 1 6 x AA držač baterija s utičnicom za napajanje 9V DC
- 1 pakiranje kratkospojnih žica ili žice za spajanje 22 kalibra
- Jaka dvostrana traka ili vruće ljepilo
Korak 2. Okrenite bateriju tako da ravna stražnja strana gleda prema gore
Gradit ćete tijelo robota koristeći bateriju kao bazu.
Korak 3. Poravnajte dva serva na kraju baterije
Ovo bi trebao biti kraj s kojim žica baterije izlazi iz servomotori bi trebali dodirivati dno, a rotirajući mehanizmi svakog od njih trebali bi biti okrenuti prema stranama baterije. Servomotori moraju biti pravilno poravnati tako da kotači idu ravno. Žice za servo upravljače trebale bi sići sa stražnje strane baterije.
Korak 4. Pričvrstite servomotore svojom trakom ili ljepilom
Provjerite jesu li čvrsto pričvršćene za bateriju. Stražnji dijelovi servo upravljača trebaju biti poravnati u ravnini sa stražnjom stranom baterije.
Servo upravljači bi sada trebali zauzimati zadnju polovicu baterije
Korak 5. Okvir postavite okomito na otvoreni prostor na bateriji
Trebao bi malo visjeti s prednje strane baterije i protezati će se sa svake strane. Prije nego nastavite, provjerite je li dobro pričvršćen. Red "A" trebao bi biti najbliži servo pogonima.
Korak 6. Priključite Arduino mikrokontroler na vrhove servomotora
Ako ste pravilno priključili servomotore, trebao bi postojati ravan prostor koji se dodiruje. Zalijepite Arduino ploču na ovaj ravni prostor tako da USB i priključci za napajanje Arduina budu okrenuti prema stražnjoj strani (dalje od matične ploče). Prednja strana Arduina trebala bi se jedva preklapati s pločom.
Korak 7. Stavite kotače na servo upravljače
Čvrsto pritisnite kotače na rotirajući mehanizam serva. To može zahtijevati značajnu silu jer su kotači konstruirani tako da stoje što je moguće čvršće za najbolju vuču.
Korak 8. Pričvrstite kotačić na dno ploče
Ako preokrenite šasiju, trebali biste vidjeti malo oplate koja se proteže pokraj baterije. Pričvrstite kotač na ovaj produženi komad, ako je potrebno pomoću uspona. Kotač djeluje kao prednji kotač, dopuštajući robotu da se lako okreće u bilo kojem smjeru.
Ako ste kupili komplet, kotač je možda došao s nekoliko uspona koje možete upotrijebiti kako biste osigurali da kotač dođe do tla. i
2. dio od 6: Ožičenje robota
Korak 1. Odlomite dva 3-pinska zaglavlja
Koristit ćete ih za povezivanje servomotora na matičnu ploču. Gurnite iglice prema dolje kroz zaglavlje tako da igle izađu na jednakoj udaljenosti s obje strane.
Korak 2. Umetnite dva zaglavlja u pinove 1-3 i 6-8 u retku E ploče za kruh
Provjerite jesu li čvrsto umetnuti.
Korak 3. Spojite servo kabele na zaglavlja, s crnim kabelom s lijeve strane (pinovi 1 i 6)
To će spojiti servosisteme na matičnu ploču. Provjerite je li lijevi servo priključen na lijevo zaglavlje, a desni na desno zaglavlje.
Korak 4. Spojite crvene kratkospojničke žice s pinova C2 i C7 na crvene (pozitivne) igle tračnice
Upotrijebite crvenu šinu na stražnjoj strani ploče (bliže ostatku šasije).
Korak 5. Spojite crne kratkospojne žice s pinova B1 i B6 na plave (uzemljene) igle tračnice
Upotrijebite plavu tračnicu na stražnjoj strani matične ploče. Nemojte ih uključivati u igle za crvenu šinu.
Korak 6. Spojite bijele kratkospojne žice s pinova 12 i 13 na Arduinu na A3 i A8
To će Arduinu omogućiti upravljanje servo pogonima i okretanje kotača.
Korak 7. Pričvrstite senzor na prednju stranu ploče
Ne uključuje se u vanjske vodilice za napajanje na ploči, već u prvi red iglica sa slovima (J). Pobrinite se da ga postavite u točno središte, s jednakim brojem igala sa svake strane.
Korak 8. Spojite crnu kratkospojnu žicu s pina I14 na prvi dostupni plavi klin na lijevoj strani senzora
Ovo će uzemljiti senzor.
Korak 9. Spojite crvenu kratkospojnu žicu s pina I17 na prvu dostupnu iglu s crvenom tračnicom desno od senzora
Ovo će napajati senzor.
Korak 10. Spojite bijele kratkospojničke žice s pina I15 na pin 9 na Arduinu, a s I16 na pin 8
To će slati podatke sa senzora u mikrokontroler.
Dio 3 od 6: Ožičenje napajanja
Korak 1. Okrenite robota na stranu tako da možete vidjeti baterije u pakiranju
Orijentirajte ga tako da kabel baterije izlazi lijevo na dnu.
Korak 2. Spojite crvenu žicu s drugom oprugom s lijeve strane na dnu
Provjerite je li baterija ispravno usmjerena.
Korak 3. Spojite crnu žicu s posljednjom oprugom u donjem desnom kutu
Ova dva kabela pomoći će osigurati ispravan napon na Arduinu.
Korak 4. Spojite crvenu i crnu žicu s krajnje desnim crvenim i plavim iglama na stražnjoj strani ploče
Crni kabel trebao bi biti priključen u plavi zatič šina na pin 30. Crveni kabel bi trebao biti priključen na pin za crvenu šinu na pin 30.
Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnjom plavom tračnicom
Spojite ga na pin 28 na plavoj šini.
Korak 6. Spojite crnu žicu sa stražnje plave tračnice na prednju plavu šinu na iglici 29 za svaku
Nemojte spajati crvene tračnice jer ćete vjerojatno oštetiti Arduino.
Korak 7. Spojite crvenu žicu s prednje crvene šine na pin 30 na pin 5V na Arduinu
To će Arduinu osigurati snagu.
Korak 8. Umetnite prekidač s prekidačem u razmak između redova na iglama 24-26
Ovaj prekidač omogućit će vam da isključite robota bez potrebe za isključivanjem napajanja.
Korak 9. Spojite crvenu žicu s H24 na crvenu šinu u sljedećem dostupnom pinu s desne strane senzora
Ovo će uključiti gumb.
Korak 10. Pomoću otpornika spojite H26 na plavu tračnicu
Spojite ga na pin izravno pokraj crne žice koju ste povezali prije nekoliko koraka.
Korak 11. Spojite bijelu žicu od G26 na pin 2 na Arduinu
To će omogućiti Arduinu da registrira gumb.
4. dio od 6: Instaliranje Arduino softvera
Korak 1. Preuzmite i raspakirajte Arduino IDE
Ovo je Arduino razvojno okruženje i omogućuje vam programiranje uputa koje zatim možete prenijeti na svoj Arduino mikrokontroler. Možete ga besplatno preuzeti s arduino.cc/en/main/software. Raspakirajte preuzetu datoteku dvostrukim klikom na nju i premjestite mapu unutra na lako dostupno mjesto. Nećete zapravo instalirati program. Umjesto toga, samo ćete ga pokrenuti iz izdvojene mape dvostrukim klikom na arduino.exe.
Korak 2. Spojite bateriju na Arduino
Priključite stražnju utičnicu baterije u priključak na Arduinu kako biste mu dali snagu.
Korak 3. Priključite Arduino u računalo putem USB -a
Windows vjerojatno neće prepoznati uređaj.
Korak 4. Pritisnite
⊞ Win+R i upišite devmgmt.msc.
Time će se pokrenuti Upravitelj uređaja.
Korak 5. Desnom tipkom miša kliknite "Nepoznat uređaj" u odjeljku "Ostali uređaji" i odaberite "Ažuriraj softver upravljačkog programa"
" Ako ne vidite ovu opciju, umjesto toga kliknite "Svojstva", odaberite karticu "Upravljački program", a zatim kliknite "Ažuriraj upravljački program".
Korak 6. Odaberite "Pregledaj moje računalo za upravljački program
" To će vam omogućiti odabir upravljačkog programa koji dolazi s Arduino IDE -om.
Korak 7. Kliknite "Pregledaj", a zatim idite do mape koju ste prethodno izdvojili
Unutra ćete pronaći mapu "upravljački programi".
Korak 8. Odaberite mapu "upravljački programi" i kliknite "U redu"
" Potvrdite da želite nastaviti ako ste upozoreni o nepoznatom softveru.
5. dio od 6: Programiranje robota
Korak 1. Pokrenite Arduino IDE dvostrukim klikom na datoteku arduino.exe u mapi IDE
Dočekat će vas prazan projekt.
Korak 2. Zalijepite sljedeći kôd kako bi vaš robot krenuo ravno
Donji kôd učinit će da vaš Arduino neprestano napreduje.
#include // ovo dodaje biblioteku "Servo" u program // sljedeće stvara dva servo objekta Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // ako ste slučajno promijenili PIN brojeve za svoje servomotore, ovdje možete zamijeniti brojeve rightMotor.attach (13); } void loop () {leftMotor.write (180); // s kontinuiranim okretanjem, 180 govori servo da se kreće punom brzinom "naprijed". rightMotor. pisati (0); // ako su oba na 180, robot će ići u krug jer su servo pogoni okrenuti. "0", govori mu da se kreće punom brzinom "unatrag". }
Korak 3. Napravite i prenesite program
Pritisnite desni gumb sa strelicom u gornjem lijevom kutu da biste izgradili i prenijeli program na povezani Arduino.
Možda ćete htjeti podići robota s površine jer će se on samo premjestiti naprijed nakon što se program učita
Korak 4. Dodajte funkcionalnost prekidača za isključivanje
Dodajte sljedeći kod u odjeljak "void loop ()" vašeg koda kako biste omogućili prekidač kill, iznad funkcija "write ()".
if (digitalRead (2) == HIGH) // ovo se registrira kada se gumb pritisne na pin 2 Arduina {while (1) {leftMotor.write (90); // "90" je neutralni položaj za servomotore, koji im govori da prestanu skretati udesnoMotor.write (90); }}
Korak 5. Prenesite i testirajte svoj kôd
S dodanim kodom prekidača za ubijanje, možete učitati i testirati robota. Trebao bi nastaviti voziti naprijed sve dok ne pritisnete prekidač, u tom trenutku će se prestati kretati. Cijeli kôd trebao bi izgledati ovako:
#include // sljedeće stvara dva servo objekta Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Dio 6 od 6: Primjer
Korak 1. Slijedite primjer
Sljedeći kôd će koristiti senzor pričvršćen na robota kako bi se okrenuo ulijevo kad god naiđe na prepreku. Pogledajte komentare u kodu za detalje o tome što svaki dio radi. Šifra ispod je cijeli program.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // ovo ograničava izlaz na konzolu na svakih 1/4 sekunde nepotpisanog longtimeSerialDelay = 0; const int loopPeriod = 20; // ovo postavlja koliko često senzor očitava vrijednost do 20 ms, što je frekvencija od 50Hz bez potpisa longtimeLoopDelay = 0; // ovo dodjeljuje funkcije TRIG i ECHO pinovima na Arduinu. Ovdje prilagodite brojeve ako ste drukčije spojeni const int ultrasonic2TrigPin = 8; const int ultrazvučni2EchoPin = 9; int ultrazvučna2Daljina; int ultrazvučni2Trajanje; // ovo definira dva moguća stanja za robota: vožnja naprijed ili skretanje ulijevo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = vožnja naprijed (DEFAULT), 1 = skrenite lijevo void setup () {Serial.begin (9600); // ove konfiguracije pinova senzora pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrazvučni2EchoPin, ULAZ); // ovo dodjeljuje motore Arduinovim pinovima leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ovo otkriva prekidač kill {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ovo ispisuje poruke za ispravljanje pogrešaka na serijsku konzolu if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ovo upućuje senzor da očita i pohrani izmjerene udaljenosti stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ako nisu otkrivene prepreke {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ako nema ništa ispred robota. ultrasonicDistance bit će negativan za neke ultrazvuke ako nema prepreka {// vozite naprijed rightMotor.write (180); leftMotor.write (0); } else // ako je objekt ispred nas {state = TURN_LEFT; }} else if (state == TURN_LEFT) // ako se otkrije prepreka, skrenite lijevo {unsigned long timeToTurnLeft = 500; // potrebno je oko 0,5 sekundi da se okrene za 90 stupnjeva. Možda ćete to morati prilagoditi ako su vam kotači različite veličine od primjera nepotpisanog long turnStartTime = millis (); // spremamo vrijeme koje smo počeli okretati dok ((millis ()-turnStartTime) <timeToTurnLeft) // ostajemo u ovoj petlji sve dok ne istekne timeToTurnLeft {// skrenite ulijevo, zapamtite da će se obojica postaviti na "180". rightMotor.write (180); leftMotor.write (180); } stanje = DRIVE_FORWARD; }} void readUltrasonicSensors () {// ovo je za ultrazvuk 2. Možda ćete morati promijeniti ove naredbe ako koristite drugi senzor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // održava trig pin visoko najmanje 10 mikrosekundi digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrazvučna2Distanca = (ultrazvučna2Trajanje/2)/29; } // sljedeće je za otklanjanje pogrešaka u konzoli. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serijski.ispis (ultrazvučna2Distanca); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}