Difference between revisions of "Jednoduché riadenie servomotorov cez USB"

From RoboWiki
Jump to: navigation, search
m
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
''Autor: Paľo, ppetrovic [[Image:zavinac.gif]] acm.org''
 
''Autor: Paľo, ppetrovic [[Image:zavinac.gif]] acm.org''
 +
 +
[[Simple servomotor control over USB|English version]]
  
 
V niektorých prípadoch sa hodí riadiť jeden alebo dva malé servomotory s nízkou spotrebou
 
V niektorých prípadoch sa hodí riadiť jeden alebo dva malé servomotory s nízkou spotrebou
Line 17: Line 19:
 
** 1M  (R1)
 
** 1M  (R1)
 
** 1k5 (R2)
 
** 1k5 (R2)
** 68R (R3)
+
** 2x 68R (R3,R4)
** 68R (R4)
 
 
* Kondenzátory:
 
* Kondenzátory:
 
** elektrolytický 4u7 (C1)
 
** elektrolytický 4u7 (C1)
Line 24: Line 25:
 
** 2x 18p (C3, C4)
 
** 2x 18p (C3, C4)
 
* indikačná LED (D3)  
 
* indikačná LED (D3)  
* 2x usmerňujúca dióda napr. 1440 (D1,D2)
+
* 2x usmerňujúca dióda napr. 1N4007 (D1,D2)
  
  
Line 56: Line 57:
 
[[Image:usbservoimagine.png]]
 
[[Image:usbservoimagine.png]]
  
Všetky časti softvéru v rátane inštalačnej priručky a zdrojových kódov sú na stiahnutie k dispozícii tu:
+
Všetky časti softvéru vrátane inštalačnej priručky a zdrojových kódov sú na stiahnutie k dispozícii tu:
  
[[Media:usbservo.zip]]
+
[[Media:usbservo.zip|usbservo.zip]] (996 KB)
  
 
__notoc__
 
__notoc__

Latest revision as of 20:10, 14 July 2009

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)