Kako napraviti robota kod kuće (sa slikama)

Sadržaj:

Kako napraviti robota kod kuće (sa slikama)
Kako napraviti robota kod kuće (sa slikama)

Video: Kako napraviti robota kod kuće (sa slikama)

Video: Kako napraviti robota kod kuće (sa slikama)
Video: Kako napraviti kompas, mapu i prosirenu mapu-LeGeNd 2024, April
Anonim

Ž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

1123333 1
1123333 1

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

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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

1123333 13
1123333 13

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.

1123333 14
1123333 14

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

1123333 15
1123333 15

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.

1123333 16
1123333 16

Korak 8. Spojite crnu kratkospojničku žicu s pina I14 na prvi pin plave šine lijevo od senzora

Ovo će uzemljiti senzor.

1123333 17
1123333 17

Korak 9. Spojite crvenu kratkospojničku žicu s pina I17 na prvu iglu crvene šine desno od senzora

Ovo će omogućiti napajanje senzora.

1123333 18
1123333 18

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

1123333 19
1123333 19

Korak 1. Okrenite robota tako da vidite odjeljak za baterije iznutra

Rasporedite odeljak za baterije tako da kabl izlazi kroz donji levi donji deo.

1123333 20
1123333 20

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.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnje strane plave šine

Spojite žicu na pin 28 na plavoj šini.

1123333 24
1123333 24

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.

1123333 25
1123333 25

Korak 7. Spojite crvenu žicu s prednje strane crvene šine na pinu 30 na 5V pin na Arduinu

Ovo će Arduinu osigurati snagu.

1123333 26
1123333 26

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.

1123333 27
1123333 27

Korak 9. Spojite crvenu žicu od H24 na crvenu šinu na sljedećoj praznoj iglici desno od senzora

Ovo će omogućiti napajanje dugmeta.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Korak 2. Spojite odjeljak za bateriju na Arduino

Umetnite stražnju utičnicu baterije u konektor na Arduinu da biste je napajali.

1123333 32
1123333 32

Korak 3. Umetnite Arduino u računalo putem USB -a

Velike su šanse da Windows neće prepoznati uređaj.

1123333 33
1123333 33

Korak 4. Pritisnite

Win+R i otkucajte devmgmt.msc.

Ova naredba će otvoriti Upravitelj uređaja.

1123333 34
1123333 34

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.

1123333 35
1123333 35

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.

1123333 36
1123333 36

Korak 7. Pritisnite Pregledaj, a zatim otvorite fasciklu koju ste prethodno izdvojili

U njemu ćete pronaći fasciklu upravljačkih programa.

1123333 37
1123333 37

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

1123333 38
1123333 38

Korak 1. Otvorite Arduino IDE dvostrukim klikom na datoteku arduino.exe u mapi IDE

Dočekaće vas prazan projekat.

1123333 39
1123333 39

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

1123333 40
1123333 40

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

1123333 41
1123333 41

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

1123333 42
1123333 42

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

Preporučuje se: