Jednoduché riadenie servomotorov cez USB
Autor: Paľo, ppetrovic acm.org
V niektorých prípadoch sa hodí riadiť jeden alebo dva malé servomotory s nízkou spotrebou priamo z PC. Možné príklady aplikácií sú horizontálne a vertikálne nasmerovanie web-kamery alebo fotoaparátu, kŕmenie rybičiek, regulácia zaclonenia citlivej rastliny a pod. Takéto zariadenie si ľahko a lacno môžeme zostrojiť sami, stačí k tomu náradie na pájkovanie a trochu trpezlivosti. Ide nám teda o klasické modelárske servá, ktoré sa riadia digitálnym PWM signálom na napäťovej úrovni TTL. Budeme potrebovať tieto súčiastky:
- skúšobnú dosku plošného spoja
- USB kábel
- koncovka pre pripojenie USB kábla
- jednočipový mikropočítač Atmel ATtiny2313 v puzdre PDIP (najlepšie aj 20-pinovú päticu)
- 12MHz oscilátor (Q1)
- Rezistory:
- 150R (R5)
- 1M (R1)
- 1k5 (R2)
- 2x 68R (R3,R4)
- Kondenzátory:
- elektrolytický 4u7 (C1)
- 100n (C2)
- 2x 18p (C3, C4)
- indikačná LED (D3)
- 2x usmerňujúca dióda napr. 1N4007 (D1,D2)
Schéma zapojenia je na nasledujúcom obrázku:
Rozloženie súčiastok na testovacej doske necháme na konštruktéra, nasledujúci obrázok ukazuje výslednú dosku:
Servomotory sa pripájajú na dva trojkolíkové konektory. V našom prípade je na nich vyvedené priamo napájanie z USB portu počítača (musíme však dať pozor, aby odber motorčekov nebol veľký), alternatívne môžeme pridať baterkový modul a na servo konektory priviesť napájanie z bateriek.
Napokon potrebujeme naprogramovať jednočipový mikropočítač. Využijeme systém V-USB od Objective Development, konkrétne projekt PowerSwitch, ktorý modifikujeme pre naše potreby.
Softvér sa skladá z troch častí:
- Firmware - program pre ATtiny2313, ktorý obsluhuje USB zbernicu a spracováva povely pre riadenie servomotorov
- Driver - program pre PC, ktorý treba nainštalovať do Windows potom, ako zariadenie prvýkrát pripojíme k počítaču
- Riadiaci program - pomocou ktorého cez driver vysielame povely na naše zariadenie a čítame jeho aktuálny stav
Riadiaci program je navrhnutý ako jednoduchá konzolová (command-line) aplikácia (naprogramovaná v systéme Cygwin), ktorá sa riadi paramtrami príkazového riadku alebo aj klávesnicou cez terminál (v prípade, že máme nainštalovaný Cygwin). Okrem toho sme vyrobili jednoduchý riadiaci program v jazyku Imagine Logo, ktorým môžeme motory riadiť myšou. V dolnej časti okna sú pamäťové tlačidlá, ktoré dovolujú zapamätať a spätne vyvolať niekoľko konkrétnych polôh oboch motorov.
Všetky časti softvéru vrátane inštalačnej priručky a zdrojových kódov sú na stiahnutie k dispozícii tu:
usbservo.zip (996 KB)