Se želite naučiti, kako narediti lastnega robota? Obstaja veliko različnih vrst robotov, ki jih lahko zgradite sami. Večina ljudi želi videti, da se robot zlahka premakne od točke A do B. Robota lahko popolnoma sestavite iz analognih komponent ali kupite začetni komplet. Izdelava lastnega robota je odličen način za učenje elektronike in računalniškega programiranja.
Korak
1. del od 5: Sestavljanje robota
Korak 1. Sestavite komponente
Za izdelavo osnovnega robota boste potrebovali nekaj preprostih komponent. Večino ali vse te komponente lahko najdete v lokalni trgovini z elektroniko ali pri nekaterih spletnih prodajalcih. Nekateri kompleti vključujejo vse te komponente. Ta robot ne potrebuje spajkanja:
- Arduino Uno (ali drug mikrokrmilnik)
- 2 servomotorja 360 stopinj
- 2 kolesi, ki ustrezajo servo
- 1 brezplačno kolo
- 1 preskusna plošča (plošča ali projektna plošča), ki ni bila spajkana (poiščite preskusno ploščo, ki ima dve pozitivni in negativni vrsti na vsaki strani)
- 1 senzor bližine (s 4 -polnim priključnim kablom)
- 1 stikalo z gumbom
- 1 upor 10 kΩ
- 1 kabel USB A do B
- 1 komplet lomljivih glav
- 1 6 x AA držalo za baterijo z 9 V DC vtičnico
- 1 paket 22. mostičnih kablov ali enega kabla
- Izolacija naprej in nazaj (dvojni trak) ali pištola za lepilo
Korak 2. Obrnite predal za baterije tako, da je njegov ploski hrbet obrnjen navzgor
Ohišje robota boste izdelali z uporabo predala za baterije kot osnove.
Korak 3. Na koncu ležišča za baterije razporedite dva servomotorja, obrnjena v isto smer
Ta konec je konec, kjer kabel prihaja iz baterije. Servomotorji se morajo dotikati dna, rotacijski mehanizem vsakega servomotorja pa naj bo obrnjen navzven s strani predala za baterije. Pomembno je, da so ti servomotorji pravilno razporejeni, tako da so kolesa ravna. Kabli za servo pogon morajo izhajati iz zadnjega dela predala za baterije.
Korak 4. Lepite servomotorje z izolacijo ali lepilom
Poskrbite, da je servo trdno pritrjen na predal za baterije. Zadnja stran servomotorja mora biti poravnana z zadnjo stranjo prostora za baterije.
Zdaj bi morali servomotorji zavzeti polovico prostora v zadnjem delu prostora za baterije
Korak 5. Testno ploščo prilepite pravokotno na preostali prostor v predalu za baterije
Ta preskusna plošča bo nekoliko visela na sprednji strani predala za baterije in se bo razširila na obe strani. Preden nadaljujete, se prepričajte, da je preskusna plošča tesna. Vrstica "A" mora biti najbližje servo.
Korak 6. Pritrdite mikrokrmilnik Arduino na vrh servomotorja
Če servo servo priključite pravilno, se morata ploska dela dveh servomotorjev dotikati drug drugega. Ploščo Arduino prilepite na to ravno mesto, tako da sta priključka za napajanje USB in Arduino obrnjena navzdol (stran od preskusne plošče). Sprednji del Arduina se bo prekrival s preskusno ploščo.
Korak 7. Namestite kolesa na servomotorje
Kolesa trdno pritisnite na vrtljivi servo mehanizem. To lahko zahteva precejšnjo silo, saj so kolesa zasnovana tako, da imajo luknje, ki se popolnoma ujemajo z obliko servo konice.
Korak 8. Namestite prosto kolo na dno preskusne plošče
Če obrnete robota na glavo, boste iz predala za baterije videli majhno preskusno ploščo. Na ta viseči del pritrdite prosto kolo. Po potrebi uporabite klin. Prosto kolo služi kot sprednje kolo, ki robotu omogoča enostavno obračanje v katero koli smer.
Če ste kupili komplet, ima lahko brezplačno kolo nekaj zagozdi, s katerimi lahko zagotovite, da se kolo prosto dotika tal
2. del od 5: Ožičenje robota
Korak 1. Izrežite dva 3-polna glave
S tem boste servo priključili na preskusno ploščo. Zatiči potisnite navzdol skozi glave, tako da pridejo na enako razdaljo na obeh straneh.
Korak 2. Vstavite obe glavi v nožice 1-3 in 6-8 v vrstici E na preskusni plošči
Prepričajte se, da so trdno ali trdno vstavljeni.
Korak 3. Povežite servo žice z glavo, s črno žico na levi strani (nožici 1 in 6)
To bo povezalo servo s preskusno ploščo. Prepričajte se, da je levi servo priključen na levo glavo, desni pa na desni.
Korak 4. Priključite žico rdečega mostička iz nožic C2 in C7 na zatič rdeče tirnice (pozitiven)
Uporabite rdečo tirnico na zadnji strani preskusne plošče (bližje preostalemu delu robota).
Korak 5. Priključite črno mostično žico z nožic B1 in B6 na modri tirnični zatič (ozemljitev)
Uporabite modro tirnico na zadnji strani preskusne plošče. Ne pritrjujte kabla na zatič rdeče tirnice.
Korak 6. Bele mostičke povežite z nožic 12 in 13 na Arduinu na A3 in A8
Tako bo Arduino lahko upravljal servo in obračal kolo.
Korak 7. Senzor pritrdite na sprednjo stran preskusne plošče
Tipalo ni nameščeno na zunanji napajalni tirnici na preskusni plošči, ampak na prvi dve vrsti zatičev s črko (J). Poskrbite, da ga postavite na sredino z enakim številom praznih zatičev na vsaki strani.
Korak 8. Priključite črno mostično žico iz zatiča I14 na prvi zatič modre tirnice na levi strani senzorja
S tem senzor ozemljite.
Korak 9. Priključite žico rdečega mostička iz zatiča I17 na prvi zatič rdeče tirnice na desni strani senzorja
To bo senzorju zagotovilo moč.
Korak 10. Bele mostičke povežite s pina I15 na pin 9 na Arduinu in od I16 na pin 8
To bo posredovalo informacije od senzorja do mikrokrmilnika.
3. del od 5: Namestitev napajalnega kabla
Korak 1. Obrnite robota, da vidite notranjost prostora za baterije
Predal za baterije razporedite tako, da bo kabel izhajal skozi levo spodaj.
Korak 2. Rdečo žico povežite z drugo vzmetjo z leve na dnu
Prepričajte se, da je predal za baterije pravilno poravnan ali obrnjen v pravo smer.
Korak 3. Povežite črno žico z zadnjo vzmetjo spodaj desno
Ti dve žici bosta prispevali pravo napetost do Arduina.
Korak 4. Priključite rdeče in črne žice na rdeče in modre zatiče, ki so na desni strani na zadnji strani preskusne plošče
Črna žica mora iti do modrega tirničnega zatiča na zatiču 30. Rdeča žica naj gre za zatič rdeče tirnice na zatiču 30.
Korak 5. Priključite črno žico iz zatiča GND na Arduinu na zadnjo stran modre tirnice
Priključite žico na pin 28 na modri tirnici.
Korak 6. Črno žico s hrbtne strani modre tirnice povežite s sprednjo stran modre tirnice na zatiču 29 za obe tirnici
Ne priključujte rdeče tirnice, saj lahko poškodujete Arduino.
Korak 7. Priključite rdečo žico s sprednje strani rdeče tirnice na zatiču 30 s 5V zatičem na Arduinu
To bo Arduinu zagotovilo moč.
Korak 8. Stikalo z gumbom vstavite v prostor med zatiči 24-26
To stikalo vam bo omogočilo, da izklopite robota, ne da bi morali izklopiti napajanje.
Korak 9. Priključite rdečo žico od H24 na rdečo tirnico na naslednjem praznem zatiču desno od senzorja
To bo gumbu zagotovilo moč.
Korak 10. Z uporom priključite H26 na modro tirnico
Priključite ga na pin neposredno ob črni žici, ki ste jo pravkar povezali v prejšnjih korakih.
Korak 11. Belo žico povežite z G26 na pin 2 na Arduinu
To bo Arduinu omogočilo zaznavanje gumbov.
4. del od 5: Namestitev programske opreme Arduino
Korak 1. Prenesite in izvlecite Arduino IDE
Tu se razvija Arduino in vam omogoča programiranje navodil, ki jih lahko nato naložite v svoj mikrokrmilnik Arduino. Brezplačno ga lahko prenesete s spletnega mesta arduino.cc/en/main/software. Prenesite preneseno datoteko tako, da dvokliknete datoteko in mapo, ki jo vsebuje, premaknete na mesto, ki je enostavno dostopno. Pravzaprav programa ne boste namestili, temveč ga boste zagnali samo iz mape, ki je bila izvlečena z dvoklikom na arduino.exe.
Korak 2. Predal za baterije priključite na Arduino
Zadnjo vtičnico baterije vstavite v priključek na Arduinu, da ga napajate.
Korak 3. Vstavite Arduino v računalnik prek USB -ja
Verjetno je, da Windows ne bo prepoznal naprave.
Korak 4. Pritisnite
Win+R. in tip devmgmt.msc.
Ta ukaz odpre Upravitelja naprav.
Korak 5. Z desno miškino tipko kliknite Neznana naprava v razdelku Druge naprave in izberite Posodobi programsko opremo gonilnika
Če te možnosti ne vidite, kliknite Lastnosti, izberite zavihek Gonilnik in nato Posodobi gonilnik.
Korak 6. Izberite Prebrskaj moj računalnik za gonilniško programsko opremo
Tako boste lahko izbrali vgrajene gonilnike, ki so priloženi Arduino IDE.
Korak 7. Kliknite Prebrskaj, nato odprite mapo, ki ste jo ekstrahirali prej
V njej boste našli mapo z gonilniki.
Korak 8. Izberite mapo gonilnikov in kliknite V redu
Potrdite, da želite nadaljevati, če vas opozori neznana programska oprema.
5. del od 5: Programiranje robotov
Korak 1. Odprite Arduino IDE tako, da dvokliknete datoteko arduino.exe v mapi IDE
Pozdravil vas bo prazen projekt.
Korak 2. Prilepite ali prilepite naslednjo kodo, da bo vaš robot napredoval
Spodnja koda bo ohranila vaš Arduino.
#include // s tem programu dodamo knjižnico “Servo” // naslednji ukaz ustvari dva servo objekta Servo leftMotor; Servo desni motor; void setup () {leftMotor.attach (12); // če ste pomotoma zamenjali številke pin za vaš servo, lahko tukaj zamenjate številke rightMotor.attach (13); } void loop () {leftMotor.write (180); // s 360 -stopinjskim vrtenjem (neprekinjeno vrtenje) številka 180 naroči servo, da se pri polni hitrosti premika "naprej". rightMotor.write (0); // če sta obe vrednosti 180, se bo robot vrtel v krogu, ker je servo obrnjen. "0" pove, da se robot premika "nazaj" s polno hitrostjo. }
Korak 3. Ustvarite in naložite program
Kliknite gumb s puščico desno v zgornjem levem kotu, da ustvarite in naložite program v povezani Arduino.
Robota boste morda želeli dvigniti s površine, saj bo po nalaganju programa še naprej hodil naprej
Korak 4. Dodajte funkcijo stop stop (kill switch)
Dodajte naslednjo kodo v razdelek "void loop ()" vaše kode, da dodate funkcijo stop stop na vrhu funkcije "write ()".
if (digitalRead (2) == HIGH) // ta ukaz se izvede, ko pritisnete gumb na pin 2 Arduino {while (1) {leftMotor.write (90); // "90" je nevtralni položaj servomotorja, ki servo pove, naj preneha obračati desnoMotor.write (90); }}
Korak 5. Naložite in preverite kodo
Z že dodano kodo stikala za zaustavitev lahko naložite kodo in preizkusite robota. Robot bi moral nadaljevati, dokler ne pritisnete gumba za zaustavitev, zaradi česar se robot ustavi. Celotna koda bo videti tako:
#include // naslednji ukaz ustvari dva servo -objekta Servo leftMotor; Servo desni motor; 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); }
Primer
Naslednja koda bo uporabila senzorje, nameščene na robotu, da bo zavil levo, ko robot naleti na oviro. Za podrobnosti o uporabi vsakega dela poglejte komentarje v kodi. Spodnja koda je celoten program.
#include Servo leftMotor; Servo desni motor; const int serialPeriod = 250; // ta koda daje izhodnemu časovnemu zamiku konzole vsakih 1/4 sekunde (250 ms) nepodpisanega dolgega časaSerialDelay = 0; const int loopPeriod = 20; // ta koda nastavi frekvenco branja senzorja na 20 ms, kar je 50 Hz brez podpisa dolgo timeLoopDelay = 0; // ta koda dodeljuje funkcije TRIG in ECHO nožicam na Arduinu. Tu prilagodite številke, če jih povežete na drugačen način const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // ta koda definira dve možni stanji robota: nadaljujte naprej ali zavijte levo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = nadaljevanje naprej (DEFAULT), 1 = levo void setup () {Serial.begin (9600); // ta senzor določa konfiguracijo pin pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrazvočni2EchoPin, VHOD); // s tem motor dodelimo zatičem Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ta koda zazna '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ta koda natisne sporočila za odpravljanje napak na serijsko konzolo if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ta koda da senzorju navodila za branje in shranjevanje podatkov o stanju izmerjene razdaljeMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // če ni zaznana ovira {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // če nič ni pred robotom. ultrasonicDistance bo za nekatere ultrazvoke negativna, če ni ovir {// vozite naprej rightMotor.write (180); leftMotor.write (0); } else // če je pred nami predmet {state = TURN_LEFT; }} else if (state == TURN_LEFT) // če zaznamo oviro, zavijemo levo {unsigned long timeToTurnLeft = 500; // traja približno 0,5 sekunde, da se obrne za 90 stopinj. To vrednost boste morda morali prilagoditi, če se vaša kolesa po velikosti razlikujejo od velikosti v primeru brez podpisa dolgi turnStartTime = millis (); // ohranimo stanje, ko se robot začne obračati, medtem ko ((millis ()-turnStartTime) <timeToTurnLeft) // ohrani ta cikel, dokler ne mine timeToTurnLeft (500) {// zavijte levo, ne pozabite, da ko sta oba "180", robot se bo obrnil. rightMotor.write (180); leftMotor.write (180); } stanje = DRIVE_FORWARD; }} void readUltrasonicSensors () {// to je za ultrazvok 2. Ta ukaz boste morda morali spremeniti, če uporabljate drugo tipalo. digitalWrite (ultrazvočni2TrigPin, HIGH); delayMicroseconds (10); // za največ 10 mikrosekund potegnite zatič TRIG visoko digitalno (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrazvočna2razdalja = (ultrazvočna2trajanje/2)/29; } // naslednje je za odpravljanje napak v konzoli. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}