Intelligente servo-interface IC.pdf · Multiplex Robbe Microprop Simprop X1 10MHz +4V8...+5V5 C2...

2

Click here to load reader

Transcript of Intelligente servo-interface IC.pdf · Multiplex Robbe Microprop Simprop X1 10MHz +4V8...+5V5 C2...

Page 1: Intelligente servo-interface IC.pdf · Multiplex Robbe Microprop Simprop X1 10MHz +4V8...+5V5 C2 10n C1 100µ 10V R4 100Ω C3 1000 ... met RS-232 niveaus;

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

Page 2: Intelligente servo-interface IC.pdf · Multiplex Robbe Microprop Simprop X1 10MHz +4V8...+5V5 C2 10n C1 100µ 10V R4 100Ω C3 1000 ... met RS-232 niveaus;

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