Sestroj si svou vlastní robotickou ruku. Řekneme ti jak na to, máme pro tebe podrobný návod. Kde najdeš součástky k sestavení se dozvíš v článku.
V dnešním článku si ukážeme jak si postavit robota. Co si pod pojmem „robot“ představit? Možností je celá řada – od autíčka, které ti jezdí po pokoji a nenarazí do zdi, až po automatickou linku vyrábějící nějaký výrobek.
My se v našem návodu zaměříme na stavbu robotické ruky, která ti bude přemisťovat věci z místa na místo.
Stavba robotické ruky se může zdát docela složitá, pokud by jsi se do stavby pustil sám bez hotových mechanických součástí. Výrobu takových součástí totiž nezvládne každý. Naštěstí však existují již hotové sady součástí, ze kterých se taková robotická ruka dá pohodlně sestavit.
Co budeme ke stavbě potřebovat:
- Arduino UNO
- Servo shield pro Arduino UNO
- Stavebnici robotické ruky
- Napájecí zdroj 5V/3A pro napájení servomotorů
- microUSB adaptér
- 4ks 10k potenciometrů
- Vodiče na propojování
Jelikož servo shield neumí z napájecího zdroje pro servomotory napájet i Arduino, je potřeba ještě pro něj zajistit zvlášť napájení. Pro jednoduchost v našem článku budeme Arduino napájet z počítače přes USB.
Robotická ruka – mechanické sestavení
Jak robotickou ruku pomocí stavebnice sestavit si můžeš prohlédnout na těchto vidích:
Zapojení
Jako první připájej na microUSB adaptér dva vodiče na piny VBUS a GND. Na VBUS např. vodič červený a na GND vodič černý a zapoj je do dvoupinové šroubovací svorkovnice na servo shieldu. Červený VBUS do svorky označené V+ a černý GND do svorky označené GND. Na zkoušku můžeš do microUSB konektoru připojit napájecí zdroj. Na shieldu se ti rozsvítí LEDka označená V+. Pokud nesvítí, zkontroluj správné zapojení a zda ti funguje samotný zdroj. Pokud LEDka svítí, je zapojení v pořádku a můžeš zdroj odpojit a nasunout shield na Arduino UNO. Pokud je vše v pořádku, tak po připojení Arduina do USB počítače se na shieldu rozsvítí LEDka označená VCC. Pokud teď připojíš i napájecí zdroj měly by na shieldu svítit obě LEDky – VCC i V+.
Arduino i napájecí zdroj pro shield můžeš odpojit a budeš zapojovat jednotlivé kabely od servomotorů do shieldu.
Na shieldu jsou k tomuto účelu osazeny pinové konektory označené 0–15. Jeden konektor má vždy 3piny označené jako PWM, V+ a GND. Pin PWM slouží pro přenos ovládacího signálu pro servomotor, piny V+ a GND slouží pro napájení servomotoru. Svým rozložením souhlasí se zapojením konektoru u servomotoru, takže není nutné jakékoli přepojování. Stačí konektor servomotoru zapojit do konektoru na shieldu. Je potřeba dbát na správnou orientaci konektoru. Konektor servomotoru se zapojuje vždy tak, aby krajní oranžový vodič servomotoru byl zapojen do pinu označeném na shieldu jako PWM. Potom jsou správně zapojeny i ostatní vodiče – prostřední červený = V+ a krajní hnědý = GND.
Servomotory můžeš zapojit například takto: horní servomotor na kleštích do konektoru označeném jako 0, servomotor pod ním do konektoru 1, další pod ním do konektoru 2, pak 3, 4 a poslední spodní, přišroubovaný na základně, do konektoru 5.
Software
Nejdříve je potřeba doinstalovat do Arduino IDE knihovnu pro komunikaci s obvodem PCA9685, který je osazen na servo shieldu, a který přes sběrnici I2C na svých výstupech ovládá připojené servomotory.
V našem příkladu budeme používat knihovnu PWM Servo Driver Library od Adafruit. Jak doinstalovat knihovny si můžeš přečíst v našem článku Instalace knihoven do Arduino IDE.
Nyní se můžeš pustit do programu, kterým svoji sestavenou robotickou ruku rozpohybuješ. Zde vyvstává otázka, čím takovou robotickou ruku ovládat? Možností je opět mnoho. Můžeš připojit k analogovým pinům Arduina potenciometry a podle nastavení konkrétního potenciometru řídit polohu daného servomotoru, nebo můžeš k pinům připojit moduly joysticku, tlačítka, nebo k Arduinu připojit Bluetooth modul a ovládat robotickou ruku z aplikace v mobilním telefonu. Nebo lze pozice jednotlivých servomotorů ruky řídit pomocí sériového portu z počítače. Ne všechny možnosti jsou vhodné pro začátečníka, jako například komunikace po sériovém portu. Tady je již potřeba větší znalosti programování sériové komunikace.
V našem příkladu pro svoji jednoduchost použijeme ovládání potenciometry. Budeme k tomu potřebovat 4ks potenciometrů s odporem 10k. Jeden krajní vývod potenciometrů(u všech vždy ten stejný) připoj k +5V Arduina, druhý krajní pak k GND. Jednotlivé prostřední vývody potenciometrů pak připoj postupně k analogovým pinům Arduina A0, A1, A2 a A3. Na těchto pinech budeš mít napěťové úrovně v rozsahu 0-5V, které pak budeš číst za běhu programu a podle nich řídit polohu servomotorů.
V následujícím kódu ti ukážeme, jak to celé naprogramovat.
Pozorný čtenář si jistě všiml, že máme 6 servomotorů, ale jen 4 potenciometry. Dva servomotory tedy nebudou v tomto příkladu ovládány pomocí potenciometrů. Je to z toho důvodu, že Arduino UNO má na posledních analogových pinech A4 a A5 namapovánu sběrnici I2C a tak nelze v tomto případě tyto piny použít jako analogové. Ovládání zbylých dvou serv je tedy nutné vyřešit jiným způsobem.
