gemaakt van een processor met eenUART die normale seriële signalen opTTL-niveau kan leveren (bijv. de PIC Basicvan Comfile Technology).
De MIC 800 is echt ontworpen omrechtstreeks bestuurd te worden door eenwillekeurige seriële RS232-verbinding.Hij aanvaardt op de ingang dus signa-len met negatieve logica (een logischeéén correspondeert met een laag niveauen andersom). In het geval van eendirecte TTL-verbinding en afhankelijk vande mogelijkheden van de UART van deaangesloten processor is het soms onmo-gelijk om dergelijke signalen te genere-ren. Dan moeten we dus een beroep
doen op een inverterende transistor.De dialoog met de MIC 800 vindt plaatsmet 2400 baud en 8 databits zonderpariteitsbit. De syntax van de opdrach-ten die naar de servo’s gestuurd moetenworden is bijzonder eenvoudig en wordtsamengesteld uit een reeks ASCII karak-ters in de vorm van MNxxx, waarbij:• M is een letter tussen S en Z en corres-pondeert met het adres van de MIC 800.Als u de datasheet op de site van Mictro-nics raadpleegt, zult u constateren dat utot 8 MIC 800’s op dezelfde seriële ver-binding aan kunt sluiten en zo dus maxi-maal 64 servo’s kunt aansturen. Dezemogelijkheid is hier niet gebruikt en hetadres is op S gefixeerd door pen AD0
elektuur - 7-8/2006
R1
22k
R2
10k
T1
BC547
R3
4k7A B
A B A
B
C
TTL
RS232
PIC BASICservo
Conrad FutabaGraupner/JR MicropropRobbe SimpropMultiplex
X1
10MHz
+4V8...+5V5
C2
10n
C1
100µ10V
R4
100 Ω
C3
1000µ10V
K1
K2
K3
K4
K5
K6
K7
K8
A B
C
seriële ingang
060104 - 11
1 ...
8 s
tan
daa
rd s
ervo
mo
tore
n
zie onder
MIC800
IC1
AD0
AD1
AD2
XT1
XT2
SER
RST
14
11
12
SA
SB
SC
SD
SE10
SF
SG17
18
16
15
13SH
3
6
7
8
9
1
2
4
5
A
B
C
D
E
F
G
H
Christian Tavernier
Modelbouw-servo’s worden tegenwoor-dig veel toegepast in de robotica, vaakzitten er in één robot een flink aantal.Een zespoter gebruikt er in het algemeenminimaal drie en een eenvoudige armkan er wel zes of zeven nodig hebben.Hoewel de besturing van dergelijke ser-vo’s in theorie makkelijk gedaan kanworden met een microcontroller, vormthet simultaan laten bewegen van meer-dere servo’s al snel een te zwarebelasting voor de processor die uiteinde-lijk meer processortijd gebruikt om deservo’s aan te sturen dan de nodige bere-keningen uit te voeren om de robot soepelte laten lopen.
Een servo wordt aangedreven met pulsenwaarvan de breedte (die varieert van 1tot 2 ms) de stand bepaalt. Het pro-bleem schuilt in het feit dat de impulseniedere 20 ms herhaald dienen te wor-den om de servo zijn positie te laten hou-den. Het is juist deze herhaling, verme-nigvuldigd met het aantal servo’s,waardoor de microprocessor die zebestuurt overbelast raakt.Ons voorstel is dan ook dit probleem teverhelpen met behulp van een speciaalIC dat één tot acht standaard servo’s kanbesturen met een eenvoudig protocol datdoor een gewone asynchrone verbin-ding wordt overgebracht. Het betreft deMIC 800 van Mictronics (www.mictro-nics.com) die volgens het schema nauwe-lijks eenvoudiger ingezet kan worden.De schakeling met een kristal (X1) en degebruikelijke condensatoren (C1 en C2)wordt direct met de één tot acht te bestu-ren servo’s verbonden. Voor de seriëleaansturing zijn er drie verschillendemogelijkheden die bepaald worden doorde plaatsing tussen de punten A en B inhet schema van:
• een draadbrug, als er gebruik wordtgemaakt van een processor met eenUART die seriële signalen met negatievelogica (TTL-niveau) kan leveren (een BasicStamp bijvoorbeeld);• een weerstand van 22 kΩ in hetgeval van een echte seriële verbindingmet RS-232 niveaus;• een transistor die als inverter isgeschakeld, als er gebruik wordt
Intelligente servo-interface
t/m AD2 aan massa te leggen.• N is een letter tussen A en H en duidtop de te besturen servo volgens de in defiguur aangegeven tekens bij de aanslui-tingen (K1 komt overeen met A en K8met H).• xxx is een getal tussen 001 en 128;dit bepaalt de positie die de servo inmoet nemen. 001 komt overeen metgeheel tegen de klok in en 128 geheelmet de klok mee.
Voor een Basic Stamp zouden we danbijvoorbeeld moeten schrijven:SEROUT Pin, 16780, [’’S’’, ’’X’’, DECPos, CR]Pin is hier de aansluiting voor de seriëlepoort, X is de letter die staat voor deservo, tussen A en H (K1 t/m K8) en Posis de gewenste positie tussen 1 en 128.Met een PIC Basic van Comfile Techno-logy en dezelfde getallen als hierbovenwordt het:
SEROUT Pin, 138, 0, 0, [’’S’’, ’’X’’, DEC(Pos), 13]Na het aansluiten van de MIC 800 zijnalle uitgangen inactief. Als er vervolgenseen tekenreeks voor een servo verstuurdwordt, wekt de corresponderende uit-gang automatisch de pulsen op dienodig zijn om deze positie in stand tehouden zolang de schakeling voedings-spanning krijgt.
www.tavernier-c.com (060104)
7-8/2006 - elektuur 3
Top Related