Chcete sa naučiť stavať vlastného robota? Existuje mnoho rôznych typov robotov, ktoré si môžete vyrobiť sami. Väčšina ľudí chce vidieť robota vykonávať jednoduché úlohy presunu z bodu A do bodu B. Robota môžete vyrobiť úplne z analógových komponentov alebo si kúpiť štartovaciu sadu od začiatku! Zostavenie vlastného robota je úžasný spôsob, ako sa naučiť elektroniku aj počítačové programovanie.
Kroky
Časť 1 zo 6: Zostavenie robota
Krok 1. Zhromaždite svoje komponenty
Na stavbu základného robota budete potrebovať niekoľko jednoduchých komponentov. Väčšinu z týchto komponentov, ak nie všetky, nájdete vo svojom miestnom hobby obchode alebo u niekoľkých internetových predajcov. Niektoré základné súpravy môžu obsahovať aj všetky tieto komponenty. Tento robot nevyžaduje žiadne spájkovanie:
- Arduino Uno (alebo iný mikrokontrolér)
- 2 servá s nepretržitým otáčaním
- 2 kolesá, ktoré sú vhodné pre serva
- 1 koliesko
- 1 malý nespájkovateľný chlebík (vyhľadajte pole, ktoré má na každej strane dve kladné a záporné čiary)
- 1 snímač vzdialenosti (so štvorpólovým konektorovým káblom)
- 1 mini tlačidlový spínač
- 1 odpor 10 kΩ
- 1 kábel USB A na B
- 1 sada odlamovacích hlavičiek
- 1 6 x držiak batérie AA s konektorom napájania 9 V DC
- 1 balíček prepojovacích káblov alebo 22-rozmerný prepojovací drôt
- Silná obojstranná páska alebo horúce lepidlo
Krok 2. Prevráťte batériu tak, aby plochá zadná strana smerovala nahor
Telo robota budete stavať pomocou batérie ako základu.
Krok 3. Zarovnajte dve servá na konci batérie
To by mal byť koniec, z ktorého vychádza drôt akumulátora. Serva by sa mali dotýkať dna a rotačné mechanizmy každého z nich by mali smerovať von po stranách akumulátora. Servá musia byť zarovnané tak, aby kolesá išli rovno. Vodiče pre serva by mali vychádzať zo zadnej časti batérie.
Krok 4. Servo pripevnite páskou alebo lepidlom
Uistite sa, že sú pevne pripevnené k batérii. Zadné strany serva by mali byť zarovnané so zadnou stranou batérie.
Servá by teraz mali zaberať zadnú polovicu batérie
Krok 5. Prilepte dosku kolmo na otvorené miesto na batérii
Mal by trochu visieť nad prednou časťou batérie a bude presahovať každú stranu. Pred pokračovaním sa uistite, že je bezpečne pripevnený. Riadok „A“by mal byť najbližšie k servám.
Krok 6. Pripojte mikrokontrolér Arduino k vrchu serva
Ak ste servá pripevnili správne, mal by sa medzi nimi dotýkať rovný priestor. Prilepte dosku Arduino na tento plochý priestor tak, aby boli konektory USB a napájania Arduina otočené dozadu (preč od dosky). Predná strana Arduina by sa mala sotva prekrývať s doskou.
Krok 7. Položte kolesá na servá
Kolesá pevne pritlačte na otočný mechanizmus serva. To si môže vyžadovať značné množstvo sily, pretože kolesá sú navrhnuté tak, aby čo najlepšie priliehali a dosiahli najlepšiu trakciu.
Krok 8. Pripojte koliesko k spodnej časti dosky na pečenie
Ak prevrátite podvozok, mali by ste vidieť kúsok dosky, ktorá sa tiahne za batériou. Pripojte koliesko k tomuto predĺženému kusu, v prípade potreby pomocou stúpačov. Koliesko funguje ako predné koleso, čo umožňuje robotovi ľahké otáčanie v ľubovoľnom smere.
Ak ste si kúpili súpravu, koliesko mohlo mať niekoľko stúpačiek, ktoré môžete použiť na zabezpečenie toho, aby sa koliesko dostalo na zem. i
Časť 2 zo 6: Zapojenie robota
Krok 1. Odlomte dve 3-kolíkové hlavičky
Budete ich používať na pripojenie serv k nepájivej doske. Zatlačte kolíky nadol cez hlavičku tak, aby kolíky vychádzali v rovnakej vzdialenosti na oboch stranách.
Krok 2. Vložte dve hlavičky do kolíkov 1-3 a 6-8 v rade E dosky na pečenie
Uistite sa, že sú pevne zasunuté.
Krok 3. Pripojte servo káble k záhlaviu čiernym káblom na ľavej strane (kolíky 1 a 6)
Servá sa tak spoja s doskou. Uistite sa, že ľavé servo je zapojené do ľavého záhlavia a pravé servo do pravého záhlavia.
Krok 4. Pripojte červené prepojovacie vodiče z kolíkov C2 a C7 k červeným (plusovým) koľajnicovým kolíkom
Uistite sa, že používate červenú lištu na zadnej strane dosky (bližšie k zvyšku podvozku).
Krok 5. Pripojte čierne prepojovacie vodiče z kolíkov B1 a B6 k kolíkom modrej (uzemňovacej) lišty
Uistite sa, že používate modrú koľajničku na zadnej strane dosky. Nezapájajte ich do kolíkov č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ť servá a otáčať kolesá.
Krok 7. Upevnite snímač na prednú stranu dosky
Nezapája sa do vonkajších napájacích koľajníc na doske, ale do prvého radu kolíkov so písmom (J). Uistite sa, že ho umiestnite presne do stredu a na každej strane bude k dispozícii rovnaký počet kolíkov.
Krok 8. Pripojte čierny prepojovací vodič z kolíka I14 k prvému dostupné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 dostupnému kolíku červenej koľajnice napravo od snímača
Tým sa senzor napája.
Krok 10. Pripojte biele prepojovacie vodiče od kolíka I15 k pinu 9 na Arduine a od I16 k pinu 8
To bude prenášať informácie zo senzora do mikrokontroléra.
Časť 3 zo 6: Zapojenie napájania
Krok 1. Prevráťte robota nabok, aby ste videli batérie v balení
Orientujte ho tak, aby kábel akumulátora v spodnej časti vychádzal doľava.
Krok 2. Pripojte červený drôt k druhému prameňu zľava v spodnej časti
Uistite sa, že je batéria správne orientovaná.
Krok 3. Pripojte čierny vodič k poslednému prameňu vpravo dole
Tieto dva káble pomôžu zaistiť správne napätie pre Arduino.
Krok 4. Pripojte červený a čierny vodič k úplne pravému červenému a modrému kolíku na zadnej strane dosky
Čierny kábel by mal byť zapojený do kolíka modrej koľajnice na kolíku 30. Červený kábel by mal byť zapojený do kolíka červenej koľajnice na kolíku 30.
Krok 5. Pripojte čierny vodič z kolíka GND na Arduine k zadnej modrej lište
Pripojte ho na kolík 28 na modrej koľajnici.
Krok 6. Pripojte čierny vodič zo zadnej modrej lišty k prednej modrej koľajnici na kolíku 29 pre každého
Nepripájajte červené koľajnice, pretože pravdepodobne poškodíte Arduino.
Krok 7. Pripojte červený vodič z prednej červenej koľajnice na kolíku 30 k 5V kolíku na Arduine
To poskytne napájanie Arduinu.
Krok 8. Vložte spínač tlačidla do medzery medzi radmi na kolíkoch 24-26
Tento prepínač vám umožní vypnúť robota bez toho, aby ste museli odpojiť napájanie.
Krok 9. Pripojte červený vodič z H24 k červenej koľajnici v nasledujúcom dostupnom kolíku napravo od senzora
Tým sa tlačidlo zapne.
Krok 10. Pomocou rezistora pripojte H26 k modrej koľajnici
Pripojte ho ku kolíku priamo vedľa čierneho vodiča, ktorý ste pripojili pred niekoľkými krokmi.
Krok 11. Pripojte biely vodič z G26 k kolíku 2 na Arduine
To umožní Arduinu zaregistrovať tlačidlo.
Časť 4 zo 6: Inštalácia softvéru Arduino
Krok 1. Stiahnite a extrahujte Arduino IDE
Toto je vývojové prostredie 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 a presuňte priečinok dovnútra na ľahko dostupné miesto. Program v skutočnosti nebudete inštalovať. Namiesto toho ho spustíte z extrahovaného priečinka dvojitým kliknutím na arduino.exe.
Krok 2. Pripojte batériu k Arduinu
Zapojte konektor napájania batérie do konektora na Arduine.
Krok 3. Pripojte Arduino k počítaču pomocou USB
Windows pravdepodobne zariadenie nerozpozná.
Krok 4. Stlačte
⊞ Win+R. a napíšte devmgmt.msc.
Tým sa spustí Správca zariadení.
Krok 5. Kliknite pravým tlačidlom myši na „Neznáme zariadenie“v časti „Ostatné zariadenia“a zvoľte „Aktualizovať softvér ovládača“
" Ak sa vám táto možnosť nezobrazuje, kliknite namiesto toho na „Vlastnosti“, vyberte kartu „Ovládač“a potom kliknite na „Aktualizovať ovládač“.
Krok 6. Vyberte „Vyhľadať softvér ovládača v počítači
" To vám umožní vybrať ovládač, ktorý bol dodaný s Arduino IDE.
Krok 7. Kliknite na „Prehľadávať“a prejdite do priečinka, ktorý ste predtým extrahovali
Vnútri nájdete priečinok „ovládače“.
Krok 8. Vyberte priečinok „ovládače“a kliknite na „OK“
" Ak ste upozornení na neznámy softvér, potvrďte, že chcete pokračovať.
Časť 5 zo 6: Programovanie robota
Krok 1. Spustite Arduino IDE dvojitým kliknutím na súbor arduino.exe v priečinku IDE
Privítate prázdny projekt.
Krok 2. Vložte nasledujúci kód, aby váš robot išiel rovno
Vďaka nižšie uvedenému kódu sa vaše Arduino bude neustále posúvať dopredu.
#include // tým sa do programu pridá knižnica „Servo“// pomocou nasledujúceho príkazu sa vytvoria dva objekty serva Servo leftMotor; Servo pravéMotor; void setup () {leftMotor.attach (12); // ak ste omylom vymenili čísla pinov pre vaše serva, môžete ich vymeniť tu rightMotor.attach (13); } prázdna slučka () {leftMotor.write (180); // s nepretržitým otáčaním, 180 hovorí servu, aby sa pohybovalo plnou rýchlosťou „vpred“. pravý motor. napísať (0); // ak sú obidva na 180, robot pôjde do kruhu, pretože servá sú preklopené. „0“hovorí, že sa má pohybovať plnou rýchlosťou „dozadu“. }
Krok 3. Zostavte a nahrajte program
Kliknutím na tlačidlo šípky vpravo v ľavom hornom rohu zostavte a nahrajte program do pripojeného Arduina.
Možno budete chcieť zdvihnúť robota z povrchu, pretože po nahraní programu sa bude naďalej pohybovať dopredu
Krok 4. Pridajte funkciu prepínača zabíjania
Pridajte nasledujúci kód do sekcie „prázdna slučka ()“v kóde, aby ste povolili prepínač zabíjania nad funkciami „write ()“.
if (digitalRead (2) == HIGH) // toto sa zaregistruje po stlačení tlačidla na pine 2 Arduina {while (1) {leftMotor.write (90); // "90" je neutrálna poloha pre serva, ktorá im hovorí, aby prestali otáčať dopravaMotor.write (90); }}
Krok 5. Nahrajte a vyskúšajte svoj kód
Po pridaní kódu prepínača zabíjania môžete robota nahrať a vyskúšať. Malo by pokračovať v jazde dopredu, kým nestlačíte spínač, v tomto mieste sa zastaví. Celý kód by mal vyzerať takto:
#include // nasledujúce vytvoria dva objekty serva Servo leftMotor; 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); }
Časť 6 zo 6: Príklad
Krok 1. Nasledujte príklad
Nasledujúci kód použije senzor pripevnený k robotovi, aby sa otočil doľava vždy, keď narazí na prekážku. Podrobnosti o tom, čo každá časť robí, nájdete v komentároch v kóde. Nasledujúci kód predstavuje celý program.
#include Servo leftMotor; Servo pravéMotor; const int serialPeriod = 250; // toto obmedzuje výstup do konzoly na raz za 1/4 sekundy bez znamienka dlhý časSerialDelay = 0; const int loopPeriod = 20; // toto nastavuje, ako často má senzor načítať 20 ms, čo je frekvencia 50 Hz bez znamienka, dlhý časLoopDelay = 0; // to priradí funkciám TRIG a ECHO pinom na Arduine. Tu vykonajte úpravy v číslach, ak ste pripojili odlišne konšt. Int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // toto definuje dva možné stavy robota: jazda vpred alebo odbočenie doľava #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = jazda vpred (DEFAULT), 1 = odbočenie doľava, neplatné nastavenie () {Serial.begin (9600); // tieto konfigurácie pinov snímača pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // toto priradí motory ku kolíkom Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // toto detekuje prepínač zabíjania {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // toto vytlačí správy o ladení na sériovú konzolu, ak (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // toto dáva senzoru pokyn, aby prečítal a uložil namerané vzdialenosti stateMachine (); timeLoopDelay = milis (); }} neplatný stateMachine () {if (state == DRIVE_FORWARD) // ak neboli zistené žiadne prekážky {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ak pred robotom nič nie je. ultrasonicDistance bude u niektorých ultrazvukov negatívna, ak nie je žiadna prekážka {// jazda vpred vpravoMotor.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á približne 0,5 sekundy. Toto možno budete musieť upraviť, ak majú vaše kolesá inú veľkosť ako v prípade príkladu bez znamienka dlhé otáčkyStartTime = millis (); // ušetríte čas, kedy sme sa začali otáčať while ((millis ()-turnStartTime) <timeToTurnLeft) // zostaňte v tejto slučke, kým neuplynie timeToTurnLeft {// odbočte doľava, pamätajte na to, že keď sú obe nastavené na „180“, otočí sa. rightMotor.write (180); leftMotor.write (180); } stav = DRIVE_FORWARD; }} void readUltrasonicSensors () {// toto je pre ultrazvuk 2. Ak použijete iný snímač, možno budete musieť tieto príkazy zmeniť. digitalWrite (ultrasonic2TrigPin, HIGH); oneskorenie mikrosekundy (10); // udržuje spúšťací kolík na vysokej úrovni najmenej 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 (); }}