Kako zgraditi robota doma (s slikami)

Kazalo:

Kako zgraditi robota doma (s slikami)
Kako zgraditi robota doma (s slikami)

Video: Kako zgraditi robota doma (s slikami)

Video: Kako zgraditi robota doma (s slikami)
Video: Где бесплатно скачать SketchUp на русском? 2024, Maj
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

Korak 2. Obrnite baterijo tako, da je ploska hrbtna stran obrnjena navzgor

Telo robota boste gradili z uporabo baterije kot osnove.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

Korak 1. Robota obrnite na stran, da vidite baterije v paketu

Usmerite ga tako, da bo kabel akumulatorske baterije prišel levo spodaj.

1123333 20
1123333 20

Korak 2. Priključite rdečo žico na drugo vzmet na levi na dnu

Prepričajte se, da je baterija pravilno usmerjena.

1123333 21
1123333 21

Korak 3. Priključite črno žico na zadnjo vzmet spodaj desno

Ta dva kabla bosta Arduinu zagotovila pravilno napetost.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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č.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Korak 2. Priključite baterijo na Arduino

Priključite zadnji priključek za baterijo v priključek na Arduinu, da ga napajate.

1123333 32
1123333 32

Korak 3. Priključite Arduino v računalnik prek USB -ja

Windows verjetno ne bo prepoznal naprave.

1123333 33
1123333 33

Korak 4. Pritisnite

⊞ Win+R. in vnesite devmgmt.msc.

S tem se zažene Upravitelj naprav.

1123333 34
1123333 34

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«.

1123333 35
1123333 35

Korak 6. Izberite "Poišči gonilniško programsko opremo v mojem računalniku

" Tako boste lahko izbrali gonilnik, priložen Arduino IDE.

1123333 36
1123333 36

Korak 7. Kliknite "Prebrskaj" in se pomaknite do mape, ki ste jo prej izvlekli

V notranjosti boste našli mapo "gonilniki".

1123333 37
1123333 37

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

1123333 38
1123333 38

Korak 1. Zaženite IDE Arduino tako, da dvokliknete datoteko arduino.exe v mapi IDE

Pozdravljeni boste s praznim projektom.

1123333 39
1123333 39

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". }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Priporočena: