Ali se želite naučiti, kako sestaviti lastnega robota? Obstaja veliko različnih vrst robotov, ki jih lahko naredite sami. Večina ljudi želi videti, da robot opravlja preproste naloge premikanja od točke A do točke B. Robota lahko naredite popolnoma iz analognih komponent ali pa kupite začetni komplet iz nič! Izdelava lastnega robota je odličen način za učenje elektronike in računalniškega programiranja.
Koraki
1. del od 6: Sestavljanje robota
Korak 1. Zberite komponente
Za izdelavo osnovnega robota boste potrebovali več preprostih komponent. Večino teh komponent, če ne vse, lahko najdete v vaši lokalni trgovini z elektroniko ali več spletnih prodajalcih. Nekateri osnovni kompleti lahko vsebujejo tudi vse te komponente. Ta robot ne potrebuje spajkanja:
- Arduino Uno (ali drug mikrokrmilnik)
- 2 servomotorja z neprekinjenim vrtenjem
- 2 kolesi, ki ustrezajo servomotorjem
- 1 kolešček
- 1 majhna plošča brez spajkanja (poiščite ploščo z dvema pozitivnima in negativnima črtama na vsaki strani)
- 1 senzor razdalje (s 4-polnim priključnim kablom)
- 1 mini stikalo na gumb
- 1 10kΩ upor
- 1 kabel USB A do B
- 1 komplet odcepljenih glav
- 1 6 x AA držalo za baterijo z 9V DC vtičnico
- 1 paket mostičnih žic ali 22-palčne priključne žice
- Močan dvostranski trak ali vroče lepilo
Korak 2. Obrnite baterijo tako, da je ploska hrbtna stran obrnjena navzgor
Telo robota boste gradili z uporabo baterije kot osnove.
Korak 3. Poravnajte dva servomotorja na koncu baterije
To bi moralo biti konec, ko žica akumulatorja prihaja iz servomotorjev se mora dotikati dna, vrtljivi mehanizmi vsakega pa morajo biti obrnjeni navzven ob straneh akumulatorja. Servomotorji morajo biti pravilno poravnani, tako da kolesa gredo naravnost. Žice za servomotorje bi morale odhajati z zadnje strani akumulatorja.
Korak 4. Servomobile pritrdite s trakom ali lepilom
Prepričajte se, da so trdno pritrjeni na baterijo. Hrbtna stran servomotorjev mora biti poravnana s hrbtno stranjo akumulatorja.
Servomotorji bi morali zavzeti zadnjo polovico akumulatorja
Korak 5. Ohišje pritrdite pravokotno na odprt prostor na bateriji
Le malo bi morala viseti na sprednji strani akumulatorja in segati čez vsako stran. Preden nadaljujete, se prepričajte, da je trdno pritrjen. Vrstica "A" mora biti najbližja servomotorjem.
Korak 6. Pritrdite mikrokrmilnik Arduino na vrhove servomotorjev
Če ste servomotorje pravilno pritrdili, bi se morali dotakniti ravnega prostora. Ploščo Arduino prilepite na ta ravno površino, tako da sta priključka USB in napajanje Arduino obrnjena proti hrbtu (stran od plošče). Sprednji del Arduina bi se moral komaj prekrivati s ploščo.
Korak 7. Kolesa namestite na servomotorje
Kolesa trdno pritisnite na vrtljivi mehanizem servo. To lahko zahteva precejšnjo silo, saj so kolesa zasnovana tako, da se čim bolj tesno prilegajo za najboljši oprijem.
Korak 8. Pritrdite kolesce na dno mize
Če obrnete ohišje, bi morali videti, da se mimo akumulatorja razteza malo ploščice. Kolesce pritrdite na ta podaljšek, po potrebi z dvižnimi vodili. Kolesa delujejo kot sprednje kolo, kar robotu omogoča enostavno obračanje v katero koli smer.
Če ste kupili komplet, je morda prišlo z nekaj dvižnimi kolesi, s katerimi lahko zagotovite, da kolesce doseže tla. jaz
2. del od 6: Ožičenje robota
Korak 1. Odlomite dve 3-polni glavi
To boste uporabili za povezavo servomotorjev na ploščo. Zatiči potisnite navzdol skozi glavo, tako da zatiči izstopajo na enaki razdalji na obeh straneh.
Korak 2. Vstavite obe glavi v nožici 1-3 in 6-8 v vrstici E na plošči
Prepričajte se, da so trdno vstavljeni.
Korak 3. Priključite servo kable na glave s črnim kablom na levi strani (nožici 1 in 6)
S tem boste servomotorje povezali s ploščo. Prepričajte se, da je levi servo priključen na levo glavo, desni pa na desno glavo.
Korak 4. Priključite žice rdečih mostov iz nožic C2 in C7 na rdeče (pozitivne) zatiče
Uporabite rdečo tirnico na zadnji strani plošče (bližje preostalemu delu ohišja).
Korak 5. Povežite žice črnih mostičkov z zatičev B1 in B6 na modre (ozemljene) zatiče
Prepričajte se, da uporabljate modro tirnico na zadnji strani plošče. Ne vtikajte jih v rdeče zatiče.
Korak 6. Bele mostičke povežite z nožic 12 in 13 na Arduinu na A3 in A8
To bo Arduinu omogočilo nadzor servomotorjev in obračanje koles.
Korak 7. Senzor pritrdite na sprednji del plošče
Ne priključi se na zunanje tirnice na matični plošči, ampak v prvo vrsto zatičev z črko (J). Poskrbite, da ga postavite v točno središče, na vsaki strani pa je na voljo enako število zatičev.
Korak 8. Povežite črno mostično žico iz zatiča I14 s prvim razpoložljivim zatičem modre tirnice na levi strani senzorja
S tem senzor ozemljite.
Korak 9. Priključite rdečo mostično žico iz zatiča I17 na prvi razpoložljivi zatič rdeče tirnice desno od senzorja
To bo napajalo senzor.
Korak 10. Bele mostičke povežite s pina I15 na pin 9 na Arduinu in od I16 na pin 8
To bo posredovalo podatke iz senzorja v mikrokrmilnik.
3. del od 6: Ožičenje napajanja
Korak 1. Robota obrnite na stran, da vidite baterije v paketu
Usmerite ga tako, da bo kabel akumulatorske baterije prišel levo spodaj.
Korak 2. Priključite rdečo žico na drugo vzmet na levi na dnu
Prepričajte se, da je baterija pravilno usmerjena.
Korak 3. Priključite črno žico na zadnjo vzmet spodaj desno
Ta dva kabla bosta Arduinu zagotovila pravilno napetost.
Korak 4. Priključite rdeče in črne žice na skrajne desne rdeče in modre zatiče na zadnji strani plošče
Črni kabel je treba vtakniti v zatič modre tirnice na zatiču 30. Rdeči kabel je treba vtakniti v zatič rdeče tirnice na zatiču 30.
Korak 5. Priključite črno žico iz zatiča GND na Arduinu na zadnjo modro tirnico
Priključite ga na pin 28 na modri tirnici.
Korak 6. Črno žico iz zadnje modre tirnice povežite s sprednjo modro tirnico na pin 29 za vsako
Ne povezujte rdečih tirnic, saj boste verjetno poškodovali Arduino.
Korak 7. Priključite rdečo žico s sprednje rdeče tirnice na pin 30 na 5V pin na Arduinu
To bo Arduinu zagotovilo moč.
Korak 8. Stikalo z gumbom vstavite v režo med vrstami na zatičih 24-26
To stikalo vam bo omogočilo, da izklopite robota, ne da bi morali odklopiti napajanje.
Korak 9. Priključite rdečo žico od H24 do rdeče tirnice na naslednjem razpoložljivem zatiču desno od senzorja
To bo vklopilo gumb.
Korak 10. Z uporom povežite H26 z modro tirnico
Priključite ga na pin neposredno ob črni žici, ki ste jo povezali pred nekaj koraki.
Korak 11. Priključite belo žico iz G26 na pin 2 na Arduinu
To bo omogočilo, da Arduino registrira potisni gumb.
4. del od 6: Namestitev programske opreme Arduino
Korak 1. Prenesite in izvlecite Arduino IDE
To je razvojno okolje 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. Preneseno datoteko razpakirajte tako, da jo dvokliknete in premaknete mapo v notranjost na lahko dostopno mesto. Pravzaprav ne boste nameščali programa. Namesto tega ga preprosto zaženete iz izvlečene mape tako, da dvokliknete arduino.exe.
Korak 2. Priključite baterijo na Arduino
Priključite zadnji priključek za baterijo v priključek na Arduinu, da ga napajate.
Korak 3. Priključite Arduino v računalnik prek USB -ja
Windows verjetno ne bo prepoznal naprave.
Korak 4. Pritisnite
⊞ Win+R. in vnesite devmgmt.msc.
S tem se zažene Upravitelj naprav.
Korak 5. Z desno tipko miške kliknite "Neznana naprava" v razdelku "Druge naprave" in izberite "Posodobi gonilniško programsko opremo"
" Če te možnosti ne vidite, namesto tega kliknite »Lastnosti«, izberite zavihek »Gonilnik« in nato kliknite »Posodobi gonilnik«.
Korak 6. Izberite "Poišči gonilniško programsko opremo v mojem računalniku
" Tako boste lahko izbrali gonilnik, priložen Arduino IDE.
Korak 7. Kliknite "Prebrskaj" in se pomaknite do mape, ki ste jo prej izvlekli
V notranjosti boste našli mapo "gonilniki".
Korak 8. Izberite mapo "gonilniki" in kliknite "V redu"
" Potrdite, da želite nadaljevati, če vas opozori neznana programska oprema.
5. del od 6: Programiranje robota
Korak 1. Zaženite IDE Arduino tako, da dvokliknete datoteko arduino.exe v mapi IDE
Pozdravljeni boste s praznim projektom.
Korak 2. Prilepite naslednjo kodo, da bo vaš robot naravnost
S spodnjo kodo bo vaš Arduino nenehno napredoval.
#include // s tem se knjižnici doda knjižnica "Servo" // naslednje ustvari dva servo objekta Servo leftMotor; Servo desni motor; void setup () {leftMotor.attach (12); // če ste pomotoma zamenjali številke pin za svoje servomotorje, jih lahko tukaj zamenjate rightMotor.attach (13); } void loop () {leftMotor.write (180); // z neprekinjenim vrtenjem 180 pove servomotorju, da se premika s polno hitrostjo "naprej". rightMotor. pisati (0); // če sta oba pri 180, bo robot šel v krog, ker so servomotorji obrnjeni. "0," pove, da se premika s polno hitrostjo "nazaj". }
Korak 3. Zgradite in naložite program
Kliknite desni gumb s puščico v zgornjem levem kotu, da sestavite in naložite program v povezani Arduino.
Robota boste morda želeli dvigniti s površine, saj se bo po nalaganju programa še naprej premikal naprej
Korak 4. Dodajte funkcijo stikala kill
Dodajte naslednjo kodo v razdelek "void loop ()" svoje kode, da omogočite stikalo kill, nad funkcijami "write ()".
if (digitalRead (2) == HIGH) // to se zabeleži ob pritisku gumba na zatiču 2 Arduina {while (1) {leftMotor.write (90); // "90" je nevtralni položaj za servomotorje, ki jim pove, naj prenehajo obračati desnoMotor.write (90); }}
Korak 5. Naložite in preizkusite svojo kodo
Ko je dodana koda stikala za ubijanje, lahko robota naložite in preizkusite. Voziti mora naprej, dokler ne pritisnete stikala, nato pa se preneha premikati. Celotna koda bi morala izgledati tako:
#include // naslednji 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); }
6. del od 6: Primer
Korak 1. Sledite zgledu
Naslednja koda bo uporabila senzor, pritrjen na robota, da se obrne v levo, kadar koli naleti na oviro. Za podrobnosti o tem, kaj vsak del počne, si oglejte komentarje v kodi. Spodnja koda je celoten program.
#include Servo leftMotor; Servo desni motor; const int serialPeriod = 250; // to omejuje izhod na konzolo na enkrat na 1/4 sekunde nepodpisanega dolgega časaSerialDelay = 0; const int loopPeriod = 20; // to določa, kako pogosto senzor odčita 20ms, kar je frekvenca 50Hz brez podpisa dolgo timeLoopDelay = 0; // s tem dodelimo funkcije TRIG in ECHO nožicam na Arduinu. Tu nastavite številke, če ste drugače povezali const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // to definira dve možni stanji za robota: vožnja naprej ali zavijanje levo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = vožnja naprej (DEFAULT), 1 = levo void setup () {Serial.begin (9600); // te konfiguracije pin senzorjev pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrazvočni2EchoPin, VHOD); // s tem se motorji dodelijo zatičem Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // to zazna stikalo kill {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // to natisne sporočila za odpravljanje napak na serijsko konzolo if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ta senzorju naroči, da bere in shrani izmerjene razdalje stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // če ni zaznanih ovir {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // če pred robotom ni ničesar. ultrasonicDistance bo pri nekaterih ultrazvokih negativna, če ni ovir {// zapeljite desno 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; // za obračanje 90 stopinj traja približno 0,5 sekunde. To boste morda morali prilagoditi, če so vaša kolesa drugačne velikosti kot primer brez podpisa dolgi turnStartTime = millis (); // prihranimo čas, ko smo začeli obračati ((millis ()-turnStartTime) <timeToTurnLeft) // ostanemo v tej zanki, dokler timeToTurnLeft ne mine {// zavijte levo, ne pozabite, da se bosta oba obrnila na "180". rightMotor.write (180); leftMotor.write (180); } stanje = DRIVE_FORWARD; }} void readUltrasonicSensors () {// to je za ultrazvok 2. Te ukaze boste morda morali spremeniti, če uporabljate drugo tipalo. digitalWrite (ultrazvočni2TrigPin, HIGH); delayMicroseconds (10); // vzdržuje trig pin visoko vsaj 10 mikrosekund digitalWrite (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 (); }}