Strom am Fahrrad

Längere Touren auf dem Fahrrad stellen mich immer vor ein Navigationsproblem. Es gibt kein Äquivalent zu Bundesstraßen oder Autobahnen, auf denen man dank klarer und durchgängiger Beschilderung ohne Navi immerhin schonmal eine größere Stadt ohne Navi oder Karte erreichen kann. Selbst große Radfernwege sind oft schlecht beschildert, schlechte Wege oder Sperrungen zwingen zu Umwegen und so einige Male landete ich am Ende orientierungslos in der Pampa.

Meine Lösung für dieses Problem ist mittlerweile mein Telefon, auf dem die Navigation läuft. Selbst wenn man beim Navigieren häufig den Bildschirm ausschaltet, ist nach mehr oder weniger 4 Stunden der Akku des Telefons leer. Also muss für eine tagesfüllende Tour ein externer Akku  angeschlossen werden. Für mehrtägige Touren müssen auch noch Netzteile mitgenommen werden. Wer auf dem Campingplatz übernachtet, muss dann seine Geräte teilweise über Nacht im Waschhaus lassen. Ein alternativer Weg der Strombeschaffung ist dagegen den Nabendynamo und damit die eigene Muskelkraft zu nutzen.

 

Hintergrund

Im Rad-Forum sind Reiseradler schon früh auf diese Idee gekommen und Jens During hat den Forumslader entworfen und bis heute weiterentwickelt (aktuell in der 5. Version). Die aktuelle Version bietet die Pufferung in großen Akkuzellen, USB- und 12V-Ausgang, verschiedene Sicherheitsmechanismen und sogar eine Bluetoothfunktion, über die Tourdaten ausgelesen werden können. Je nach Konfiguration zahlt man um die 150€ für so ein Gerät. Um ein Gehäuse muss man sich selbst kümmern. Für ähnliche Preise bieten kommerzielle Anbieter eine ähnliche Funktionalität, allerdings technisch deutlich unbedarfter als der Forumslader und dadurch mit deutlich niedrigerer Energieausbeute. Einen sehr detaillierten Test dazu hat Andreas Oehler von Fahrrad Zukunft gemacht.

Andreas Oehler stellt dort neben den Fertiglösungen den selbstgebauten Minimal Lader vor, der aus wenigen Komponenten zur Gleichrichtung, Glättung und Spannungsbegrenzung der Spannung aus dem Dynamo besteht. Die Pufferung wird direkt von einem externem USB-Akku erledigt. Ich mag dieses Konzept, denn der komplexe Teil, also das korrekte Laden und Entladen empfindlicher LiPo-Zellen wird hier in ein fertig kaufbares Produkt ausgelagert. Das entspricht auch der Philosophie des Reiseradelns: Möglichst einfach zu reparierende und weltweit verfügbare Bauteile einsetzen. Einen USB-Akku kann man wohl überall bekommen, einen Lötkolben zum Reparieren der Minimal Lader Schaltung findet man sicherlich auch noch häufig genug.

Weiterhin ist der Preis für mich relevant. Falls der Dynamolader mehr als 100€ kostet, kann ich wahrscheinlich besser eine Armada von USB-Akkus kaufen 🙂

image001

Umsetzung

Meine Anforderungen an einen Dynamolader sind die Folgenden:

  • USB Anschluss mit >1A
  • Lichtausgang mit 7,2V
  • Gleichstromausgang mit 18,5V
  • soll in eine Oberrohrtasche passen

Den Gleichstromausgang brauche ich für einen externen Akku, der neben USB-Anschlüssen auch noch einen Ausgang mit 12-19V für größere Geräte bereitstellt. Dessen Netzteil ist mit 18,5V und 2A spezifiziert. Mein Dynamolader lässt sich auch auf andere Spannungen als 18,5V auslegen. Alles von 7-24V ist hier machbar.

Gleichrichtung

Hier also nun der Aufbau: Die Gleichrichtung, Glättung und Begrenzung der Dynamospannung ist kopiert vom Forumslader 12V+USB. Die Zenerdiode zur Spannungsbegrenzung habe ich ausgetauscht: Statt 22V habe ich 18V genommen, sodass sich mein großer Akku über eine DC-Buchse direkt an die gleichgerichtete Spannung anschließen lässt. Eigentlich wären für diesen ja 2A nötig. Ein Nabendynamo ist eine Permanentmagnet Synchronmaschine (PMSM), deren Ausgangsstrom etwa 500mA beträgt. Die maximale Spannung ist abhängig von der Drehzahl. Wird ein Strom entnommen, so bricht die Ausgangsspannung soweit ein, dass sich wieder ein Strom von 500mA einstellt. Der Akku bekommt also in Wahrheit eine Spannung von deutlich weniger als 18,5V zu sehen, weil er mit seinem Stromhunger diese immer einbrechen lässt, solange er lädt.

image003

USB

Nun zum USB-Anschluss: Einige Geräte verwenden zur Spannungswandlung lineare Regler, die überschüssige Spannung in Wärme umwandeln. Das ist Unfug, denn es sollte möglichst wenig elektrische Leistung verloren gehen, allein schon zum Schutz vor Überhitzung. Mittlerweile sind Schaltregler, welche deutlich effizienter eine Spannungswandlung vornehmen, sehr günstig verfügbar. Gebt einfach mal step down in Ebay ein und staunt ob der niedrigen Preise für die meist aus China gelieferte Elektronik. Noch toller wäre jetzt noch ein Spannungswandler, der direkt mit USB-Anschlüssen kommt. So ein Teil ist zum Beispiel ein Ladegerät, das man an den Zigarettenanzünder vom Auto anschließt. Viele von den dort eingesetzten ICs haben einen Eingangsbereich von 6-24V – perfekt für einen Dynamolader! Ich hatte ein Gerät von Griffin, das mit 2A spezifiziert ist und etwa 1,5A in der Praxis schafft. Der eingesetzte IC ist der ACT4060A.

Beleuchtung

Wie kann man seine Fahrradbeleuchtung nun parallel zur Ladefunktion nutzen? Rechtlich ist man hier im Dunkelgrauen, große Verbraucher dürfen die Lichtanlage nicht beeinträchtigen. Aber technisch ist es durchaus machbar, hier die Leistung etwa 50:50 aufzuteilen. Dazu wird ein Schaltregler Modul auf in meinem Falle 6,8V eingestellt und an die gleichgerichtete Spannung angeschlossen, an der schon das KFZ USB Ladegerät hängt. Einen Ausschalter habe ich für keines der Module eingebaut, weil der Leerlaufstrom bei Schaltreglern sehr gering ist. Die 6,8V habe ich über steckbare Lüsterklemmen angeschlossen, die es ermöglichen, entweder den Dynamo direkt an die Lampe anzuschließen oder beide Geräte an den Dynamolader zu klemmen. Das ist natürlich nicht wasserdicht, aber in dem Punkt darf man gerne entspannen: Regenwasser ist nicht besonders leitfähig und es wird selbst im Dauerregen nur geringe Verluste durch Leckströme geben. Bei einer Fahrt durch Salzwasser mag die Lage anders aussehen 😉

image004

Test

Zum Aufbau der Elektronik habe ich von Jens During die alte Forumslader 12V+USB Platine gekauft, den 12V und den 5V Regler allerdings nicht bestückt sondern stattdessen das KFZ USB Ladegerät und den Schaltregler für die Beleuchtung in ein günstiges Gehäuse eingebaut. Zum Testen hatte ich keine Wechselstromquelle zur Verfügung, also habe ich die Kondensatoren C1 und C2 temporär überbrückt und ein Gleichstromnetzteil angeschlossen.

Fazit

Mittlerweile war das Gerät auf einer Nachmittagstour im Einsatz und hat dort sehr gute Dienste geleistet. Über zwei Stunden wurden zwei USB Akkus aufgeladen, die jeweils die Laufzeit des Telefons während der Navigation um ca. 5 Stunden verlängern sollten. Eine großartige Stromquelle für Radtouren!

Leider scheint mir noch kein Gerät auf dem Markt zu sein, das in puncto Preis/Leistung und Funktionalität zufrieden stellend ist. Es wäre schön, wenn solch ein Lader ohne Selbstbau verfügbar wäre. Und bei geschickter Ausnutzung von massenproduzierten Modulen könnte es sogar ein ganz erstaunlich günstiges Gerät werden! Wer ergreift die Initiative?

 

 

 

 

Advertisements

Mein neuer Lieblingsmikrocontroller

