Kas soovite õppida oma roboti ehitamist? Seal on palju erinevaid roboteid, mida saate ise teha. Enamik inimesi soovib näha, kuidas robot täidab lihtsaid ülesandeid punktist A punkti B. Liikumine on võimalik täielikult analoogkomponentidest või stardikomplekti ostmine nullist! Oma roboti ehitamine on suurepärane võimalus õpetada endale nii elektroonikat kui ka arvutiprogrammeerimist.
Sammud
Osa 1 /6: Roboti kokkupanek
Samm 1. Koguge oma komponendid kokku
Põhiroboti ehitamiseks vajate mitmeid lihtsaid komponente. Enamiku, kui mitte kõiki, leiate nende komponentide hulgast oma kohalikust elektroonikaharrastuspoest või mitmest veebimüüjast. Mõned põhikomplektid võivad sisaldada ka kõiki neid komponente. See robot ei vaja jootmist:
- Arduino Uno (või muu mikrokontroller)
- 2 pideva pöörlemise servot
- 2 ratast, mis sobivad servodele
- 1 ratasrull
- 1 väike jootmiseta leivaplaat (otsige leivaplaati, mille mõlemal küljel on kaks positiivset ja negatiivset joont)
- 1 kaugusandur (nelja kontaktiga pistikukaabliga)
- 1 mininupp
- 1 10 kΩ takisti
- 1 USB A -kaabel
- 1 eraldatavate päiste komplekt
- 1 6 x AA patareipesa 9V alalisvoolu pistikuga
- 1 pakk hüppajajuhtmeid või 22-mõõtmeline haaketraat
- Tugev kahepoolne teip või kuum liim
Samm 2. Pöörake aku nii, et lame seljaosa oleks ülespoole
Ehitate roboti keha, kasutades selleks akut.
Samm 3. Joondage kaks servot aku otsa
See peaks olema lõpp, millest aku juhe väljub. Servod peaksid puudutama põhja ja kummagi pöörlevad mehhanismid peaksid olema suunatud aku külgedele. Servod peavad olema korralikult joondatud, nii et rattad läheksid otse. Servode juhtmed peaksid aku tagaküljelt lahti tulema.
Samm 4. Kinnitage servod oma lindiga või liimiga
Veenduge, et need on kindlalt aku külge kinnitatud. Servode tagaküljed peaksid joonduma akupaki tagaküljega.
Servod peaksid nüüd akupaki tagumise poole üles võtma
Samm 5. Kinnitage leivaplaat risti akupatarei vabale kohale
See peaks veidi rippuma aku esikülje kohal ja ulatub mõlemast küljest kaugemale. Enne jätkamist veenduge, et see on kindlalt kinnitatud. A -rida peaks olema servodele kõige lähemal.
Samm 6. Kinnitage Arduino mikrokontroller servode tippudele
Kui servod õigesti kinnitasite, peaks nende puudutamisel jääma tasane ruum. Kleepige Arduino plaat sellele tasasele kohale nii, et Arduino USB- ja toitepistikud on suunatud tahapoole (leivaplaadist eemale). Arduino esikülg peaks leivalauaga vaevu kattuma.
Samm 7. Pange rattad servodele
Vajutage rattad kindlalt servo pöörlevale mehhanismile. See võib nõuda märkimisväärset jõudu, kuna rattad on konstrueeritud nii, et need sobiksid parima veojõu saavutamiseks võimalikult tihedalt.
Samm 8. Kinnitage ratas leivaplaadi põhja
Kui pöörate šassii ümber, peaksite nägema natuke leivaplaati, mis ulatub akust mööda. Kinnitage ratas selle pikendatud detaili külge, kasutades vajadusel püstikuid. Ratas toimib esirattana, võimaldades robotil hõlpsalt igas suunas pöörata.
Kui ostsite komplekti, võib ratas olla kaasas mõne tõusutoruga, mille abil saate ratta maapinnale jõuda. i
Osa 2/6: Roboti juhtmestik
Samm 1. Katkestage kaks 3-kontaktilist päist
Kasutate neid servode ühendamiseks leivalauaga. Lükake tihvtid läbi päise alla, nii et tihvtid tulevad mõlemal küljel võrdsel kaugusel.
Samm 2. Sisestage kaks päist leivaplaadi rea E tihvtidesse 1-3 ja 6-8
Veenduge, et need on kindlalt sisestatud.
Samm 3. Ühendage servokaablid päistega, must kaabel vasakul küljel (tihvtid 1 ja 6)
See ühendab servod leivaplaadiga. Veenduge, et vasak servo on ühendatud vasaku päisega ja parem servo parema päisega.
Samm 4. Ühendage punased hüppajajuhtmed tihvtidelt C2 ja C7 punaste (positiivsete) rööpaotsadega
Kasutage kindlasti leivaplaadi tagaküljel olevat punast rööpa (ülejäänud šassiile lähemal).
Samm 5. Ühendage tihvtide B1 ja B6 mustad hüppajajuhtmed siniste (maandatud) rööpaotsadega
Veenduge, et kasutate leivaplaadi tagaküljel asuvat sinist rööpa. Ärge ühendage neid punaste rööpaotsadega.
Samm 6. Ühendage Arduino tihvtidelt 12 ja 13 valged hüppajajuhtmed A3 ja A8 -ga
See võimaldab Arduino juhtida servosid ja keerata rattaid.
Samm 7. Kinnitage andur leivaplaadi esiküljele
See ei ole ühendatud leivaplaadi väliste toitepiirete külge, vaid selle asemel on kirjatäppide esimene rida (J). Veenduge, et asetate selle täpselt keskele, kusjuures mõlemal küljel on saadaval võrdne arv tihvte.
Samm 8. Ühendage tihvti I14 must hüppajajuhe esimese saadaoleva sinise rööpaga, mis asub anduri vasakul küljel
See maandab anduri.
Samm 9. Ühendage punane hüppajajuhe tihvtist I17 esimese saadaoleva punase rööpaga, mis asub andurist paremal
See annab andurile toite.
Samm 10. Ühendage valged hüppajajuhtmed tihvtilt I15 kuni Arduino tihvtiga 9 ja ühendusega I16 kuni tihvtiga 8
See edastab andurilt teabe mikrokontrollerile.
Osa 3/6: Toitejuhtme ühendamine
Samm 1. Pöörake robot külili, nii et näete pakis olevaid patareisid
Suunake see nii, et aku kaabel tuleb alt vasakule.
Samm 2. Ühendage punane juhe alt vasakult teise vedruga
Veenduge, et aku on õigesti suunatud.
Samm 3. Ühendage paremal allosas oleva viimase vedruga must traat
Need kaks kaablit aitavad Arduinole õiget pinget pakkuda.
Samm 4. Ühendage punased ja mustad juhtmed leivalaua tagaküljel asuvate parempoolsete punaste ja siniste tihvtidega
Must kaabel tuleb ühendada sinise rööpa tihvtiga tihvti 30. Punane kaabel tuleb ühendada punase rööpa tihvtiga tihvti 30 juures.
Samm 5. Ühendage Arduino GND tihvtist must juhe tagumise sinise rööpaga
Ühendage see sinise rööpa tihvtiga 28.
Samm 6. Ühendage must juhe tagumisest sinisest rööbast eesmise sinise rööpaga tihvti 29 juures
Ärge ühendage punaseid rööpaid, kuna tõenäoliselt kahjustate Arduinot.
Samm 7. Ühendage punane juhe eesmise punase rööpa juurest tihvtiga 30 Arduino 5V kontakti külge
See annab Arduinole jõudu.
Samm 8. Sisestage nuppude lüliti tihvtide 24-26 ridade vahele
See lüliti võimaldab teil roboti välja lülitada ilma toitevõrgust lahti ühendamata.
Samm 9. Ühendage punane juhe H24 -st anduri paremal asuva järgmise saadaoleva tihvti punase rööpaga
See käivitab nupu.
Etapp 10. Ühendage takisti abil H26 sinise rööpaga
Ühendage see tihvtiga mõne sammu eest ühendatud musta juhtme kõrval.
Samm 11. Ühendage G26 valge traat Arduino tihvtiga 2
See võimaldab Arduino'l vajutusnuppu registreerida.
Osa 4/6: Arduino tarkvara installimine
Samm 1. Laadige alla ja eraldage Arduino IDE
See on Arduino arenduskeskkond ja võimaldab 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 seda ja teisaldage kaust selle hõlpsasti juurdepääsetavasse kohta. Te ei installi programmi tegelikult. Selle asemel käivitate selle lihtsalt ekstraheeritud kaustast, topeltklõpsates arduino.exe.
Samm 2. Ühendage aku Arduinoga
Ühendage aku toitepesa Arduino pistikupessa, et anda sellele energiat.
Samm 3. Ühendage Arduino USB kaudu arvutiga
Tõenäoliselt ei tunne Windows seadet ära.
Samm 4. Vajutage
⊞ Win+R. ja tüüp devmgmt.msc.
See käivitab 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 selle asemel nuppu "Atribuudid", valige vahekaart "Draiver" ja seejärel klõpsake "Värskenda draiverit".
Samm 6. Valige "Sirvige minu arvutist draiveritarkvara
" See võimaldab teil valida Arduino IDE -ga kaasas olnud draiveri.
Samm 7. Klõpsake "Sirvi", seejärel navigeerige varem ekstraheeritud kausta
Sealt leiate kausta "draiverid".
Samm 8. Valige kaust "draiverid" ja klõpsake "OK"
" Kinnitage, et soovite jätkata, kui teid hoiatatakse tundmatu tarkvara eest.
Osa 5/6: Roboti programmeerimine
Samm 1. Käivitage Arduino IDE, topeltklõpsates failil arduino.exe kaustas IDE
Teid tervitatakse tühja projektiga.
Samm 2. Kleepige järgmine kood, et robot saaks otse minna
Allolev kood paneb teie Arduino pidevalt edasi liikuma.
#include // see lisab programmi "Servo" raamatukogu // järgmine loob kaks servoobjekti Servo leftMotor; Servo paremMootor; void setup () {leftMotor.attach (12); // kui lülitasid kogemata oma servode pin -numbrid sisse, saad numbrid vahetada siin rightMotor.attach (13); } void loop () {leftMotor.write (180); // pideva pöörlemisega 180 käsib servol liikuda täiskiirusel "edasi". õige mootor. kirjutada (0); // kui mõlemad on 180 juures, läheb robot ringiga, sest servod on pööratud. "0" käsib liikuda täiskiirusel "tagasi". }
Samm 3. Ehitage ja laadige programm üles
Programmi loomiseks ja üleslaadimiseks ühendatud Arduinole klõpsake vasakus ülanurgas paremat nooleklahvi.
Võib -olla soovite roboti pinnalt ära tõsta, kuna see liigub edasi alles pärast programmi üleslaadimist
Samm 4. Lisage tapmislüliti funktsionaalsus
Lisage oma koodi sektsiooni "void loop ()" järgmine kood, et lubada tapmislüliti funktsioonide "write ()" kohal.
if (digitalRead (2) == HIGH) // see registreerub, kui nupule vajutatakse Arduino tihvti 2 {while (1) {leftMotor.write (90); // "90" on servode neutraalne asend, mis käsib neil lõpetada paremale pööramineMotor.write (90); }}
Samm 5. Laadige oma kood üles ja testige seda
Kui tapmislüliti kood on lisatud, saate roboti üles laadida ja testida. See peaks edasi sõitma, kuni vajutate lülitit, mille järel see enam ei liigu. Kogu kood peaks välja nägema selline:
#include // järgmine loob kaks servoobjekti Servo leftMotor; 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); }
Osa 6/6: Näide
Samm 1. Järgige näidet
Järgmine kood kasutab roboti külge kinnitatud andurit, et see pööraks takistusega kokku vasakule. Vaadake koodi kommentaaridest üksikasju selle kohta, mida iga osa teeb. Allolev kood on kogu programm.
#kaasas Servo leftMotor; Servo paremMootor; const int serialPeriod = 250; // see piirab konsooli väljundi kuni iga 1/4 sekundi allkirjastamata pika ajagaSerialDelay = 0; const int loopPeriod = 20; // see määrab, kui sageli võtab andur lugemise 20 ms -ni, mis on sagedus 50Hz allkirjata pikk aegLoopDelay = 0; // see määrab TRIG ja ECHO funktsioonid Arduino tihvtidele. Korrigeerige siin numbreid, kui ühendasite erinevalt const int ultraheli2TrigPin = 8; const int ultraheli2EchoPin = 9; int ultraheli2Distance; int ultraheli2Kestus; // see määratleb roboti kaks võimalikku olekut: edasi sõitmine või vasakule pööramine #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = sõita edasi (DEFAULT), 1 = keerata vasakule tühjus setup () {Serial.begin (9600); // need anduri tihvtide konfiguratsioonid pinMode (ultraheli2TrigPin, OUTPUT); pinMode (ultraheli2EchoPin, INPUT); // see määrab mootorid Arduino tihvtidele leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // see tuvastab tapmislüliti {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // see prindib silumissõnumid jadakonsoolile, kui (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // see annab andurile käsu lugeda ja salvestada mõõdetud vahemaid stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // kui takistusi ei tuvastatud {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // kui roboti ees pole midagi. ultrasonicDistance on mõne ultraheli puhul negatiivne, kui takistust 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.5 sekundit. Teil võib tekkida vajadus seda reguleerida, kui teie rattad on erineva suurusega kui näite allkirjastamata pikk turnStartTime = millis (); // säästame aega, mida hakkasime pöörama ((millis ()-turnStartTime) <timeToTurnLeft) // jääge sellesse ahelasse, kuni timeToTurnLeft on möödas {// pöörake vasakule, pidage meeles, et kui mõlemad on seatud väärtusele "180", pöörab see. rightMotor.write (180); leftMotor.write (180); } olek = DRIVE_FORWARD; }} void readUltrasonicSensors () {// see on ultraheli 2. Teise anduri kasutamisel peate võib -olla neid käske muutma. digitalWrite (ultraheli2TrigPin, HIGH); delayMikrosekundid (10); // hoiab trig -pin kõrgel vähemalt 10 mikrosekundit digitalWrite (ultrasonic2TrigPin, 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 (); }}