Der Power-Slave ist eine Kombination aus einem I2C-Slave mit
Motorausgängen und einem Nachbrenner. Mit so einem "Sklaven"
am I2C-Bus könnt ihr eine der unheimlich leistungsfähigen Computer-Plattformen
einsetzen, von denen "da draußen" in der Welt unendlich viele angeboten
werden, die gewöhnlich aber keine Ein-/Ausgänge für den Einsatz
auf einem Roboter mitbringen.
Ich habe schon verschiedene Power-Slaves entworfen ...
Power-Slave passiv mit PCA953x:
Diese Gruppe von Power-Slaves läuft "passiv", das heißt ganz ohne eigenen
Mikrocontroller. Sie bestehen im Prinzip aus einem I2C-Chip und einem Nachbrenner.
Die I2C-Chips kommen aus der Baureihe PCA953x. Das sind eigentlich Bausteine, die
mehrere LEDs in verschiedenen Helligkeiten ansteuern sollen. Die Helligkeitssteuerung
der LEDs erfolgt über PWM (Pulsweitenmodulation) – genau dasselbe Verfahren,
mit dem die Geschwindigkeit der Motoren auf eurem Roboter bestimmt wird.
Die Chips der PCA953x-Familie gibt es nur im SMD-Gehäuse zu kaufen.
Also muss man entweder mit einer kleinen Adapterplatine die Anschlüsse
auf das gewöhnliche Rastermaß einer Lochrasterplatine bringen oder
man baut gleich die gesamte Schaltung mit SMD-Bausteinen auf.
Der Nachbau meiner SMD-Schaltungen ist nur etwas für erfahrene Elektroniker
mit einer ruhigen Hand und einem sehr feinen Lötkolben!
Power-Slave passiv mit PCA9531:
Dieser Power-Slave benutzt als Leistungsteil einen Nachbrenner Version 5
(siehe Martin's Bastelstube, Teil IX),
der über Optokoppler komplett vom Steuerteil der Schaltung getrennt ist.
Fast alle Bauteile sind im SMD-Gehäuse SMD, also unheimlich flach.
Das Ganze passt problemlos auf eine Platine in Bobby-Größe.
Wenn ihr die PolySwitch-Sicherung abgewinkelt einlötet, lassen sich diese
Power-Slaves mit 10mm-Abstandsbolzen übereinander stapeln.
Über einen Schalter lassen sich verschiedene I2C-Geräteadressen einstellen.
Ihr könnt bis zu 8 dieser Power-Slaves gleichzeitig am I2C-Bus betreiben.
Wie sieht denn so ein Power-Slave mit PCA9531 und IRF7389 überhaupt aus?
Die nötigen Programme:
Name |
Verwendung |
kopieren nach |
Bemerkungen |
I2C_PCA953x.h |
Bibliothek-Header |
RobotBuilder\*lib\include |
Funktionen für Benutzung der Baustein-Familie PCA953x |
I2C_PCA953x.cc |
Bibliothek-Funktionen |
RobotBuilder\*lib\src |
I2C-Test_PCA9531.cc |
Testprogramm |
in euer Projekt-Verzeichnis |
Beispiel für Verwendung des Power-Slave mit PCA9531 |
qfixI2C.h |
Bibliothek-Header |
RobotBuilder\qfix\qfixlib\incl |
Neue Funktionen für den I2C-Bus,
I2C-Datenrate nur 100 kBit/s
|
qfixI2C.cc |
Bibliothek-Funktionen |
RobotBuilder\qfix\qfixlib\src |
gbI2C.h |
Bibliothek-Header |
RobotBuilder\GoldBoard\lib\include |
Neue Funktionen für den I2C-Bus,
I2C-Datenrate nur 100 kBit/s
|
gbI2C.cc |
Bibliothek-Funktionen |
RobotBuilder\GoldBoard\lib\src |
Power-Slave passiv mit PCA9533:
Dieser Power-Slave benutzt als Leistungsteil einen Motortreiber LB1649, der
ohne Optokoppler direkt angesteuert wird. Das spart Ausgangspins, und so kann
man mit dem PCA9533 zwei Motoren steuern.
Der LB1649 kann Motorströme bis 1 A treiben. Wenn das nicht reicht,
baue ich euch noch einen Power-Slave mit PCA9533 und L6205, der schafft dann 2,8 A.
Leider gibt es für den PCA9533 nur eine I2C-Geräteadresse, so dass
ihr nur einen solchen Baustein am I2C-Bus einsetzen könnt.
Wie sieht denn so ein Power-Slave mit PCA9533 und LB1649 überhaupt aus?
I2C-Motor mit PCA9533:
Dieser Power-Slave ist dem oberen Typ sehr ähnlich, allerdings steuert
er nur einen Motor an. Und – jetzt kommt's – die Platine wird direkt
auf einen QFIX-Motor gelötet!
Auch die Versorgung des Motors geschieht über das I2C-Bus-Kabel, so dass
der Motor also direkt als I2C-Slave angesteuert werden kann.
Hier wird mit den I2C-Geräteadressen etwas herumgetrickst, so dass
man zwei Motoren mit je einem PCA9533 am I2C-Bus einsetzen kann.
Auf demselben Platz kann man auch einen PCA9530 einlöten, damit
sind dann zwei weitere Motoren ansteuerbar. Die Umschaltung der IC-Ausgänge
und des Adresspins beim PCA9530 erfolgt durch Lötbrücken.
Wie sieht denn so ein I2C-Motor mit PCA9533 und LB1641 überhaupt aus?
Power-Slave aktiv mit ATMega32:
Der Zusatz "aktiv" soll heißen, dass dieser Power-Slave mit einem eigenen
Mikrocontroller ausgestattet ist.
Dieser Power-Slave rechnet mit dem ATMega32, den wir vom Bobby- oder Gold-Board kennen.
Allerdings habe ich dem Controller einen Quarz spendiert, damit er wenigstens mit den
vollen 16 MHz rechnen kann (das Bobby-Board arbeitet nur mit 8 MHz).
Der Master kann – wenn es ein Bobby-Board ist – huckepack auf dem
Power-Slave montiert werden. Er bekommt dann auch seine Stromversorgung direkt
vom Power-Slave.
Dem Bobby-Board fehlen ein Display und leicht erreichbare Tasten (z.B. um den
Roboter während der Fahrt zu stoppen). Das ist auf dem Power-Slave vorgesehen.
Alternativ kann der Power-Slave auf Wannensteckern 6 digitale Ein-/Ausgänge und
7 analoge Eingänge anbieten. Beide Varianten sind auf derselben Platine
möglich, man muss einfach andere Bauteile bestücken.
Als Motortreiber habe ich zwei L6205 eingesetzt, die zusammen vier Motorausgänge
mit je 2,8 Ampère treiben können. Ein fünfter Ausgang wird
über einen MOSFET vom Typ IRF530 geschaltet – darüber kann man
zum Beispiel einen Schussmechanismus ansteuern. Der IRF530 selbst kann bis zu
12 A schalten, aber die Leiterbahnen auf dem Power-Slave werden wohl
nur bis etwa 6 A vertragen.
Im Layout seht ihr große Masseflächen an den mittleren Pins der
Motortreiber L6205. Sie werden zur Kühlung der Chips eingesetzt. Für
eine gute Wärmeabfuhr ist es also eigentlich am besten, wenn ihr die
Motortreiber direkt in die Platine einlötet und keine IC-Fassung verwendet.
Das macht natürlich den Austausch der Motortreiber umso schwieriger,
wenn man sie durch zu hohe Ströme zerstört hat. Durch die bessere
Kühlung vertragen sie aber auch etwas mehr Strom, also ist es weniger
wahrscheinlich, dass sie überhaupt ausfallen.
Wie sieht denn so ein Power-Slave mit ATMega32 überhaupt aus?
Wer es absurd findet, dass man bei so einem leistungsfähigen Slave überhaupt
noch ein zweites Board als Master einsetzt, der soll einmal bei
Martin's Bastelstube, Teil XVI reinschauen.
Power-Slave für Raspberry Pi: |
|
|
|
|
Das PowerSlave-Konzept lässt sich beliebig weiterführen – in
Martin's Bastelstube, Teil XX
habe ich verschiedene Power-Slaves für den
Raspberry Pi entworfen.
|
|
Power-Slave für / mit Arduino Uno: |
|
|
|
|
|
... und wenn wir gerade dabei sind: in
Martin's Bastelstube, Teil XXVII
gibt es auch einen Power-Slave für den
Arduino Uno.
Ähnlich wie beim aktiven Power-Slave oben kann man auch dieses PowerBoard so einsetzen,
dass es autonom ohne zusätzliches Master-Board funktioniert.
|
|
Tschüß, euer Martin S.
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!