Posts mit dem Label LiPo werden angezeigt. Alle Posts anzeigen
Posts mit dem Label LiPo werden angezeigt. Alle Posts anzeigen

Samstag, 12. Januar 2019

Odroid XU4Q mit Akku/Batterie betreiben

Im Rahmen meines Roboter-Projektes muss der Odroid per Batterie bzw. Akku mit Strom versorgt werden. Laut offizieller Spezifikation benötigt der Odroid 5V DC mit 4A zum stabilen Betrieb. Rechnerisch entspricht dies einer Leistung von 20W.

Es gibt keine Akkus oder Batterien, welche direkt 5V liefern. In Reihe geschaltete Alkali-Mangan-Zellen (z.B. der gute Alte 9V Block) liefern nur Spannungen welche ein ganzzahliges Vielfaches von 1,5V darstellen. Die im Modellbau verbreiteten Lithium-Polymer(LiPo)-Akkus liefern hingegen ganzzahlig vielfache Spannungen von 3,7V, also 3,7V, 7,4V, 11,1V usw. Es gibt zwar USB-Powerbanks, welche sehr genau 5V als Ausgangsspannung liefern, aber der maximale Strom liegt bei nur 2A.

Es führt kein Weg daran vorbei eine Stromversorgung aus einem passenden DC-DC-Wandler und einer passenden Batterie selber zusammenzustellen.

Aus dem Modellbau habe ich schon Turningy 3S, 2200mAh LiPo-Akkus vorliegen. Diese liefern 11,1V (tatsächlich über 12V, wenn vollaufgeladen) und einen maximalen Strom von etwa 44-50A (je nach Discharge-Rating 20C-25C). Diese Akkus können aufjedenfall ausreichend Strom liefern, um den Odroid zu speisen.
Als DC-DC-Wandler habe ich mir bei Ebay einen Stepdown-Wandler mit 10A max Strom und Eingangsspannungsbereich 6,5-60V und Ausgangsspannungsbereich 1,5-30V für ca. 7€ gekauft.
DC-DC Stepdown-Wandler, 10A, Uin=6,5V-60V; Uout= 1,5V-30V


Zunächst habe ich ein Labornetzteil an den Eingang des DC-DC-Wandlers geschlossen und mit 12V betrieben. Der Odroid wurde an den Ausgang des DC-DC-Wandlers geschlossen. So konnte ich den Odroid mit angestecktem WLan-Stick, USB-Webcam und Tastatur problemlos booten und betreiben.
Im Bootvorgang konnte ich den Odroid am Labornetzteil teilweise 1,5A ziehen sehen, d.h. 18W (dies kommt sehr nahe an die 20W aus den offiziellen Odroid-Spezifikationen).
Im normalen Betrieb zog der Odroid im Mittel etwa 0,7A, d.h. etwa 8-9W. Wenn man die CPU richtig quält, so kann der Strom aber durchaus 1,2A überschreiten, also 15W.

Nach diesem Testlauf mit Labornetz habe ich einen 2200 mAh LiPo 20-30C an den DC-DC-Wandler-Eingang angeschlossen. Mit dem ersten Akku konnte ich den Odroid nicht stabil booten. Mehrere Versuche führten zu einer nichtendenen Bootschleife. Tatsächlich war dieser LiPo etwas aufgebläht und ich vermute, dass dieses Exemplar defekt war.
Mit einem weiteren Turningy 2200 mAh LiPo 25-35C konnte ich den Odroid dann aber stabil booten und ca. 45 min betreiben.

Verwendeter LiPo-Akku und DC-DC-Stepdown-Wandler

Odroid mit angeschlossenem WLan-Stick und Stromversorgung

Auf dem Odroid hatte ich während dem 45min-Akku-Betrieb einen RTMP-Stream-Server gestartet, der im lokalen Netzwerk die angeschlossene USB-Webcam zum Streaming zur Verfügung stellt. Diesen Stream konnte ich auf meinem Windows-Rechner flüssig empfangen und abspielen. D.h. die gesamte Testdauer waren der WLan-Stick und die Webcam als Verbraucher aktiv am Odroid. In dieser Betriebsart braucht der Odroid ca. 10W, d.h im Test wurden ca. 7,5Wh verbraucht. Rechnerisch kann der gezeigte LiPo 2,2Ax11,1V=24,4 Wh Energie speichern. Tatsächlich war der Akku aber nicht vollständig geladen, dies ist die hauptsächlich Erklärung für die geringe Akku-Laufzeit des Odroid in meinem Test.
Mit einem zweiten Akku, LiPo von Zippy 1000 mAh 3s 25C, konnte der Odroid auch stabil betrieben werden. Dieser Akku hat etwas weniger als die Hälfte der Kapazität und somit sollte rechnerisch eine Betriebsdauer von etwas über 1h möglich sein. Im Test konnte der Odroid 27 min mit dieser Batterie betrieben werden. Hier war die Batterie voll aufgeladen. D.h. die halbierte Laufzeit ist zunächst nicht zu erklären. Möglicherweise arbeitet der DC-DC-Wandler sehr ineffizient und die Batterie selbst ist auch schon mehrere Jahre alt.
In jedem Fall ist für meinen Anwendungsfall eine Betriebsdauer > 30 min ausreichend und mit einer Investition in einen besseren Akku sollte eine Laufzeit von über 2h kein Problem darstellen.


Mittwoch, 28. Dezember 2016

Erste Schritte mit dem Arduino Micro

Ich habe ein größeres Projekt geplant, der Bau eines 4WD Roboters. Möglicherweise wird die Steuerung oder ein Teil mittels eines Arduino Mikrocontroller geschehen.
Nun habe ich mir für ca. 29 Euro bei Conrad einen Arduino Micro gekauft.
Im folgenden Beschreibe ich eine Transistor-Schaltung die ich zu Versuchszwecken aufgebaut habe. Die Transistor-Schaltung dient dazu einen Verbraucher An- bzw. Auszuschalten, der seine Leistung nicht direkt über einen I/O Pin des Arduino bezieht. Das ist notwendig, wenn der Verbraucher (z.B. ein DC Motor) mehr als 5 V Spannungsversorgung oder 20 mA Dauerstrom bzw. 40 mA Spitzenstrom benötigt (siehe Spezifikation des Arduino Boards, Kapitel "Input and Output").

Arduino Micro Pin-Belegung (von https://www.arduino.cc)
Nach der automatischen Installation der Treiber des Arduinos unter Windows 7 und der Installation der IDE habe ich zunächst das Programm "Blink" auf den Arduino hochgeladen. Dies ist der Abschließende Schritt des "Getting Started" Tutorials auf Arduino.cc. Dieses Programm führt dazu, dass die LED auf dem Controller-Board blinkt: 1 Sekunde an und 1 Sekunde aus. Gleichzeitig liegt auch an dem I/O-Pin D13 eine Spannung von 5V bzw. 0V im 1 Sekundetakt an.

Nachfolgende Zeichnung zeigt die Schaltung, die ich als erstes zum Testen aufgebaut habe:

Die LED ist der Verbraucher-Dummy. Durch das programmierte Schalten von Pin D13 am Arduino wird ein NPN Transistor gesperrt bzw. auf Durchlass geschaltet. Wenn der Transistor auf Durchlass geschaltet ist, liegt an der LED der 3-Zellen LiPo Akku als Spannungsquelle an (11,1 V). Für eine LED sind keine 11,1 V notwendig. Später soll aber die LED durch ein DC Motor ersetzt werden, dieser braucht höhere Spannungen und Ströme als direkt vom Arduino am Pin D13 bereitgestellt werden können.
Schaltung um Verbraucher (LED) mittels Transistor An und Aus zuschalten.

Als Transistor wurde ein NPN 2N2222A verwendet. Welcher Pin am Transistor Emitter, Collector und Basis sind, kann dem verlinkten Datenblatt entnommen werden. Im Schaltbild zeigt der Pfeil den Emitter an. Die Basis ist über einen Widerstand mit dem steuerbaren Pin D13 am Arduino verbunden.

Der Vorwiderstand und Parallelwiderstand bei der LED sind so dimensioniert, dass bei durchgeschaltetem Transistor (11,1 V) durch die LED 15 mA Strom fließt. Ein größerer Strom würde die LED zerstören. Zudem muss die LED richtig herum eingebaut werden. Das längere Beinchen muss an den Plus-Pol.

Obige Schaltung wurde auf einem Steckbrett aufgebaut. Siehe nachfolgende zwei Fotos:

Die LiPo-Batterie ist nicht auf den Bildern gezeigt. Oben ist das "Blink"-Programm im "HIGH" Modus und unten im "LOW" Modus.

Diese Schaltung kann nicht direkt verwendet werden um einen DC Motor zu steuern. Zunächst habe ich einen Modelcraft 1:18 6V Getriebemotor zum Testen gekauft. Dieser benötigt 1,6 A Strom unter Last. Zudem ist eine Stall-Current von 20 A angegeben. Der hier verwendete Transistor kann nur 800 mA Strom über Collector-Emitter leiten und geht bei höheren Strömen kaputt.
Zunächst plane ich den MOSFET IRLZ34 oder IRLZ44 statt des Bipolartransistors zu verwenden. Zudem muss beim Betrieb eines DC Motors eine Freilaufdiode parallel zum Motor geschaltet werden. Andererseits führt beim An- bzw. Ausschalten des Motors der gegenläufige Induktionsstrom zum Durchbrennen des Transistors oder anderer Bauelemente.