Jak postavit robota doma (s obrázky)

Obsah:

Jak postavit robota doma (s obrázky)
Jak postavit robota doma (s obrázky)

Video: Jak postavit robota doma (s obrázky)

Video: Jak postavit robota doma (s obrázky)
Video: Vytvoř si vlastní DESIGN INTERIÉRU | #1 PŮDORYS (SketchUP) 2024, Duben
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

Krok 2. Otočte baterii tak, aby plochá záda směřovala nahoru

Tělo robota budete stavět pomocí baterie jako základny.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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í.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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ů.

1123333 16
1123333 16

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í.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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í

1123333 19
1123333 19

Krok 1. Otočte robota na bok, abyste viděli baterie v balení

Orientujte jej tak, aby kabel akumulátoru vycházel dole dole.

1123333 20
1123333 20

Krok 2. Připojte červený vodič k druhému pramenu zleva dole

Ujistěte se, že je baterie správně orientována.

1123333 21
1123333 21

Krok 3. Připojte černý vodič k poslednímu pramenu vpravo dole

Tyto dva kabely pomohou zajistit správné napětí pro Arduino.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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ě.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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í.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Krok 2. Připojte baterii k Arduinu

Připojte napájecí konektor baterie do konektoru na Arduinu.

1123333 32
1123333 32

Krok 3. Připojte Arduino k počítači přes USB

Systém Windows pravděpodobně nerozpozná zařízení.

1123333 33
1123333 33

Krok 4. Stiskněte

⊞ Win+R. a zadejte devmgmt.msc.

Tím se spustí Správce zařízení.

1123333 34
1123333 34

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č“.

1123333 35
1123333 35

Krok 6. Vyberte „Vyhledat ovladač v počítači

" To vám umožní vybrat ovladač, který byl dodán s Arduino IDE.

1123333 36
1123333 36

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“.

1123333 37
1123333 37

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

1123333 38
1123333 38

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.

1123333 39
1123333 39

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“. }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Doporučuje: