Chcete sa naučiť vyrábať vlastného robota? Existuje mnoho rôznych typov robotov, ktoré si môžete postaviť sami. Väčšina ľudí chce vidieť, ako sa robot ľahko pohybuje z bodu A do B. Robota môžete postaviť úplne z analógových komponentov alebo si kúpiť štartovaciu sadu. Výroba vlastného robota je úžasný spôsob, ako sa naučiť elektroniku a počítačové programovanie.
Krok
Časť 1 z 5: Zostavenie robota
Krok 1. Zostavte svoje súčiastky
Na stavbu základného robota budete potrebovať niekoľko jednoduchých komponentov. Väčšinu alebo všetky tieto súčiastky nájdete vo svojom miestnom hobby obchode alebo u niektorých internetových predajcov. Niektoré súpravy obsahujú všetky tieto súčasti. Tento robot nevyžaduje žiadne spájkovanie:
- Arduino Uno (alebo iný mikrokontrolér)
- 2 servá 360 stupňov
- 2 kolesá zodpovedajúce servu
- 1 voľné koleso
- 1 skúšobná doska (doska na chlieb alebo doska na projekt), ktorá nebola spájkovaná (vyhľadajte dosku na testovanie, ktorá má na každej strane dva kladné a záporné riadky)
- 1 snímač priblíženia (so štvorpólovým konektorovým káblom)
- 1 spínač s tlačidlom
- 1 odpor 10 kΩ
- 1 kábel USB A na B
- 1 sada rozbitných hlavičiek
- 1 6 x držiak batérie AA s 9 V DC. Zásuvkou
- 1 balenie 22. prepojovacích káblov alebo jedného kábla
- Izolácia tam a späť (dvojitá páska) alebo lepiaca pištoľ
Krok 2. Otočte priehradku na batériu tak, aby plochá zadná strana smerovala nahor
Telo robota postavíte pomocou priestoru pre batérie ako základne.
Krok 3. Na konci pozície pre batérie usporiadajte dve serva v rovnakom smere
Tento koniec je koniec, kde kábel vychádza z batérie. Servo by sa malo dotýkať spodnej časti a mechanizmus otáčania každého serva by mal smerovať von z bokov priestoru pre batériu. Je dôležité, aby boli tieto serva správne usporiadané tak, aby boli kolesá rovné. Káble pre servo musia vychádzať zo zadnej časti priestoru pre batériu.
Krok 4. Servo prilepte izoláciou alebo lepidlom
Uistite sa, že je servo pevne pripevnené k priestoru pre batériu. Zadná strana serva musí byť zarovnaná so zadnou časťou priestoru pre batériu.
Servá by teraz mali zaberať polovicu miesta v zadnej časti pozície pre batériu
Krok 5. Prilepte testovaciu dosku kolmo na zostávajúci priestor v priehradke na batérie
Táto skúšobná doska bude mierne visieť nad prednou časťou priestoru pre batériu a bude sa rozširovať na obe strany. Pred pokračovaním sa uistite, že je skúšobná doska tesná. Riadok „A“by mal byť najbližšie k servu.
Krok 6. Pripojte mikrokontrolér Arduino k hornej časti serva
Ak správne pripevníte servo, mala by sa navzájom dotýkať plochá časť dvoch serv. Prilepte dosku Arduino k tomuto plochému miestu tak, aby napájacie konektory USB a Arduino smerovali nadol (mimo testovacej dosky). Predná strana Arduina sa bude prekrývať s testovacou doskou.
Krok 7. Nainštalujte kolesá na servopohony
Kolesá pevne pritlačte na otočný servo mechanizmus. To môže vyžadovať značnú silu, pretože kolesá sú navrhnuté tak, aby mali otvory, ktoré presne zodpovedajú tvaru hrotu serva.
Krok 8. Nainštalujte voľné koleso na spodok testovacej dosky
Ak otočíte robota hore nohami, uvidíte, ako z priestoru pre batériu visí malá skúšobná doska. K tejto zavesenej časti pripevnite voľné koleso. V prípade potreby použite klin. Voľnobežné koleso slúži ako predné koleso, ktoré umožňuje robotovi ľahké otáčanie v ľubovoľnom smere.
Ak ste si kúpili súpravu, voľné koleso môže mať niekoľko klinov, pomocou ktorých môžete zaistiť, aby sa koleso voľne dotýkalo zeme
Časť 2 z 5: Zapojenie robota
Krok 1. Odrežte dve 3-kolíkové hlavičky
Toto použijete na pripojenie serva k testovacej doske. Zatlačte kolíky nadol cez hlavičky, aby vychádzali z oboch strán v rovnakej vzdialenosti.
Krok 2. Vložte dve hlavičky do kolíkov 1-3 a 6-8 v rade E na testovacej doske
Uistite sa, že sú vložené pevne alebo pevne.
Krok 3. Pripojte servo vodiče k záhlaviu s čiernym vodičom na ľavej strane (kolíky 1 a 6)
Toto prepojí servo s testovacou doskou. Uistite sa, že ľavé servo je pripojené k ľavému záhlaviu a pravé servo je pripojené k pravému záhlaviu.
Krok 4. Pripojte červený prepojovací vodič z pinov C2 a C7 k kolíku červenej koľajnice (kladný)
Uistite sa, že používate červenú koľajnicu na zadnej strane testovacej dosky (bližšie k zvyšku tela robota).
Krok 5. Pripojte čierny prepojovací vodič z pinov B1 a B6 k kolíku modrej koľajnice (uzemnenie)
Uistite sa, že používate modrú koľajničku na zadnej strane testovacej dosky. Nepripájajte kábel k kolíku červenej koľajnice.
Krok 6. Pripojte biele prepojovacie vodiče z pinov 12 a 13 na Arduine k A3 a A8
To umožní Arduinu ovládať servo a otáčať kolesom.
Krok 7. Pripojte snímač k prednej časti testovacej dosky
Senzor nie je namontovaný na externú napájaciu lištu na testovacej doske, ale na prvé dva rady pinov s písmenom (J). Uistite sa, že ho umiestnite priamo do stredu s rovnakým počtom prázdnych kolíkov na každej strane.
Krok 8. Pripojte čierny prepojovací vodič z kolíka I14 k prvému kolíku modrej lišty na ľavej strane snímača
Tým sa snímač uzemní.
Krok 9. Pripojte červený prepojovací vodič z kolíka I17 k prvému kolíku červenej koľajnice napravo od snímača
To poskytne snímaču energiu.
Krok 10. Pripojte biele prepojovacie vodiče od kolíka I15 k pinu 9 na Arduine a od I16 k pinu 8
To poskytne informácie zo senzora do mikrokontroléra.
Časť 3 z 5: Inštalácia napájacieho kábla
Krok 1. Otočte robota, aby ste videli priestor na batérie vo vnútri
Usporiadajte priehradku na batériu tak, aby kábel prechádzal vľavo dole.
Krok 2. Pripojte červený drôt s druhým prameňom zľava v spodnej časti
Zaistite, aby bol priečinok na batérie správne zarovnaný alebo otočený správnym smerom.
Krok 3. Pripojte čierny drôt k poslednému prameňu vpravo dole
Tieto dva vodiče pomôžu dodať Arduinu správne napätie.
Krok 4. Pripojte červený a čierny vodič k červenému a modrému kolíku, ktoré sú na pravej strane na zadnej strane testovacej dosky
Čierny vodič by mal ísť na kolík modrej koľajnice na kolíku 30. Červený vodič by mal ísť na kolík červenej koľajnice na kolíku 30.
Krok 5. Pripojte čierny vodič z kolíka GND na Arduine k zadnej časti modrej koľajnice
Pripojte vodič k kolíku 28 na modrej koľajnici.
Krok 6. Pripojte čierny vodič zo zadnej časti modrej koľajnice k prednej časti modrej koľajnice na kolíku 29 pre obe koľajnice
Nepripájajte červenú koľajnicu, pretože by ste mohli poškodiť Arduino.
Krok 7. Pripojte červený vodič z prednej časti červenej koľajnice na kolíku 30 k 5V kolíku na Arduine
To poskytne napájanie Arduinu.
Krok 8. Vložte tlačidlový spínač do priestoru medzi kolíky 24-26
Tento prepínač vám umožní vypnúť robota bez toho, aby ste museli vypnúť napájanie.
Krok 9. Pripojte červený vodič z H24 k červenej koľajnici na ďalšom prázdnom kolíku napravo od senzora
Tým sa tlačidlo napája.
Krok 10. Pripojte H26 k modrej koľajnici pomocou rezistora
Pripojte ho ku kolíku priamo vedľa čierneho vodiča, ktorý ste práve pripojili v predchádzajúcich krokoch.
Krok 11. Pripojte biely vodič z G26 k pinu 2 na Arduino
To umožní Arduinu rozpoznať tlačidlá.
Časť 4 z 5: Inštalácia softvéru Arduino
Krok 1. Stiahnite a extrahujte Arduino IDE
Tu je vyvinuté Arduino a umožňuje vám naprogramovať pokyny, ktoré potom môžete nahrať do svojho mikrokontroléra Arduino. Môžete si ho zadarmo stiahnuť z arduino.cc/en/main/software. Stiahnutý súbor rozbaľte dvojitým kliknutím na súbor a presunutím priečinka, ktorý obsahuje, na ľahko dostupné miesto. Program v skutočnosti nenainštalujete, namiesto toho ho spustíte z priečinka, ktorý bol extrahovaný dvojitým kliknutím na arduino.exe.
Krok 2. Pripojte priehradku na batériu k Arduinu
Zapojte zadnú zásuvku batérie do konektora na Arduine a napájajte ju.
Krok 3. Vložte Arduino do počítača cez USB
Je pravdepodobné, že systém Windows zariadenie nerozpozná.
Krok 4. Stlačte
Win+R. a napíšte devmgmt.msc.
Tento príkaz otvorí Správcu zariadení.
Krok 5. Kliknite pravým tlačidlom myši na položku Neznáme zariadenie v časti Ostatné zariadenia a vyberte položku Aktualizovať softvér ovládača
Ak sa vám táto možnosť nezobrazuje, kliknite na položku Vlastnosti, vyberte kartu Ovládač a potom kliknite na položku Aktualizovať ovládač.
Krok 6. Vyberte Ovládač vyhľadať v počítači
To vám umožní vybrať vstavané ovládače dodávané s Arduino IDE.
Krok 7. Kliknite na položku Prehľadávať a potom otvorte priečinok, ktorý ste predtým extrahovali
Nájdete v ňom priečinok s ovládačmi.
Krok 8. Vyberte priečinok s ovládačmi a kliknite na tlačidlo OK
Ak ste upozornení na neznámy softvér, potvrďte, že chcete pokračovať.
Časť 5 z 5: Programovanie robotov
Krok 1. Otvorte Arduino IDE dvojitým kliknutím na súbor arduino.exe v priečinku IDE
Privítate prázdny projekt.
Krok 2. Vložte alebo prilepte nasledujúci kód, aby bol váš robot pokročilý
Nasledujúci kód udrží vaše Arduino v prevádzke.
#include // toto pridá do programu knižnicu „Servo“// nasledujúci príkaz vytvorí dva objekty serva Servo leftMotor; Servo pravéMotor; void setup () {leftMotor.attach (12); // ak ste omylom vymenili čísla pinov pre vaše servo, môžete ich vymeniť tu rightMotor.attach (13); } prázdna slučka () {leftMotor.write (180); // s 360 stupňovým otáčaním (nepretržité otáčanie), číslo 180 prikazuje servu, aby sa pohybovalo „vpred“plnou rýchlosťou. rightMotor.write (0); // ak sú obe hodnoty 180, robot sa bude otáčať v kruhu, pretože servo je obrátené. „0“hovorí robotu, aby sa pohyboval „dozadu“plnou rýchlosťou. }
Krok 3. Vytvorte a nahrajte program
Kliknutím na tlačidlo šípky vpravo v ľavom hornom rohu vytvorte a nahrajte program do pripojeného Arduina.
Možno budete chcieť zdvihnúť robota z povrchu, pretože robot bude po nahraní programu pokračovať vpred
Krok 4. Pridajte funkciu vypínača (vypínač)
Pridajte nasledujúci kód do sekcie „prázdna slučka ()“v kóde a pridajte funkciu prepínača zastavenia k funkcii „write ()“.
if (digitalRead (2) == HIGH) // tento príkaz sa spustí po stlačení tlačidla na pine 2 Arduino {while (1) {leftMotor.write (90); // "90" je neutrálna poloha serva, ktorá hovorí servu, aby sa prestalo otáčať dopravaMotor.write (90); }}
Krok 5. Nahrajte a skontrolujte kód
Keď je kód vypínača už pridaný, môžete ho nahrať a otestovať robota. Robot by mal pokračovať vpred, kým nestlačíte tlačidlo vypínača, ktoré spôsobí, že sa robot zastaví. Celý kód bude vyzerať takto:
#include // nasledujúci príkaz vytvorí dva objekty serva leftMotor servo; Servo pravé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); }
Príklad
Nasledujúci kód použije senzory nainštalované na robote, aby odbočil doľava vždy, keď robot narazí na prekážku. Pozrite sa na komentáre v kóde, kde nájdete podrobnosti o tom, ako používať jednotlivé časti. Nasledujúci kód je celý program.
#include Servo leftMotor; Servo pravéMotor; const int serialPeriod = 250; // tento kód udáva časové oneskorenie výstupu konzoly každých 1/4 sekundy (250 ms) bez znamienka, dlhý časSerialDelay = 0; const int loopPeriod = 20; // tento kód nastavuje frekvenciu čítania senzora na 20 ms, čo je 50 Hz bez znamienka dlhý časLoopDelay = 0; // tento kód priradí funkciám TRIG a ECHO piny na Arduine. Tu upravte čísla, ak ich spojíte iným spôsobom const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // tento kód definuje dva možné stavy robota: pokračujte vpred alebo odbočte vľavo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = pokračovať vpred (DEFAULT), 1 = odbočiť doľava, neplatné nastavenie () {Serial.begin (9600); // tento senzor určuje konfiguráciu pinov pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // toto priradí motor ku kolíkom Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // tento kód detekuje '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // tento kód vytlačí správy o ladení do sériovej konzoly, ak (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // tento kód inštruuje snímač, aby čítal a ukladal údaje o nameranej vzdialenosti stateMachine (); timeLoopDelay = milis (); }} neplatný stateMachine () {if (state == DRIVE_FORWARD) // ak nie je zistená žiadna prekážka {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ak sa pred robotom nič nenachádza. ultrasonicDistance bude u niektorých ultrazvukov negatívna, ak nie sú žiadne prekážky {// jazda vpred rightMotor.write (180); leftMotor.write (0); } else // ak je pred nami predmet {state = TURN_LEFT; }} else if (state == TURN_LEFT) // ak je detekovaná prekážka, odbočte vľavo {unsigned long timeToTurnLeft = 500; // otočenie o 90 stupňov trvá asi 0,5 sekundy. Túto hodnotu bude možno potrebné upraviť, ak sa veľkosť kolies líši od veľkosti v príklade bez znamienka dlhý turnStartTime = millis (); // ponechajte stav, keď sa robot začne otáčať while ((millis ()-turnStartTime) <timeToTurnLeft) // ponechajte tento cyklus, kým neprejde timeToTurnLeft (500) {// odbočte doľava, pamätajte na to, že keď sú obaja „180“, robot sa otočí. rightMotor.write (180); leftMotor.write (180); } stav = DRIVE_FORWARD; }} void readUltrasonicSensors () {// toto je pre ultrazvuk 2. Tento príkaz možno budete musieť zmeniť, ak používate iný snímač. digitalWrite (ultrasonic2TrigPin, HIGH); oneskorenie mikrosekundy (10); // potiahnite kolík TRIG vysoko aspoň na 10 mikrosekúnd digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // nasledovné je pre chyby ladenia v konzole. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = milis (); }}