Kā izveidot robotu mājās (ar attēliem)

Satura rādītājs:

Kā izveidot robotu mājās (ar attēliem)
Kā izveidot robotu mājās (ar attēliem)

Video: Kā izveidot robotu mājās (ar attēliem)

Video: Kā izveidot robotu mājās (ar attēliem)
Video: Где бесплатно скачать SketchUp на русском? 2024, Aprīlis
Anonim

Vai vēlaties iemācīties izveidot savu robotu? Ir daudz dažādu veidu robotu, kurus varat izgatavot pats. Lielākā daļa cilvēku vēlas redzēt robotu, kurš veic vienkāršus uzdevumus, pārvietojoties no punkta A uz punktu B. Jūs varat pilnībā izgatavot robotu no analogām sastāvdaļām vai iegādāties sākuma komplektu no nulles! Paša robota izveide ir lielisks veids, kā iemācīt sev gan elektroniku, gan datorprogrammēšanu.

Soļi

1. daļa no 6: Robota salikšana

1123333 1
1123333 1

Solis 1. Apkopojiet komponentus

Lai izveidotu pamata robotu, jums būs nepieciešami vairāki vienkārši komponenti. Lielāko daļu, ja ne visas šīs sastāvdaļas varat atrast vietējā elektronikas hobiju veikalā vai vairākos tiešsaistes mazumtirgotājos. Dažos pamata komplektos var būt iekļauti arī visi šie komponenti. Šim robotam nav nepieciešama lodēšana:

  • Arduino Uno (vai cits mikrokontrolleris)
  • 2 nepārtrauktas rotācijas servo
  • 2 riteņi, kas atbilst servo
  • 1 ritentiņa veltnis
  • 1 neliels maizes dēlis bez lodēšanas (meklējiet maizes dēli, kuram katrā pusē ir divas pozitīvas un negatīvas līnijas)
  • 1 attāluma sensors (ar četru kontaktu savienotāja kabeli)
  • 1 mini spiedpogas slēdzis
  • 1 10 kΩ rezistors
  • 1 USB A līdz B kabelis
  • 1 atdalāmo galvenes komplekts
  • 1 6 x AA bateriju turētājs ar 9 V līdzstrāvas kontaktligzdu
  • 1 iepakojuma vadu komplekts vai 22 gabarītu savienojuma vads
  • Spēcīga divpusēja lente vai karsta līme
1123333 2
1123333 2

2. solis. Apgrieziet akumulatoru tā, lai plakanā aizmugure būtu vērsta uz augšu

Jūs veidosit robota ķermeni, izmantojot bāzi ar akumulatoru.

1123333 3
1123333 3

Solis 3. Izlīdziniet abus servos akumulatora bloka galā

Tam vajadzētu beigties ar to, ka akumulatora bloka vads nāk ārā. Servoiekārtām jāsaskaras ar dibenu, un katra rotējošajam mehānismam jābūt vērstam uz akumulatora bloka malām. Serviem jābūt pareizi izlīdzinātiem, lai riteņi iet taisni. Servo vadiem jāatrodas no akumulatora aizmugures.

1123333 4
1123333 4

4. solis. Piestipriniet servos ar lenti vai līmi

Pārliecinieties, vai tie ir stingri piestiprināti pie akumulatora bloka. Servo aizmugurēm jābūt izlīdzinātām vienā līmenī ar akumulatora bloka aizmuguri.

Serviem tagad vajadzētu aizņemt akumulatora aizmugurējo pusi

1123333 5
1123333 5

5. solis. Piestipriniet maizes dēli perpendikulāri akumulatora bloka atvērtajai vietai

Tam vajadzētu nedaudz karāties virs akumulatora bloka priekšpuses, un tas pārsniegs katru pusi. Pirms turpināt, pārliecinieties, ka tas ir droši nostiprināts. Rindai "A" jābūt vistuvāk servos.

1123333 6
1123333 6

6. solis. Pievienojiet Arduino mikrokontrolleri servo virsotnēm

Ja servo piestiprinājāt pareizi, tiem jābūt līdzenai, pieskaroties. Ielīmējiet Arduino plāksni šajā plakanā vietā tā, lai Arduino USB un barošanas savienotāji būtu vērsti uz aizmuguri (prom no maizes dēļa). Arduino priekšpusei vajadzētu tikko pārklāties ar maizes dēli.

1123333 7
1123333 7

7. solis. Uzlieciet riteņus uz servos

Stingri nospiediet riteņus uz servo rotējošā mehānisma. Tas var prasīt ievērojamu spēku, jo riteņi ir veidoti tā, lai tie būtu pēc iespējas ciešāki, lai nodrošinātu vislabāko saķeri.

1123333 8
1123333 8

8. solis. Pievienojiet ritentiņu maizes dēļa apakšai

Apgriežot šasiju, vajadzētu redzēt nedaudz maizes dēļa, kas stiepjas gar akumulatoru. Pievienojiet ritentiņu šim pagarinātajam gabalam, vajadzības gadījumā izmantojot stāvvadus. Ritentiņš darbojas kā priekšējais ritenis, ļaujot robotam viegli pagriezties jebkurā virzienā.

Ja iegādājāties komplektu, ritentiņam, iespējams, bija daži stāvvadi, kurus varat izmantot, lai pārliecinātos, ka ritentiņš sasniedz zemi. i

2. daļa no 6: Robota elektroinstalācija

1123333 9
1123333 9

1. solis. Izjauciet divus 3 kontaktu galvenes

Jūs tos izmantosit, lai savienotu servo maizes dēli. Piespiediet tapas uz leju caur galveni, lai tapas iznāktu vienādā attālumā no abām pusēm.

1123333 10
1123333 10

2. solis. Ievietojiet abas galvenes maizes dēļa E rindas 1. un 6. un 8. tapā

Pārliecinieties, ka tie ir stingri ievietoti.

1123333 11
1123333 11

Solis 3. Pievienojiet servo kabeļus galvenēm, ar melno kabeli kreisajā pusē (1. un 6. tapa)

Tādējādi servo savienojas ar maizes dēli. Pārliecinieties, vai kreisais servo ir savienots ar kreiso galveni, bet labais - ar labo.

1123333 12
1123333 12

Solis 4. Pievienojiet sarkanos džemperu vadus no tapām C2 un C7 ar sarkanajām (pozitīvajām) sliedes tapām

Pārliecinieties, ka izmantojat sarkano sliedi maizes dēļa aizmugurē (tuvāk pārējai šasijai).

1123333 13
1123333 13

Solis 5. Savienojiet melnos džemperu vadus no tapām B1 un B6 ar zilām (iezemētām) sliedes tapām

Pārliecinieties, ka izmantojat zilo sliedi maizes dēļa aizmugurē. Nepievienojiet tos sarkanajām sliedes tapām.

1123333 14
1123333 14

6. solis. Savienojiet baltos džemperu vadus no Arduino 12. un 13. tapām ar A3 un A8

Tas ļaus Arduino kontrolēt servos un pagriezt riteņus.

1123333 15
1123333 15

7. solis. Piestipriniet sensoru maizes dēļa priekšpusē

Tas netiek pievienots maizes dēļa ārējām strāvas sliedēm, bet gan burtu tapu pirmajā rindā (J). Pārliecinieties, ka ievietojat to precīzi centrā, un katrā pusē ir pieejams vienāds skaits tapas.

1123333 16
1123333 16

8. solis. Savienojiet melnu džemperu vadu no tapas I14 ar pirmo pieejamo zilo sliedes tapu sensora kreisajā pusē

Tas sensoru iezemēs.

1123333 17
1123333 17

9. solis. Savienojiet sarkano pārejas vadu no tapas I17 ar pirmo pieejamo sarkano sliedes tapu pa labi no sensora

Tas ieslēgs sensoru.

1123333 18
1123333 18

10. solis. Savienojiet baltos džemperu vadus no tapas I15 līdz 9. tapai uz Arduino un no I16 līdz 8. tapai

Tādējādi informācija no sensora tiks pārsūtīta uz mikrokontrolleru.

3. daļa no 6: barošanas vadu savienošana

1123333 19
1123333 19

1. solis. Pagrieziet robotu uz sāniem, lai jūs varētu redzēt komplektā esošās baterijas

Novietojiet to tā, lai akumulatora bloka kabelis apakšā izietu pa kreisi.

1123333 20
1123333 20

Solis 2. Pievienojiet sarkano vadu otrajam pavasarim no kreisās puses apakšā

Pārliecinieties, vai akumulators ir pareizi orientēts.

1123333 21
1123333 21

Solis 3. Pievienojiet melno vadu pēdējai atsperei apakšējā labajā stūrī

Šie divi kabeļi palīdzēs nodrošināt pareizo spriegumu Arduino.

1123333 22
1123333 22

Solis 4. Pievienojiet sarkanos un melnos vadus galēji labajā pusē esošajām sarkanajām un zilajām tapām maizes dēļa aizmugurē

Melnais kabelis jāpievieno zilajai sliedes tapai pie tapas 30. Sarkanais kabelis jāpievieno sarkanajai sliedes tapai pie 30. tapas.

1123333 23
1123333 23

Solis 5. Pievienojiet melno vadu no GND tapas uz Arduino ar aizmugurējo zilo sliedi

Pievienojiet to zilās sliedes 28. tapai.

1123333 24
1123333 24

6. solis. Savienojiet melno vadu no aizmugurējās zilās sliedes ar priekšējo zilo sliedi pie 29. tapas katram

Nepievienojiet sarkanās sliedes, jo jūs, iespējams, sabojāsit Arduino.

1123333 25
1123333 25

7. solis. Pievienojiet sarkano vadu no priekšējās sarkanās sliedes pie 30. tapas ar 5 V tapu Arduino

Tas nodrošinās jaudu Arduino.

1123333 26
1123333 26

8. solis. Ievietojiet spiedpogas slēdzi spraugā starp 24-26 tapu rindām

Šis slēdzis ļaus jums izslēgt robotu, neatvienojot strāvu.

1123333 27
1123333 27

9. solis Pievienojiet sarkano vadu no H24 pie sarkanās sliedes nākamajā pieejamā tapā pa labi no sensora

Tas darbinās pogu.

1123333 28
1123333 28

10. solis. Izmantojiet rezistoru, lai savienotu H26 ar zilo sliedi

Pievienojiet to tapai tieši blakus melnajam vadam, kuru pievienojāt pirms dažām darbībām.

1123333 29
1123333 29

11. solis. Pievienojiet baltu vadu no G26 līdz Arduino 2. tapai

Tas ļaus Arduino reģistrēt spiedpogu.

4. daļa no 6: Arduino programmatūras instalēšana

1123333 30
1123333 30

1. solis. Lejupielādējiet un izvelciet Arduino IDE

Šī ir Arduino izstrādes vide un ļauj programmēt instrukcijas, kuras pēc tam varat augšupielādēt savā Arduino mikrokontrollerī. To var bez maksas lejupielādēt vietnē arduino.cc/en/main/software. Izsaiņojiet lejupielādēto failu, veicot dubultklikšķi uz tā, un pārvietojiet mapi iekšā uz viegli pieejamu vietu. Jūs faktiski neinstalēsit programmu. Tā vietā jūs vienkārši palaidīsit to no iegūtās mapes, veicot dubultklikšķi uz arduino.exe.

1123333 31
1123333 31

2. solis. Pievienojiet akumulatoru Arduino

Pievienojiet akumulatora ligzdu Arduino savienotājam, lai tai nodrošinātu jaudu.

1123333 32
1123333 32

Solis 3. Pievienojiet Arduino datoram, izmantojot USB

Windows, visticamāk, neatpazīs ierīci.

1123333 33
1123333 33

4. solis. Nospiediet

Win+R. un ierakstiet devmgmt.msc.

Tādējādi tiks palaists ierīces pārvaldnieks.

1123333 34
1123333 34

Solis 5. Ar peles labo pogu noklikšķiniet uz sadaļas "Citas ierīces" "Nezināma ierīce" un izvēlieties "Atjaunināt draivera programmatūru

" Ja šī opcija nav redzama, noklikšķiniet uz "Rekvizīti", atlasiet cilni "Draiveris" un pēc tam noklikšķiniet uz "Atjaunināt draiveri".

1123333 35
1123333 35

6. solis. Atlasiet “Pārlūkot manu datoru, lai atrastu draivera programmatūru

" Tas ļaus jums izvēlēties draiveri, kas piegādāts kopā ar Arduino IDE.

1123333 36
1123333 36

7. solis. Noklikšķiniet uz "Pārlūkot", pēc tam dodieties uz mapi, kuru iepriekš ieguvāt

Iekšpusē atradīsit mapi "draiveri".

1123333 37
1123333 37

8. solis. Atlasiet mapi "draiveri" un noklikšķiniet uz "Labi"

" Apstipriniet, ka vēlaties turpināt, ja tiekat brīdināts par nezināmu programmatūru.

5. daļa no 6: Robota programmēšana

1123333 38
1123333 38

1. darbība. Sāciet Arduino IDE, veicot dubultklikšķi uz faila arduino.exe mapē IDE

Jūs sagaidīs ar tukšu projektu.

1123333 39
1123333 39

2. solis. Ielīmējiet šādu kodu, lai robots darbotos taisni

Zemāk esošais kods liks jūsu Arduino nepārtraukti virzīties uz priekšu.

#include // tas programmai pievieno "Servo" bibliotēku // sekojošais izveido divus servobjektus Servo leftMotor; Servo labaisMotors; void setup () {leftMotor.attach (12); // ja nejauši pārslēdzāt servos pin numurus, varat tos nomainīt šeit rightMotor.attach (13); } void loop () {leftMotor.write (180); // ar nepārtrauktu rotāciju 180 norāda, ka servo jāpārvietojas ar pilnu ātrumu "uz priekšu". labiMotors. rakstīt (0); // ja abi šie ir pie 180, robots ies riņķī, jo servos ir pagriezts. "0", liek tai pārvietoties pilnā ātrumā "atpakaļ". }

1123333 40
1123333 40

Solis 3. Izveidojiet un augšupielādējiet programmu

Noklikšķiniet uz labās bultiņas pogas augšējā kreisajā stūrī, lai izveidotu un augšupielādētu programmu pievienotajā Arduino.

Iespējams, vēlēsities pacelt robotu no virsmas, jo pēc programmas augšupielādes tas turpinās virzīties uz priekšu

1123333 41
1123333 41

4. solis. Pievienojiet nogalināšanas slēdža funkcionalitāti

Pievienojiet šādu kodu sava koda sadaļai "void loop ()", lai iespējotu nogalināšanas slēdzi virs funkcijām "write ()".

if (digitalRead (2) == HIGH) // tas reģistrējas, nospiežot pogu uz Arduino 2. tapas {while (1) {leftMotor.write (90); // "90" ir servo neitrāla pozīcija, kas liek viņiem pārtraukt griezties pa labiMotor.write (90); }}

1123333 42
1123333 42

5. solis. Augšupielādējiet un pārbaudiet savu kodu

Pievienojot nogalināšanas slēdža kodu, jūs varat augšupielādēt un pārbaudīt robotu. Tam vajadzētu turpināt braukt uz priekšu, līdz nospiežat slēdzi, un tad tas pārstās kustēties. Pilnam kodam vajadzētu izskatīties šādi:

#include // sekojošais izveido divus servobjektus Servo leftMotor; Servo labaisMotors; 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); }

6. daļa no 6: piemērs

1. solis. Izpildiet piemēru

Šis kods izmantos robotam pievienoto sensoru, lai tas pagrieztos pa kreisi, kad tas sastopas ar šķērsli. Sīkāku informāciju par katras daļas darbību skatiet koda komentāros. Zemāk esošais kods ir visa programma.

#iekļaut servo leftMotor; Servo labaisMotors; const int serialPeriod = 250; // tas ierobežo izvadi uz konsoli līdz vienai 1/4 sekundei neparakstītam ilgam laikamSerialDelay = 0; const int loopPeriod = 20; // tas nosaka, cik bieži sensors nolasa rādījumus līdz 20 ms, kas ir frekvence 50Hz neparakstīts ilgi timeLoopDelay = 0; // tas piešķir TRIG un ECHO funkcijas Arduino tapām. Veiciet šeit skaitļu pielāgojumus, ja savienojāt savādāk const int ultrasonic2TrigPin = 8; const int ultraskaņas2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // tas definē divus iespējamos robota stāvokļus: braukšana uz priekšu vai pagriešanās pa kreisi #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = braukt uz priekšu (DEFAULT), 1 = pagriezties pa kreisi void setup () {Serial.begin (9600); // šīs sensora tapu konfigurācijas pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // tas piešķir motorus Arduino tapām leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // tas nosaka nogalināšanas slēdzi {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // tas izdrukā atkļūdošanas ziņojumus uz seriālo konsoli, ja (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // tas uzdod sensoram nolasīt un saglabāt izmērītos attālumus stateMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ja nav konstatēti šķēršļi {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ja robota priekšā nekas nav. ultrasonicDistance būs negatīvs dažiem ultrasonics, ja nav šķēršļu {// braukt uz priekšu rightMotor.write (180); leftMotor.write (0); } else // ja mūsu priekšā ir objekts {state = TURN_LEFT; }} else if (state == TURN_LEFT) // ja tiek konstatēts šķērslis, pagriezieties pa kreisi {unsigned long timeToTurnLeft = 500; // pagriezties par 90 grādiem nepieciešamas aptuveni.5 sekundes. Jums tas, iespējams, būs jāpielāgo, ja jūsu riteņi ir citāda izmēra nekā paraksts neparakstīts garš turnStartTime = millis (); // ietaupiet laiku, kad sākām griezties, kamēr ((milis ()-turnStartTime) <timeToTurnLeft) // palieciet šajā cilpā, līdz laiks timeToTurnLeft ir pagājis {// pagriezieties pa kreisi, atcerieties, ka tad, kad abi būs iestatīti uz "180". rightMotor.write (180); leftMotor.write (180); } stāvoklis = DRIVE_FORWARD; }} void readUltrasonicSensors () {// tas ir paredzēts ultraskaņai 2. Ja, izmantojot citu sensoru, šīs komandas, iespējams, būs jāmaina. digitalWrite (ultraskaņas2TrigPin, HIGH); delayMikrosekundes (10); // saglabā trig tapu augstu vismaz 10 mikrosekundes digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // tālāk ir norādītas atkļūdošanas kļūdas konsolē. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Sērijas nospiedums ("cm"); Sērijas.println (); timeSerialDelay = milis (); }}

Ieteicams: