Web nejen o robotice

Od provázků k robotické ruce

Reklama:

Vítám vás u druhého dílu našeho seriálu. Pokud jste si v minulé části vyzkoušeli kartonový prototyp ovládaný provázky, už víte, jak funguje mechanika pohybu. Dnes ale odložíme nůžky na papír a vezmeme do ruky šroubovák a klávesnici.

Pojďme z té „tahací hračky“ udělat skutečnou robotiku.

Od provázku k procesoru: Proč upgradovat?

Mechanická ruka ovládaná prsty je skvělá věc, ale má své limity – musíte u ní fyzicky být. Elektronika nám otevírá dveře k:

  • Dálkovému ovládání (třeba přes Bluetooth).
  • Automatizaci (ruka, která se sama hýbe v pravidelných intervalech).
  • Větší síle a přesnosti (stroj se neunaví a úhel sevření trefí na stupeň přesně).

Princip „šlach“ (táhel) z prvního dílu zůstává, jen na konci toho provázku už nebude váš prst, ale servomotor.

„Svaly“ stroje: Proč právě servomotory?

V robotice nepoužíváme běžné motorky, které se prostě jen točí dokola. Potřebujeme servomotory. Ty totiž vědí, v jaké poloze se nacházejí, a dokážou v ní „ztuhnout“.

Které vybrat?

Typ serva Materiál převodů Síla (tah) Vhodné pro...
SG90 (Micro) Plast cca 1.5 kg/cm Lehké kartonové modely, prsty.
MG995 / MG996R Kov cca 10–13 kg/cm Robustní 3D tištěné ruce, zápěstí.

Jak to propojit? Provázek (šlachu) přivážete k raménku serva (tzv. servo horn). Když se motor otočí o 90°, zatáhne za lanko a prst se zavře.

„Mozek“: Arduino – srdce vaší ruky

Pro řízení pohybu je nejlepším parťákem Arduino Nano nebo Uno. Je to levný a snadno programovatelný mikrokontrolér.

⚠️ Pozor na napájení!

Toto je nejčastější chyba začátečníků. Nepokoušejte se napájet více serv přímo z 5V pinu Arduina. Arduino na to nemá dostatečný proud (ampéry). Pokud serva „cukají“ nebo se Arduino restartuje, potřebujete externí zdroj (např. 4x AA baterie nebo 5V adaptér), přičemž musíte propojit jejich GND (mínus) s Arduinem.

Ovládání: Jak ruku „donutit“ k pohybu?

Máte dvě hlavní cesty, jak ruku ovládat v reálném čase:

  1. Potenciometry (Otočné knoflíky): Nejjednodušší start. Otočíte knoflíkem o 30°, servo se otočí o 30°. Ideální pro testování rozsahu pohybu.
  2. Flex senzory (Ohybová čidla): To už je vyšší liga. Senzor si přilepíte na svou rukavici. Když ohnete svůj prst, senzor změní odpor, Arduino to pozná a ohne prst robotický.

Trocha kódu: Programujeme první prst

K programování použijeme knihovnu Servo.h, která je součástí Arduina. Klíčovým příkazem je zde funkce map(). Ta převádí signál ze senzoru na úhel pro motor.

Matematicky to funguje podle lineární rovnice:

$$output = (input - in_min) \times \frac{out_max - out_min}{in_max - in_min} + out_min$$

Zjednodušená ukázka kódu:

#**include** <Servo.h>

Servo mujPrst;   
int potPin = A0; // Pin, kde je připojen potenciometr

void setup() {  
  mujPrst.attach(9); // Servo je připojené na pin 9  
}

void loop() {  
  int hodnota = analogRead(potPin);          // Čte 0 až 1023  
  int uhel = map(hodnota, 0, 1023, 0, 180); // Přepočítá na 0 až 180 stupňů  
  mujPrst.write(uhel);                      // Pošle příkaz servu  
  delay(15);                                // Krátká pauza pro stabilitu  
}

Kam dál? 3D tisk a hromadné řízení

Pokud vás už nebaví karton, podívejte se na weby jako Printables nebo Thingiverse. Stačí zadat „Robotic Hand“ a najdete stovky hotových dílů pro 3D tisk.

Pokud budete chtít ovládat všech 5 prstů a k tomu zápěstí, Arduino piny vám brzy dojdou. V tu chvíli přichází na řadu PCA9685 – speciální modul (servo driver), který dokáže ovládat až 16 serv najednou pomocí pouhých dvou drátů.

Závěr

Elektronika není strašák, je to jen další vrstva stavebnice. Jakmile rozhýbete první prst pomocí kódu, pocit „já jsem to stvořil“ je k nezaplacení. Robotika je o zkoušení, dělání chyb a následném opravování – tak se nebojte, že se vám napoprvé něco nepovede.