Kuidas kodus robotit ehitada (piltidega)

Sisukord:

Kuidas kodus robotit ehitada (piltidega)
Kuidas kodus robotit ehitada (piltidega)

Video: Kuidas kodus robotit ehitada (piltidega)

Video: Kuidas kodus robotit ehitada (piltidega)
Video: Miks on tavaline lihvimistarvikute organisatsioon teie jaoks halb ja kuidas seda peatada? 2024, Aprill
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

Samm 2. Pöörake aku nii, et lame seljaosa oleks ülespoole

Ehitate roboti keha, kasutades selleks akut.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

Samm 2. Sisestage kaks päist leivaplaadi rea E tihvtidesse 1-3 ja 6-8

Veenduge, et need on kindlalt sisestatud.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

Samm 6. Ühendage Arduino tihvtidelt 12 ja 13 valged hüppajajuhtmed A3 ja A8 -ga

See võimaldab Arduino juhtida servosid ja keerata rattaid.

1123333 15
1123333 15

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.

1123333 16
1123333 16

Samm 8. Ühendage tihvti I14 must hüppajajuhe esimese saadaoleva sinise rööpaga, mis asub anduri vasakul küljel

See maandab anduri.

1123333 17
1123333 17

Samm 9. Ühendage punane hüppajajuhe tihvtist I17 esimese saadaoleva punase rööpaga, mis asub andurist paremal

See annab andurile toite.

1123333 18
1123333 18

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

1123333 19
1123333 19

Samm 1. Pöörake robot külili, nii et näete pakis olevaid patareisid

Suunake see nii, et aku kaabel tuleb alt vasakule.

1123333 20
1123333 20

Samm 2. Ühendage punane juhe alt vasakult teise vedruga

Veenduge, et aku on õigesti suunatud.

1123333 21
1123333 21

Samm 3. Ühendage paremal allosas oleva viimase vedruga must traat

Need kaks kaablit aitavad Arduinole õiget pinget pakkuda.

1123333 22
1123333 22

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.

1123333 23
1123333 23

Samm 5. Ühendage Arduino GND tihvtist must juhe tagumise sinise rööpaga

Ühendage see sinise rööpa tihvtiga 28.

1123333 24
1123333 24

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.

1123333 25
1123333 25

Samm 7. Ühendage punane juhe eesmise punase rööpa juurest tihvtiga 30 Arduino 5V kontakti külge

See annab Arduinole jõudu.

1123333 26
1123333 26

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.

1123333 27
1123333 27

Samm 9. Ühendage punane juhe H24 -st anduri paremal asuva järgmise saadaoleva tihvti punase rööpaga

See käivitab nupu.

1123333 28
1123333 28

Etapp 10. Ühendage takisti abil H26 sinise rööpaga

Ühendage see tihvtiga mõne sammu eest ühendatud musta juhtme kõrval.

1123333 29
1123333 29

Samm 11. Ühendage G26 valge traat Arduino tihvtiga 2

See võimaldab Arduino'l vajutusnuppu registreerida.

Osa 4/6: Arduino tarkvara installimine

1123333 30
1123333 30

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.

1123333 31
1123333 31

Samm 2. Ühendage aku Arduinoga

Ühendage aku toitepesa Arduino pistikupessa, et anda sellele energiat.

1123333 32
1123333 32

Samm 3. Ühendage Arduino USB kaudu arvutiga

Tõenäoliselt ei tunne Windows seadet ära.

1123333 33
1123333 33

Samm 4. Vajutage

⊞ Win+R. ja tüüp devmgmt.msc.

See käivitab seadmehalduri.

1123333 34
1123333 34

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".

1123333 35
1123333 35

Samm 6. Valige "Sirvige minu arvutist draiveritarkvara

" See võimaldab teil valida Arduino IDE -ga kaasas olnud draiveri.

1123333 36
1123333 36

Samm 7. Klõpsake "Sirvi", seejärel navigeerige varem ekstraheeritud kausta

Sealt leiate kausta "draiverid".

1123333 37
1123333 37

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

1123333 38
1123333 38

Samm 1. Käivitage Arduino IDE, topeltklõpsates failil arduino.exe kaustas IDE

Teid tervitatakse tühja projektiga.

1123333 39
1123333 39

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". }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Soovitan: