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
Ž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
2 žingsnis. Apverskite akumuliatorių taip, kad plokščia nugara būtų nukreipta į viršų
Jūs sukursite roboto kūną, kaip pagrindą naudodami akumuliatorių.
Ž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.
Ž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
Ž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.
Ž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.
Ž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.
Ž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
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ų.
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.
Ž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.
Ž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).
Ž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.
Žingsnis 6. Prijunkite baltus trumpiklius nuo 12 ir 13 „Arduino“kaiščių prie A3 ir A8
Tai leis „Arduino“valdyti servus ir pasukti ratus.
Ž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ų.
Ž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į.
Ž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į.
Ž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
Žingsnis 1. Apverskite robotą ant šono, kad matytumėte pakuotėje esančias baterijas
Pasukite taip, kad akumuliatoriaus kabelio apačioje būtų kairė.
Žingsnis 2. Prijunkite raudoną laidą prie antrosios spyruoklės iš kairės apačios
Įsitikinkite, kad akumuliatorius tinkamai nukreiptas.
Ž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ą.
Ž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.
Ž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.
Ž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“.
Žingsnis 7. Prijunkite raudoną laidą nuo priekinio raudonojo bėgelio prie 30 kaiščio prie 5 V kaiščio „Arduino“
Tai suteiks energijos „Arduino“.
Žingsnis 8. Įdėkite mygtuko jungiklį į tarpą tarp kaiščių 24-26 eilučių
Šis jungiklis leis išjungti robotą neatjungus maitinimo.
Ž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ą.
Ž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.
Ž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
Ž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.
Žingsnis 2. Prijunkite akumuliatorių prie „Arduino“
Prijunkite akumuliatoriaus lizdą prie „Arduino“jungties, kad suteiktumėte energijos.
Žingsnis 3. Prijunkite „Arduino“prie kompiuterio per USB
„Windows“greičiausiai neatpažins įrenginio.
Žingsnis 4. Paspauskite
⊞ Win+R. ir tipas devmgmt.msc.
Tai paleis įrenginių tvarkytuvę.
Ž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ę“.
Žingsnis 6. Pasirinkite „Naršyti mano kompiuteryje tvarkyklės programinę įrangą
" Tai leis jums pasirinkti tvarkyklę, kurią gavote kartu su „Arduino IDE“.
Žingsnis 7. Spustelėkite „Naršyti“, tada eikite į aplanką, kurį išskleidėte anksčiau
Viduje rasite aplanką „tvarkyklės“.
Ž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
1 veiksmas. Paleiskite „Arduino IDE“dukart spustelėdami failą arduino.exe, esantį IDE aplanke
Jus pasitiks tuščias projektas.
Ž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“. }
Ž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
Ž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); }}
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 (); }}