Lieber Arduino, wir haben zusammen viele großartige Jahre miteinander verbracht, doch man entwickelt sich halt weiter und wer bei der Verwendung von ARM-Prozessoren immer noch von seinen Nutzern erwartet, über Serial.print() zu debuggen, der hat wohl einfach den Schuss nicht gehört.

Nun habe ich den Schritt getan und halte ab jetzt die Fahne hoch für einen bösen Megakonzern: STMicroelectronics. Dieser hält im Mikrocontrollermarkt Anteile von um die 50%! Der Verdacht, dass die Mikrocontroller von ST also was taugen, könnte also durchaus berechtigt sein. Es gibt für arme kleine Privatentwickler zwei Reihen von Evaluationsboards, die sehr interessant sind:

STM32F4-Discovery

Neben dem gezeigten Board, das einen Cortex-M4F besitzt, gibt es auch noch weitere Varianten mit anderen Prozessoren oder zusätzlicher Peripherie. Der Prozessor meines Boards trägt die Bezeichnung STM32F407VGT6 und beherbergt 1Megabyte Flash, 192KB RAM, 3 Analog-Digital Wandler, 2 Digital-Analog-Wandler und 14 Timer. Weiterhin sind auf dem Board noch ein Beschleunigungssensor, ein Mikrofon, eine Audioverstärker, vier LEDs und ein Taster, die für eigene Funktionen genutzt werden können, und ein USB on-the-go Anschluss. Das Wichtigste ist das obere Viertel der Platine; hier befindet sich der ST-Link/V2, ein Debugger, mit dem der Mikrocontroller nicht nur programmiert werden kann, sondern mit dem auch der Prozessor angehalten werden kann und alle Register ausgelesen werden können – ganz neue Dimensionen für Leute wie mich, die vorher tatsächlich mit der seriellen Schnittstelle versucht haben, Fehler zu finden 😀

Als Entwicklungsumgebung eignet sich die Coocox IDE sehr gut. Sie bindet die Bibliotheken von ST sowie akzeptable Dokumentation ein und ist komplett kostenlos.

Darüber hinaus gibt es aber noch eine zweite Möglichkeit, für den STM32F407 zu entwickeln, die es ansonsten in dieser Form für kaum einen anderen Mikrocontroller gibt: Mit Simulink! Leider erfordert das eine sündhaft teure Matlab Lizenz. Wäre ich nicht Student an einer Uni, die sechsstellig pro Jahr für eine ‘Total Headcount’-Lizenz löhnt, hätte ich diesen Weg wohl niemals ausprobiert. Das grafische Programmieren ist in ähnlichem Umfang auch mit Labview möglich, welches aber nur mit den eigenen Geräten von National Instruments gut funktioniert. Für Simulink gibt es eine Basisunterstützung vieler Geräte, z.B. für Arduino, Raspberry Pi, Lego NXT, etc. Richtig gute Unterstützung erhält man mit den C2000 DSPs von Texas Instruments, dem Mathworks-eigenen xPC-Target oder der dSpace Hardware.

Oder eben mit dem STM32F4-Discovery. Dafür sorgt das Blockset Waijung. Es scheint für Studenten in Thailand geschrieben zu sein und deckt nahezu jedes Feature des Prozessors ab. I²C, UART, SPI, CAN – alle wichtigen Busse sind da, die Timermodule können nicht nur PWM ausgeben, man kann auch Pulse einlesen und Inkrementalencoder anschließen. Bis zu 6 Encoder lassen sich auslesen! In Hardware!

Hier eine Linkliste zu Ressourcen, die ich noch nicht genannt hatte, die einem aber verdammt gut weiterhelfen beim Einarbeiten in die Materie:

  • mikrocontroller.bplaced.net: Große Sammlung an Libraries, sehr gute Anleitung zur Einrichtung der Coocox IDE
  • tkjelectronics.dk: Review des Discovery Boards mit ausführlichen Demos
  • Waijung: Auf der Seite des Projekts gibt es eine Installationsanleitung, einen Link auf das RapidSTM32-Paket und einen Hinweis auf den Shop, wo Erweiterungsmodule angeboten werden

Und last but definitely not least: Das Ding ist billig. Richtig billig, ST subventioniert das Board, um neue Entwickler an die eigene Plattform heranzuführen.

Kosten: 15€ (farnell, ebay)

 

 

Nucleo

Nucleo F401RE, Bild von STMicroelectronics

Nucleo F401RE, Bild von STMicroelectronics

Nach unten abgerundet wird das Evaluation Board Sortiment von ST durch die Nucleo-Serie. Hier sind schwachbrüstigere Mikrocontroller als bei den Discovery Boards und nochmal niedrigere Preise zu finden. Das Hauptaugenmerk möchte ich hier auf das F401RE, bzw. seinen Nachfolger F411RE legen, welches neben einem Arduino-kompatiblen Pinout auch kompatibel zur Entwicklungsumgebung mbed ist. Hier werden Programme im Browser geschrieben und das Kompilat (Kompilat, hihi :D) auf dem Mikrocontroller gespeichert, welcher sich als USB-Datenträger beim Computer anmeldet. Zusätzlich kann der verbaute ST-Link auch die klassische Debugfunktionalität übernehmen. Ich besitze bisher noch keinen Nucleo, aber das ist nur noch eine Frage der Zeit…

Kosten: ca. 12€ (farnell, ebay)

Die Ulrichs Matrix

Es wird langsam wieder einmal Zeit für einen neuen Artickel.

Ich möchte mich heute einem dieser Schubladenprobleme widnem. Einer Sache, die schon ewig bei mir in der Schublade lag. Wenn man es genau nimmt seit der 7. Klasse. Es handelt sich um ein kleines Knobelspiel, dass ich damals in meiner Zeit im Studienseminar St. Joseph,

dem Semex, mir ausgedacht habe,

Es ist ein Spiel, bei dem man die Ziffern von 1 bis 9 in eine 5×6 Matrix einfüllen muss, dabei versucht er alle zweistelligen Zahlen von 11-99, die sich aus diesen 9 Ziffern bilden lassen, darzustellen. Hierbei wird eine zweistellige Zahl aus der Matrix, sowohl waagrecht, als auch renkrecht und in beiden Richtungen aus  Matrix gelesen. Jedoch nicht diagonal.

Ein kleines Beispiel:

2   3   ….

7   4  …..

…….

In dieser oberen Ecke stehen folgende Zahlen: 23, 32,27,72,34,43,74 und 47. Die Diagonale 24 ist nicht zugelassen.

 

Eine fertig ausgefüllte Ulrichsmatrix hat die tolle Eigenschaft, dass sie wieder eine neue Ulrichsmatrix ergit, wenn man jede Ziffer durch eine andere Ziffer vertauscht. Das könnte interesannt werden bei bestimmt, zugebener Maßen sehr einfachen, Verschlüßungenstechniken.

Viel Spaß beim Knobeln.

Fritz

RFM12 Funkmodule mit Arduino ansprechen

Der Kistenschieber  Elektronikversender Pollin bietet RFM12 Module für gerade mal 5€ an.

Ein Schnäppchen, verglichen mit Xbee oder Bluetooth Modulen. Dummerweise sind die Dinger nicht mehr so ganz taufrisch und die meiste Hilfe im Internet bezieht sich auf den Nachfolger RFM12B.

Die alten RFM12-Module zum Laufen zu bringen ist kein Kunststück – die Schwierigkeit für mich bestand damals eher darin, mich durch die vielen Tutorials und Beispielprogramme zu wühlen. Die meisten sind in normalem C, ich wollte aber etwas, was schön gekapselt in einer Library steckt und sich einfach benutzen lässt.

Die Lösung stellte Jean-Claude Wippler zur Verfügung, ein passionierter Programmierer und Blogger, dessen Daily Weblog jeelabs.org ich euch sehr ans Herz legen möchte. Als ich es gefunden hatte, habe ich begonnen, jeden einzelnen Post zu lesen – jetzt, wo ich damit fertig bin, hat er das Bloggen eingestellt 😥

Sein RF12-driver ist in der Bibliothek JeeLib zu finden, die es hier auf Github herunterzuladen gibt (Ganz rechts findet man den Button ‘Download ZIP’). Alles ist gut dokumentiert und erlaubt einen sehr energiesparenden Betrieb (Bei ihm zuhause läuft ein Mikrocontrollerboard, das seit 3 Jahren mit einer einzigen Akkuladung läuft und jede Minute über das RFM12B-Modul einen Zählerstand ausgibt). Um das alte RFM12-Modul zu verwenden, muss man Folgendes beachten:

  • Das letzte Argument in der Funktion rf12_initialize muss 212 sein
  • Das RFM12 ist explizit 5V-tolerant. Man braucht keine Pegelwandler.

Was für beide Versionen des Funkmoduls gültig ist:

  • Vor dem Senden mittels rf12_sendStart müssen eventuelle Empfangsvorgänge abgeschlossen werden (rf12_recvDone aufrufen) und abgefragt werden, ob das Senden auch begonnen werden kann (rf12_canSend gibt 1 zurück). Bereits der Aufruf von rf12_canSend leitet das Senden ein. Wenn rf12_canSend 1 zurückliefert, muss man auch direkt danach rf12_sendStart aufrufen, ansonsten passiert Blödsinn.
  • Das zweite Argument von rf12_sendStart ist ein Zeiger auf die zu übertragenden Daten. Wenn du eine einzelne Variable übertragen willst, dann schreibe ein & vor ihren Namen; wenn du ein Array versenden willst, reicht dessen Name. Das dritte Argument ist die Länge der Daten in Byte. Bis zu 66 Byte passen in ein Paket.
  • Zum Empfangen sollte möglichst häufig die Funktion rf12_recvDone aufgerufen werden. Wenn diese etwas anderes zurückliefert als 0, so ist gerade ein Paket empfangen worden. Dieses wurde in das Array rf12_data gespeichert und sollte von dort möglichst schnell ausgelesen werden, damit die Daten nicht beim Empfang des nächsten Pakets überschrieben werden.

Beispielprogramme zum Senden und Empfangen sind auf GitHub zu finden. Ich habe hier im Wesentlichen die Programme von oppes kopiert. Man braucht zwei Arduinos und zwei RFM12 Module. Der eine sendet einen konstant ansteigenden Zähler aus. Der andere gibt die empfangenen Daten auf der seriellen Konsole aus. Voilá! – Deine erste Funkstrecke!

Der Anschluss funktioniert folgendermaßen (Macht bitte parallel diese Seite zur Referenz auf):Steckleisten_RFM12

  • SDO an Pin 12 (MISO)
  • nIRQ an Pin 2 (INT0)
  • FSK über einen 10 Kiloohm Widerstand mit der Versorgungsspannung verbinden
  • nSEL an Pin 10 (SS)
  • SCK an Pin 13 (SCK)
  • SDI an Pin 11 (MOSI)
  • GND an Masse
  • VDD an die Versorgungsspannung
  • an ANT ein Stück Draht anlöten, etwa 173mm bei der 433MHz-Version

Bei Instabilitäten noch die Kontakte nRES und nIRQ mit 10K Widerständen hochziehen. Ich habe zurechtgebogene Stiftleisten zur Breadboardmontage angelötet – absolut schrecklich! Schöner gehts mit diesem Adapter oder einer selbstdesignten Platine.

Alles in allem eine sehr schöne Möglichkeit, um geringe Datenmengen zu übertragen. Vielen Dank an JCW für den fantastischen Treiber!

 

 

 

Turing blender game

Over the weekend, i came up with the idea of starting more blender simulator games and I decided to build a turing machine.

Awe yeah. Here a little preview.

Details will follow soon….

1

The Bits of ‘endless’ paperband are represented as blue and red boxes to achieve the highest level of abstraction.

And I have no clue why i wrote that article in english. it just popped up. 🙂

Blender game

Im Moment bin ich ja gerade dabei einen Zeppelin Simulator mit dem Program Blender zu erstellen.

Blender ist eine freie Software, die diese Woche übrigens ihren 20. Geburtstag feiert. 🙂

Nun über Silvester war ich auf der legendären Wewo des Cusanuswerkes. Zusammen mit meinen super netten Workshopteilnehmer haben wir gemeinsam nun frei nach unserem Motto: “Gottes Werk und Teufel’s Woche” ein Eisbachrennen mit den zwei Enten Claudia (in weiß) und Franz-Peter (in rot).

Ziel des Spieles ist möglichst viele Flaschen aus dem Eisbach zu fischen. Hierbei sei es dem Spieler selbst überlassen, dies auf Grund zur Liebe zur Natur oder auf Grund reiner Genußsucht zu tun.

Anfangs bestadn auch die Schwierigkeit einen Punktezähle für Himmel und Höhle zu erstellen, aber am Ende ging alls gut- ohne eine einzige Zeile Code !

Image

Hier die fertig erstellte Spiel Szene des Eisbaches.

Und unten das fertig gerenderte Spiel

Image