Kako narediti robota doma (s slikami)

Kazalo:

Kako narediti robota doma (s slikami)
Kako narediti robota doma (s slikami)

Video: Kako narediti robota doma (s slikami)

Video: Kako narediti robota doma (s slikami)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, November
Anonim

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

1123333 1
1123333 1

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

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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

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 informacije od senzorja do mikrokrmilnika.

3. del od 5: Namestitev napajalnega kabla

1123333 19
1123333 19

Korak 1. Obrnite robota, da vidite notranjost prostora za baterije

Predal za baterije razporedite tako, da bo kabel izhajal skozi levo spodaj.

1123333 20
1123333 20

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.

1123333 21
1123333 21

Korak 3. Povežite črno žico z zadnjo vzmetjo spodaj desno

Ti dve žici bosta prispevali pravo napetost do Arduina.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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

1123333 26
1123333 26

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.

1123333 27
1123333 27

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

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Korak 2. Predal za baterije priključite na Arduino

Zadnjo vtičnico baterije vstavite v priključek na Arduinu, da ga napajate.

1123333 32
1123333 32

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

Verjetno je, da Windows ne bo prepoznal naprave.

1123333 33
1123333 33

Korak 4. Pritisnite

Win+R. in tip devmgmt.msc.

Ta ukaz odpre Upravitelja naprav.

1123333 34
1123333 34

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.

1123333 35
1123333 35

Korak 6. Izberite Prebrskaj moj računalnik za gonilniško programsko opremo

Tako boste lahko izbrali vgrajene gonilnike, ki so priloženi Arduino IDE.

1123333 36
1123333 36

Korak 7. Kliknite Prebrskaj, nato odprite mapo, ki ste jo ekstrahirali prej

V njej boste našli mapo z gonilniki.

1123333 37
1123333 37

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

1123333 38
1123333 38

Korak 1. Odprite Arduino IDE tako, da dvokliknete datoteko arduino.exe v mapi IDE

Pozdravil vas bo prazen projekt.

1123333 39
1123333 39

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

1123333 40
1123333 40

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

1123333 41
1123333 41

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

1123333 42
1123333 42

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

Priporočena: