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
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
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.
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.
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
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.
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.
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.
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
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.
2. solis. Ievietojiet abas galvenes maizes dēļa E rindas 1. un 6. un 8. tapā
Pārliecinieties, ka tie ir stingri ievietoti.
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.
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).
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.
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.
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.
8. solis. Savienojiet melnu džemperu vadu no tapas I14 ar pirmo pieejamo zilo sliedes tapu sensora kreisajā pusē
Tas sensoru iezemēs.
9. solis. Savienojiet sarkano pārejas vadu no tapas I17 ar pirmo pieejamo sarkano sliedes tapu pa labi no sensora
Tas ieslēgs sensoru.
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
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.
Solis 2. Pievienojiet sarkano vadu otrajam pavasarim no kreisās puses apakšā
Pārliecinieties, vai akumulators ir pareizi orientēts.
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.
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.
Solis 5. Pievienojiet melno vadu no GND tapas uz Arduino ar aizmugurējo zilo sliedi
Pievienojiet to zilās sliedes 28. tapai.
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.
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.
8. solis. Ievietojiet spiedpogas slēdzi spraugā starp 24-26 tapu rindām
Šis slēdzis ļaus jums izslēgt robotu, neatvienojot strāvu.
9. solis Pievienojiet sarkano vadu no H24 pie sarkanās sliedes nākamajā pieejamā tapā pa labi no sensora
Tas darbinās pogu.
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.
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
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.
2. solis. Pievienojiet akumulatoru Arduino
Pievienojiet akumulatora ligzdu Arduino savienotājam, lai tai nodrošinātu jaudu.
Solis 3. Pievienojiet Arduino datoram, izmantojot USB
Windows, visticamāk, neatpazīs ierīci.
4. solis. Nospiediet
Win+R. un ierakstiet devmgmt.msc.
Tādējādi tiks palaists ierīces pārvaldnieks.
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".
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.
7. solis. Noklikšķiniet uz "Pārlūkot", pēc tam dodieties uz mapi, kuru iepriekš ieguvāt
Iekšpusē atradīsit mapi "draiveri".
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
1. darbība. Sāciet Arduino IDE, veicot dubultklikšķi uz faila arduino.exe mapē IDE
Jūs sagaidīs ar tukšu projektu.
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ļ". }
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
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); }}
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 (); }}