Ž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 odličan 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 stepeni
- 2 kotača odgovaraju servo pogonu
- 1 besplatni točak
- 1 ploča za ispitivanje (matična ploča ili projektna ploča) koja nije lemljena (potražite testnu ploču koja ima dva pozitivna i negativna reda sa svake strane)
- 1 senzor blizine (sa četveropolnim priključnim kablom)
- 1 prekidač na dugme
- 1 otpornik 10 kΩ
- 1 USB A do B kabel
- 1 set lomljivih zaglavlja
- 1 6 x AA držač baterije sa utičnicom za napajanje 9V DC
- 1 paket 22. kratkospojnih kabela ili jednog kabela
- Izolacija naprijed -natrag (dvostruka traka) ili pištolj za ljepilo
Korak 2. Okrenite odjeljak 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 motori bi trebali dodirivati dno, a mehanizam okretanja svakog servo servera trebao bi biti okrenut prema stranama odjeljka za baterije. Važno je da su ti servomotori pravilno postavljeni tako da kotači budu ravni. Kablovi za servo pogon moraju izlaziti sa stražnje strane pretinca za baterije.
Korak 4. Zalijepite servomotore svojom izolacijom ili ljepilom
Uvjerite se da je servo čvrsto pričvršćen za pretinac za baterije. Zadnji dio servo servera mora biti poravnat sa stražnjim dijelom pretinca za baterije.
Sada bi servomotori trebali zauzeti polovicu prostora u stražnjem dijelu ležišta za bateriju
Korak 5. Zalijepite ispitnu ploču okomito na preostali prostor u odjeljku za baterije
Ova testna 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 testiranje čvrsta. Red "A" trebao bi biti najbliži servo pogonu.
Korak 6. Priključite Arduino mikrokontroler na vrh serva
Ako pravilno 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). Prednja strana Arduina će se preklapati s testnom pločom.
Korak 7. Ugradite kotače na servo pogone
Č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
Ako okrenete robota naopako, vidjet ćete malu testnu 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 točak slobodno dodiruje tlo
2. dio od 5: Ožičenje robota
Korak 1. Izrežite dva 3-pinska zaglavlja
Ovo ćete koristiti za povezivanje servo uređaja na testnu ploču. Gurnite iglice prema dolje kroz zaglavlja tako da izlaze na jednakoj udaljenosti s obje strane.
Korak 2. Umetnite dva zaglavlja u iglice 1-3 i 6-8 u redu E na testnoj ploči
Uverite se da su čvrsto ili čvrsto umetnuti.
Korak 3. Spojite servo žice sa zaglavljem, s crnom žicom s lijeve strane (iglice 1 i 6)
Ovo će povezati servo sa testnom pločom. Uvjerite se da je lijevi servo priključen na lijevo zaglavlje, a desni servo spojen na desno zaglavlje.
Korak 4. Spojite crvenu kratkospojničku žicu s pinova C2 i C7 na pin crvene šine (pozitivan)
Koristite 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)
Koristite plavu šinu na stražnjoj strani testne ploče. Ne pričvršćujte kabel na iglu crvene šine.
Korak 6. Spojite bijele kratkospojničke ž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 testnoj ploči, već na prva dva reda pinova sa slovima (J). Postavite ga točno u sredinu s jednakim brojem praznih igala sa svake strane.
Korak 8. Spojite crnu kratkospojničku žicu s pina I14 na prvi pin plave šine lijevo od senzora
Ovo će uzemljiti senzor.
Korak 9. Spojite crvenu kratkospojničku žicu s pina I17 na prvu iglu crvene šine desno od senzora
Ovo će omogućiti napajanje senzora.
Korak 10. Spojite bijele kratkospojničke žice s pina I15 na iglu 9 na Arduinu i s I16 na pin 8
Ovo ć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 iznutra
Rasporedite odeljak za baterije tako da kabl izlazi kroz donji levi donji deo.
Korak 2. Spojite crvenu žicu s drugom oprugom s lijeve strane na dnu
Uverite se da je odeljak za baterije pravilno poravnat ili da je okrenut u pravom smeru.
Korak 3. Povežite crnu žicu s posljednjom oprugom u donjem desnom kutu
Ove dvije žice pomoći će u osiguravanju pravog napona za Arduino.
Korak 4. Povežite crvenu i crnu žicu s crvenim i plavim pinovima koji se nalaze s desne strane na stražnjoj strani testne ploče
Crna žica bi trebala ići do plave igle šina na pinu 30. Crvena žica bi trebala ići do pina crvene šine na pinu 30.
Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnje strane plave šine
Spojite žicu na pin 28 na plavoj šini.
Korak 6. Spojite crnu žicu sa stražnje strane plave šine na prednju stranu plave šine na iglici 29 za obje šine
Nemojte spajati crvenu šinu jer možete oštetiti Arduino.
Korak 7. Spojite crvenu žicu s prednje strane crvene šine na pinu 30 na 5V pin na Arduinu
Ovo će Arduinu osigurati snagu.
Korak 8. Umetnite prekidač sa prekidačem u prostor između pinova 24-26
Ovaj prekidač će vam omogućiti da isključite robota bez isključivanja napajanja.
Korak 9. Spojite crvenu žicu od H24 na crvenu šinu na sljedećoj praznoj iglici desno od senzora
Ovo će omogućiti napajanje dugmeta.
Korak 10. Pomoću otpornika spojite H26 na plavu šinu
Spojite ga na pin direktno 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 sa arduino.cc/en/main/software. Raspakirajte preuzetu datoteku dvostrukim klikom na datoteku i premjestite mapu koju sadrži na lokaciju kojoj je lako pristupiti. Zapravo nećete instalirati program, već ćete ga jednostavno pokrenuti iz mape koja je izdvojena dvostrukim klikom na arduino.exe.
Korak 2. Spojite odjeljak za bateriju na Arduino
Umetnite stražnju utičnicu baterije u konektor na Arduinu da biste je napajali.
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 otkucajte devmgmt.msc.
Ova naredba će otvoriti Upravitelj uređaja.
Korak 5. Desnim tasterom miša kliknite na Unknown device u okviru Other devices i izaberite Update Driver Software
Ako ne vidite ovu opciju, kliknite Svojstva, odaberite karticu Upravljački program, a zatim kliknite Ažuriraj upravljački program.
Korak 6. Odaberite Pregledaj moj računar za upravljački program
To će vam omogućiti da odaberete ugrađene upravljačke programe koji su isporučeni s Arduino IDE-om.
Korak 7. Pritisnite Pregledaj, a zatim otvorite fasciklu koju ste prethodno izdvojili
U njemu ćete pronaći fasciklu 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čekaće vas prazan projekat.
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 vaš servo, možete ih zamijeniti ovdje 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. Kreirajte i otpremite program
Pritisnite gumb sa strelicom nadesno u gornjem lijevom kutu da kreirate i otpremite 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 stop (kill switch)
Dodajte sljedeći kôd u odjeljak "void loop ()" vašeg koda da biste dodali funkciju prekidača zaustavljanja na vrhu funkcije "write ()".
if (digitalRead (2) == HIGH) // ova naredba se pokreće kada se dugme pritisne 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. Otpremite i provjerite svoj kôd
S već dodanim kodom prekidača za zaustavljanje, možete ga učitati i testirati robota. Robot bi trebao nastaviti naprijed sve dok ne pritisnete dugme prekidača za zaustavljanje što će uzrokovati zaustavljanje robota. Potpuni kod će izgledati 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 lijevo 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 vremensko kašnjenje izlaza konzole na svakih 1/4 sekunde (250 ms) nepotpisanog dugog vremenaSerialDelay = 0; const int loopPeriod = 20; // ovaj kod 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 podesite brojeve ako ih povežete na drugačiji način const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // ovaj kod definira dva moguća stanja robota: nastavite naprijed ili skrenite lijevo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = nastavi naprijed (DEFAULT), 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 otkriva '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ovaj kod ispisuje debug poruke na serijsku konzolu if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ovaj kod upućuje senzor da čita i pohranjuje podatke o izmjerenoj udaljenosti stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ako nije otkrivena prepreka {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ako ništa nije ispred robota. ultrasonicDistance će biti negativan za neke ultrazvuke ako nema prepreka {// vozite naprijed rightMotor.write (180); leftMotor.write (0); } else // ako postoji 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 stepeni. Možda ćete morati prilagoditi ovu vrijednost ako se vaši kotači razlikuju po veličini od veličine u primjeru bez znaka 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); // povucite TRIG pin visoko najmanje 10 mikrosekundi digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // sljedeće je za otklanjanje grešaka u konzoli. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}