Ako postaviť robota doma (s obrázkami)

Obsah:

Ako postaviť robota doma (s obrázkami)
Ako postaviť robota doma (s obrázkami)

Video: Ako postaviť robota doma (s obrázkami)

Video: Ako postaviť robota doma (s obrázkami)
Video: Akon - Smack That (Official Music Video) ft. Eminem 2024, Smieť
Anonim

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

1123333 1
1123333 1

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

Krok 2. Prevráťte batériu tak, aby plochá zadná strana smerovala nahor

Telo robota budete stavať pomocou batérie ako základu.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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

1123333 11
1123333 11

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.

1123333 12
1123333 12

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

1123333 13
1123333 13

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.

1123333 14
1123333 14

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

1123333 15
1123333 15

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.

1123333 16
1123333 16

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

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

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

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Krok 2. Pripojte batériu k Arduinu

Zapojte konektor napájania batérie do konektora na Arduine.

1123333 32
1123333 32

Krok 3. Pripojte Arduino k počítaču pomocou USB

Windows pravdepodobne zariadenie nerozpozná.

1123333 33
1123333 33

Krok 4. Stlačte

⊞ Win+R. a napíšte devmgmt.msc.

Tým sa spustí Správca zariadení.

1123333 34
1123333 34

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

1123333 35
1123333 35

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.

1123333 36
1123333 36

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

1123333 37
1123333 37

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

1123333 38
1123333 38

Krok 1. Spustite Arduino IDE dvojitým kliknutím na súbor arduino.exe v priečinku IDE

Privítate prázdny projekt.

1123333 39
1123333 39

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

1123333 40
1123333 40

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

1123333 41
1123333 41

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

1123333 42
1123333 42

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

Odporúča: