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: Звезда (FullHD, драма, реж. Николай Лебедев, 2002 г.) 2024, Travanj
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 izvrstan 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 stupnjeva
  • 2 kotača odgovaraju servo
  • 1 besplatni kotač
  • 1 ploča za ispitivanje (ploča ili projektna ploča) koja nije lemljena (potražite ispitnu ploču koja ima dva pozitivna i negativna reda sa svake strane)
  • 1 senzor blizine (s četveropolnim priključnim kabelom)
  • 1 prekidač na gumb
  • 1 otpornik 10 kΩ
  • 1 USB kabel od A do B
  • 1 set lomljivih zaglavlja
  • 1 6 x AA držač baterija s utičnicom za napajanje 9V DC
  • 1 pakiranje 22. kratkospojnih kabela ili jednog kabela
  • Izolacija naprijed -natrag (dvostruka traka) ili pištolj za ljepilo
1123333 2
1123333 2

Korak 2. Okrenite pretinac 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 upravljači trebaju dodirivati dno, a mehanizam okretanja svakog servoa trebao bi biti okrenut prema van sa strana pretinca za baterije. Važno je da su ti servomotori pravilno postavljeni tako da kotači budu ravni. Kabeli za servo pogon moraju izlaziti sa stražnje strane pretinca za baterije.

1123333 4
1123333 4

Korak 4. Zalijepite servomotore svojom izolacijom ili ljepilom

Provjerite je li servo čvrsto pričvršćen za pretinac za baterije. Stražnja strana servo servera mora biti poravnana sa stražnjom stranom pretinca za baterije.

Sada bi servomotori trebali zauzeti polovicu prostora u stražnjem dijelu ležišta za baterije

1123333 5
1123333 5

Korak 5. Zalijepite ispitnu ploču okomito na preostali prostor u odjeljku za baterije

Ova ispitna 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 ispitivanje čvrsta. Red "A" trebao bi biti najbliži servo pogonu.

1123333 6
1123333 6

Korak 6. Priključite Arduino mikrokontroler na vrh serva

Ako ispravno 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). Prednji dio Arduina preklopit će se s testnom pločom.

1123333 7
1123333 7

Korak 7. Ugradite kotače na servo upravljače

Č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

Okrenete li robota naopako, vidjet ćete malu ispitnu 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 kotač 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 upotrijebiti za povezivanje servo uređaja s testnom pločom. 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 igle 1-3 i 6-8 u redu E na ispitnoj ploči

Provjerite jesu li čvrsto ili čvrsto umetnuti.

1123333 11
1123333 11

Korak 3. Spojite servo žice s zaglavljem, s crnom žicom s lijeve strane (pinovi 1 i 6)

To će spojiti servo s ispitnom pločom. Provjerite je li lijevi servo priključen na lijevo zaglavlje, a desni servo spojen na desno zaglavlje.

1123333 12
1123333 12

Korak 4. Spojite crvenu kratkospojnu žicu s pinova C2 i C7 na pin crvene tračnice (pozitivan)

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

Upotrijebite plavu tračnicu na stražnjoj strani testne ploče. Ne pričvršćujte kabel na iglu crvene tračnice.

1123333 14
1123333 14

Korak 6. Spojite bijele kratkospojne ž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 ispitnoj ploči, već na prva dva reda pinova s natpisom (J). Stavite ga točno u sredinu s jednakim brojem praznih igala sa svake strane.

1123333 16
1123333 16

Korak 8. Spojite crnu kratkospojnu žicu s pina I14 na prvi pin plave tračnice lijevo od senzora

Ovo će uzemljiti senzor.

1123333 17
1123333 17

Korak 9. Spojite crvenu kratkospojnu žicu s pina I17 na prvu iglu crvene tračnice desno od senzora

To će senzoru osigurati napajanje.

1123333 18
1123333 18

Korak 10. Spojite bijele kratkospojničke žice od pina I15 do pina 9 na Arduinu, a od I16 do pina 8

To ć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 unutra

Postavite pretinac za baterije tako da kabel izlazi kroz donji lijevi donji dio.

1123333 20
1123333 20

Korak 2. Spojite crvenu žicu s drugom oprugom s lijeve strane na dnu

Provjerite je li pretinac za baterije pravilno poravnat ili okrenut u ispravnom smjeru.

1123333 21
1123333 21

Korak 3. Spojite crnu žicu s posljednjom oprugom u donjem desnom kutu

Ove dvije žice pomoći će osigurati pravi napon za Arduino.

1123333 22
1123333 22

Korak 4. Spojite crvenu i crnu žicu s crvenim i plavim iglama koje se nalaze s desne strane na stražnjoj strani testne ploče

Crna žica trebala bi ići do zatiča plave tračnice na iglici 30. Crvena žica bi trebala ići do zatiča za crvenu tračnicu na pinu 30.

1123333 23
1123333 23

Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnje strane plave tračnice

Spojite žicu na pin 28 na plavoj šini.

1123333 24
1123333 24

Korak 6. Spojite crnu žicu sa stražnje strane plave tračnice s prednjom stranom plave tračnice na iglici 29 za obje tračnice

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 s 5V iglom na Arduinu

To će Arduinu osigurati snagu.

1123333 26
1123333 26

Korak 8. Umetnite prekidač s gumbom u prostor između nožica 24-26

Ovaj prekidač omogućit će vam isključivanje robota bez isključivanja napajanja.

1123333 27
1123333 27

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

To će omogućiti napajanje gumba.

1123333 28
1123333 28

Korak 10. Pomoću otpornika spojite H26 na plavu tračnicu

Spojite ga na pin izravno 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 s arduino.cc/en/main/software. Raspakirajte preuzetu datoteku dvostrukim klikom na datoteku i premjestite mapu koju ona sadrži na lako dostupno mjesto. Program zapravo nećete instalirati, nego ćete ga samo pokrenuti iz mape koja je izdvojena dvostrukim klikom na arduino.exe.

1123333 31
1123333 31

Korak 2. Spojite pretinac za bateriju na Arduino

Umetnite stražnju utičnicu baterije u priključak na Arduinu za napajanje.

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 upišite devmgmt.msc.

Ova naredba će otvoriti Upravitelj uređaja.

1123333 34
1123333 34

Korak 5. Desnom tipkom miša kliknite Nepoznati uređaj pod drugim uređajima i odaberite Ažuriraj softver upravljačkog programa

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 moje računalo za upravljački program

To će vam omogućiti da odaberete ugrađene upravljačke programe isporučene s Arduino IDE-om.

1123333 36
1123333 36

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

U njemu ćete pronaći mapu 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čekat će vas prazan projekt.

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 svoj servo, ovdje možete zamijeniti brojeve 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. Izradite i učitajte program

Pritisnite gumb sa strelicom desno u gornjem lijevom kutu da biste stvorili i prenijeli 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 prekidača (kill switch)

Dodajte sljedeći kôd u odjeljak "void loop ()" svog koda da biste dodali funkciju prekidača za zaustavljanje na vrhu funkcije "write ()".

if (digitalRead (2) == HIGH) // ova naredba se izvodi kada se pritisne gumb 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. Prenesite i provjerite svoj kôd

S već dodanim kodom prekidača za zaustavljanje možete učitati kôd i testirati robota. Robot bi trebao nastaviti naprijed sve dok ne pritisnete prekidač za zaustavljanje što će uzrokovati zaustavljanje robota. Cijeli kôd izgledat će 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 ulijevo 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 izlazno vremensko kašnjenje konzole na svakih 1/4 sekunde (250 ms) nepotpisanog dugog vremenaSerialDelay = 0; const int loopPeriod = 20; // ovaj kôd 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 prilagodite brojeve ako ih povežete na drugačiji način const int ultrasonic2TrigPin = 8; const int ultrazvučni2EchoPin = 9; int ultrazvučna2Daljina; int ultrazvučni2Trajanje; // ovaj kôd definira dva moguća stanja robota: nastavite naprijed ili skrenite ulijevo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = nastavi naprijed (Zadano), 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 detektira '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ovaj kod ispisuje poruke za otklanjanje pogrešaka na serijsku konzolu if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ovaj kod upućuje senzor da čita i pohranjuje podatke o stanju izmjerene udaljenostiMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ako nije otkrivena prepreka {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ako ništa nije ispred robota. ultrasonicDistance bit će negativan za neke ultrazvuke ako nema prepreka {// vozite naprijed rightMotor.write (180); leftMotor.write (0); } else // ako je 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 stupnjeva. Možda ćete morati prilagoditi ovu vrijednost ako se vaši kotači razlikuju po veličini od veličine u primjeru bez potpisa 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); // visoko povucite TRIG pin za najmanje 10 mikrosekundi digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrazvučna2Distanca = (ultrazvučna2Trajanje/2)/29; } // sljedeće je za otklanjanje pogrešaka u konzoli. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serijski.ispis (ultrazvučna2Distanca); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Preporučeni: