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

Satura rādītājs:

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

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

Video: Kā mājās izveidot robotu (ar attēliem)
Video: How To Make Mapart From Any Image In Minecraft 2024, Novembris
Anonim

Vai vēlaties iemācīties izveidot savu robotu? Ir daudz dažādu robotu veidu, kurus varat izveidot pats. Lielākā daļa cilvēku vēlas redzēt robotu, kurš viegli pāriet no punkta A uz punktu B. Jūs varat pilnībā izveidot robotu no analogām sastāvdaļām vai iegādāties sākuma komplektu. Robota izgatavošana ir lielisks veids, kā apgūt elektroniku un datorprogrammēšanu.

Solis

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

1123333 1
1123333 1

Solis 1. Salieciet sastāvdaļas

Lai izveidotu pamata robotu, jums būs nepieciešami daži vienkārši komponenti. Lielāko daļu vai visas šīs sastāvdaļas varat atrast vietējā elektronikas hobiju veikalā vai pie dažiem tiešsaistes mazumtirgotājiem. Daži komplekti ietver visas šīs sastāvdaļas. Šim robotam nav nepieciešama lodēšana:

  • Arduino Uno (vai cits mikrokontrolleris)
  • 2 servi 360 grādi
  • 2 riteņi, kas atbilst servo
  • 1 brīvs ritenis
  • 1 testa dēlis (maizes dēlis vai projekta dēlis), kas nav pielodēts (meklējiet testa plāksni, kuras katrā pusē ir divas pozitīvas un negatīvas rindas)
  • 1 tuvuma sensors (ar četru kontaktu savienotāja kabeli)
  • 1 spiedpogas slēdzis
  • 1 rezistors 10kΩ
  • 1 USB A līdz B kabelis
  • 1 izjaucamu galvenes komplekts
  • 1 6 x AA bateriju turētājs ar 9 V līdzstrāvas kontaktligzdu
  • 1 iepakojums ar 22. kabeļiem vai vienu kabeli
  • Izolācija uz priekšu un atpakaļ (dubultā lente) vai līmes pistole
1123333 2
1123333 2

2. solis. Pagrieziet akumulatora nodalījumu tā, lai tā plakanā aizmugure būtu vērsta uz augšu

Jūs izveidosit robota korpusu, par pamatu izmantojot akumulatora nodalījumu.

1123333 3
1123333 3

3. solis. Akumulatora nodalījuma galā sakārtojiet divus servos vērstus vienā virzienā

Šis gals ir gals, kur kabelis iziet no akumulatora. Servo pieskaras apakšai, un katra servo rotācijas mehānismam jābūt vērstam uz āru no akumulatora nodalījuma sāniem. Ir svarīgi, lai šie servoiekārtas būtu pareizi izvietotas tā, lai riteņi būtu taisni. Servo kabeļiem jāiziet no akumulatora nodalījuma aizmugures.

1123333 4
1123333 4

4. solis. Līmējiet servos ar izolāciju vai līmi

Pārliecinieties, vai servo ir stingri piestiprināts pie akumulatora nodalījuma. Servo aizmugurei jābūt izlīdzinātai ar akumulatora nodalījuma aizmuguri.

Tagad servos vajadzētu aizņemt pusi vietas akumulatora nodalījuma aizmugurē

1123333 5
1123333 5

5. solis. Piestipriniet testa paneli perpendikulāri atlikušajai vietai akumulatora nodalījumā

Šī testa plāksne nedaudz karājas virs akumulatora nodalījuma priekšpuses un stiepjas uz abām pusēm. Pirms turpināt, pārliecinieties, vai testa dēlis ir cieši pievilkts. Rindai “A” jābūt vistuvāk servo.

1123333 6
1123333 6

6. solis. Pievienojiet Arduino mikrokontrolleri servo augšpusē

Ja servo piestiprināt pareizi, abiem servos jābūt plakanai daļai, kas pieskaras viens otram. Pielīmējiet Arduino plāksni šai plakanajai vietai tā, lai USB un Arduino barošanas savienotāji būtu vērsti uz leju (prom no testa paneļa). Arduino priekšpuse pārklāsies ar testa dēli.

1123333 7
1123333 7

7. solis. Uzstādiet riteņus uz servos

Stingri nospiediet riteņus uz rotējošā servo mehānisma. Tas var prasīt ievērojamu spēku, jo riteņiem ir paredzēti caurumi, kas precīzi atbilst servo uzgaļa formai.

1123333 8
1123333 8

8. solis. Uzstādiet brīvo riteni testa paneļa apakšā

Pagriežot robotu otrādi, no akumulatora nodalījuma redzēsit nelielu testa paneli. Pievienojiet brīvo riteni šai piekārtajai daļai. Ja nepieciešams, izmantojiet ķīli. Brīvais ritenis kalpo kā priekšējais ritenis, kas ļauj robotam viegli pagriezties jebkurā virzienā.

Ja iegādājāties komplektu, brīvajam ritenim var būt daži ķīļi, kurus varat izmantot, lai nodrošinātu, ka ritenis var brīvi pieskarties zemei

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

1123333 9
1123333 9

1. solis. Izgrieziet divas 3 kontaktu galvenes

Jūs to izmantosit, lai savienotu servo ar testa paneli. Piespiediet tapas uz leju caur galvenēm, lai tās iznāktu vienādā attālumā no abām pusēm.

1123333 10
1123333 10

2. solis. Ievietojiet abas galvenes testa plāksnes E rindas 1.-3. Un 6.-8. Tapā

Pārliecinieties, vai tie ir ievietoti stingri vai stingri.

1123333 11
1123333 11

Solis 3. Savienojiet servo vadus ar galveni, ar melno vadu kreisajā pusē (1. un 6. tapa)

Tas savienos servo ar testa paneli. Pārliecinieties, vai kreisais servo ir savienots ar kreiso galveni, bet labais - ar labo.

1123333 12
1123333 12

Solis 4. Pievienojiet sarkano džemperu vadu no tapām C2 un C7 ar sarkano sliedes tapu (pozitīvs)

Pārliecinieties, ka izmantojat sarkano sliedi testa dēļa aizmugurē (tuvāk pārējam robota korpusam).

1123333 13
1123333 13

5. solis. Savienojiet melno džempera vadu no tapām B1 un B6 ar zilo sliedes tapu (zemējumu)

Pārliecinieties, ka testa plāksnes aizmugurē izmantojat zilo sliedi. Nepiestipriniet kabeli pie sarkanās sliedes tapas.

1123333 14
1123333 14

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

Tas ļaus Arduino vadīt servo un pagriezt riteni.

1123333 15
1123333 15

7. solis. Piestipriniet sensoru testa paneļa priekšpusē

Sensors nav uzstādīts uz testa paneļa ārējās barošanas sliedes, bet uz pirmajām divām tapām, kas apzīmētas (J). Pārliecinieties, ka novietojat to pašā vidū ar vienādu skaitu tukšu tapu katrā pusē.

1123333 16
1123333 16

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

Tas sensoru iezemēs.

1123333 17
1123333 17

9. solis. Savienojiet sarkano džempera vadu no tapas I17 ar pirmo sarkano sliedes tapu sensora labajā pusē

Tas nodrošinās sensora barošanu.

1123333 18
1123333 18

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

Tas nodrošinās informāciju no sensora uz mikrokontrolleru.

3. daļa no 5: Barošanas kabeļa uzstādīšana

1123333 19
1123333 19

1. solis. Pagrieziet robotu, lai jūs varētu redzēt akumulatora nodalījumu iekšpusē

Sakārtojiet akumulatora nodalījumu tā, lai kabelis izietu caur apakšējo kreiso pusi.

1123333 20
1123333 20

Solis 2. Pievienojiet sarkano vadu ar otro atsperi no kreisās puses apakšā

Pārliecinieties, vai bateriju nodalījums ir pareizi izlīdzināts vai vērsts pareizajā virzienā.

1123333 21
1123333 21

Solis 3. Savienojiet melno vadu ar pēdējo atsperi apakšējā labajā stūrī

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

1123333 22
1123333 22

Solis 4. Pievienojiet sarkanos un melnos vadus sarkanajām un zilajām tapām, kas atrodas testa paneļa aizmugurē labajā pusē

Melnajam vadam jāiet uz zilās sliedes tapu uz 30. tapas. Sarkanajam vadam jāiet uz sarkanās sliedes tapas uz 30. tapas.

1123333 23
1123333 23

5. solis. Pievienojiet melno vadu no GND tapas Arduino zilās sliedes aizmugurē

Savienojiet vadu ar zilo sliedes 28. tapu.

1123333 24
1123333 24

6. solis Pievienojiet melno vadu no zilās sliedes aizmugures līdz zilās sliedes priekšpusei uz 29. tapas abām sliedēm

Nepievienojiet sarkano sliedi, jo varat sabojāt Arduino.

1123333 25
1123333 25

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

Tas nodrošinās jaudu Arduino.

1123333 26
1123333 26

8. solis. Ievietojiet spiedpogas slēdzi atstarpē starp tapām 24-26

Šis slēdzis ļaus jums izslēgt robotu, neizslēdzot barošanu.

1123333 27
1123333 27

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

Tas nodrošinās pogas barošanu.

1123333 28
1123333 28

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

Pievienojiet to tapai tieši blakus melnajam vadam, kuru tikko pievienojāt iepriekšējās darbībās.

1123333 29
1123333 29

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

Tas ļaus Arduino noteikt spiedpogas.

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

1123333 30
1123333 30

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

Šeit tiek izstrādāts Arduino un tas ļauj programmēt instrukcijas, kuras pēc tam varat augšupielādēt savā Arduino mikrokontrollerī. Jūs to varat bez maksas lejupielādēt vietnē arduino.cc/en/main/software. Izsaiņojiet lejupielādēto failu, veicot dubultklikšķi uz faila un pārvietojot tajā esošo mapi uz viegli pieejamu vietu. Jūs faktiski neinstalēsit programmu, bet vienkārši palaidīsit to no mapes, kas tika iegūta, veicot dubultklikšķi uz arduino.exe.

1123333 31
1123333 31

2. solis Pievienojiet akumulatora nodalījumu Arduino

Ievietojiet akumulatora aizmugurējo kontaktligzdu Arduino savienotājā, lai to darbinātu.

1123333 32
1123333 32

Solis 3. Ievietojiet Arduino datorā, izmantojot USB

Iespējams, sistēma Windows neatpazīst ierīci.

1123333 33
1123333 33

4. solis. Nospiediet

Win+R. un ierakstiet devmgmt.msc.

Šī komanda atvērs ierīces pārvaldnieku.

1123333 34
1123333 34

5. solis. Ar peles labo pogu noklikšķiniet uz Nezināma ierīce sadaļā Citas ierīces un atlasiet 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. Izvēlieties Pārlūkot manu datoru, lai atrastu draivera programmatūru

Tas ļaus jums izvēlēties iebūvētos draiverus, kas tika piegādāti kopā ar Arduino IDE.

1123333 36
1123333 36

7. solis. Noklikšķiniet uz Pārlūkot, pēc tam atveriet iepriekš izvilkto mapi

Tajā atradīsit draiveru mapi.

1123333 37
1123333 37

8. solis. Izvēlieties draiveru mapi 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 5: Robotu programmēšana

1123333 38
1123333 38

1. solis. Atveriet 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 vai ielīmējiet šādu kodu, lai jūsu robots būtu uzlabots

Zemāk esošais kods turpinās jūsu Arduino darbību.

#include // tas pievieno programmai “Servo” bibliotēku // šāda komanda izveido divus servobjektus Servo leftMotor; Servo labaisMotors; void setup () {leftMotor.attach (12); // ja nejauši nomainījāt pin numurus savam servo, varat tos nomainīt šeit rightMotor.attach (13); } void loop () {leftMotor.write (180); // ar 360 grādu rotāciju (nepārtraukta rotācija) skaitlis 180 uzdod servo pārvietoties “uz priekšu” pilnā ātrumā. rightMotor.write (0); // ja abas vērtības ir 180, robots griezīsies aplī, jo servo ir apgriezts. “0” liek robotam pārvietoties “atpakaļ” ar pilnu ātrumu. }

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 robots turpinās iet uz priekšu pēc programmas augšupielādes

1123333 41
1123333 41

4. solis. Pievienojiet apturēšanas slēdža funkciju (nogalināšanas slēdzis)

Pievienojiet šādu kodu sava koda sadaļai "void loop ()", lai funkcijas "write ()" augšpusē pievienotu apturēšanas slēdža funkciju.

if (digitalRead (2) == HIGH) // šī komanda darbojas, nospiežot pogu uz 2. tapas Arduino {while (1) {leftMotor.write (90); // "90" ir servo neitrālā pozīcija, kas liek servo pārstāt griezties pa labiMotor.write (90); }}

1123333 42
1123333 42

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

Kad apturēšanas slēdža kods jau ir pievienots, varat augšupielādēt kodu un pārbaudīt robotu. Robotam jāturpina virzīties uz priekšu, līdz nospiežat apturēšanas slēdža pogu, kā rezultātā robots apstāsies. Pilns kods izskatīsies šādi:

#include // šāda komanda izveido divus Servo leftMotor servo objektus; 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); }

Piemērs

Turpmākajā kodā tiks izmantoti robotā uzstādītie sensori, lai tas pagrieztos pa kreisi, kad robots saskaras ar šķērsli. Lai iegūtu detalizētu informāciju par katras daļas izmantošanu, skatiet koda komentārus. Zemāk esošais kods ir visa programma.

#iekļaut servo leftMotor; Servo labaisMotors; const int serialPeriod = 250; // šis kods dod konsoles izvades laika nobīdi ik pēc 1/4 sekundes (250 ms) neparakstīts ilgs laiksSerialDelay = 0; const int loopPeriod = 20; // šis kods nosaka sensora nolasīšanas frekvenci uz 20 ms, kas ir 50 Hz neparakstīts ilgs laiksLoopDelay = 0; // šis kods piešķir TRIG un ECHO funkcijas Arduino tapām. Pielāgojiet skaitļus šeit, ja tos savienojat citādi const int ultrasonic2TrigPin = 8; const int ultraskaņas2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // šis kods nosaka divus iespējamos robota stāvokļus: turpināt uz priekšu vai pagriezties pa kreisi #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = turpināt uz priekšu (DEFAULT), 1 = pagriezties pa kreisi void setup () {Serial.begin (9600); // šis sensors nosaka tapas konfigurāciju pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // tas piešķir motoru Arduino tapām leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // šis kods nosaka '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // šis kods izdrukā atkļūdošanas ziņojumus seriālajā konsolē, ja (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // šis kods uzdod sensoram nolasīt un saglabāt datus par izmērīto attāluma stāvokliMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ja netiek konstatēts šķērslis {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ja nekas nav robota priekšā. 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; // 90 grādu pagriešana aizņem apmēram 0,5 sekundes. Jums, iespējams, būs jāpielāgo šī vērtība, ja jūsu riteņu izmēri atšķiras no parauga parauga garā pagriezienaStartTime = millis (); // saglabāt nosacījumu, kad robots sāk griezties, kamēr ((millis ()-turnStartTime) <timeToTurnLeft) // saglabāt šo ciklu, līdz timeToTurnLeft (500) ir pagājis {// pagriezties pa kreisi, atcerieties, ka tad, kad abi ir "180", robots pagriezīsies. rightMotor.write (180); leftMotor.write (180); } stāvoklis = DRIVE_FORWARD; }} void readUltrasonicSensors () {// tas ir paredzēts ultraskaņai 2. Iespējams, šī komanda būs jāmaina, ja izmantojat citu sensoru. digitalWrite (ultraskaņas2TrigPin, HIGH); delayMikrosekundes (10); // pavelciet TRIG tapu augstu vismaz 10 mikrosekundēm 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: