Kako izgraditi robota kod kuće (sa slikama)

Sadržaj:

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

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

Video: Kako izgraditi robota kod kuće (sa slikama)
Video: Ремонт на балконе Ошибки монтажа теплого пола. #37 2024, Svibanj
Anonim

Želite li naučiti kako izgraditi vlastitog robota? Postoji mnogo različitih vrsta robota koje možete sami napraviti. Većina ljudi želi vidjeti robota kako izvodi jednostavne zadatke kretanja od točke A do točke B. Možete napraviti robota u potpunosti od analognih komponenti ili kupiti početni komplet od nule! Izgradnja vlastitog robota izvrstan je način da naučite i elektroniku i računalno programiranje.

Koraci

1. dio od 6: Sklapanje robota

1123333 1
1123333 1

Korak 1. Skupite komponente

Za izradu osnovnog robota trebat će vam nekoliko jednostavnih komponenti. Većinu, ako ne i sve ove komponente možete pronaći u lokalnoj hobi trgovini elektronikom ili u nekoliko prodavača na mreži. Neki osnovni kompleti mogu uključivati i sve ove komponente. Ovaj robot ne zahtijeva nikakvo lemljenje:

  • Arduino Uno (ili drugi mikrokontroler)
  • 2 servo servera s kontinuiranom rotacijom
  • 2 kotača koji odgovaraju servo pogonima
  • 1 kotačić
  • 1 mala ploča bez lemljenja (potražite ploču s dvije pozitivne i negativne linije sa svake strane)
  • 1 senzor udaljenosti (s četveropolnim priključnim kabelom)
  • 1 mini prekidač na dugme
  • 1 otpornik od 10 kΩ
  • 1 USB kabel od A do B
  • 1 set odvojnih zaglavlja
  • 1 6 x AA držač baterija s utičnicom za napajanje 9V DC
  • 1 pakiranje kratkospojnih žica ili žice za spajanje 22 kalibra
  • Jaka dvostrana traka ili vruće ljepilo
1123333 2
1123333 2

Korak 2. Okrenite bateriju tako da ravna stražnja strana gleda prema gore

Gradit ćete tijelo robota koristeći bateriju kao bazu.

1123333 3
1123333 3

Korak 3. Poravnajte dva serva na kraju baterije

Ovo bi trebao biti kraj s kojim žica baterije izlazi iz servomotori bi trebali dodirivati dno, a rotirajući mehanizmi svakog od njih trebali bi biti okrenuti prema stranama baterije. Servomotori moraju biti pravilno poravnati tako da kotači idu ravno. Žice za servo upravljače trebale bi sići sa stražnje strane baterije.

1123333 4
1123333 4

Korak 4. Pričvrstite servomotore svojom trakom ili ljepilom

Provjerite jesu li čvrsto pričvršćene za bateriju. Stražnji dijelovi servo upravljača trebaju biti poravnati u ravnini sa stražnjom stranom baterije.

Servo upravljači bi sada trebali zauzimati zadnju polovicu baterije

1123333 5
1123333 5

Korak 5. Okvir postavite okomito na otvoreni prostor na bateriji

Trebao bi malo visjeti s prednje strane baterije i protezati će se sa svake strane. Prije nego nastavite, provjerite je li dobro pričvršćen. Red "A" trebao bi biti najbliži servo pogonima.

1123333 6
1123333 6

Korak 6. Priključite Arduino mikrokontroler na vrhove servomotora

Ako ste pravilno priključili servomotore, trebao bi postojati ravan prostor koji se dodiruje. Zalijepite Arduino ploču na ovaj ravni prostor tako da USB i priključci za napajanje Arduina budu okrenuti prema stražnjoj strani (dalje od matične ploče). Prednja strana Arduina trebala bi se jedva preklapati s pločom.

1123333 7
1123333 7

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

Čvrsto pritisnite kotače na rotirajući mehanizam serva. To može zahtijevati značajnu silu jer su kotači konstruirani tako da stoje što je moguće čvršće za najbolju vuču.

1123333 8
1123333 8

Korak 8. Pričvrstite kotačić na dno ploče

Ako preokrenite šasiju, trebali biste vidjeti malo oplate koja se proteže pokraj baterije. Pričvrstite kotač na ovaj produženi komad, ako je potrebno pomoću uspona. Kotač djeluje kao prednji kotač, dopuštajući robotu da se lako okreće u bilo kojem smjeru.

Ako ste kupili komplet, kotač je možda došao s nekoliko uspona koje možete upotrijebiti kako biste osigurali da kotač dođe do tla. i

2. dio od 6: Ožičenje robota

1123333 9
1123333 9

Korak 1. Odlomite dva 3-pinska zaglavlja

Koristit ćete ih za povezivanje servomotora na matičnu ploču. Gurnite iglice prema dolje kroz zaglavlje tako da igle izađu na jednakoj udaljenosti s obje strane.

1123333 10
1123333 10

Korak 2. Umetnite dva zaglavlja u pinove 1-3 i 6-8 u retku E ploče za kruh

Provjerite jesu li čvrsto umetnuti.

1123333 11
1123333 11

Korak 3. Spojite servo kabele na zaglavlja, s crnim kabelom s lijeve strane (pinovi 1 i 6)

To će spojiti servosisteme na matičnu ploču. Provjerite je li lijevi servo priključen na lijevo zaglavlje, a desni na desno zaglavlje.

1123333 12
1123333 12

Korak 4. Spojite crvene kratkospojničke žice s pinova C2 i C7 na crvene (pozitivne) igle tračnice

Upotrijebite crvenu šinu na stražnjoj strani ploče (bliže ostatku šasije).

1123333 13
1123333 13

Korak 5. Spojite crne kratkospojne žice s pinova B1 i B6 na plave (uzemljene) igle tračnice

Upotrijebite plavu tračnicu na stražnjoj strani matične ploče. Nemojte ih uključivati u igle za crvenu šinu.

1123333 14
1123333 14

Korak 6. Spojite bijele kratkospojne žice s pinova 12 i 13 na Arduinu na A3 i A8

To će Arduinu omogućiti upravljanje servo pogonima i okretanje kotača.

1123333 15
1123333 15

Korak 7. Pričvrstite senzor na prednju stranu ploče

Ne uključuje se u vanjske vodilice za napajanje na ploči, već u prvi red iglica sa slovima (J). Pobrinite se da ga postavite u točno središte, s jednakim brojem igala sa svake strane.

1123333 16
1123333 16

Korak 8. Spojite crnu kratkospojnu žicu s pina I14 na prvi dostupni plavi klin na lijevoj strani senzora

Ovo će uzemljiti senzor.

1123333 17
1123333 17

Korak 9. Spojite crvenu kratkospojnu žicu s pina I17 na prvu dostupnu iglu s crvenom tračnicom desno od senzora

Ovo će napajati senzor.

1123333 18
1123333 18

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

To će slati podatke sa senzora u mikrokontroler.

Dio 3 od 6: Ožičenje napajanja

1123333 19
1123333 19

Korak 1. Okrenite robota na stranu tako da možete vidjeti baterije u pakiranju

Orijentirajte ga tako da kabel baterije izlazi lijevo na dnu.

1123333 20
1123333 20

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

Provjerite je li baterija ispravno usmjerena.

1123333 21
1123333 21

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

Ova dva kabela pomoći će osigurati ispravan napon na Arduinu.

1123333 22
1123333 22

Korak 4. Spojite crvenu i crnu žicu s krajnje desnim crvenim i plavim iglama na stražnjoj strani ploče

Crni kabel trebao bi biti priključen u plavi zatič šina na pin 30. Crveni kabel bi trebao biti priključen na pin za crvenu šinu na pin 30.

1123333 23
1123333 23

Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnjom plavom tračnicom

Spojite ga na pin 28 na plavoj šini.

1123333 24
1123333 24

Korak 6. Spojite crnu žicu sa stražnje plave tračnice na prednju plavu šinu na iglici 29 za svaku

Nemojte spajati crvene tračnice jer ćete vjerojatno oštetiti Arduino.

1123333 25
1123333 25

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

To će Arduinu osigurati snagu.

1123333 26
1123333 26

Korak 8. Umetnite prekidač s prekidačem u razmak između redova na iglama 24-26

Ovaj prekidač omogućit će vam da isključite robota bez potrebe za isključivanjem napajanja.

1123333 27
1123333 27

Korak 9. Spojite crvenu žicu s H24 na crvenu šinu u sljedećem dostupnom pinu s desne strane senzora

Ovo će uključiti gumb.

1123333 28
1123333 28

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

Spojite ga na pin izravno pokraj crne žice koju ste povezali prije nekoliko koraka.

1123333 29
1123333 29

Korak 11. Spojite bijelu žicu od G26 na pin 2 na Arduinu

To će omogućiti Arduinu da registrira gumb.

4. dio od 6: Instaliranje Arduino softvera

1123333 30
1123333 30

Korak 1. Preuzmite i raspakirajte Arduino IDE

Ovo je Arduino razvojno okruženje 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 nju i premjestite mapu unutra na lako dostupno mjesto. Nećete zapravo instalirati program. Umjesto toga, samo ćete ga pokrenuti iz izdvojene mape dvostrukim klikom na arduino.exe.

1123333 31
1123333 31

Korak 2. Spojite bateriju na Arduino

Priključite stražnju utičnicu baterije u priključak na Arduinu kako biste mu dali snagu.

1123333 32
1123333 32

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

Windows vjerojatno neće prepoznati uređaj.

1123333 33
1123333 33

Korak 4. Pritisnite

⊞ Win+R i upišite devmgmt.msc.

Time će se pokrenuti Upravitelj uređaja.

1123333 34
1123333 34

Korak 5. Desnom tipkom miša kliknite "Nepoznat uređaj" u odjeljku "Ostali uređaji" i odaberite "Ažuriraj softver upravljačkog programa"

" Ako ne vidite ovu opciju, umjesto toga 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 odabir upravljačkog programa koji dolazi s Arduino IDE -om.

1123333 36
1123333 36

Korak 7. Kliknite "Pregledaj", a zatim idite do mape koju ste prethodno izdvojili

Unutra ćete pronaći mapu "upravljački programi".

1123333 37
1123333 37

Korak 8. Odaberite mapu "upravljački programi" i kliknite "U redu"

" Potvrdite da želite nastaviti ako ste upozoreni o nepoznatom softveru.

5. dio od 6: Programiranje robota

1123333 38
1123333 38

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

Dočekat će vas prazan projekt.

1123333 39
1123333 39

Korak 2. Zalijepite sljedeći kôd kako bi vaš robot krenuo ravno

Donji kôd učinit će da vaš Arduino neprestano napreduje.

#include // ovo dodaje biblioteku "Servo" u program // sljedeće stvara dva servo objekta Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // ako ste slučajno promijenili PIN brojeve za svoje servomotore, ovdje možete zamijeniti brojeve rightMotor.attach (13); } void loop () {leftMotor.write (180); // s kontinuiranim okretanjem, 180 govori servo da se kreće punom brzinom "naprijed". rightMotor. pisati (0); // ako su oba na 180, robot će ići u krug jer su servo pogoni okrenuti. "0", govori mu da se kreće punom brzinom "unatrag". }

1123333 40
1123333 40

Korak 3. Napravite i prenesite program

Pritisnite desni gumb sa strelicom u gornjem lijevom kutu da biste izgradili i prenijeli program na povezani Arduino.

Možda ćete htjeti podići robota s površine jer će se on samo premjestiti naprijed nakon što se program učita

1123333 41
1123333 41

Korak 4. Dodajte funkcionalnost prekidača za isključivanje

Dodajte sljedeći kod u odjeljak "void loop ()" vašeg koda kako biste omogućili prekidač kill, iznad funkcija "write ()".

if (digitalRead (2) == HIGH) // ovo se registrira kada se gumb pritisne na pin 2 Arduina {while (1) {leftMotor.write (90); // "90" je neutralni položaj za servomotore, koji im govori da prestanu skretati udesnoMotor.write (90); }}

1123333 42
1123333 42

Korak 5. Prenesite i testirajte svoj kôd

S dodanim kodom prekidača za ubijanje, možete učitati i testirati robota. Trebao bi nastaviti voziti naprijed sve dok ne pritisnete prekidač, u tom trenutku će se prestati kretati. Cijeli kôd trebao bi izgledati ovako:

#include // sljedeće stvara dva servo objekta Servo leftMotor; 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); }

Dio 6 od 6: Primjer

Korak 1. Slijedite primjer

Sljedeći kôd će koristiti senzor pričvršćen na robota kako bi se okrenuo ulijevo kad god naiđe na prepreku. Pogledajte komentare u kodu za detalje o tome što svaki dio radi. Šifra ispod je cijeli program.

#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // ovo ograničava izlaz na konzolu na svakih 1/4 sekunde nepotpisanog longtimeSerialDelay = 0; const int loopPeriod = 20; // ovo postavlja koliko često senzor očitava vrijednost do 20 ms, što je frekvencija od 50Hz bez potpisa longtimeLoopDelay = 0; // ovo dodjeljuje funkcije TRIG i ECHO pinovima na Arduinu. Ovdje prilagodite brojeve ako ste drukčije spojeni const int ultrasonic2TrigPin = 8; const int ultrazvučni2EchoPin = 9; int ultrazvučna2Daljina; int ultrazvučni2Trajanje; // ovo definira dva moguća stanja za robota: vožnja naprijed ili skretanje ulijevo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int stanje = DRIVE_FORWARD; // 0 = vožnja naprijed (DEFAULT), 1 = skrenite lijevo void setup () {Serial.begin (9600); // ove konfiguracije pinova senzora pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrazvučni2EchoPin, ULAZ); // ovo dodjeljuje motore Arduinovim pinovima leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ovo otkriva prekidač kill {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ovo ispisuje poruke za ispravljanje pogrešaka na serijsku konzolu if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ovo upućuje senzor da očita i pohrani izmjerene udaljenosti stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ako nisu otkrivene prepreke {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ako nema ništa 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 to morati prilagoditi ako su vam kotači različite veličine od primjera nepotpisanog long turnStartTime = millis (); // spremamo vrijeme koje smo počeli okretati dok ((millis ()-turnStartTime) <timeToTurnLeft) // ostajemo u ovoj petlji sve dok ne istekne timeToTurnLeft {// skrenite ulijevo, zapamtite da će se obojica postaviti na "180". rightMotor.write (180); leftMotor.write (180); } stanje = DRIVE_FORWARD; }} void readUltrasonicSensors () {// ovo je za ultrazvuk 2. Možda ćete morati promijeniti ove naredbe ako koristite drugi senzor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // održava trig pin visoko 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: