Želite li naučiti kako napraviti vlastitog robota? Postoji mnogo različitih vrsta robota koje možete sami izgraditi. Većina ljudi želi vidjeti robota kako se lako kreće od točke A do točke B. Možete izgraditi robota u potpunosti od analognih komponenti ili kupiti početni komplet. Izrada vlastitog robota izvrstan je način za učenje elektronike i računalnog programiranja.
Korak
1. dio od 5: Sklapanje robota
Korak 1. Sastavite komponente
Za izradu osnovnog robota trebat će vam nekoliko jednostavnih komponenti. Većinu ili sve ove komponente možete pronaći u lokalnoj trgovini hobi elektronike ili u nekim mrežnim prodavačima. Neki kompleti uključuju sve ove komponente. Ovaj robot ne zahtijeva nikakvo lemljenje:
- Arduino Uno (ili drugi mikrokontroler)
- 2 servo motora 360 stupnjeva
- 2 kotača odgovaraju servo
- 1 besplatni kotač
- 1 ploča za ispitivanje (ploča ili projektna ploča) koja nije lemljena (potražite ispitnu ploču koja ima dva pozitivna i negativna reda sa svake strane)
- 1 senzor blizine (s četveropolnim priključnim kabelom)
- 1 prekidač na gumb
- 1 otpornik 10 kΩ
- 1 USB kabel od A do B
- 1 set lomljivih zaglavlja
- 1 6 x AA držač baterija s utičnicom za napajanje 9V DC
- 1 pakiranje 22. kratkospojnih kabela ili jednog kabela
- Izolacija naprijed -natrag (dvostruka traka) ili pištolj za ljepilo
Korak 2. Okrenite pretinac za baterije tako da njegova ravna stražnja strana gleda prema gore
Napravit ćete tijelo robota koristeći pretinac za baterije kao bazu.
Korak 3. Rasporedite dva servo motora okrenuta u istom smjeru na kraju ležišta za bateriju
Ovaj kraj je kraj gdje kabel izlazi iz baterije. Servo upravljači trebaju dodirivati dno, a mehanizam okretanja svakog servoa trebao bi biti okrenut prema van sa strana pretinca za baterije. Važno je da su ti servomotori pravilno postavljeni tako da kotači budu ravni. Kabeli za servo pogon moraju izlaziti sa stražnje strane pretinca za baterije.
Korak 4. Zalijepite servomotore svojom izolacijom ili ljepilom
Provjerite je li servo čvrsto pričvršćen za pretinac za baterije. Stražnja strana servo servera mora biti poravnana sa stražnjom stranom pretinca za baterije.
Sada bi servomotori trebali zauzeti polovicu prostora u stražnjem dijelu ležišta za baterije
Korak 5. Zalijepite ispitnu ploču okomito na preostali prostor u odjeljku za baterije
Ova ispitna ploča blago će visjeti preko prednje strane odjeljka za baterije i protezati će se na obje strane. Prije nego nastavite, provjerite je li ploča za ispitivanje čvrsta. Red "A" trebao bi biti najbliži servo pogonu.
Korak 6. Priključite Arduino mikrokontroler na vrh serva
Ako ispravno priključite servo, trebali bi se ravni dijelovi dva serva međusobno dodirivati. Zalijepite Arduino ploču na ovo ravno mjesto tako da USB i Arduino priključci za napajanje budu okrenuti prema dolje (dalje od testne ploče). Prednji dio Arduina preklopit će se s testnom pločom.
Korak 7. Ugradite kotače na servo upravljače
Čvrsto pritisnite kotače na rotirajući servo mehanizam. To može zahtijevati znatnu silu jer su kotači dizajnirani tako da imaju rupe koje se točno podudaraju s oblikom servo vrha.
Korak 8. Instalirajte slobodni kotač na dno testne ploče
Okrenete li robota naopako, vidjet ćete malu ispitnu ploču koja visi s pretinca za baterije. Pričvrstite slobodni kotač na ovaj viseći dio. Po potrebi upotrijebite klin. Slobodni kotač služi kao prednji kotač koji robotu omogućuje lako okretanje u bilo kojem smjeru.
Ako ste kupili komplet, slobodni kotač može imati neke klinove koje možete upotrijebiti kako biste osigurali da kotač slobodno dodiruje tlo
2. dio od 5: Ožičenje robota
Korak 1. Izrežite dva 3-pinska zaglavlja
Ovo ćete upotrijebiti za povezivanje servo uređaja s testnom pločom. Gurnite iglice prema dolje kroz zaglavlja tako da izlaze na jednakoj udaljenosti s obje strane.
Korak 2. Umetnite dva zaglavlja u igle 1-3 i 6-8 u redu E na ispitnoj ploči
Provjerite jesu li čvrsto ili čvrsto umetnuti.
Korak 3. Spojite servo žice s zaglavljem, s crnom žicom s lijeve strane (pinovi 1 i 6)
To će spojiti servo s ispitnom pločom. Provjerite je li lijevi servo priključen na lijevo zaglavlje, a desni servo spojen na desno zaglavlje.
Korak 4. Spojite crvenu kratkospojnu žicu s pinova C2 i C7 na pin crvene tračnice (pozitivan)
Upotrijebite crvenu šinu na stražnjoj strani testne ploče (bliže ostatku tijela robota).
Korak 5. Spojite crnu kratkospojnu žicu s pinova B1 i B6 na plavi klin (uzemljenje)
Upotrijebite plavu tračnicu na stražnjoj strani testne ploče. Ne pričvršćujte kabel na iglu crvene tračnice.
Korak 6. Spojite bijele kratkospojne žice s pinova 12 i 13 na Arduinu na A3 i A8
To će omogućiti Arduinu da kontrolira servo i okreće kotač.
Korak 7. Pričvrstite senzor na prednju stranu testne ploče
Senzor nije montiran na vanjsku vodilicu za napajanje na ispitnoj ploči, već na prva dva reda pinova s natpisom (J). Stavite ga točno u sredinu s jednakim brojem praznih igala sa svake strane.
Korak 8. Spojite crnu kratkospojnu žicu s pina I14 na prvi pin plave tračnice lijevo od senzora
Ovo će uzemljiti senzor.
Korak 9. Spojite crvenu kratkospojnu žicu s pina I17 na prvu iglu crvene tračnice desno od senzora
To će senzoru osigurati napajanje.
Korak 10. Spojite bijele kratkospojničke žice od pina I15 do pina 9 na Arduinu, a od I16 do pina 8
To će pružiti informacije od senzora do mikrokontrolera.
Dio 3 od 5: Instaliranje kabela za napajanje
Korak 1. Okrenite robota tako da vidite odjeljak za baterije unutra
Postavite pretinac za baterije tako da kabel izlazi kroz donji lijevi donji dio.
Korak 2. Spojite crvenu žicu s drugom oprugom s lijeve strane na dnu
Provjerite je li pretinac za baterije pravilno poravnat ili okrenut u ispravnom smjeru.
Korak 3. Spojite crnu žicu s posljednjom oprugom u donjem desnom kutu
Ove dvije žice pomoći će osigurati pravi napon za Arduino.
Korak 4. Spojite crvenu i crnu žicu s crvenim i plavim iglama koje se nalaze s desne strane na stražnjoj strani testne ploče
Crna žica trebala bi ići do zatiča plave tračnice na iglici 30. Crvena žica bi trebala ići do zatiča za crvenu tračnicu na pinu 30.
Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnje strane plave tračnice
Spojite žicu na pin 28 na plavoj šini.
Korak 6. Spojite crnu žicu sa stražnje strane plave tračnice s prednjom stranom plave tračnice na iglici 29 za obje tračnice
Nemojte spajati crvenu šinu jer možete oštetiti Arduino.
Korak 7. Spojite crvenu žicu s prednje strane crvene šine na pinu 30 s 5V iglom na Arduinu
To će Arduinu osigurati snagu.
Korak 8. Umetnite prekidač s gumbom u prostor između nožica 24-26
Ovaj prekidač omogućit će vam isključivanje robota bez isključivanja napajanja.
Korak 9. Spojite crvenu žicu s H24 na crvenu šinu na sljedećoj praznoj iglici desno od senzora
To će omogućiti napajanje gumba.
Korak 10. Pomoću otpornika spojite H26 na plavu tračnicu
Spojite ga na pin izravno pored crne žice koju ste upravo povezali u prethodnim koracima.
Korak 11. Spojite bijelu žicu od G26 na pin 2 na Arduinu
To će omogućiti Arduinu da otkrije tipke.
4. dio od 5: Instaliranje Arduino softvera
Korak 1. Preuzmite i raspakirajte Arduino IDE
Ovdje se razvija Arduino 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 datoteku i premjestite mapu koju ona sadrži na lako dostupno mjesto. Program zapravo nećete instalirati, nego ćete ga samo pokrenuti iz mape koja je izdvojena dvostrukim klikom na arduino.exe.
Korak 2. Spojite pretinac za bateriju na Arduino
Umetnite stražnju utičnicu baterije u priključak na Arduinu za napajanje.
Korak 3. Umetnite Arduino u računalo putem USB -a
Velike su šanse da Windows neće prepoznati uređaj.
Korak 4. Pritisnite
Win+R i upišite devmgmt.msc.
Ova naredba će otvoriti Upravitelj uređaja.
Korak 5. Desnom tipkom miša kliknite Nepoznati uređaj pod drugim uređajima i odaberite Ažuriraj softver upravljačkog programa
Ako ne vidite ovu opciju, 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 da odaberete ugrađene upravljačke programe isporučene s Arduino IDE-om.
Korak 7. Pritisnite Pregledaj, a zatim otvorite mapu koju ste prethodno izdvojili
U njemu ćete pronaći mapu upravljačkih programa.
Korak 8. Odaberite mapu upravljačkih programa i kliknite U redu
Potvrdite da želite nastaviti ako ste upozoreni o nepoznatom softveru.
5. dio od 5: Programiranje robota
Korak 1. Otvorite Arduino IDE dvostrukim klikom na datoteku arduino.exe u mapi IDE
Dočekat će vas prazan projekt.
Korak 2. Zalijepite ili zalijepite sljedeći kôd kako bi vaš robot napredovao
Donji kôd će zadržati vaš Arduino.
#include // ovo dodaje biblioteku “Servo” u program // sljedeća naredba stvara dva servo objekta Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // ako ste slučajno zamijenili PIN brojeve za svoj servo, ovdje možete zamijeniti brojeve rightMotor.attach (13); } void loop () {leftMotor.write (180); // s rotacijom od 360 stupnjeva (kontinuirana rotacija), broj 180 upućuje servo da se kreće "naprijed" punom brzinom. rightMotor.write (0); // ako su obje vrijednosti 180, robot će se rotirati u krug jer je servo obrnut. "0" govori robotu da se kreće "unatrag" punom brzinom. }
Korak 3. Izradite i učitajte program
Pritisnite gumb sa strelicom desno u gornjem lijevom kutu da biste stvorili i prenijeli program na povezani Arduino.
Možda ćete htjeti podići robota s površine jer će robot nastaviti hodati naprijed nakon što se program učita
Korak 4. Dodajte funkciju stop prekidača (kill switch)
Dodajte sljedeći kôd u odjeljak "void loop ()" svog koda da biste dodali funkciju prekidača za zaustavljanje na vrhu funkcije "write ()".
if (digitalRead (2) == HIGH) // ova naredba se izvodi kada se pritisne gumb na pin 2 Arduino {while (1) {leftMotor.write (90); // "90" je neutralni položaj za servo, koji govori servo da prestane okretati desnoMotor.write (90); }}
Korak 5. Prenesite i provjerite svoj kôd
S već dodanim kodom prekidača za zaustavljanje možete učitati kôd i testirati robota. Robot bi trebao nastaviti naprijed sve dok ne pritisnete prekidač za zaustavljanje što će uzrokovati zaustavljanje robota. Cijeli kôd izgledat će ovako:
#include // sljedeća naredba stvara dva Servo leftMotor servo objekta; 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); }
Primjer
Sljedeći kôd će koristiti senzore instalirane na robotu kako bi skrenuo ulijevo kad god robot naiđe na prepreku. Pogledajte komentare u kodu za detalje o tome kako koristiti svaki dio. Šifra ispod je cijeli program.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // ovaj kôd daje izlazno vremensko kašnjenje konzole na svakih 1/4 sekunde (250 ms) nepotpisanog dugog vremenaSerialDelay = 0; const int loopPeriod = 20; // ovaj kôd postavlja frekvenciju očitavanja senzora na 20 ms, što je 50 Hz bez potpisa longtimeLoopDelay = 0; // ovaj kod dodjeljuje funkcije TRIG i ECHO pinovima na Arduinu. Ovdje prilagodite brojeve ako ih povežete na drugačiji način const int ultrasonic2TrigPin = 8; const int ultrazvučni2EchoPin = 9; int ultrazvučna2Daljina; int ultrazvučni2Trajanje; // ovaj kôd definira dva moguća stanja robota: nastavite naprijed ili skrenite ulijevo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = nastavi naprijed (Zadano), 1 = skreni lijevo void setup () {Serial.begin (9600); // ovaj senzor određuje konfiguraciju pina pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrazvučni2EchoPin, ULAZ); // ovo dodjeljuje motor Arduino pinovima leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ovaj kod detektira '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ovaj kod ispisuje poruke za otklanjanje pogrešaka na serijsku konzolu if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ovaj kod upućuje senzor da čita i pohranjuje podatke o stanju izmjerene udaljenostiMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ako nije otkrivena prepreka {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ako ništa nije 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 morati prilagoditi ovu vrijednost ako se vaši kotači razlikuju po veličini od veličine u primjeru bez potpisa long turnStartTime = millis (); // zadržati stanje kada se robot počne okretati dok ((millis ()-turnStartTime) <timeToTurnLeft) // zadrži ovaj ciklus dok timeToTurnLeft (500) ne prođe {// skrenite lijevo, zapamtite da kad su oba "180", robot će se okrenuti. rightMotor.write (180); leftMotor.write (180); } stanje = DRIVE_FORWARD; }} void readUltrasonicSensors () {// ovo je za ultrazvuk 2. Možda ćete morati promijeniti ovu naredbu ako koristite drugi senzor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // visoko povucite TRIG pin za 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 (); }}