Obsah:

[Robot Arduino] Jak vytvořit robota pro zachycení pohybu - Palcový robot - Servomotor - Zdrojový kód: 26 kroků (s obrázky)
[Robot Arduino] Jak vytvořit robota pro zachycení pohybu - Palcový robot - Servomotor - Zdrojový kód: 26 kroků (s obrázky)

Video: [Robot Arduino] Jak vytvořit robota pro zachycení pohybu - Palcový robot - Servomotor - Zdrojový kód: 26 kroků (s obrázky)

Video: [Robot Arduino] Jak vytvořit robota pro zachycení pohybu - Palcový robot - Servomotor - Zdrojový kód: 26 kroků (s obrázky)
Video: Programming in Arduino with Global Specialties AAR Arduino Robot 2024, Listopad
Anonim
Image
Image
[Robot Arduino] Jak vytvořit robota pro zachycení pohybu | Palcový robot | Servomotor | Zdrojový kód
[Robot Arduino] Jak vytvořit robota pro zachycení pohybu | Palcový robot | Servomotor | Zdrojový kód

Palcový robot. Byl použit potenciometr servomotoru MG90S. Je to velmi zábavné a snadné! Kód je velmi jednoduchý. Je to jen asi 30 řádků. Vypadá to jako motion-capture.

Zanechte prosím jakýkoli dotaz nebo zpětnou vazbu!

[Pokyn]

  • Zdrojový kód
  • Soubory pro 3D tisk

[O výrobci]

Youtube

Krok 1: ARDUINO PARTS

DÍLY ARDUINO
DÍLY ARDUINO
DÍLY ARDUINO
DÍLY ARDUINO
DÍLY ARDUINO
DÍLY ARDUINO

Nainstalujte Arduino IDE

https://www.arduino.cc/en/Main/Software

Nainstalujte ovladač CH340 (pro čínskou verzi)

https://www.wch.cn/download/CH341SER_ZIP.html

DOWNLOAD - zdrojový kód

  • https://github.com/happythingsmaker/ThumbsRobot
  • Jak vidíte, existuje soubor zip. Extrahujte veškerý soubor a dvakrát klikněte na soubor zdrojového kódu.

Vyberte port deska / procesor / Com

  • Arduino Nano
  • ATmega328P (starý zavaděč)

Připojte své arduino nano

Připojte USB kabel a objeví se nový port

Najděte / vyberte vznikající port

  • Klikněte na zobrazený port a stiskněte tlačítko Odeslat
  • Stiskněte tlačítko pro nahrání

Krok 2: 3D TISKOVÉ DÍLY

3D TISKOVÉ DÍLY
3D TISKOVÉ DÍLY

Stáhněte si 3D modelovací soubory z Thingiverse

https://www.thingiverse.com/thing:2844993

Vytiskněte všechny díly jeden po druhém

Krok 3: Část obvodu

Obvodová část
Obvodová část

Použijte rozšiřující desku Arduino Nano. Protože samotný Arduino Nano nemá mnoho pinů, budete muset použít rozšiřující desku.

Když se podíváte na kabeláž připojenou k motoru, vidíte tři barvy. Žlutá, červená a hnědá. Brown musí být spojen s G (Ground).

V následujících krocích se na to znovu podíváme zblízka.

Krok 4: HARDWAROVÁ DÍL - Připravte si všechny díly

HARDWAROVÁ DÍL - Připravte si všechny díly
HARDWAROVÁ DÍL - Připravte si všechny díly

[Díly]

  • 1 x Arduino Nano
  • 1 x rozšiřující deska Arduino Nano
  • 6 x servomotory
  • 2 x Hračkové kuličky
  • 12 x šroubové šrouby (2 * 6 mm)

[Nástroje]

  • 3D tiskárna (Anet A8)
  • Vlákno pro 3D tisk (PLA 1,75 mm)
  • Kleště na drát
  • Střihač drátů
  • Tavná lepicí pistole
  • Šroubovák (+)
  • Elektronická páska
  • Pájecí nástroje (Hakko)
  • Ruka pro pájení
  • Elektrický šroubovák

Krok 5: Upravte 3 servomotory na snímač polohy

Následující kroky vám ukážou, jak upravit servomotor na snímač polohy. v podstatě většina servomotorů má potenciometr nebo kodér pro získání hodnoty úhlu.

Použijeme samotný potenciometr. potřebujeme otevřít pouzdro, rozebrat desku a znovu ji zapojit.

Krok 6: Odšroubujte 4 šroub na zadní straně a otevřete přední kryt

Odšroubujte 4 šroub na zadní straně a otevřete přední kryt
Odšroubujte 4 šroub na zadní straně a otevřete přední kryt
Odšroubujte 4 šroub na zadní straně a otevřete přední kryt
Odšroubujte 4 šroub na zadní straně a otevřete přední kryt

Budete potřebovat malý šroubovák, protože jsou příliš malé. Motor má 3 části - přední, tělo a zadní.

Když otevřete přední stranu, uvidíte převody. Ve skutečnosti tento motor nepoužíváme jako „motor“. Převody tedy již teoreticky nejsou nutné. Ale použijeme nějakou jejich část, aby měl operační úhel stále omezení otáčení.

Krok 7: Vyřaďte 3. rychlostní stupeň

Vyřaďte 3. rychlostní stupeň
Vyřaďte 3. rychlostní stupeň
Vyřaďte 3. rychlostní stupeň
Vyřaďte 3. rychlostní stupeň
Vyřaďte 3. rychlostní stupeň
Vyřaďte 3. rychlostní stupeň

Potenciometr v servomotoru má úhlové omezení, které je kolem 180 stupňů. Potenciometr má svůj vlastní omezovací mechanismus, ale je tak slabý. Snadno se často láme. Aby to bylo chráněno, zařízení poskytuje další mechanismus. První rychlostní stupeň má plastový nárazník, který bude v kontaktu s druhým rychlostním stupněm.

Rozhodně potřebujeme první rychlostní stupeň pro celkový rám, druhý rychlostní stupeň je potřebný pro omezení. Nemůžeme se jich tedy zbavit. Místo nich můžeme odstranit třetí rychlostní stupeň.

Možná si říkáte, proč potřebujeme vyřadit rychlostní stupeň. Tyto tři servomotory budou použity pro získání informací o úhlu. Pokud jsou v nich převody, pohyb bude tuhý. Takže se od nich musíme zbavit jednoho zařízení.

Krok 8: Nové zapojení / pájení

Nové zapojení / pájení
Nové zapojení / pájení

Odřízněte vodiče, které jsou spojeny s motory.

Krok 9: Použijte pájecí nástroj a odpojte desku

Použijte pájecí nástroj a odpojte desku
Použijte pájecí nástroj a odpojte desku
Použijte pájecí nástroj a odpojte desku
Použijte pájecí nástroj a odpojte desku

Krok 10: Odřízněte drát a připravte se na pájení

Odřízněte drát a připravte se na pájení
Odřízněte drát a připravte se na pájení
Odřízněte drát a připravte se na pájení
Odřízněte drát a připravte se na pájení

a vložte trochu pasty a na kabel naneste olovo

Krok 11: Zapájejte

Pájejte to
Pájejte to
Pájet to
Pájet to
Pájejte to
Pájejte to
Pájejte to
Pájejte to

úplně vlevo červená žlutá a hnědá

Krok 12: Naneste na něj trochu lepidla

Naneste na něj trochu lepidla
Naneste na něj trochu lepidla
Naneste na něj trochu lepidla
Naneste na něj trochu lepidla

a obnovit jeho zadní stranu

Potřebujeme ještě 2 potenciometry. proveďte stejnou práci pro dva další motory

Krok 13: Vytvořte první společný suterén

Vytvořte první společný suterén
Vytvořte první společný suterén
Vytvořte první společný suterén
Vytvořte první společný suterén
Vytvořte první společný suterén
Vytvořte první společný suterén

K výrobě tohoto projektu jsem použil varnou desku. jeho používání je levné a pevné. K upevnění rámu na desku budete muset použít šrouby s ostrým koncem. Vytváří současně díru a nit.

K dispozici je 6 motorů. 3 motory na levé straně jsou původní motory. na druhou stranu existují 3 motory, které jsou před krokem upraveny.

Krok 14: Vytvořte vybočovací spoj

Vytvořte vybočovací spoj
Vytvořte vybočovací spoj
Vytvořte vybočovací spoj
Vytvořte vybočovací spoj

Budete muset použít šroub M2 * 6 mm.

Krok 15: Sestavte vybočovací spoj s prvním motorem

Sestavte vybočovací spoj s prvním motorem
Sestavte vybočovací spoj s prvním motorem
Sestavte vybočovací spoj s prvním motorem
Sestavte vybočovací spoj s prvním motorem

Jak vidíte poslední obrázek, budete muset spoj položit v horizontálním směru. A umístění by mělo být 90 stupňů motoru i potenciometru.

Jinými slovy, z tohoto místa můžete otočit kloub o 90 stupňů ve směru hodinových ručiček a proti směru hodinových ručiček.

Krok 16: Sestavte Arduino Nano s rozšiřující deskou Arduino Nano

Sestavte Arduino Nano s rozšiřující deskou Arduino Nano
Sestavte Arduino Nano s rozšiřující deskou Arduino Nano
Sestavte Arduino Nano s rozšiřující deskou Arduino Nano
Sestavte Arduino Nano s rozšiřující deskou Arduino Nano

Zkontrolujte směr. Port USB bude na stejné straně jako DC konektor.

Krok 17: Připojení první vrstvy

Připojení první vrstvy
Připojení první vrstvy
Připojení první vrstvy
Připojení první vrstvy

Potenciometr je spojen s analogovým 0 pinem Arduina. Musíte jej správně zapojit. Toto Arduino Nano má 8kanálový ADC (analogový digitální převodník). Potenciometr v zásadě poskytuje analogovou úroveň nebo volatilitu. Tuto voltovou hodnotu můžete přečíst pomocí pinů ADC

Na druhé straně je servomotor spojen s Digital 9 Arduino. Servomotory lze ovládat pomocí PWM (Pulse Width Modulation). Arduino Nano má 6kanálový PWM pin (pin 9, 10, 11, 3, 5 a 6). Můžeme tedy použít až 6 servomotorů.

V tomto kroku vypadá zdrojový kód takto

#zahrnout

Servo servo [6]; neplatné nastavení () {pinMode (A0, INPUT); servo [0].attach (9);} int tempADC [3] = {0}; void loop () {tempADC [0] = analogRead (A0); servo [0].write (mapa (tempADC [0], 0, 1023, 0, 180));}

Krok 18: Sestavte druhou vrstvu

Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu
Sestavte druhou vrstvu

Druhá vrstva se také snadno vyrábí. Při zapojování kabelu do Arduina si musíte dát pozor na správné místo.

  • Levý servomotor je spojen s kolíkem 10
  • Pravý potenciometr je spojen s A1

#zahrnout

Servo servo [6]; neplatné nastavení () {pinMode (A0, INPUT); pinMode (A1, VSTUP); servo [0].attach (9); servo [1].attach (10);} int tempADC [3] = {0}; void loop () {tempADC [0] = analogRead (A0); servo [0].write (mapa (tempADC [0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); servo [1].write (mapa (tempADC [1], 0, 1023, 0, 180));}

Krok 19: Sestavte rámečky 3. vrstvy

Sestavte rámečky 3. vrstvy
Sestavte rámečky 3. vrstvy

Krok 20: Sestavte rámeček s druhým motorem / potenciometrem

Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru
Sestavte rámeček pomocí druhého motoru / potenciometru

Krok 21: Namontujte 3. motor do kloubového rámu

Namontujte 3. motor do kloubového rámu
Namontujte 3. motor do kloubového rámu
Namontujte 3. motor do kloubového rámu
Namontujte 3. motor do kloubového rámu

Krok 22: Zapojte kabel do Arduina

Zapojte kabel do Arduina
Zapojte kabel do Arduina
Zapojte kabel do Arduina
Zapojte kabel do Arduina
  • 3. motor je spojen s kolíkem 11
  • 3. potenciometr je spojen s A2

kód vypadá takto

#include Servo servo [6]; void setup () {pinMode (A0, INPUT); pinMode (A1, VSTUP); pinMode (A2, INPUT); servo [0].attach (9); servo [1].attach (10); servo [2].attach (11);} int tempADC [3] = {0}; void loop () {tempADC [0] = analogRead (A0); servo [0].write (mapa (tempADC [0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); servo [1].write (mapa (tempADC [1], 0, 1023, 0, 180)); tempADC [2] = analogRead (A2); servo [2].write (mapa (tempADC [2], 0, 1023, 0, 180));}

Krok 23: Sestavte rámeček palce

Sestavte rámeček palce
Sestavte rámeček palce
Sestavte rámeček palce
Sestavte rámeček palce

Krok 24: Otestujte a upravte úhel

Otestujte a upravte úhel
Otestujte a upravte úhel
Otestujte a upravte úhel
Otestujte a upravte úhel
Otestujte a upravte úhel
Otestujte a upravte úhel

Připojte kabel USB k jakémukoli zdroji napájení a robot se brzy zapne. Úhel se může mírně lišit. Upravte úhel jeden po druhém.

Krok 25: Ještě jeden robot?

Ještě jeden robot?
Ještě jeden robot?
Ještě jeden robot?
Ještě jeden robot?

Pokud chcete udělat ještě jednoho robota, můžete to udělat. Zapojte serva do 3, 5 a 6.

#include Servo servo [6]; neplatné nastavení () {pinMode (A0, INPUT); pinMode (A1, VSTUP); pinMode (A2, INPUT); servo [0].attach (9); servo [1].attach (10); servo [2].attach (11); servo [3].attach (3); servo [4].attach (5); servo [5].attach (6);} int tempADC [3] = {0}; void loop () {tempADC [0] = analogRead (A0); servo [0].write (mapa (tempADC [0], 0, 1023, 0, 180)); servo [3].write (mapa (tempADC [0], 0, 1023, 0, 180)); tempADC [1] = analogRead (A1); servo [1].write (mapa (tempADC [1], 0, 1023, 0, 180)); servo [4].write (mapa (tempADC [1], 0, 1023, 0, 180)); tempADC [2] = analogRead (A2); servo [2].write (mapa (tempADC [2], 0, 1023, 0, 180)); servo [5].write (mapa (tempADC [2], 0, 1023, 0, 180));}

Krok 26: Hotovo

Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!
Hotovo!

Pokud máte nějaké dotazy, klidně je nechte:)

Soutěž o mikrořadič
Soutěž o mikrořadič
Soutěž o mikrořadič
Soutěž o mikrořadič

Runner Up in the Microcontroller Contest

Doporučuje: