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
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
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.
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.
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ē
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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ē.
8. solis. Savienojiet melno džempera vadu no tapas I14 ar pirmo zilo sliedes tapu sensora kreisajā pusē
Tas sensoru iezemēs.
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.
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
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.
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ā.
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.
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.
5. solis. Pievienojiet melno vadu no GND tapas Arduino zilās sliedes aizmugurē
Savienojiet vadu ar zilo sliedes 28. tapu.
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.
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.
8. solis. Ievietojiet spiedpogas slēdzi atstarpē starp tapām 24-26
Šis slēdzis ļaus jums izslēgt robotu, neizslēdzot barošanu.
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.
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.
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
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.
2. solis Pievienojiet akumulatora nodalījumu Arduino
Ievietojiet akumulatora aizmugurējo kontaktligzdu Arduino savienotājā, lai to darbinātu.
Solis 3. Ievietojiet Arduino datorā, izmantojot USB
Iespējams, sistēma Windows neatpazīst ierīci.
4. solis. Nospiediet
Win+R. un ierakstiet devmgmt.msc.
Šī komanda atvērs ierīces pārvaldnieku.
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.
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.
7. solis. Noklikšķiniet uz Pārlūkot, pēc tam atveriet iepriekš izvilkto mapi
Tajā atradīsit draiveru mapi.
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
1. solis. Atveriet Arduino IDE, veicot dubultklikšķi uz faila arduino.exe mapē IDE
Jūs sagaidīs ar tukšu projektu.
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. }
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
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); }}
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 (); }}