Jednoduché riadenie servomotorov cez USB

From RoboWiki
Jump to: navigation, search

Autor: Paľo, ppetrovic Zavinac.gif acm.org

English version

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:

Usbservo.gif

Rozloženie súčiastok na testovacej doske necháme na konštruktéra, nasledujúci obrázok ukazuje výslednú dosku:

Usbservofinal.jpg

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.

Usbservoimagine.png

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)