Martin's Bastelstube: PowerBoard für Raspberry Pi
Der Raspberry Pi ist ein leistungsfähiger Linux-Computer, etwa so groß wie eine Kreditkarte.
Ich kann an dieser Stelle nicht ausführlich erklären, was alles mit diesem Rechner möglich ist
– das sprengt den Rahmen dieser Bastelstube. Wer Genaueres wissen möchte, soll sich mal auf der
Homepage des Projekts umschauen.
Der nächste logische Schritt nach dem GPIO-Board für den Raspberry Pi aus
Martin's Bastelstube, Teil XIX
ist ein komplettes Power-Board, das einen ganzen Roboter steuern kann.
Das PowerBoard-Konzept aus
Martin's Bastelstube, Teil XVI
hat sich gut bewährt und soll hier auch mit möglichst wenig Anpassungen wiederverwendet werden.
Power-Board:
Der Entwurf für die Leiterplatte ist schon fertig, ich habe aber noch kein komplettes Board aufgebaut.
Das sind die wichtigsten Konstruktionsmerkmale:
-
Weil der Raspberry Pi nur 8 GPIO-Leitungen hat und wegen seines komplexen Betriebssystems keine
zuverlässige Zeitsteuerung ausführen kann, werden mehr Funktionen als bisher
mit I2C-Bausteinen gesteuert. Beispiele findet ihr in den anderen Teilen meiner Bastelstube:
-
Die SPI-Leitungen werden ohne Pegelwandler direkt aufs
Display-Board
geführt, weil das Display ohnehin mit 3.3 Volt angesteuert werden soll.
-
Das PowerBoard für den Raspberry Pi hat einige Bauteile im SMD-Gehäuse, weil bestimmte
I2C-Chips gar nicht im DIL-Gehäuse zu bekommen sind. Und weil Platz auf der Platine
immer zu knapp ist.
-
Die Abmessungen der Platine orientieren sich an meinen anderen Power-Boards, weil man alle
notwendigen Funktionen nicht einfach auf Kreditkarten-Format zusammenstauchen kann – selbst
mit SMD-Bauteilen nicht.
[ Kleine Anmerkung: Jaja – das habe ich damals 2012 selbst noch geglaubt.
Den Gegenbeweis findet ihr weiter unten. ]
-
Der Raspberry Pi hängt unter dem PowerBoard und wird dort mit Abstandsbolzen fixiert. Das Power-Board
selbst wird mit noch längeren Abstandsbolzen (25 mm) auf dem Untergrund befestigt. So kann man verhindern,
dass der Raspberry Pi das größere Power-Board tragen und die Kräfte beim Herausziehen der
Steckverbinder oder beim Bedienen des Hauptschalters abfangen muss.
-
Das gilt für alle Power-Boards / Power-Slaves auf dieser Seite: Eine
Notabschaltung des Roboters
muss so gebaut werden, dass der Raspberry Pi weiter rechnen kann.
Einerseits darf er nicht "hart" (ohne sauberes Herunterfahren) abgeschaltet werden,
andererseits braucht er zum Hochfahren jedes Mal etwa eine Minute, bis er wieder einsatzbereit ist.
Für die Notabschaltung sollte also nur der Fahrstrom an die Motoren unterbrochen werden
und der Rest der Elektronik in Betrieb bleiben.
Für diesen Zweck gibt es keinen speziellen Anschlussstecker auf der Platine,
aber man kann die Lötaugen der PolySwitch-Überstromsicherung F1 verwenden.
Die Sicherung muss trotzdem im Stromkreis angeschlossen bleiben, aber man kann
außerdem noch den Unterbrecherkontakt des NOT-AUS Schalters in Reihe schalten.
Im besten Fall hat der Schalter noch einen zweiten Kontakt – den kann man auf einen
digitalen Eingang legen. Damit kann man dem Raspberry Pi mitteilen, dass die Notabschaltung
aktiviert wurde. Das Steuerprogramm kann dann wieder in den Ruhezustand zurückschalten
und auf den nächsten Anstoß warten.
Wie sieht denn das Power-Board für den Raspberry Pi aus?
Power-Slave, Version 1:
Die vielen SMD-Bausteine machen das Power-Board sehr aufwändig im Nachbau. Sie sind zum Teil schwer zu beschaffen und teuer.
Da drängt sich die Frage auf, ob man das Ganze nicht komplett anders aufziehen kann.
Man kann. Indem man die ganzen I2C-Bausteine durch einen Mikrocontroller ersetzt, der dieselben Aufgaben übernimmt.
Im Prinzip hat man damit einen aktiven Power-Slave mit ATMega32, wie in
Martin's Bastelstube, Teil XV.
Als einzige Ausnahme muss der I2C-Pegelwandler PCA9517 weiterhin im SMD-Gehäuse verwendet werden,
weil man diesen Baustein nicht im DIL-Gehäuse bekommen kann.
Wie sieht denn der Power-Slave Version 1 für den Raspberry Pi aus?
Wenn man's so recht bedenkt, ist dieses Board auch gut als autonomes
Power-Board mit ATMega32
zu gebrauchen – wenn man den Stecker zum Raspberry Pi und den I2C-Pegelwandler einfach nicht bestückt.
Allerdings gibt es zum Display-Board dann nur die I2C-Verbindung ... Displays mit SPI lassen sich nicht direkt
vom ATMega32 ansprechen.
Power-Slave, Version 2:
Bei diesem Board habe ich es tatsächlich geschafft, den ganzen Power-Slave auf die
Maße des Raspberry Pi zu schrumpfen. Deshalb mussten so viele Bauteile wie möglich
mit einem SMD-Gehäuse verwendet werden, und der Hauptschalter ist ersatzlos
weggefallen. Aber es hat geklappt!
Abmessungen und Montagebohrungen von Version 2 passen zum älteren Raspberry Pi 1.
Aktuellere Bauformen des Raspberry Pi funktionieren elektr(on)isch genauso gut,
allerdings passt dort mein Power-Slave Version 3 von der Größe her besser.
Für die Programmierung des ATMega32 verwende ich hier zusätzlich zum
6-poligen MicroMatch-Stecker (bekannt vom Bobby-Board) auf der Unterseite
der Platine ein paar Kontaktflächen, auf die man federnde Pogo-Pins drücken kann.
Zwei Bohrlöcher geben dem Programmieradapter eine sichere Führung,
damit er die Kontaktflächen zuverlässig trifft.
|
|
|
|
|
Wie sieht denn der Power-Slave Version 2 für den Raspberry Pi aus?
Power-Slave, Version 3:
Dieses Board ist fast das Gleiche wie Version 2, allerdings mit
Abmessungen und Montagebohrungen passend zu den neueren Raspberry Pi 2 / 3 / 4.
Die 5V Betriebsspannung für den ATMega32 (und den Raspberry Pi, wenn man will)
erzeugt jetzt nicht mehr ein Linearregler, sondern ein Schaltregler mit LM2576.
Dadurch entsteht weniger Verlustwärme.
Der erhöhte Stromverbrauch der neueren RasPi-Modelle kann von einem
Linearregler 7805 auch nicht mehr gedeckt werden.
Für die Programmierung des ATMega32 ist der 6-polige MicroMatch-Stecker
von Version 2 (siehe oben) jetzt komplett entfallen.
Die sechs Kontaktflächen auf der Unterseite der Platine sind geblieben.
Wie sieht denn der Power-Slave Version 3 für den Raspberry Pi aus?
Wie ich oben schon geschrieben habe, kann man die Power-Slaves genauso gut
auch als autonomen Roboter-Controller ohne Raspberry Pi einsetzen.
Wenn ihr dabei auch ein Display-Board mit 5V Logikpegeln huckepack obendrauf setzen und über
den RasPi-Stecker versorgen wollt, muss die I2C-Schnittstelle etwas anders bestückt werden.
Bitte beachten: Das Display-Board Version 4
arbeitet mit 3.3V Logikpegeln. Hier müssen die Bauteile der I2C-Schnittstelle unverändert bleiben!
| |
|
|
Die Bauteile IC2, R9, R10, C17, C18 entfallen und werden durch zwei
einfache Drahtbrücken ersetzt.
Man kann dann allerdings nur Display-Boards einsetzen,
auf denen ein Display mit I2C-Schnittstelle verbaut ist.
| |
|
|
... oder man nimmt ganz einfach eines der vielen
Display-/Tastatur-Boards aus
Martin's Bastelstube, Teil X
und verbindet es direkt mit dem
I2C-Stecker auf dem Power-Slave ...
| |
|
Display-Board, Version 1:
Ähnlich wie beim Power-Board aus
Martin's Bastelstube, Teil XVI
gibt es auch hier ein Display-Board in gleicher Größe, das man obendrauf stapeln kann.
Das Display wird über die SPI-Schnittstelle des Raspberry Pi angesprochen,
die Hintergrundbeleuchtung wird über einen PWM-Baustein
PCA9533 gesteuert –
mit einem RGB-Beleuchtungsmodul kann man aus mehr als 65000 Farben auswählen!
Nebenbei trägt das Board noch einen Uhrenbaustein
DS1307
mit Lithium-Knopfzelle, und man kann ein Touchpanel anschließen.
Die Bedienung funktioniert aber auch ohne Touchscreen – ich habe auch einen
kleinen Joystick-Schalter + einen Taster untergebracht, mit denen man einfache
Menüsteuerungen implementieren kann.
Abmessungen und Montagebohrungen des Display-Boards passen zum älteren Raspberry Pi 1.
Leider schweben die Taster etwas unglücklich in der Luft, weil der nächste
Abstandspfosten ziemlich weit entfernt ist – und bei den ganz alten Modellen
des Raspberry Pi kann man überhaupt keine Abstandspfosten verwenden.
Deshalb empfehle ich, ein passendes Stützpolster zwischen Display-Board
und Raspberry Pi einzuklemmen, zum Beispiel aus einem alten Weinkorken geschnitten.
So werden die Druckkräfte abgefedert, wenn jemand die Taster betätigt.
Wie sieht denn das Display-Board für den Raspberry Pi aus?
Display-Board, Version 2:
Genau so wie oben beim Power-Slave Version 3 habe ich das Display-Board auch
auf die mechanischen Abmessungen der neueren Raspberry Pi 2 / 3 / 4 angepasst.
Das Problem mit den hohl liegenden Tastern besteht weiterhin, weil der untere rechte
Abstandspfosten wegfallen musste – an dieser Stelle liegen Anschlusspins der LCD-Anzeige.
Also solltet ihr hier ebenfalls die Platine mit einer Stütze unterfüttern.
Wie sieht denn das Display-Board Version 2 aus?
Display-Board, Version 3:
Display-Board Version 3 verwendet an Stelle des LCD-Displays mit Hintergrundbeleuchtung ein monochromes OLED-Display.
Das ist kontraststärker und besser ablesbar, wenn der Display-Inhalt sich schnell ändert
oder wenn der Roboter sich zügig bewegt.
OLED-Displays brauchen eine 12V-Versorgung. Die kann der Raspberry Pi nicht bieten –
deshalb habe ich auf der Platine einen kleinen Schaltregler zur Erzeugung der 12V untergebracht.
Wie sieht denn das Display-Board Version 3 aus?
Display-Board, Version 4:
Display-Board Version 4 ist der nächste logische Schritt:
- Statt des OLED-Grafikdisplays 128x64 kann auch ein OLED-Textdisplay 20x4 eingesetzt werden.
- Beide Displays werden über den I2C-Bus statt SPI angesteuert.
- Die Echtzeituhr DS1307 wurde herausgenommen,
damit auch der Uhrenquarz und die Knopfzellenhalterung.
- Wenn man das schmalere Textdisplay verwendet, kann der 5-Wege-Joystick SW2
alternativ auch durch Einzeltasten SW3 .. SW7 ersetzt werden.
- Die Tastaturabfrage geschieht über I2C mit einem PCA9554 statt wie bisher über GPIO-Leitungen
- Neben dem Display ist noch Platz für einen digitalen Kompassbaustein HDMM01.
- Weil alles über I2C angesteuert wird, kann man dieses Display-Board auch ohne Raspberry Pi
auf einem Power-Slave Board einsetzen.
- Für den Betrieb ohne RasPi ist ein 3.3V Spannungsregler (alternativ IC2 oder IC3) vorhanden.
Er sollte durch Öffnen der Lötbrücke SJ2 deaktiviert werden, wenn ein RasPi angeschlossen ist.
Wie sieht denn das Display-Board Version 4 aus?
Backlight Color Designer
Es lässt sich schwer vorhersagen, wie die Farben der LCD-Hintergrundbeleuchtung wirklich herauskommen.
Deshalb habe ich ein kleines Programm für den Raspberry Pi geschrieben, mit dem man einfach direkt auf dem
Display-Board (Version 1 oder 2) die Farben ausprobieren kann, bis man eine passende Einstellung gefunden hat.
Die Anzeige und Bedienung erfolgt direkt auf dem Display-Board, damit bekommt man den besten Eindruck.
Tschüß, euer Martin S.
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
|