Chcete se naučit dělat vlastního robota? Existuje mnoho různých typů robotů, které si můžete postavit sami. Většina lidí chce vidět robota snadno se pohybovat z bodu A do B. Můžete si postavit robota zcela z analogových komponent nebo si koupit startovací sadu. Výroba vlastního robota je skvělý způsob, jak se naučit elektroniku a počítačové programování.
Krok
Část 1 z 5: Sestavení robota
Krok 1. Sestavte své součásti
K sestavení základního robota budete potřebovat několik jednoduchých komponent. Většinu nebo všechny tyto komponenty najdete ve svém místním hobby obchodě s elektronikou nebo u některých online prodejců. Některé sady obsahují všechny tyto komponenty. Tento robot nevyžaduje žádné pájení:
- Arduino Uno (nebo jiný mikrokontrolér)
- 2 serva 360 stupňů
- 2 kola odpovídající servu
- 1 volné kolo
- 1 testovací deska (prkénko nebo projektová deska), která nebyla připájena (podívejte se na testovací desku, která má na každé straně dvě kladné a záporné řady)
- 1 snímač přiblížení (se čtyřpólovým konektorovým kabelem)
- 1 tlačítkový spínač
- 1 odpor 10 kΩ
- 1 kabel USB A na B
- 1 sada rozbitných záhlaví
- 1 6 x držák baterie AA s 9V DC. Zásuvkou
- 1 balení 22. propojovacích kabelů nebo jednoho kabelu
- Izolace tam a zpět (dvojitá páska) nebo lepicí pistole
Krok 2. Otočte přihrádku na baterie tak, aby její plochá záda směřovala nahoru
Tělo robota postavíte pomocí prostoru pro baterie jako základny.
Krok 3. Uspořádejte dvě serva otočená stejným směrem na konec pozice pro baterii
Tento konec je konec, kde vychází kabel z baterie. Serva by se měla dotýkat spodní části a rotační mechanismus každého serva by měl směřovat ven ze stran prostoru pro baterie. Je důležité, aby tato serva byla správně uspořádána tak, aby byla kola rovná. Kabely pro servo musí vycházet ze zadní části prostoru pro baterie.
Krok 4. Servo přilepte izolací nebo lepidlem
Ujistěte se, že je servo pevně připevněno k bateriovému prostoru. Zadní strana serva musí být zarovnána se zadní částí prostoru pro baterie.
Serva by nyní měla zabírat polovinu místa v zadní části pozice baterie
Krok 5. Testovací desku nalepte kolmo na zbývající místo v prostoru pro baterie
Tato testovací deska bude mírně viset nad přední částí prostoru pro baterii a bude se rozšiřovat na obě strany. Než budete pokračovat, ujistěte se, že je testovací deska těsná. Řada „A“by měla být nejblíže servu.
Krok 6. Připojte mikrokontrolér Arduino k horní části serva
Pokud správně připojíte servo, měla by se navzájem dotýkat plochá část obou serv. Přilepte desku Arduino na toto ploché místo tak, aby napájecí konektory USB a Arduino směřovaly dolů (mimo testovací desku). Přední část Arduina se bude překrývat s testovací deskou.
Krok 7. Namontujte kola na serva
Pevně přitlačte kola na otočný servomechanismus. To může vyžadovat značnou sílu, protože kola jsou navržena tak, aby měla otvory, které přesně odpovídají tvaru hrotu serva.
Krok 8. Nainstalujte volné kolo na spodní část testovací desky
Pokud otočíte robota vzhůru nohama, uvidíte z prostoru pro baterie viset malou testovací desku. K této závěsné části připevněte volné kolo. V případě potřeby použijte klín. Volné kolo slouží jako přední kolo, což umožňuje robotovi snadné otáčení v libovolném směru.
Pokud jste si zakoupili soupravu, volné kolo může mít několik klínů, které můžete použít k zajištění toho, aby se kolo mohlo volně dotýkat země
Část 2 z 5: Zapojení robota
Krok 1. Odřízněte dvě 3kolíkové hlavičky
Toto použijete k připojení serva k testovací desce. Zatlačte kolíky dolů přes záhlaví, aby vyšly na obou stranách ve stejné vzdálenosti.
Krok 2. Vložte dvě záhlaví do kolíků 1-3 a 6-8 v řadě E na testovací desce
Ujistěte se, že jsou vloženy pevně nebo pevně.
Krok 3. Připojte vodiče serva ke konektoru s černým vodičem na levé straně (kolíky 1 a 6)
Tím se propojí servo s testovací deskou. Ujistěte se, že je levé servo připojeno k levému záhlaví a pravé servo je připojeno k pravému záhlaví.
Krok 4. Připojte červený propojovací vodič z kolíků C2 a C7 ke kolíku červené kolejnice (kladný)
Ujistěte se, že používáte červenou kolejnici na zadní straně testovací desky (blíže ke zbytku těla robota).
Krok 5. Připojte černý propojovací vodič z pinů B1 a B6 ke kolíku modré kolejnice (uzemnění)
Ujistěte se, že používáte modrou lištu na zadní straně testovací desky. Nepřipojujte kabel ke kolíku červené kolejnice.
Krok 6. Připojte bílé propojovací vodiče z pinů 12 a 13 na Arduinu k A3 a A8
To umožní Arduinu ovládat servo a otáčet kolečkem.
Krok 7. Připojte senzor k přední části testovací desky
Senzor není namontován na externí napájecí lištu na testovací desce, ale na první dvě řady pinů s písmeny (J). Ujistěte se, že jej umístíte přímo doprostřed se stejným počtem prázdných kolíků na každé straně.
Krok 8. Připojte černý propojovací vodič z pinu I14 k prvnímu kolíku modré lišty na levé straně snímače
Tím se snímač uzemní.
Krok 9. Připojte červený propojovací vodič z pinu I17 k prvnímu kolíku červené kolejnice na pravé straně snímače
Tím bude senzor napájen.
Krok 10. Připojte bílé propojovací vodiče od pinu I15 k pinu 9 na Arduinu a od I16 k pinu 8
To poskytne informace ze senzoru do mikrokontroléru.
Část 3 z 5: Instalace napájecího kabelu
Krok 1. Otočte robota, abyste viděli prostor pro baterie uvnitř
Umístěte přihrádku na baterie tak, aby kabel procházel vlevo dole.
Krok 2. Připojte červený vodič s druhým pružinou zleva dole
Zkontrolujte, zda je přihrádka na baterie správně zarovnána nebo směřuje správným směrem.
Krok 3. Připojte černý vodič s posledním pramenem vpravo dole
Tyto dva vodiče pomohou zajistit správné napětí pro Arduino.
Krok 4. Připojte červený a černý vodič k červenému a modrému kolíku, které jsou na pravé straně na zadní straně testovací desky
Černý vodič by měl jít na kolík modré kolejnice na kolíku 30. Červený vodič by měl jít na kolík červené kolejnice na kolíku 30.
Krok 5. Připojte černý vodič z kolíku GND na Arduinu k zadní části modré kolejnice
Připojte vodič ke kolíku 28 na modré liště.
Krok 6. Připojte černý vodič ze zadní části modré kolejnice k přední části modré kolejnice na kolíku 29 pro obě kolejnice
Nepřipojujte červenou kolejnici, protože byste mohli poškodit Arduino.
Krok 7. Připojte červený vodič z přední části červené lišty na pinu 30 k 5V pinu na Arduinu
To zajistí napájení Arduina.
Krok 8. Vložte spínač do prostoru mezi kolíky 24-26
Tento přepínač vám umožní vypnout robota, aniž byste museli vypnout napájení.
Krok 9. Připojte červený vodič z H24 k červené kolejnici na dalším prázdném kolíku napravo od snímače
Tím bude tlačítko napájeno.
Krok 10. Pomocí rezistoru připojte H26 k modré kolejnici
Připojte jej ke kolíku přímo vedle černého vodiče, který jste právě připojili v předchozích krocích.
Krok 11. Připojte bílý vodič z G26 ke kolíku 2 na Arduinu
To umožní Arduinu detekovat tlačítka.
Část 4 z 5: Instalace softwaru Arduino
Krok 1. Stáhněte a rozbalte Arduino IDE
Zde se vyvíjí Arduino a umožňuje vám naprogramovat pokyny, které poté můžete nahrát do svého mikrokontroléru Arduino. Můžete si jej zdarma stáhnout z arduino.cc/en/main/software. Stažený soubor rozbalte dvojitým kliknutím na soubor a přesunutím složky, která obsahuje, na snadno přístupné místo. Program ve skutečnosti nenainstalujete, místo toho jej spustíte ze složky, která byla extrahována dvojitým kliknutím na arduino.exe.
Krok 2. Připojte přihrádku na baterie k Arduinu
Zapojte zadní zásuvku baterie do konektoru na Arduinu a napájejte ji.
Krok 3. Vložte Arduino do počítače přes USB
Je pravděpodobné, že Windows zařízení nerozpozná.
Krok 4. Stiskněte
Win+R. a zadejte devmgmt.msc.
Tento příkaz otevře Správce zařízení.
Krok 5. Klikněte pravým tlačítkem na Neznámé zařízení v části Další zařízení a vyberte Aktualizovat software ovladače
Pokud tuto možnost nevidíte, klikněte na Vlastnosti, vyberte kartu Ovladač a poté klikněte na Aktualizovat ovladač.
Krok 6. Vyberte Vyhledat ovladač v počítači
To vám umožní vybrat vestavěné ovladače dodané s Arduino IDE.
Krok 7. Klikněte na Procházet a poté otevřete složku, kterou jste dříve extrahovali
Najdete v něm složku s ovladači.
Krok 8. Vyberte složku s ovladači a klikněte na OK
Pokud jste upozorněni na neznámý software, potvrďte, že chcete pokračovat.
Část 5 z 5: Programování robotů
Krok 1. Otevřete Arduino IDE poklepáním na soubor arduino.exe ve složce IDE
Budete uvítáni prázdným projektem.
Krok 2. Vložte nebo vložte následující kód, aby byl váš robot pokročilý
Níže uvedený kód udrží váš Arduino v chodu.
#include // přidá do programu knihovnu „Servo“// následující příkaz vytvoří dva objekty serva Servo leftMotor; Servo vpravoMotor; neplatné nastavení () {leftMotor.attach (12); // pokud jste omylem prohodili čísla pinů pro vaše servo, můžete je zaměnit zde rightMotor.attach (13); } void loop () {leftMotor.write (180); // s otáčením o 360 stupňů (souvislé otáčení), číslo 180 dává pokyn servu, aby se pohybovalo „vpřed“plnou rychlostí. rightMotor.write (0); // pokud jsou obě hodnoty 180, robot se bude otáčet v kruhu, protože servo je obrácené. „0“říká robotu, aby se pohyboval „dozadu“plnou rychlostí. }
Krok 3. Vytvořte a nahrajte program
Kliknutím na tlačítko se šipkou vpravo v levém horním rohu vytvořte a nahrajte program do připojeného Arduina.
Možná budete chtít zvednout robota z povrchu, protože robot bude po nahrání programu pokračovat v chůzi vpřed
Krok 4. Přidejte funkci spínače zastavení (přepínač zabíjení)
Přidejte následující kód do části „void loop ()“kódu a přidejte funkci stop stop k funkci „write ()“.
if (digitalRead (2) == HIGH) // tento příkaz se spustí po stisknutí tlačítka na pinu 2 Arduino {while (1) {leftMotor.write (90); // "90" je neutrální poloha pro servo, která říká servu, aby se přestalo otáčet vpravoMotor.write (90); }}
Krok 5. Nahrajte a zkontrolujte svůj kód
S již přidaným kódem vypínače můžete nahrát kód a otestovat robota. Robot by měl pokračovat vpřed, dokud nestisknete tlačítko vypínače, které způsobí, že se robot zastaví. Úplný kód bude vypadat takto:
#include // následující příkaz vytvoří dva objekty Servo leftMotor servo; Servo vpravoMotor; neplatné nastavení () {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); }
Příklad
Následující kód bude používat senzory nainstalované na robotu, aby se otočil doleva, kdykoli robot narazí na překážku. Podívejte se na komentáře v kódu, kde najdete podrobnosti o tom, jak používat jednotlivé části. Níže uvedený kód je celý program.
#include Servo leftMotor; Servo vpravoMotor; const int serialPeriod = 250; // tento kód udává zpoždění výstupu konzoly každých 1/4 sekundy (250 ms) bez znaménka long timeSerialDelay = 0; const int loopPeriod = 20; // tento kód nastavuje čtecí frekvenci senzoru na 20 ms, což je 50 Hz bez znaménka longLoopDelay = 0; // tento kód přiřazuje funkce TRIG a ECHO pinům na Arduinu. Zde upravte čísla, pokud je připojíte jiným způsobem konst int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // tento kód definuje dva možné stavy robota: pokračovat vpřed nebo zahnout doleva #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = pokračovat vpřed (VÝCHOZÍ), 1 = odbočit doleva neplatné nastavení () {Serial.begin (9600); // tento senzor určuje konfiguraci pinů pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // toto přiřadí motor pinům 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 vytiskne zprávy o ladění do sériové konzoly if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // tento kód dává senzoru pokyn ke čtení a ukládání dat o měřené vzdálenosti stateMachine (); timeLoopDelay = milis (); }} neplatný stateMachine () {if (state == DRIVE_FORWARD) // pokud není detekována žádná překážka {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // pokud před robotem nic není. ultrasonicDistance bude u některých ultrazvuků záporná, pokud nejsou žádné překážky {// jeďte vpřed rightMotor.write (180); leftMotor.write (0); } else // pokud je před námi nějaký předmět {state = TURN_LEFT; }} else if (state == TURN_LEFT) // pokud je detekována překážka, zahněte doleva {unsigned long timeToTurnLeft = 500; // otočení o 90 stupňů trvá přibližně 0,5 sekundy. Tuto hodnotu bude možná nutné upravit, pokud se vaše kola liší velikostí od velikosti v příkladu bez znaménka dlouhý turnStartTime = millis (); // zachovat podmínku, kdy se robot začne otáčet while ((millis ()-turnStartTime) <timeToTurnLeft) // ponechat tento cyklus, dokud nepřejde timeToTurnLeft (500) {// odbočit doleva, pamatujte, že když jsou oba "180", robot se otočí. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// toto je pro ultrazvuk 2. Tento příkaz možná budete muset změnit, pokud používáte jiný snímač. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // vytáhněte pin TRIG vysoko alespoň na 10 mikrosekund digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // následující je pro chyby ladění v konzole. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = milis (); }}