Kaip pasidaryti robotą namuose (su nuotraukomis)

Turinys:

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

Video: Kaip pasidaryti robotą namuose (su nuotraukomis)

Video: Kaip pasidaryti robotą namuose (su nuotraukomis)
Video: BROKUOTAS NESĄŽININGAS ŽEMĖLAPIS! 2024, Gegužė
Anonim

Ar norite išmokti pasigaminti savo robotą? Yra daugybė skirtingų tipų robotų, kuriuos galite sukurti patys. Dauguma žmonių nori matyti robotą, kuris lengvai pereina iš taško A į B. Jūs galite visiškai sukurti robotą iš analoginių komponentų arba nusipirkti pradinį rinkinį. Sukurti savo robotą yra puikus būdas išmokti elektronikos ir kompiuterinio programavimo.

Žingsnis

1 dalis iš 5: Roboto surinkimas

1123333 1
1123333 1

Žingsnis 1. Surinkite komponentus

Norėdami sukurti pagrindinį robotą, jums reikės kelių paprastų komponentų. Daugumą ar visus šiuos komponentus galite rasti vietinėje elektronikos pomėgių parduotuvėje arba kai kuriuose internetiniuose mažmenininkuose. Kai kuriuose rinkiniuose yra visi šie komponentai. Šiam robotui nereikia litavimo:

  • „Arduino Uno“(arba kitas mikrovaldiklis)
  • 2 servai 360 laipsnių kampu
  • 2 ratai, atitinkantys servo
  • 1 laisvas ratas
  • 1 bandymo lenta (duonos plokštė arba projekto plokštė), kuri nebuvo lituojama (ieškokite bandymo plokštės, kurios abiejose pusėse yra dvi teigiamos ir neigiamos eilutės)
  • 1 artumo jutiklis (su keturių kontaktų jungties kabeliu)
  • 1 mygtuko jungiklis
  • 1 rezistorius 10 kΩ
  • 1 USB kabelis nuo A iki B
  • 1 išardomų antraščių rinkinys
  • 1 6 x AA baterijų laikiklis su 9 V nuolatinės srovės maitinimo lizdu
  • 1 pakuotė su 22. trumpikliu arba vienu kabeliu
  • Izoliacija pirmyn ir atgal (dviguba juosta) arba klijų pistoletas
1123333 2
1123333 2

Žingsnis 2. Pasukite baterijų skyrių taip, kad jo plokščia nugara būtų nukreipta į viršų

Jūs sukursite roboto korpusą, kaip pagrindą naudodami akumuliatoriaus skyrių.

1123333 3
1123333 3

Žingsnis 3. Akumuliatoriaus skyriaus gale išdėstykite du servo variklius, nukreiptus ta pačia kryptimi

Šis galas yra galas, kuriame kabelis išeina iš akumuliatoriaus. Servos turi liesti dugną, o kiekvieno servo sukimosi mechanizmas turi būti nukreiptas į išorę iš akumuliatoriaus skyriaus šonų. Svarbu, kad šie servai būtų teisingai išdėstyti, kad ratai būtų tiesūs. Servo kabeliai turi būti iš akumuliatoriaus skyriaus galo.

1123333 4
1123333 4

Žingsnis 4. Klijuokite servos savo izoliacija arba klijais

Įsitikinkite, kad servo sistema tvirtai pritvirtinta prie akumuliatoriaus skyriaus. Servo galinė dalis turi būti suderinta su akumuliatoriaus skyriaus galine dalimi.

Dabar servoservisai turėtų užimti pusę vietos akumuliatoriaus skyriaus gale

1123333 5
1123333 5

Žingsnis 5. Priklijuokite bandymo plokštę statmenai akumuliatoriaus skyriaus likusiai erdvei

Ši bandymo plokštė šiek tiek pakabins virš akumuliatoriaus skyriaus priekio ir tęsis į abi puses. Prieš tęsdami įsitikinkite, kad bandymo plokštė yra sandari. „A“eilutė turėtų būti arčiausiai servo.

1123333 6
1123333 6

Žingsnis 6. Pritvirtinkite „Arduino“mikrovaldiklį prie servo viršaus

Jei teisingai pritvirtinsite servo servetėlę, plokščia dviejų servo dalių dalis turi liesti viena kitą. Priklijuokite „Arduino“plokštę prie šios plokščios vietos, kad USB ir „Arduino“maitinimo jungtys būtų nukreiptos žemyn (toli nuo bandymo plokštės). „Arduino“priekis sutaps su bandymo lenta.

1123333 7
1123333 7

Žingsnis 7. Sumontuokite ratus ant servo

Tvirtai prispauskite ratus prie besisukančio servo mechanizmo. Tam gali prireikti didelės jėgos, nes ratai suprojektuoti taip, kad skylės tiksliai atitiktų servo antgalio formą.

1123333 8
1123333 8

Žingsnis 8. Įdėkite laisvą ratą bandymo plokštės apačioje

Jei apversite robotą aukštyn kojomis, pamatysite mažą bandymo plokštę, kabančią ant akumuliatoriaus skyriaus. Prie šios kabančios dalies pritvirtinkite laisvą ratą. Jei reikia, naudokite pleištą. Laisvas ratas tarnauja kaip priekinis ratas, leidžiantis robotui lengvai pasukti bet kuria kryptimi.

Jei įsigijote rinkinį, laisvas ratas gali turėti keletą pleištų, kuriais galite įsitikinti, kad ratas gali laisvai liesti žemę

2 dalis iš 5: Roboto prijungimas

1123333 9
1123333 9

Žingsnis 1. Iškirpkite dvi 3 kontaktų antraštes

Tai naudosite, norėdami prijungti servo prie bandymo plokštės. Stumkite kaiščius žemyn per antraštes, kad jie būtų vienodo atstumo iš abiejų pusių.

1123333 10
1123333 10

Žingsnis 2. Įdėkite dvi antraštes į bandymo plokštės E eilutės 1-3 ir 6-8 kaiščius

Įsitikinkite, kad jie tvirtai arba tvirtai įkišti.

1123333 11
1123333 11

Žingsnis 3. Prijunkite servo laidus prie antraštės, o juoda viela - kairėje pusėje (1 ir 6 kaiščiai)

Taip servo bus prijungtas prie bandymo plokštės. Įsitikinkite, kad kairioji servo sistema prijungta prie kairiosios antraštės, o dešinioji - prie dešinės.

1123333 12
1123333 12

Žingsnis 4. Prijunkite raudoną jungiamąjį laidą iš kaiščių C2 ir C7 prie raudono bėgelio kaiščio (teigiamas)

Būtinai naudokite raudoną bėgelį bandymo plokštės gale (arčiau likusio roboto korpuso).

1123333 13
1123333 13

Žingsnis 5. Prijunkite juodą jungiamąjį laidą iš kaiščių B1 ir B6 prie mėlyno bėgelio kaiščio (įžemintas)

Būtinai naudokite mėlyną bėgelį bandymo plokštės gale. Nemontuokite kabelio prie raudono bėgelio kaiščio.

1123333 14
1123333 14

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

Tai leis „Arduino“valdyti servo ir pasukti ratą.

1123333 15
1123333 15

Žingsnis 7. Pritvirtinkite jutiklį prie bandymo plokštės priekio

Jutiklis pritvirtintas ne prie bandymo plokštės išorinio maitinimo bėgelio, o prie pirmųjų dviejų kaiščių eilių (J). Įsitikinkite, kad įdėjote jį tiesiai į vidurį, kad kiekvienoje pusėje būtų vienodas skaičius tuščių kaiščių.

1123333 16
1123333 16

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

Tai įžemins jutiklį.

1123333 17
1123333 17

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

Tai suteiks jutikliui energijos.

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 suteiks informaciją iš jutiklio į mikrovaldiklį.

3 dalis iš 5: Maitinimo kabelio montavimas

1123333 19
1123333 19

1 žingsnis. Apverskite robotą, kad pamatytumėte akumuliatoriaus skyrių viduje

Išdėstykite baterijų skyrių taip, kad kabelis išeitų per apatinį kairįjį kampą.

1123333 20
1123333 20

Žingsnis 2. Prijunkite raudoną laidą su antrąja spyruokle iš kairės apačioje

Įsitikinkite, kad baterijų skyrius yra tinkamai sulygiuotas arba nukreiptas teisinga kryptimi.

1123333 21
1123333 21

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

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

1123333 22
1123333 22

Žingsnis 4. Prijunkite raudonus ir juodus laidus prie raudonų ir mėlynų kaiščių, kurie yra dešinėje bandymo plokštės gale

Juoda viela turėtų eiti į mėlyną bėgelio kaištį ant 30 kaiščio. Raudona viela turėtų eiti į raudoną bėgelio kaištį ant 30 kaiščio.

1123333 23
1123333 23

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

Prijunkite laidą prie mėlynojo bėgelio 28 kaiščio.

1123333 24
1123333 24

Žingsnis 6. Prijunkite juodą laidą nuo mėlynojo bėgelio galo prie mėlynojo bėgelio priekio ant abiejų bėgių 29 kaiščio

Nejunkite raudonojo bėgelio, nes galite sugadinti „Arduino“.

1123333 25
1123333 25

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

Tai suteiks energijos „Arduino“.

1123333 26
1123333 26

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

Šis jungiklis leis jums išjungti robotą, neišjungiant maitinimo.

1123333 27
1123333 27

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

Tai suteiks mygtukui galios.

1123333 28
1123333 28

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

Prijunkite jį prie kaiščio tiesiai šalia juodos vielos, kurią ką tik prijungėte atlikdami ankstesnius veiksmus.

1123333 29
1123333 29

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

Tai leis „Arduino“aptikti mygtukus.

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

1123333 30
1123333 30

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

Čia kuriamas „Arduino“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 failą ir perkeldami jame esantį aplanką į lengvai pasiekiamą vietą. Jūs iš tikrųjų neįdiegsite programos, o tiesiog paleisite ją iš aplanko, kuris buvo išgautas dukart spustelėjus arduino.exe.

1123333 31
1123333 31

Žingsnis 2. Prijunkite akumuliatoriaus skyrių prie „Arduino“

Įjunkite galinį akumuliatoriaus lizdą į „Arduino“jungtį, kad ją įjungtumėte.

1123333 32
1123333 32

Žingsnis 3. Įdėkite „Arduino“į kompiuterį per USB

Tikėtina, kad „Windows“neatpažins įrenginio.

1123333 33
1123333 33

Žingsnis 4. Paspauskite

Win+R. ir tipas devmgmt.msc.

Ši komanda atidarys įrenginių tvarkytuvę.

1123333 34
1123333 34

5 veiksmas. 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ą Tvarkyklė, tada spustelėkite Atnaujinti tvarkyklę.

1123333 35
1123333 35

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

Tai leis jums pasirinkti integruotas tvarkykles, pateiktas kartu su „Arduino IDE“.

1123333 36
1123333 36

Žingsnis 7. Spustelėkite Naršyti, tada atidarykite anksčiau išgautą aplanką

Jame rasite tvarkyklių aplanką.

1123333 37
1123333 37

Žingsnis 8. Pasirinkite tvarkyklių aplanką ir spustelėkite Gerai

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

5 dalis iš 5: Robotų programavimas

1123333 38
1123333 38

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

Jus pasitiks tuščias projektas.

1123333 39
1123333 39

Žingsnis 2. Įklijuokite arba įklijuokite šį kodą, kad jūsų robotas būtų tobulesnis

Žemiau pateiktas kodas išlaikys jūsų „Arduino“.

#include // tai prideda „Servo“biblioteką prie programos // tokia komanda sukuria du servo objektus Servo leftMotor; Servo dešinėMotor; void setup () {leftMotor.attach (12); // jei netyčia pakeitėte savo servo kaiščio numerius, čia galite juos sukeisti rightMotor.attach (13); } void loop () {leftMotor.write (180); // sukant 360 laipsnių kampu (nuolatinis sukimasis), skaičius 180 nurodo servo varikliui judėti „pirmyn“visu greičiu. rightMotor.write (0); // jei abi reikšmės yra 180, robotas sukasi ratu, nes servo sistema yra atvirkštinė. „0“nurodo robotui judėti „atgal“visu greičiu. }

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 robotas ir toliau vaikščios į priekį po programos įkėlimo

1123333 41
1123333 41

Žingsnis 4. Pridėkite sustabdymo jungiklio funkciją (nužudymo jungiklį)

Pridėkite šį kodą prie kodo „void loop ()“skyriaus, kad pridėtumėte sustabdymo jungiklio funkciją „write ()“funkcijos viršuje.

if (digitalRead (2) == HIGH) // ši komanda vykdoma paspaudus mygtuką ant 2 kaiščio „Arduino“{while (1) {leftMotor.write (90); // "90" yra neutrali servo padėtis, kuri nurodo servo sustabdyti sukimąsi į dešinęMotor.write (90); }}

1123333 42
1123333 42

Žingsnis 5. Įkelkite ir patikrinkite savo kodą

Jau pridėję stabdymo jungiklio kodą, galite įkelti kodą ir išbandyti robotą. Robotas turėtų judėti į priekį, kol paspausite sustabdymo jungiklio mygtuką, dėl kurio robotas sustos. Visas kodas atrodys taip:

#include // tokia komanda sukuria du Servo leftMotor servo objektus; 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); }

Pavyzdys

Šis kodas naudos robote įdiegtus jutiklius, kad jis pasuktų į kairę, kai robotas susiduria su kliūtimi. Peržiūrėkite kodo komentarus, kad sužinotumėte, kaip naudoti kiekvieną dalį. Žemiau pateiktas kodas yra visa programa.

#įtraukti „Servo leftMotor“; Servo dešinėMotor; const int serialPeriod = 250; // šis kodas suteikia konsolės išvesties laiko atsilikimui kas 1/4 sekundės (250 ms) nepasirašytą ilgą laikąSerialDelay = 0; const int loopPeriod = 20; // šis kodas nustato jutiklio skaitymo dažnį iki 20 ms, o tai yra 50 Hz nepasirašytas ilgas laikasLoopDelay = 0; // šis kodas priskiria TRIG ir ECHO funkcijas „Arduino“kaiščiams. Sureguliuokite skaičius čia, jei juos sujungsite kitaip. const int ultragarsas2EchoPin = 9; int ultragarsas2Distance; int ultragarsas2Duration; // šis kodas apibrėžia dvi galimas roboto būsenas: tęsti pirmyn arba pasukti į kairę #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = tęsti pirmyn (Numatytasis), 1 = pasukti į kairę void setup () {Serial.begin (9600); // šis jutiklis nustato kaiščio konfigūraciją pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultragarsinis2EchoPin, INPUT); // tai priskiria variklį prie „Arduino“kaiščių leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // šis kodas aptinka „sustabdymą“{while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // šis kodas spausdina derinimo pranešimus į serijinę konsolę, jei (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // šis kodas nurodo jutikliui skaityti ir saugoti duomenis apie išmatuotą atstumo būsenąMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // jei kliūtis neaptinkama {if (ultragarsinis2 atstumas> 6 || ultragarsinis2 atstumas <0) // jei nieko nėra priešais robotą. ultragarsasAtstumas kai kuriems ultragarso prietaisams bus neigiamas, jei nebus kliūčių {// važiuoti į priekį rightMotor.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 0,5 sekundės. Jums gali tekti koreguoti šią vertę, jei jūsų ratų dydis skiriasi nuo dydžio, nurodyto nepasirašyto ilgo turnStartTime = milis (); // išlaikyti sąlygą, kai robotas pradeda suktis, kol ((millis ()-turnStartTime) <timeToTurnLeft) // išlaikyti šį ciklą, kol timeToTurnLeft (500) praeis {// pasukti į kairę, atminkite, kad kai abu yra „180“, robotas pasisuks. rightMotor.write (180); leftMotor.write (180); } būsena = DRIVE_FORWARD; }} void readUltrasonicSensors () {// tai skirta ultragarsui 2. Jei naudojate kitą jutiklį, gali tekti pakeisti šią komandą. „DigitalWrite“(ultragarsas2TrigPin, HIGH); delayMikrosekundės (10); // traukite TRIG kaištį aukštai 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: