Chcete se naučit stavět vlastního robota? Existuje mnoho různých typů robotů, které si můžete vyrobit sami. Většina lidí chce vidět robota provádět jednoduché úkoly přesunu z bodu A do bodu B. Můžete si vyrobit robota zcela z analogových komponent nebo si koupit startovací sadu od nuly! Sestavení vlastního robota je skvělý způsob, jak se naučit elektroniku i počítačové programování.
Kroky
Část 1 ze 6: Sestavení robota
Krok 1. Shromážděte své součásti
K sestavení základního robota budete potřebovat několik jednoduchých komponent. Většinu, ne -li všechny tyto součásti najdete ve svém místním hobby obchodě s elektronikou nebo u několika online prodejců. Některé základní sady mohou obsahovat také všechny tyto komponenty. Tento robot nevyžaduje žádné pájení:
- Arduino Uno (nebo jiný mikrokontrolér)
- 2 serva s nepřetržitým otáčením
- 2 kola, která pasují na serva
- 1 kolečko
- 1 malé nepájivé prkénko (hledejte prkénko, které má na každé straně dvě kladné a záporné čáry)
- 1 snímač vzdálenosti (se čtyřpólovým konektorovým kabelem)
- 1 mini tlačítkový spínač
- 1 odpor 10 kΩ
- 1 kabel USB A na B
- 1 sada odlamovacích hlaviček
- 1 6 x držák baterie AA s napájecím konektorem 9 V DC
- 1 balíček propojovacích vodičů nebo 22-měřicí propojovací vodič
- Silná oboustranná páska nebo horké lepidlo
Krok 2. Otočte baterii tak, aby plochá záda směřovala nahoru
Tělo robota budete stavět pomocí baterie jako základny.
Krok 3. Zarovnejte dvě serva na konci baterie
To by měl být konec, ze kterého vychází kabel akumulátoru. Serva by se měla dotýkat dna a otočné mechanismy každého z nich by měly směřovat ven po stranách akumulátoru. Serva musí být správně vyrovnána, aby kola šla rovně. Vodiče pro serva by měly vycházet ze zadní části baterie.
Krok 4. Nalepte serva páskou nebo lepidlem
Ujistěte se, že jsou pevně připojeny k bateriovému bloku. Zadní strany serva by měly být zarovnány se zadní částí baterie.
Serva by nyní měla zabírat zadní polovinu baterie
Krok 5. Připevněte prkénko kolmo na volné místo na baterii
Měl by jen trochu viset nad přední částí baterie a bude přesahovat každou stranu. Než budete pokračovat, ujistěte se, že je bezpečně upevněn. Řada „A“by měla být nejblíže servům.
Krok 6. Připojte mikrokontrolér Arduino k vrcholům serva
Pokud jste správně připojili serva, měl by mezi nimi vzniknout plochý prostor, který se dotýkají. Na tento plochý prostor nalepte desku Arduino tak, aby konektory USB a Power Arduina směřovaly dozadu (pryč od prkénka). Přední strana Arduina by se měla jen stěží překrývat s prkénkem.
Krok 7. Nasaďte kola na serva
Pevně přitlačte kola na otočný mechanismus serva. To může vyžadovat značné množství síly, protože kola jsou navržena tak, aby co nejlépe přilnula pro nejlepší trakci.
Krok 8. Připevněte kolečko ke spodní části prkénka
Pokud převrátíte podvozek, měli byste vidět kousek prkénka přesahující baterii. Připevněte kolečko k tomuto prodlouženému dílu, v případě potřeby použijte stoupačky. Kolečko funguje jako přední kolo, což umožňuje robotovi snadné otáčení v libovolném směru.
Pokud jste si koupili sadu, sesilatel mohl mít několik stoupaček, které můžete použít k zajištění sesilatele na zem. já
Část 2 ze 6: Zapojení robota
Krok 1. Odlomte dvě 3kolíkové hlavičky
Budete je používat k připojení serv k prkénku. Zatlačte kolíky dolů přes záhlaví tak, aby kolíky vycházely ve stejné vzdálenosti na obou stranách.
Krok 2. Vložte dvě záhlaví do kolíků 1-3 a 6-8 v řadě E prkénka
Ujistěte se, že jsou pevně zasunuty.
Krok 3. Připojte kabely serva ke konektorům s černým kabelem na levé straně (kolíky 1 a 6)
Tím se připojí serva k prkénku. Ujistěte se, že je levé servo připojeno k levému záhlaví a pravé servo k pravému záhlaví.
Krok 4. Připojte červené propojovací vodiče z kolíků C2 a C7 k červeným (kladným) vývodům kolejnic
Ujistěte se, že používáte červenou lištu na zadní straně prkénka (blíže ke zbytku šasi).
Krok 5. Připojte černé propojovací vodiče z pinů B1 a B6 k pinům modré (uzemněné) kolejnice
Ujistěte se, že používáte modrou lištu na zadní straně prkénka. Nezapojujte je do kolíků č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 serva a otáčet kolečky.
Krok 7. Připevněte snímač na přední stranu prkénka
Nedostává se zapojen do vnějších napájecích lišt na prkénku, ale místo toho do první řady písmen s písmeny (J). Umístěte jej přesně do středu a na každé straně je k dispozici stejný počet kolíků.
Krok 8. Připojte černý propojovací vodič z pinu I14 k prvnímu dostupnému pinu 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 dostupnému kolíku červené kolejnice napravo od 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 přenese informace ze senzoru do mikrokontroléru.
Část 3 ze 6: Zapojení napájení
Krok 1. Otočte robota na bok, abyste viděli baterie v balení
Orientujte jej tak, aby kabel akumulátoru vycházel dole dole.
Krok 2. Připojte červený vodič k druhému pramenu zleva dole
Ujistěte se, že je baterie správně orientována.
Krok 3. Připojte černý vodič k poslednímu pramenu vpravo dole
Tyto dva kabely pomohou zajistit správné napětí pro Arduino.
Krok 4. Připojte červený a černý vodič k krajně pravému červenému a modrému kolíku na zadní straně prkénka
Černý kabel by měl být zapojen do kolíku modré kolejnice na kolíku 30. Červený kabel by měl být zapojen do kolíku červené kolejnice na kolíku 30.
Krok 5. Připojte černý vodič z kolíku GND na Arduinu k zadní modré liště
Připojte jej na kolík 28 na modré liště.
Krok 6. Připojte černý vodič ze zadní modré lišty k přední modré liště na vývodu 29 pro každého
Nepřipojujte červené kolejnice, protože pravděpodobně poškodíte Arduino.
Krok 7. Připojte červený vodič z přední červené lišty na pinu 30 k 5V pinu na Arduinu
To zajistí napájení Arduina.
Krok 8. Vložte spínač tlačítka do mezery mezi řadami na kolících 24-26
Tento přepínač vám umožní vypnout robota, aniž byste museli odpojovat napájení.
Krok 9. Připojte červený vodič od H24 k červené liště v dalším dostupném pinu napravo od senzoru
Tím se tlačítko zapne.
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 připojili před několika kroky.
Krok 11. Připojte bílý vodič z G26 ke kolíku 2 na Arduinu
To umožní Arduinu zaregistrovat tlačítko.
Část 4 ze 6: Instalace softwaru Arduino
Krok 1. Stáhněte a extrahujte Arduino IDE
Toto je vývojové prostředí 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 a přesuňte složku dovnitř na snadno přístupné místo. Program ve skutečnosti nenainstalujete. Místo toho jej spustíte z extrahované složky dvojitým kliknutím na arduino.exe.
Krok 2. Připojte baterii k Arduinu
Připojte napájecí konektor baterie do konektoru na Arduinu.
Krok 3. Připojte Arduino k počítači přes USB
Systém Windows pravděpodobně nerozpozná zařízení.
Krok 4. Stiskněte
⊞ Win+R. a zadejte devmgmt.msc.
Tím se spustí Správce zařízení.
Krok 5. Klikněte pravým tlačítkem na „Neznámé zařízení“v části „Ostatní zařízení“a vyberte „Aktualizovat software ovladače
" Pokud tuto možnost nevidíte, klikněte místo toho 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 ovladač, který byl dodán s Arduino IDE.
Krok 7. Klikněte na „Procházet“a přejděte do složky, kterou jste dříve extrahovali
Uvnitř najdete složku „ovladače“.
Krok 8. Vyberte složku „ovladače“a klikněte na „OK
" Pokud jste upozorněni na neznámý software, potvrďte, že chcete pokračovat.
Část 5 ze 6: Programování robota
Krok 1. Spusťte 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 následující kód, aby váš robot šel rovně
Díky níže uvedenému kódu se vaše Arduino bude neustále posouvat vpřed.
#include // přidá do programu knihovnu „Servo“// následující vytvoří dva objekty serva Servo leftMotor; Servo vpravoMotor; neplatné nastavení () {leftMotor.attach (12); // pokud jste omylem přepnuli čísla pinů pro vaše serva, můžete je vyměnit zde rightMotor.attach (13); } void loop () {leftMotor.write (180); // s plynulým otáčením, 180 říká servu, aby se pohybovalo plnou rychlostí „vpřed“. pravý motor. napsat (0); // pokud jsou oba na 180, robot půjde do kruhu, protože serva jsou překlopená. „0,“říká, že se má pohybovat plnou rychlostí „dozadu“. }
Krok 3. Sestavte a nahrajte program
Kliknutím na tlačítko se šipkou vpravo v levém horním rohu sestavte a nahrajte program do připojeného Arduina.
Možná budete chtít zvednout robota z povrchu, protože po nahrání programu bude pokračovat v pohybu vpřed
Krok 4. Přidejte funkci přepínače zabíjení
Přidejte následující kód do části „void loop ()“v kódu, abyste povolili přepínač kill, nad funkce „write ()“.
if (digitalRead (2) == HIGH) // toto se zaregistruje při stisknutí tlačítka na pinu 2 Arduina {while (1) {leftMotor.write (90); // "90" je neutrální poloha pro serva, která jim říká, aby se přestali otáčet vpravoMotor.write (90); }}
Krok 5. Nahrajte a otestujte svůj kód
Po přidání kódu přepínače zabíjení můžete robota nahrát a vyzkoušet. Mělo by pokračovat v jízdě vpřed, dokud nestisknete spínač, v tomto okamžiku se přestane pohybovat. Úplný kód by měl vypadat takto:
#include // následující vytvoří dva objekty serva Servo leftMotor; 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); }
Část 6 ze 6: Příklad
Krok 1. Postupujte podle příkladu
Následující kód použije senzor připojený k robotu, aby se otočil doleva, kdykoli narazí na překážku. Podrobnosti o tom, co která část dělá, najdete v komentářích v kódu. Níže uvedený kód je celý program.
#include Servo leftMotor; Servo vpravoMotor; const int serialPeriod = 250; // toto omezuje výstup do konzoly na jednou za 1/4 sekundy bez znaménka long timeSerialDelay = 0; const int loopPeriod = 20; // toto nastavuje, jak často má snímač odečítat 20 ms, což je frekvence 50 Hz bez znaménka dlouhoLoopDelay = 0; // to přiřadí funkce TRIG a ECHO pinům na Arduinu. Zde proveďte úpravy v číslech, pokud jste připojili odlišně konst. Int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // toto definuje dva možné stavy robota: jízda vpřed nebo odbočení doleva #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = jízda vpřed (VÝCHOZÍ), 1 = odbočte doleva neplatné nastavení () {Serial.begin (9600); // tyto konfigurace pinů senzoru pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // toto přiřadí motory pinům Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // toto detekuje přepínač zabíjení {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // toto vytiskne zprávy o ladění do sériové konzoly if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // toto dává senzoru pokyn ke čtení a uložení naměřených vzdáleností stateMachine (); timeLoopDelay = milis (); }} neplatný stateMachine () {if (state == DRIVE_FORWARD) // pokud nebyly detekovány žádné překážky {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // pokud před robotem nic není. ultrasonicDistance bude u některých ultrazvuků záporná, pokud není překážka {// jízda 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. Možná to budete muset upravit, pokud mají vaše kola jinou velikost než příklad bez znaménka dlouhý turnStartTime = millis (); // ušetříte čas, který jsme začali otáčet while ((millis ()-turnStartTime) <timeToTurnLeft) // zůstaňte v této smyčce, dokud neuplyne timeToTurnLeft {// odbočte doleva, pamatujte, že když jsou obě nastaveny na "180", otočí se. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// toto je pro ultrazvuk 2. Tyto příkazy budete možná muset změnit, pokud používáte jiný snímač. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // udržuje spoušťový kolík vysoko po dobu alespoň 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 (); }}