Haluatko oppia tekemään oman robotin? On olemassa monia erilaisia robotteja, jotka voit rakentaa itse. Useimmat ihmiset haluavat nähdä robotin tekevän helpon työn siirtyäkseen pisteestä A paikkaan B. Voit rakentaa robotin kokonaan analogisista komponenteista tai ostaa aloituspakkauksen. Oman robotin tekeminen on loistava tapa oppia elektroniikkaa ja tietokoneohjelmointia.
Vaihe
Osa 1/5: Robotin kokoaminen
Vaihe 1. Kokoa osat
Perusrobotin rakentamiseen tarvitset muutamia yksinkertaisia komponentteja. Löydät suurimman osan tai kaikki nämä komponentit paikallisesta elektroniikkakaupasta tai joistakin verkkokaupoista. Jotkut sarjat sisältävät kaikki nämä komponentit. Tämä robotti ei vaadi juottamista:
- Arduino Uno (tai muu mikro -ohjain)
- 2 servoa 360 astetta
- 2 pyörää, jotka sopivat servoon
- 1 vapaa pyörä
- 1 testilevy (leipälevy tai projektialusta), jota ei ole juotettu (etsi testilevyä, jossa on kaksi positiivista ja negatiivista riviä kummallakin puolella)
- 1 läheisyysanturi (nelinapaisella liitäntäkaapelilla)
- 1 painonappikytkin
- 1 vastus 10 kΩ
- 1 USB A - B -kaapeli
- 1 sarja rikkoutuvia otsikoita
- 1 6 x AA -paristopidike, jossa 9 V DC -pistorasia
- 1 pakkaus 22. hyppykaapelit tai yksi kaapeli
- Eristys edestakaisin (kaksoisnauha) tai liimapistooli
Vaihe 2. Käännä paristokotelo niin, että sen tasainen selkäpuoli on ylöspäin
Robotin runko rakennetaan käyttämällä paristolokeroa pohjana.
Vaihe 3. Järjestä kaksi servoa samaan suuntaan akkupaikan päähän
Tämä pää on pää, jossa kaapeli tulee ulos akusta. Servojen tulee koskettaa pohjaa ja kunkin servon pyörimismekanismin tulee olla ulos paristolokeron sivuilta. On tärkeää, että nämä servot on järjestetty oikein niin, että pyörät ovat suorat. Servokaapeleiden on tultava ulos paristokotelon takaa.
Vaihe 4. Liimaa servot eristyksellä tai liimalla
Varmista, että servo on tiukasti kiinni paristolokerossa. Servon takaosan on oltava linjassa paristokotelon takaosan kanssa.
Nyt servojen pitäisi ottaa puolet tilasta akkupaikan takana
Vaihe 5. Kiinnitä testikortti kohtisuoraan paristolokeron jäljellä olevaan tilaan
Tämä testikortti roikkuu hieman paristokotelon etupuolella ja ulottuu molemmille puolille. Varmista, että testikortti on tiukka ennen kuin jatkat. A -rivin tulisi olla lähimpänä servoa.
Vaihe 6. Kiinnitä Arduino -mikro -ohjain servon yläosaan
Jos kiinnität servon oikein, molempien servojen tulee osua tasaisesti toisiinsa. Kiinnitä Arduino -kortti tähän tasaiseen kohtaan niin, että USB- ja Arduino -virtaliittimet ovat alaspäin (poispäin testikortista). Arduinon etuosa on päällekkäin testikortin kanssa.
Vaihe 7. Asenna pyörät servoihin
Paina pyörät lujasti pyörivään servomekanismiin. Tämä voi vaatia huomattavaa voimaa, koska pyörissä on reiät, jotka vastaavat tarkasti servokärjen muotoa.
Vaihe 8. Asenna vapaa pyörä testikortin pohjaan
Jos käännät robotin ylösalaisin, näet paristolokerosta riippuvan pienen testikortin. Kiinnitä vapaa pyörä tähän riippuvaan osaan. Käytä kiilaa tarvittaessa. Vapaa pyörä toimii etupyöränä, jonka avulla robotti voi kääntyä helposti mihin tahansa suuntaan.
Jos ostit sarjan, vapaassa pyörässä voi olla kiilat, joiden avulla voit varmistaa, että pyörä voi koskettaa maata vapaasti
Osa 2/5: Robotin kytkentä
Vaihe 1. Leikkaa kaksi 3-nastaista otsikkoa
Käytät tätä liittääksesi servon testikorttiin. Työnnä tapit alas otsikoiden läpi niin, että ne tulevat ulos yhtä pitkälle molemmilta puolilta.
Vaihe 2. Aseta kaksi otsikkoa testialustan rivin E nastoihin 1-3 ja 6-8
Varmista, että ne on asetettu tiukasti tai tukevasti paikalleen.
Vaihe 3. Liitä servojohdot otsakkeella ja musta johto vasemmalla puolella (nastat 1 ja 6)
Tämä yhdistää servon testikorttiin. Varmista, että vasen servo on liitetty vasempaan otsikkoon ja oikea servo oikeaan.
Vaihe 4. Liitä punainen hyppyjohdin nastoista C2 ja C7 punaiseen kiskoon (positiivinen)
Varmista, että käytät testikortin takana olevaa punaista kiskoa (lähempänä muuta robottirunkoa).
Vaihe 5. Liitä nastojen B1 ja B6 musta hyppyjohdin siniseen kiskoon (maadoitus)
Varmista, että käytät testikortin takana olevaa sinistä kiskoa. Älä kiinnitä kaapelia punaiseen kiskoon.
Vaihe 6. Liitä valkoiset hyppyjohdot Arduinon nastoista 12 ja 13 A3 ja A8
Tämä antaa Arduinolle mahdollisuuden hallita servoa ja kääntää pyörää.
Vaihe 7. Kiinnitä anturi testikortin etuosaan
Anturia ei ole asennettu testikortin ulkoiseen virtakiskoon, vaan kahteen ensimmäiseen riviin, joissa on kirjaimet (J). Varmista, että asetat sen keskelle, ja molemmilla puolilla on sama määrä tyhjiä tappeja.
Vaihe 8. Liitä musta hyppyjohdin nastasta I14 ensimmäiseen siniseen kiskotappiin anturin vasemmalla puolella
Tämä maadoittaa anturin.
Vaihe 9. Liitä punainen hyppyjohdin nastasta I17 ensimmäiseen punaiseen kiskotappiin anturin oikealla puolella
Tämä antaa virran anturille.
Vaihe 10. Liitä valkoiset hyppyjohtimet nastasta I15 nastaan 9 Arduinossa ja liittimestä I16 liittimeen 8
Tämä antaa tietoja anturista mikro -ohjaimeen.
Osa 3/5: Virtajohdon asentaminen
Vaihe 1. Käännä robotti ympäri, jotta näet paristolokeron sisällä
Järjestä paristolokero niin, että kaapeli tulee ulos vasemman alakulman kautta.
Vaihe 2. Kytke punainen johto toisesta jousesta vasemmalta alhaalta
Varmista, että paristolokero on oikein kohdistettu tai oikeaan suuntaan.
Vaihe 3. Liitä musta johto viimeiseen jouseen oikeassa alakulmassa
Nämä kaksi johtoa auttavat tarjoamaan oikean jännitteen Arduinolle.
Vaihe 4. Liitä punainen ja musta johto punaisiin ja sinisiin nastoihin, jotka ovat testikortin takana oikealla puolella
Mustan langan tulisi mennä tapin 30 siniseen kiskoon.
Vaihe 5. Liitä musta johto Arduinon GND -nastasta sinisen kiskon takaosaan
Kytke johto sinisen kiskon nastaan 28.
Vaihe 6. Liitä musta johto sinisen kiskon takaosasta sinisen kiskon etuosaan tapissa 29 molemmille kiskoille
Älä liitä punaista kiskoa, koska voit vahingoittaa Arduinoa.
Vaihe 7. Liitä punainen johto punaisen kiskon etuosasta nastassa 30 5 V: n nastaan Arduinossa
Tämä antaa virtaa Arduinolle.
Vaihe 8. Työnnä painikekytkin nastojen 24-26 väliseen tilaan
Tämän kytkimen avulla voit sammuttaa robotin ilman virtaa.
Vaihe 9. Liitä punainen johto H24: stä punaiseen kiskoon seuraavassa tyhjässä tapissa anturin oikealla puolella
Tämä antaa virtaa painikkeelle.
Vaihe 10. Liitä H26 siniseen kiskoon vastuksen avulla
Liitä se nastaan suoraan mustan johdon viereen, jonka juuri liitit edellisissä vaiheissa.
Vaihe 11. Liitä valkoinen johto G26: sta Arduinon nastaan 2
Tämä antaa Arduinolle mahdollisuuden tunnistaa painikkeet.
Osa 4/5: Arduino -ohjelmiston asennus
Vaihe 1. Lataa ja pura Arduino IDE
Täällä Arduino on kehitetty ja sen avulla voit ohjelmoida ohjeita, jotka voit ladata Arduino -mikrokontrolleriisi. Voit ladata sen ilmaiseksi osoitteesta arduino.cc/en/main/software. Pura ladattu tiedosto kaksoisnapsauttamalla tiedostoa ja siirtämällä sen sisältämä kansio helppokäyttöiseen paikkaan. Et todellakaan asenna ohjelmaa, vaan suoritat sen vain kansiosta, joka purettiin kaksoisnapsauttamalla arduino.exe-tiedostoa.
Vaihe 2. Liitä paristolokero Arduinoon
Kytke akun takaosa pistorasiaan Arduinon liittimeen.
Vaihe 3. Aseta Arduino tietokoneeseen USB -liitännän kautta
On todennäköistä, että Windows ei tunnista laitetta.
Vaihe 4. Paina
Win+R. ja tyyppi devmgmt.msc.
Tämä komento avaa Laitehallinnan.
Vaihe 5. Napsauta hiiren kakkospainikkeella Tuntematon laite kohdassa Muut laitteet ja valitse Päivitä ohjainohjelmisto
Jos et näe tätä vaihtoehtoa, napsauta Ominaisuudet, valitse Ohjain -välilehti ja valitse sitten Päivitä ohjain.
Vaihe 6. Valitse Selaa tietokoneeltani ohjainohjelmistoa
Tämän avulla voit valita Arduino IDE: n mukana tulleet sisäänrakennetut ohjaimet.
Vaihe 7. Napsauta Selaa ja avaa aiemmin purkamasi kansio
Löydät siitä ohjainkansion.
Vaihe 8. Valitse ohjainkansio ja napsauta OK
Vahvista, että haluat jatkaa, jos sinua varoitetaan tuntemattomasta ohjelmistosta.
Osa 5/5: Robottien ohjelmointi
Vaihe 1. Avaa Arduino IDE kaksoisnapsauttamalla arduino.exe-tiedostoa IDE-kansiossa
Sinua tervehditään tyhjällä projektilla.
Vaihe 2. Liitä tai liitä seuraava koodi, jotta robotti kehittyy
Alla oleva koodi pitää Arduinosi käynnissä.
#include // tämä lisää "servokirjaston" ohjelmaan // seuraava komento luo kaksi servo -objektia Servo leftMotor; Servo oikeaMoottori; void setup () {leftMotor.attach (12); // jos olet vahingossa vaihtanut servon nastanumerot, voit vaihtaa numerot täällä rightMotor.attach (13); } void loop () {leftMotor.write (180); // 360 asteen kierto (jatkuva kierto), numero 180 kehottaa servoa siirtymään eteenpäin eteenpäin täydellä nopeudella. rightMotor.write (0); // jos molemmat arvot ovat 180, robotti pyörii ympyrässä, koska servo on päinvastainen. "0" käskee robotin siirtymään "taaksepäin" täydellä nopeudella. }
Vaihe 3. Luo ja lataa ohjelma
Napsauta oikeaa nuolipainiketta vasemmassa yläkulmassa luodaksesi ja ladataksesi ohjelman yhdistettyyn Arduinoon.
Saatat haluta nostaa robotin pois pinnalta, koska robotti jatkaa kävelemistä eteenpäin ohjelman lataamisen jälkeen
Vaihe 4. Lisää pysäytyskytkin (tappokytkin)
Lisää seuraava koodi koodisi "void loop ()" -osioon lisätäksesi pysäytyskytkintoiminnon "write ()" -toiminnon päälle.
if (digitalRead (2) == HIGH) // tämä komento suoritetaan, kun painiketta painetaan nastassa 2 Arduino {while (1) {leftMotor.write (90); // "90" on servon neutraali asento, joka kehottaa servoa pysähtymään oikealleMotor.write (90); }}
Vaihe 5. Lataa ja tarkista koodisi
Kun pysäytyskytkimen koodi on jo lisätty, voit ladata koodin ja testata robottia. Robotin tulee jatkaa eteenpäin, kunnes painat pysäytyskytkimen painiketta, joka saa robotin pysähtymään. Koko koodi näyttää tältä:
#include // seuraava komento luo kaksi Servo leftMotor servo -objektia; Servo oikeaMoottori; 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); }
Esimerkki
Seuraava koodi käyttää robottiin asennettuja antureita, jotta se kääntyy vasemmalle aina, kun robotti kohtaa esteen. Katso koodin kommentit saadaksesi lisätietoja kunkin osan käytöstä. Alla oleva koodi on koko ohjelma.
#sisältää Servo leftMotor; Servo oikeaMoottori; const int serialPeriod = 250; // tämä koodi antaa konsolin lähtöajan viiveen joka 1/4 sekunnin (250 ms) allekirjoittamaton pitkä aikaSerialDelay = 0; const int loopPeriod = 20; // tämä koodi asettaa anturin lukutaajuudeksi 20 ms, joka on 50 Hz unsigned long timeLoopDelay = 0; // tämä koodi määrittää TRIG- ja ECHO -toiminnot Arduinon nastoille. Säädä numeroita tässä, jos liität ne eri tavalla const int ultraääni2TrigPin = 8; const int ultraääni2EchoPin = 9; int ultraääni2Etäisyys; int ultraääni2Kesto; // tämä koodi määrittelee kaksi mahdollista robottitilaa: jatka eteenpäin tai käänny vasemmalle #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = jatka eteenpäin (OLETUS), 1 = käänny vasemmalle tyhjä asetus () {Serial.begin (9600); // tämä anturi määrittää pin -konfiguraation pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultraääni2EchoPin, INPUT); // tämä määrittää moottorin Arduinon nastoihin leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // tämä koodi havaitsee '' pysäytyksen '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // tämä koodi tulostaa virheenkorjausviestit sarjakonsolille, jos (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // tämä koodi kehottaa anturia lukemaan ja tallentamaan mitatun etäisyyden tilaaMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // jos estettä ei havaita {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // jos mitään ei ole robotin edessä. ultrasonicDistance on negatiivinen joillekin ultraäänilaitteille, jos esteitä ei ole {// aja eteenpäin rightMotor.write (180); leftMotor.write (0); } else // jos edessämme on objekti {state = TURN_LEFT; }} else if (state == TURN_LEFT) // jos este havaitaan, käänny vasemmalle {unsigned long timeToTurnLeft = 500; // 90 asteen kääntyminen kestää noin 0,5 sekuntia. Saatat joutua säätämään tätä arvoa, jos pyörät ovat kooltaan erilaiset kuin esimerkissä oleva allekirjoittamaton pitkä turnStartTime = millis (); // säilytä ehto, kun robotti alkaa kääntyä ((millis ()-turnStartTime) <timeToTurnLeft) // säilytä tämä sykli, kunnes timeToTurnLeft (500) on ohitettu {// käänny vasemmalle, muista, että kun molemmat ovat "180", robotti kääntyy. rightMotor.write (180); leftMotor.write (180); } tila = DRIVE_FORWARD; }} void readUltrasonicSensors () {// tämä koskee ultraääntä 2. Tämä komento on ehkä muutettava, jos käytät toista anturia. digitalWrite (ultraääni2TrigPin, HIGH); delayMikrosekuntia (10); // vedä TRIG -nasta korkealle vähintään 10 mikrosekuntia digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultraääni2EchoPin, HIGH); ultraääni2Etäisyys = (ultraääni2Kesto/2)/29; } // seuraava koskee konsolin virheenkorjausvirheitä. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Sarjajälki (ultraääni2etäisyys); Sarjajälki ("cm"); Sarja.println (); timeSerialDelay = millis (); }}