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: SketchUp i 3D modelovanje u pejzažnoj arhitekturi (Detaljan tutorijal) PART 1 - Vlog No7 2024, Maj
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 obavlja 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 odličan 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. Okupite komponente

Za izradu osnovnog robota trebat će vam nekoliko jednostavnih komponenti. Većinu, ako ne i sve ove komponente možete pronaći u vašoj lokalnoj trgovini hobi elektronike 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 sa kontinuiranom rotacijom
  • 2 točka 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 (sa četveropolnim priključnim kablom)
  • 1 mini prekidač na dugme
  • 1 otpornik od 10 kΩ
  • 1 USB A do B kabel
  • 1 set odvojnih zaglavlja
  • 1 6 x AA držač baterije sa 9V DC utičnicom za napajanje
  • 1 pakovanje 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 kada ž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 pogone trebale bi sići sa stražnje strane baterije.

1123333 4
1123333 4

Korak 4. Pričvrstite servo pogone trakom ili ljepilom

Uvjerite se da su č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 polovinu baterije

1123333 5
1123333 5

Korak 5. Postavite ploču okomito na otvoreni prostor na bateriji

Trebao bi malo visjeti preko 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 servo upravljača

Ako ste servo upravljače pravilno priključili, 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 matičnom pločom.

1123333 7
1123333 7

Korak 7. Stavite kotače na servo pogone

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

1123333 8
1123333 8

Korak 8. Pričvrstite kotač na dno matične ploče

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

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

Dio 2 od 6: Ožičenje robota

1123333 9
1123333 9

Korak 1. Odlomite dva 3-pinska zaglavlja

Koristit ćete ih za povezivanje servo uređaja 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 redu E matične ploče

Uvjerite se da su čvrsto umetnuti.

1123333 11
1123333 11

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

Ovo će spojiti servosisteme na matičnu ploču. Uvjerite se da je lijevi servo priključen na lijevo zaglavlje, a desni na desno zaglavlje.

1123333 12
1123333 12

Korak 4. Spojite crvene kratkospojničke žice sa pinova C2 i C7 na crvene (pozitivne) igle šine

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

1123333 13
1123333 13

Korak 5. Spojite crne kratkospojnike sa iglica B1 i B6 na plave (uzemljene) igle

Obavezno koristite plavu šinu na stražnjoj strani matične ploče. Nemojte ih priključ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 omogućiti Arduinu da kontrolira servomotore i okreće kotače.

1123333 15
1123333 15

Korak 7. Priključite senzor na prednju stranu ploče

Ne priključuje se na vanjske šine za napajanje na matičnoj 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 kratkospojničku žicu s pina I14 na prvi dostupni plavi pin na lijevoj strani senzora

Ovo će uzemljiti senzor.

1123333 17
1123333 17

Korak 9. Spojite crvenu kratkospojnu žicu sa pina I17 na prvi dostupni crveni klin s desne strane 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 od I16 na pin 8

Ovo će slati informacije 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 pakovanju

Orijentirajte ga tako da kabel baterije izlazi lijevo na dnu.

1123333 20
1123333 20

Korak 2. Priključite crvenu žicu na drugu oprugu s lijeve strane na dnu

Uverite se da je baterija pravilno orijentisana.

1123333 21
1123333 21

Korak 3. Priključite crnu žicu na posljednju oprugu u donjem desnom kutu

Ova dva kabela pomoći će u pružanju ispravnog napona Arduinu.

1123333 22
1123333 22

Korak 4. Spojite crvenu i crnu žicu na krajnje desnu crvenu i plavu iglu na stražnjoj strani matične ploče

Crni kabel treba biti utaknut u pin plave šine na pinu 30. Crveni kabel treba priključiti u iglu crvene šine na pinu 30.

1123333 23
1123333 23

Korak 5. Spojite crnu žicu s GND pina na Arduinu sa stražnjom plavom šinom

Spojite ga na pin 28 na plavoj šini.

1123333 24
1123333 24

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

Nemojte spajati crvene šine 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

Ovo će Arduinu osigurati snagu.

1123333 26
1123333 26

Korak 8. Gurnite prekidač u razmak između redova na iglama 24-26

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

1123333 27
1123333 27

Korak 9. Priključite crvenu žicu od H24 na crvenu šinu u sljedećem dostupnom pinu desno od senzora

Ovo će uključiti dugme.

1123333 28
1123333 28

Korak 10. Pomoću otpornika spojite H26 na plavu šinu

Spojite ga na pin direktno pored 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 tipku.

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ćava 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 nju i premjestite mapu unutra na lako dostupnu lokaciju. 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

Uključite zadnju utičnicu baterije u konektor na Arduinu kako biste mu dali napajanje.

1123333 32
1123333 32

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

Windows verovatno neće prepoznati uređaj.

1123333 33
1123333 33

Korak 4. Pritisnite

⊞ Win+R i otkucajte devmgmt.msc.

Ovo će 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 moj računar za upravljački program

" To će vam omogućiti da odaberete upravljački program koji ste dobili 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 "drivers".

1123333 37
1123333 37

Korak 8. Odaberite mapu "drivers" i kliknite "OK"

" 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čekaće vas prazan projekat.

1123333 39
1123333 39

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

Kod ispod će učiniti 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); // sa kontinuiranom rotacijom, 180 govori servo da se kreće punom brzinom "naprijed". rightMotor. write (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 otpremite program

Pritisnite gumb sa strelicom nadesno u gornjem lijevom kutu za izradu i postavljanje programa na povezani Arduino.

Možda ćete htjeti podići robota s površine, jer će se on samo nastaviti kretati 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 da biste omogućili prekidač kill, iznad funkcija "write ()".

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

1123333 42
1123333 42

Korak 5. Otpremite i testirajte svoj kôd

Uz dodani kod prekidača za isključivanje, možete postaviti i testirati robota. Trebao bi nastaviti voziti naprijed sve dok ne pritisnete prekidač, u tom trenutku će se prestati kretati. Cijeli kod bi trebao 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 priključen na robota kako bi se okrenuo ulijevo kad god naiđe na prepreku. Pogledajte komentare u kodu za detalje o tome šta 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 dugog vremenaSerialDelay = 0; const int loopPeriod = 20; // ovo postavlja koliko često senzor očitava vrijednost do 20 ms, što je frekvencija od 50Hz bez znaka longtimeLoopDelay = 0; // ovo dodjeljuje funkcije TRIG i ECHO pinovima na Arduinu. Ovdje prilagodite brojeve ako ste se povezali drugačije const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // 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 Arduino 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 otklanjanje greš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 će biti negativan za neke ultrazvuke ako nema prepreka {// vozite se 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 stepeni. Možda ćete ovo morati prilagoditi ako su vaši kotači različite veličine od primjerka bez potpisa dugog turnStartTime = millis (); // spremamo vrijeme koje smo počeli okretati dok ((millis ()-turnStartTime) <timeToTurnLeft) // ostajemo u ovoj petlji sve dok ne istekne timeToTurnLeft {// skrenite lijevo, imajte na umu da će se oba okrenuti 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 visokim 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: