Kaip sukurti robotą namuose (su nuotraukomis)

Turinys:

Kaip sukurti robotą namuose (su nuotraukomis)
Kaip sukurti robotą namuose (su nuotraukomis)

Video: Kaip sukurti robotą namuose (su nuotraukomis)

Video: Kaip sukurti robotą namuose (su nuotraukomis)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, Gegužė
Anonim

Ar norite išmokti kurti savo robotą? Yra daugybė skirtingų tipų robotų, kuriuos galite pagaminti patys. Dauguma žmonių nori matyti, kaip robotas atlieka paprastas užduotis - pereiti iš taško A į tašką B. Jūs galite visiškai pagaminti robotą iš analoginių komponentų arba nusipirkti pradinį rinkinį nuo nulio! Savo roboto kūrimas yra puikus būdas išmokti elektronikos ir kompiuterinio programavimo.

Žingsniai

1 dalis iš 6: Roboto surinkimas

1123333 1
1123333 1

Žingsnis 1. Surinkite komponentus

Norėdami sukurti pagrindinį robotą, jums reikės kelių paprastų komponentų. Daugumą, jei ne visus, šių komponentų galite rasti vietinėje elektronikos pomėgių parduotuvėje arba keliuose internetiniuose mažmenininkuose. Kai kuriuose pagrindiniuose rinkiniuose taip pat gali būti visi šie komponentai. Šiam robotui nereikia litavimo:

  • „Arduino Uno“(arba kitas mikrovaldiklis)
  • 2 nuolatinio sukimosi servos
  • 2 ratai, kurie tinka servams
  • 1 ratukas
  • 1 maža be litavimo duonos lenta (ieškokite duonos lentos, kurios abiejose pusėse būtų dvi teigiamos ir neigiamos linijos)
  • 1 atstumo jutiklis (su keturių kontaktų jungties kabeliu)
  • 1 mini mygtukinis jungiklis
  • 1 10 kΩ rezistorius
  • 1 USB kabelis nuo A iki B
  • 1 atskirtų antraščių rinkinys
  • 1 6 x AA baterijų laikiklis su 9V DC maitinimo lizdu
  • 1 pakuotė jungiamųjų laidų arba 22 gabaritų kablys
  • Tvirta dvipusė juosta arba karšti klijai
1123333 2
1123333 2

2 žingsnis. Apverskite akumuliatorių taip, kad plokščia nugara būtų nukreipta į viršų

Jūs sukursite roboto kūną, kaip pagrindą naudodami akumuliatorių.

1123333 3
1123333 3

Žingsnis 3. Sulygiuokite du servo elementus akumuliatoriaus bloko gale

Tai turėtų būti akumuliatoriaus laido išėjimo pabaiga. Servai turi liesti dugną, o kiekvieno sukimosi mechanizmai turi būti nukreipti į akumuliatoriaus paketo šonus. Servos turi būti tinkamai išlygintos, kad ratai eitų tiesiai. Servo laidai turi būti atjungti nuo akumuliatoriaus.

1123333 4
1123333 4

Žingsnis 4. Pritvirtinkite servo juosteles arba klijus

Įsitikinkite, kad jie tvirtai pritvirtinti prie akumuliatoriaus. Servo nugarėlės turi būti lygios su akumuliatoriaus bloko nugarėle.

Servai dabar turėtų užimti galinę pusę akumuliatoriaus

1123333 5
1123333 5

Žingsnis 5. Duonos lentą statmenai pritvirtinkite prie akumuliatoriaus atviros vietos

Jis turėtų šiek tiek pakabinti virš akumuliatoriaus bloko priekio ir išsikišti už kiekvienos pusės. Prieš tęsdami įsitikinkite, kad jis tvirtai pritvirtintas. „A“eilutė turėtų būti arčiausiai servo.

1123333 6
1123333 6

Žingsnis 6. Pritvirtinkite „Arduino“mikrovaldiklį prie servo viršūnių

Jei tinkamai pritvirtinote servo, turi būti plokščia erdvė, kurią jie paliečia. Priklijuokite „Arduino“plokštę prie šios plokščios vietos taip, kad „Arduino“USB ir maitinimo jungtys būtų nukreiptos į nugarą (toli nuo duonos lentos). „Arduino“priekis turėtų vos vos sutapti su duonos lenta.

1123333 7
1123333 7

Žingsnis 7. Padėkite ratus ant servo

Tvirtai prispauskite ratus prie servo sukamojo mechanizmo. Tam gali prireikti didelės jėgos, nes ratai suprojektuoti taip, kad kuo geriau sukibtų, kad būtų užtikrintas geriausias sukibimas.

1123333 8
1123333 8

Žingsnis 8. Pritvirtinkite ratuką prie duonos lentos apačios

Jei apversite važiuoklę, turėtumėte pamatyti šiek tiek duonos lentos, einančios už akumuliatoriaus. Pritvirtinkite ratuką prie šios išplėstinės dalies, jei reikia, naudokite stovus. Ratukas veikia kaip priekinis ratas, leidžiantis robotui lengvai pasukti bet kuria kryptimi.

Jei nusipirkote rinkinį, ratukas galėjo būti komplektuojamas su keliais stovais, kuriais galite užtikrinti, kad ratukas pasiektų žemę. i

2 dalis iš 6: Roboto prijungimas

1123333 9
1123333 9

1 žingsnis. Nutraukite dvi 3 kontaktų antraštes

Juos naudosite, norėdami prijungti servo prie duonos lentos. Stumkite smeigtukus žemyn per antraštę, kad kaiščiai išeitų vienodu atstumu iš abiejų pusių.

1123333 10
1123333 10

2 žingsnis. Įdėkite dvi antraštes į duonos lentos E eilutės 1-3 ir 6-8 kaiščius

Įsitikinkite, kad jie tvirtai įkišti.

1123333 11
1123333 11

Žingsnis 3. Prijunkite servo kabelius prie antraščių, juodą kabelį kairėje pusėje (1 ir 6 kaiščiai)

Tai prijungs servo prie duonos lentos. Įsitikinkite, kad kairysis servo įrenginys yra prijungtas prie kairiosios antraštės, o dešinysis - prie dešinės.

1123333 12
1123333 12

Žingsnis 4. Prijunkite raudonus trumpiklius nuo C2 ir C7 kaiščių prie raudonų (teigiamų) bėgių kaiščių

Būtinai naudokite raudoną bėgelį duonos lentos gale (arčiau likusios važiuoklės).

1123333 13
1123333 13

Žingsnis 5. Prijunkite juodus trumpiklius nuo kaiščių B1 ir B6 prie mėlynos (įžemintos) bėgių kaiščių

Įsitikinkite, kad naudojate mėlyną bėgelį duonos lentos gale. Nekiškite jų į raudonus bėgelių kaiščius.

1123333 14
1123333 14

Žingsnis 6. Prijunkite baltus trumpiklius nuo 12 ir 13 „Arduino“kaiščių prie A3 ir A8

Tai leis „Arduino“valdyti servus ir pasukti ratus.

1123333 15
1123333 15

Žingsnis 7. Pritvirtinkite jutiklį prie duonos lentos priekio

Jis nėra prijungtas prie išorinių maitinimo bėgelių ant duonos lentos, o į pirmąją raidžių kaiščių eilę (J). Įsitikinkite, kad įdėjote jį tiksliai centre, kad kiekvienoje pusėje būtų vienodas skaičius kaiščių.

1123333 16
1123333 16

Žingsnis 8. Prijunkite juodą jungiamąjį laidą nuo kaiščio I14 prie pirmojo turimo mėlyno bėgelio kaiščio jutiklio kairėje

Tai įžemins jutiklį.

1123333 17
1123333 17

Žingsnis 9. Prijunkite raudoną jungiamąjį laidą nuo kaiščio I17 prie pirmo turimo raudono bėgelio kaiščio, esančio jutiklio dešinėje

Tai maitins jutiklį.

1123333 18
1123333 18

Žingsnis 10. Prijunkite baltus trumpiklius nuo I15 kaiščio prie 9 kaiščio „Arduino“ir nuo I16 iki 8 kaiščio

Tai perduos informaciją iš jutiklio į mikrovaldiklį.

3 dalis iš 6: Maitinimo laidų prijungimas

1123333 19
1123333 19

Žingsnis 1. Apverskite robotą ant šono, kad matytumėte pakuotėje esančias baterijas

Pasukite taip, kad akumuliatoriaus kabelio apačioje būtų kairė.

1123333 20
1123333 20

Žingsnis 2. Prijunkite raudoną laidą prie antrosios spyruoklės iš kairės apačios

Įsitikinkite, kad akumuliatorius tinkamai nukreiptas.

1123333 21
1123333 21

Žingsnis 3. Prijunkite juodą laidą prie paskutinės spyruoklės apačioje dešinėje

Šie du kabeliai padės užtikrinti tinkamą „Arduino“įtampą.

1123333 22
1123333 22

Žingsnis 4. Prijunkite raudonus ir juodus laidus prie kraštutinės dešinės raudonos ir mėlynos spalvos smeigtukų duonos lentos gale

Juodasis kabelis turi būti įkištas į mėlyną bėgelio kaištį ties 30 kaiščiu. Raudonas kabelis turi būti įkištas į raudoną bėgelio kaištį prie 30 kaiščio.

1123333 23
1123333 23

Žingsnis 5. Prijunkite juodą laidą nuo „Arduino“GND kaiščio prie mėlynojo bėgio

Prijunkite jį prie mėlynojo bėgelio 28 kaiščio.

1123333 24
1123333 24

Žingsnis 6. Prijunkite juodą laidą nuo galinio mėlynojo bėgelio prie priekinio mėlynojo bėgelio prie 29 kaiščio kiekvienam

Nejunkite raudonų bėgelių, nes greičiausiai sugadinsite „Arduino“.

1123333 25
1123333 25

Žingsnis 7. Prijunkite raudoną laidą nuo priekinio raudonojo bėgelio prie 30 kaiščio prie 5 V kaiščio „Arduino“

Tai suteiks energijos „Arduino“.

1123333 26
1123333 26

Žingsnis 8. Įdėkite mygtuko jungiklį į tarpą tarp kaiščių 24-26 eilučių

Šis jungiklis leis išjungti robotą neatjungus maitinimo.

1123333 27
1123333 27

Žingsnis 9. Prijunkite raudoną laidą nuo H24 prie raudono bėgelio kitame prieinamame kaištyje, esančiame dešinėje nuo jutiklio

Tai įjungs mygtuką.

1123333 28
1123333 28

Žingsnis 10. Naudokite rezistorių, kad prijungtumėte H26 prie mėlynojo bėgelio

Prijunkite jį prie kaiščio, esančio šalia juodos vielos, kurią prijungėte prieš kelis žingsnius.

1123333 29
1123333 29

Žingsnis 11. Prijunkite baltą laidą nuo G26 prie „Arduino“2 kaiščio

Tai leis „Arduino“užregistruoti mygtuką.

4 dalis iš 6: „Arduino“programinės įrangos diegimas

1123333 30
1123333 30

Žingsnis 1. Atsisiųskite ir ištraukite „Arduino IDE“

Tai yra „Arduino“kūrimo aplinka ir leidžia programuoti instrukcijas, kurias galite įkelti į „Arduino“mikrovaldiklį. Ją galite nemokamai atsisiųsti iš arduino.cc/en/main/software. Išpakuokite atsisiųstą failą dukart spustelėdami jį ir perkelkite aplanką į lengvai pasiekiamą vietą. Jūs iš tikrųjų neįdiegsite programos. Vietoj to, jūs tiesiog paleisite jį iš išgauto aplanko, dukart spustelėdami arduino.exe.

1123333 31
1123333 31

Žingsnis 2. Prijunkite akumuliatorių prie „Arduino“

Prijunkite akumuliatoriaus lizdą prie „Arduino“jungties, kad suteiktumėte energijos.

1123333 32
1123333 32

Žingsnis 3. Prijunkite „Arduino“prie kompiuterio per USB

„Windows“greičiausiai neatpažins įrenginio.

1123333 33
1123333 33

Žingsnis 4. Paspauskite

⊞ Win+R. ir tipas devmgmt.msc.

Tai paleis įrenginių tvarkytuvę.

1123333 34
1123333 34

Žingsnis 5. Dešiniuoju pelės mygtuku spustelėkite „Nežinomas įrenginys“skiltyje „Kiti įrenginiai“ir pasirinkite „Atnaujinti tvarkyklės programinę įrangą“

" Jei nematote šios parinkties, spustelėkite „Ypatybės“, pasirinkite skirtuką „Vairuotojas“, tada spustelėkite „Atnaujinti tvarkyklę“.

1123333 35
1123333 35

Žingsnis 6. Pasirinkite „Naršyti mano kompiuteryje tvarkyklės programinę įrangą

" Tai leis jums pasirinkti tvarkyklę, kurią gavote kartu su „Arduino IDE“.

1123333 36
1123333 36

Žingsnis 7. Spustelėkite „Naršyti“, tada eikite į aplanką, kurį išskleidėte anksčiau

Viduje rasite aplanką „tvarkyklės“.

1123333 37
1123333 37

Žingsnis 8. Pasirinkite aplanką „tvarkyklės“ir spustelėkite „Gerai“

" Patvirtinkite, kad norite tęsti, jei esate įspėti apie nežinomą programinę įrangą.

5 dalis iš 6: Roboto programavimas

1123333 38
1123333 38

1 veiksmas. Paleiskite „Arduino IDE“dukart spustelėdami failą arduino.exe, esantį IDE aplanke

Jus pasitiks tuščias projektas.

1123333 39
1123333 39

Žingsnis 2. Įklijuokite šį kodą, kad jūsų robotas važiuotų tiesiai

Žemiau pateiktas kodas privers jūsų „Arduino“nuolat judėti į priekį.

#include // tai prideda "Servo" biblioteką prie programos // taip sukuriami du servo objektai Servo leftMotor; Servo dešinėMotor; void setup () {leftMotor.attach (12); // jei netyčia pakeitėte savo servo kaiščių numerius, čia galite sukeisti numerius rightMotor.attach (13); } void loop () {leftMotor.write (180); // nenutrūkstamai sukantis, 180 nurodo servo judėti visu greičiu „į priekį“. rightMotor. rašyti (0); // jei abu yra 180, robotas eis ratu, nes servos yra apverstos. „0“nurodo judėti visu greičiu „atgal“. }

1123333 40
1123333 40

Žingsnis 3. Sukurkite ir įkelkite programą

Spustelėkite dešinės rodyklės mygtuką viršutiniame kairiajame kampe, kad sukurtumėte ir įkeltumėte programą į prijungtą „Arduino“.

Galbūt norėsite pakelti robotą nuo paviršiaus, nes jis tik toliau judės į priekį, kai programa bus įkelta

1123333 41
1123333 41

Žingsnis 4. Pridėkite žudymo jungiklio funkciją

Pridėkite šį kodą prie savo kodo skilties „void loop ()“, kad įjungtumėte žudymo jungiklį, esantį virš „write ()“funkcijų.

if (digitalRead (2) == HIGH) // tai registruojasi paspaudus mygtuką ant „Arduino“2 kaiščio {while (1) {leftMotor.write (90); // "90" yra neutrali servo padėtis, kuri liepia nustoti sukti į dešinęMotor.write (90); }}

1123333 42
1123333 42

5 veiksmas. Įkelkite ir išbandykite savo kodą

Pridėję žudymo jungiklio kodą, galite įkelti ir išbandyti robotą. Jis turėtų toliau važiuoti į priekį, kol paspausite jungiklį, tada jis nustos judėti. Visas kodas turėtų atrodyti taip:

#include // taip sukuriami du servo objektai Servo leftMotor; Servo dešinėMotor; 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 dalis iš 6: pavyzdys

Žingsnis 1. Sekite pavyzdžiu

Šis kodas naudos jutiklį, pritvirtintą prie roboto, kad jis pasuktų į kairę, kai susiduria su kliūtimi. Žiūrėkite kodo komentarus, kad sužinotumėte, ką daro kiekviena dalis. Žemiau pateiktas kodas yra visa programa.

#įtraukti „Servo leftMotor“; Servo dešinėMotor; const int serialPeriod = 250; // tai apriboja išvestį į konsolę iki 1/4 sekundės nepasirašyto ilgai timeSerialDelay = 0; const int loopPeriod = 20; // tai nustato, kaip dažnai jutiklis nuskaito rodmenis iki 20 ms, o tai yra 50Hz dažnis be parašo ilgai timeLoopDelay = 0; // tai priskiria TRIG ir ECHO funkcijas „Arduino“kaiščiams. Sureguliuokite skaičius čia, jei prijungėte skirtingai const int ultrasonic2TrigPin = 8; const int ultragarsas2EchoPin = 9; int ultragarsas2Distance; int ultragarsas2Duration; // tai apibrėžia dvi galimas roboto būsenas: važiavimas į priekį arba sukimas į kairę #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = važiuoti į priekį (Numatytasis), 1 = pasukti į kairę void setup () {Serial.begin (9600); // šios jutiklių kaiščių konfigūracijos pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultragarsinis2EchoPin, INPUT); // tai priskiria variklius prie „Arduino“kaiščių leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // tai aptinka nužudymo jungiklį {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // tai spausdina derinimo pranešimus į serijinę konsolę, jei (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // tai nurodo jutikliui nuskaityti ir išsaugoti išmatuotus atstumus stateMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // jei kliūčių neaptikta {if (ultragarsinis2 atstumas> 6 || ultragarsinis2 atstumas <0) // jei priešais robotą nieko nėra. ultragarsasAtstumas kai kuriems ultragarso prietaisams bus neigiamas, jei nėra kliūčių {// važiuoti į priekį dešinėnMotor.write (180); leftMotor.write (0); } else // jei priešais mus yra objektas {state = TURN_LEFT; }} else if (state == TURN_LEFT) // jei aptinkama kliūtis, pasukite į kairę {unsigned long timeToTurnLeft = 500; // apsisukti 90 laipsnių užtrunka apie.5 sekundes. Jums gali tekti tai pakoreguoti, jei jūsų ratai yra kitokio dydžio, nei pavyzdinis neparašytas ilgas turnStartTime = millis (); // sutaupykite laiko, kurį pradėjome sukti, kol ((millis ()-turnStartTime) <timeToTurnLeft) // pasilikite šioje kilpoje, kol pasibaigs laikas. rightMotor.write (180); leftMotor.write (180); } būsena = DRIVE_FORWARD; }} void readUltrasonicSensors () {// tai skirta ultragarsui 2. Jei naudosite kitą jutiklį, gali tekti pakeisti šias komandas. „DigitalWrite“(ultragarsas2TrigPin, HIGH); delayMikrosekundės (10); // išlaiko trigerio kaištį aukštą mažiausiai 10 mikrosekundžių digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultragarsinis2EchoPin, HIGH); ultragarsinis2 atstumas = (ultragarso2 trukmė/2)/29; } // toliau pateikiamos konsolės derinimo klaidos. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultragarsinis2 atstumas); Serijinis atspaudas ("cm"); Serial.println (); timeSerialDelay = milis (); }}

Rekomenduojamas: