Kas soovite õppida oma roboti valmistamist? Roboteid on palju erinevaid, mida saate ise ehitada. Enamik inimesi soovib näha, et robot teeb lihtsat tööd, liikudes punktist A punkti B. Roboti saab täielikult ehitada analoogkomponentidest või osta stardikomplekti. Roboti valmistamine on suurepärane viis elektroonika ja arvutiprogrammeerimise õppimiseks.
Samm
Osa 1 /5: Roboti kokkupanek
Samm 1. Pange oma komponendid kokku
Põhiroboti ehitamiseks vajate mõnda lihtsat komponenti. Enamiku või kõik need komponendid leiate kohalikust elektroonikaharrastuspoest või mõnest veebimüüjast. Mõned komplektid sisaldavad kõiki neid komponente. See robot ei vaja jootmist:
- Arduino Uno (või muu mikrokontroller)
- 2 servot 360 kraadi
- 2 ratast, mis sobivad servoga
- 1 vaba ratas
- 1 testplaat (leivaplaat või projektitahvel), mida pole joodetud (otsige testplaati, millel on kaks positiivset ja negatiivset rida mõlemal küljel)
- 1 lähedusandur (nelja kontaktiga pistikukaabliga)
- 1 vajutusnupp
- 1 takisti 10 kΩ
- 1 USB A -kaabel
- 1 purustatavate päiste komplekt
- 1 6 x AA patareipesa 9V alalisvoolu pistikupesaga
- 1 pakk 22. hüppakaableid või üks kaabel
- Isolatsioon edasi -tagasi (topeltlint) või liimipüstol
Samm 2. Pöörake patareipesa nii, et selle tasane tagakülg on ülespoole
Roboti korpuse ehitate, kasutades akupesa alusena.
Samm 3. Asetage kaks servot, mis on suunatud samas suunas, akupesa lõpus
See ots on ots, kus kaabel tuleb akust välja. Servod peaksid puudutama põhja ja iga servo pöörlemismehhanism peaks olema akupesa külgedelt väljapoole suunatud. On oluline, et need servod oleksid õigesti paigutatud nii, et rattad oleksid sirged. Servo kaablid peavad patareipesa tagaküljelt välja tulema.
Samm 4. Liimige servod oma isolatsiooni või liimiga
Veenduge, et servo on kindlalt akupesa külge kinnitatud. Servo tagakülg peab olema joondatud akupesa tagaosaga.
Nüüd peaksid servod võtma akupesa tagaosas poole vähem ruumi
Samm 5. Kleepige testplaat patareipesa vaba ruumi suhtes risti
See testplaat ripub veidi üle akupesa esiosa ja ulatub mõlemale poole. Enne jätkamist veenduge, et testplaat oleks pingul. A -rida peaks olema servole kõige lähemal.
Samm 6. Kinnitage Arduino mikrokontroller servo ülaossa
Kui kinnitate servo õigesti, peaks kahe servo lameda osa üksteist puudutama. Kleepige Arduino plaat sellele tasasele kohale nii, et USB ja Arduino toitepistikud jäävad allapoole (testplaadist eemale). Arduino esiosa kattub testplaadiga.
Samm 7. Paigaldage rattad servodele
Vajutage rattad kindlalt pöörleva servomehhanismi külge. See võib nõuda märkimisväärset jõudu, kuna rattad on konstrueeritud nii, et neil on augud, mis vastavad täpselt servootsa kujule.
Samm 8. Paigaldage vaba ratas testplaadi põhja
Kui pöörate roboti tagurpidi, näete akupesas rippuvat väikest testplaati. Kinnitage vaba ratas selle rippuva osa külge. Vajadusel kasutage kiilu. Vaba ratas on esiratas, mis võimaldab robotil hõlpsalt igas suunas pöörata.
Kui ostsite komplekti, võib vabal rattal olla mõned kiilud, mille abil saate veenduda, et ratas ei tohi maapinda puudutada
Osa 2 viiest: Roboti juhtmestik
Samm 1. Lõika kaks 3-kontaktilist päist
Seda kasutate servo ühendamiseks testplaadiga. Lükake tihvtid läbi päiste alla, nii et need tulevad mõlemal küljel võrdsel kaugusel.
Samm 2. Sisestage kaks päist testplaadi rea E tihvtidesse 1-3 ja 6-8
Veenduge, et need oleksid kindlalt või kindlalt sisestatud.
Samm 3. Ühendage servotraadid päisega, musta juhtmega vasakul küljel (tihvtid 1 ja 6)
See ühendab servo testplaadiga. Veenduge, et vasak servo on ühendatud vasaku päisega ja parem servo on ühendatud parema päisega.
Samm 4. Ühendage punane hüppajajuhe tihvtidest C2 ja C7 punase rööpa tihvtiga (positiivne)
Kasutage kindlasti testplaadi tagaküljel olevat punast rööpa (lähemale ülejäänud roboti kehale).
Samm 5. Ühendage tihvtide B1 ja B6 must džemprijuhe sinise rööpa tihvtiga (maandus)
Kasutage kindlasti testplaadi tagaküljel asuvat sinist rööpa. Ärge kinnitage kaablit punase rööpa tihvti külge.
Samm 6. Ühendage Arduino tihvtide 12 ja 13 valged hüppajajuhtmed A3 ja A8 -ga
See võimaldab Arduino juhtida servot ja keerata ratast.
Samm 7. Kinnitage andur testplaadi esiküljele
Andur ei ole paigaldatud testplaadil olevale välisele toiteliinile, vaid kahele esimesele tihvtide reale (J). Pange see kindlasti keskele, nii et mõlemal küljel oleks võrdne arv tühje tihvte.
Samm 8. Ühendage tihvti I14 must hüppajajuhe anduri vasakul asuva esimese sinise rööpaga
See maandab anduri.
Samm 9. Ühendage punane hüppajajuhe tihvti I17 juurest anduri paremal asuva esimese punase rööpaga
See annab andurile toite.
Samm 10. Ühendage valged hüppajajuhtmed tihvtiga I15 kuni Arduino tihvtiga 9 ja ühendusega I16 kuni tihvtiga 8
See annab andurilt teavet mikrokontrollerile.
Osa 3 /5: Toitekaabli paigaldamine
Samm 1. Pöörake robot ümber, nii et näete patareipesa sees
Paigutage akupesa nii, et kaabel väljuks vasakpoolsest allosast.
Samm 2. Ühendage punane traat teise vedruga alt vasakult
Veenduge, et patareipesa on õigesti joondatud või õiges suunas.
Samm 3. Ühendage must traat viimase vedruga paremas alanurgas
Need kaks juhtmest aitavad tagada Arduinole õige pinge.
Samm 4. Ühendage punased ja mustad juhtmed punase ja sinise tihvtiga, mis asuvad testplaadi tagaküljel paremal
Must traat peaks minema tihvti 30. sinise rööpa tihvti juurde. Punane juhe peaks minema tihvti 30 punase rööpa tihvti juurde.
Samm 5. Ühendage Arduino GND tihvtist must traat sinise rööpa tagaküljega
Ühendage juhe sinise rööpa tihvtiga 28.
Samm 6. Ühendage must traat sinise rööpa tagaosast mõlema rööpa tihvti 29 sinise rööpa esiküljega
Ärge ühendage punast rööpa, kuna võite Arduino kahjustada.
Samm 7. Ühendage punane juhe punase rööpa esiosast tihvtil 30 5V pistikuga Arduino
See annab Arduinole jõudu.
Samm 8. Sisestage nuppude lüliti tihvtide 24-26 vahele
See lüliti võimaldab teil roboti välja lülitada, ilma et peaksite toite välja lülitama.
Samm 9. Ühendage punane juhe H24 -st anduri paremal asuva järgmise tühja tihvti punase rööpaga
See annab nupule toite.
Samm 10. Kasutage takisti, et ühendada H26 sinise rööpaga
Ühendage see tihvtiga otse musta juhtme kõrval, mille te eelmistes sammudes ühendasite.
Samm 11. Ühendage G26 valge traat Arduino tihvtiga 2
See võimaldab Arduino'l tuvastada nuppe.
Osa 4/5: Arduino tarkvara installimine
Samm 1. Laadige alla ja ekstraktige Arduino IDE
Siin arendatakse Arduino ja see võimaldab teil programmeerida juhiseid, mille saate seejärel oma Arduino mikrokontrollerile üles laadida. Saate selle tasuta alla laadida saidilt arduino.cc/en/main/software. Pakkige allalaaditud fail lahti, topeltklõpsates failil ja teisaldades selles sisalduva kausta hõlpsasti juurdepääsetavasse kohta. Te ei installi programmi tegelikult, vaid käivitate selle lihtsalt kaustast, mis eraldati topeltklõpsuga arduino.exe-l.
Samm 2. Ühendage patareipesa Arduinoga
Sisestage aku toitepesa Arduino pistikusse, et seda toita.
Samm 3. Sisestage Arduino USB kaudu oma arvutisse
Tõenäoliselt ei tunne Windows seadet ära.
Samm 4. Vajutage
Win+R. ja tüüp devmgmt.msc.
See käsk avab seadmehalduri.
Samm 5. Paremklõpsake jaotises Muud seadmed nuppu Tundmatu seade ja valige Värskenda draiveritarkvara
Kui te seda valikut ei näe, klõpsake nuppu Atribuudid, valige vahekaart Draiver ja seejärel klõpsake nuppu Värskenda draiverit.
Samm 6. Valige Sirvi minu arvutist draiveritarkvara
See võimaldab teil valida Arduino IDE-ga kaasas olnud sisseehitatud draiverid.
Samm 7. Klõpsake Sirvi, seejärel avage varem ekstraheeritud kaust
Siit leiate draiverite kausta.
Samm 8. Valige draiverite kaust ja klõpsake nuppu OK
Kinnitage, et soovite jätkata, kui teid hoiatatakse tundmatu tarkvara eest.
Osa 5/5: Robotite programmeerimine
Samm 1. Avage Arduino IDE, topeltklõpsates failil arduino.exe kaustas IDE
Teid tervitatakse tühja projektiga.
Samm 2. Kleepige või kleepige järgmine kood, et muuta oma robot täiustatud
Allolev kood hoiab teie Arduino töös.
#include // see lisab programmi "Servo" teegi // järgmine käsk loob kaks servoobjekti Servo leftMotor; Servo paremMootor; void setup () {leftMotor.attach (12); // kui vahetasid kogemata oma servo pin -numbrid, saad numbrid vahetada siin rightMotor.attach (13); } void loop () {leftMotor.write (180); // 360 -kraadise pöörlemise korral (pidev pöörlemine) annab number 180 käsu servole täiskiirusel edasi liikuda. rightMotor.write (0); // kui mõlemad väärtused on 180, pöörleb robot ringikujuliselt, kuna servo on tagurpidi. “0” käsib robotil täiskiirusel tagurpidi liikuda. }
Samm 3. Looge ja laadige programm üles
Programmi loomiseks ja üleslaadimiseks ühendatud Arduinole klõpsake vasakus ülanurgas paremat nooleklahvi.
Võib -olla soovite roboti pinnalt tõsta, kuna robot jätkab pärast programmi üleslaadimist edasi liikumist
Samm 4. Lisage stopp -lüliti funktsioon (tapmislüliti)
Lisage oma koodi sektsiooni "void loop ()" järgmine kood, et lisada funktsiooni "write ()" peale stopp -lüliti funktsioon.
if (digitalRead (2) == HIGH) // see käsk käivitub nupu 2 vajutamisel Arduino {while (1) {leftMotor.write (90); // "90" on servo neutraalne asend, mis käsib servol lõpetada paremale pööramiseMotor.write (90); }}
Samm 5. Laadige kood üles ja kontrollige seda
Kui stopp -lüliti kood on juba lisatud, saate koodi üles laadida ja robotit testida. Robot peaks edasi liikuma, kuni vajutate stopp -lüliti nuppu, mille tõttu robot peatub. Kogu kood näeb välja selline:
#include // järgmine käsk loob kaks Servo leftMotor servoobjekti; Servo paremMootor; 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); }
Näide
Järgmine kood kasutab robotile paigaldatud andureid, et see pööraks vasakule iga kord, kui robot puutub kokku takistusega. Vaadake koodi kommentaare, et saada teavet iga osa kasutamise kohta. Allolev kood on kogu programm.
#kaasas Servo leftMotor; Servo paremMootor; const int serialPeriod = 250; // see kood annab konsooli väljundajale iga 1/4 sekundi (250 ms) allkirjastamata pika ajaSerialDelay = 0; const int loopPeriod = 20; // see kood seab anduri lugemissageduseks 20 ms, mis on 50 Hz allkirjata long timeLoopDelay = 0; // see kood määrab TRIG ja ECHO funktsioonid Arduino tihvtidele. Reguleerige siin numbreid, kui ühendate need erineval viisil const int ultraheli2TrigPin = 8; const int ultraheli2EchoPin = 9; int ultraheli2Distance; int ultraheli2Kestus; // see kood määratleb kaks võimalikku roboti olekut: jätka edasi või pööra vasakule #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = jätka edasi (DEFAULT), 1 = keera vasakule tühjus setup () {Serial.begin (9600); // see andur määrab tihvti konfiguratsiooni pinMode (ultraheli2TrigPin, OUTPUT); pinMode (ultraheli2EchoPin, INPUT); // see määrab mootori Arduino tihvtidele leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // see kood tuvastab '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // see kood prindib silumissõnumid jadakonsoolile if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // see kood juhendab andurit lugema ja salvestama andmeid mõõdetud vahemaa oleku kohtaMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // kui takistust ei tuvastata {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // kui midagi ei ole roboti ees. ultrasonicDistance on mõne ultraheli puhul negatiivne, kui takistusi pole {// sõida edasi rightMotor.write (180); leftMotor.write (0); } else // kui meie ees on objekt {state = TURN_LEFT; }} else if (state == TURN_LEFT) // kui avastatakse takistus, pöörake vasakule {unsigned long timeToTurnLeft = 500; // 90 kraadi pööramiseks kulub umbes 0,5 sekundit. Võimalik, et peate seda väärtust korrigeerima, kui teie rattad erinevad suurusest näites allkirjastamata pika pöördeStartTime = millis (); // hoidke tingimust, kui robot hakkab pöörlema ((millis ()-turnStartTime) <timeToTurnLeft) // hoidke seda tsüklit, kuni timeToTurnLeft (500) on möödas {// pöörake vasakule, pidage meeles, et kui mõlemad on "180", robot pöördub. rightMotor.write (180); leftMotor.write (180); } olek = DRIVE_FORWARD; }} void readUltrasonicSensors () {// see on ultraheli 2. Teise anduri kasutamisel peate võib -olla seda käsku muutma. digitalWrite (ultraheli2TrigPin, HIGH); delayMikrosekundid (10); // tõmmake TRIG -pin kõrgele vähemalt 10 mikrosekundit digitalWrite (ultraheli2TrigPin, LOW); ultraheli2Kestus = pulseIn (ultraheli2EchoPin, HIGH); ultraheli2Kaugus = (ultraheli2Kestus/2)/29; } // järgmine on konsooli vigade silumiseks. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultraheli2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}