Hack einer 16*32 RGB LED Matrix – Teil III Der Sketch

Nachdem im 2. Teil der praktische Aufbau den theoretischen Überlegungen des 1. Teiles folgte, nun die Betrachtung von Softwareseite.

Um den Sketch anfangs möglichst einfach zu gestalten, wird im einfachsten Fall einfach eine statische Adresse an die drei Adresspins A, B und C gelegt. Die beiden RGB Ports werden ebenfalls nur mit statischen Daten über HIGH Pegel bedient. Damit beschränkt sich der Sketch im Wesentlichen auf die for-Schleife zur Taktung des CLK Pins und die Steuerung der Kontrollpins OE und LAT. Da dieser sehr einfache Sketch auf Anhieb seine Funktion erledigte, habe ich diesen sofort erweitert. Auf dem nachfolgenden Bild ist das Ergebnis eines bereits etwas modifizierten Sketches zu sehen, bei dem ein Adresszähler mit implementiert ist. Aber der Reihe nach.

Hack einer 16*32 RGB LED Matrix – Teil III Der Sketch weiterlesen

Advertisements

Hack einer 16*32 RGB LED Matrix – Teil II Die Verdrahtung

Schrittweise Verdrahtung des Panels mit dem Arduino Uno

Im 1. Teil dieses Hackings sind einige theoretische Grundüberlegungen und Annahmen entwickelt worden. In diesem Teil folgt der praktische Aufbau. Bei entsprechenden Kenntnissen der angelsächsischen Sprache ist es am einfachsten dem Adafruit Tutorial zu folgen.

Die 5V Stromversorgung des Panels erfolgt über 2 Schraubklemmen oder eine separate 4-pol. Steckerleiste. Zwei identische Stiftleisten mit Wanne zur Datenübertragung befinden sich auf der Rückseite des Panels. Die Eingangsseite ist mit IN und die Ausgangsseite mit OUT beschriftet.

Pinbelegung 16-pol. Header
Quelle: Adafruit

Leider gibt es auch unterschiedliche Pinbezeichnungen der 16-pol, Stiftleiste. Der Latch-Pin LAT kann beispielsweise auch mit STB (Strobe) gekennzeichnet sein. Die Funktion ist aber offensichtlich identisch. Ähnliches gilt auch für die Farbsteuereingänge R1, G1, B1 und R2, G2, B2 welche auch als R0, G0, B0 und R1, G1, B1 bezeichnet sein können. header_beschriftungInnerhalb dieser Dokumentation wird aber weiterhin nur die Bezeichnung synonym zu RGB0 und RGB1 bzw. RGB Port 0 oder 1 verwendet.

Die sukzessive Verkabelung dieser Stiftleiste gelingt mit dem beigefügten header_masse_1Flachbandkabel am einfachsten und sichersten über die 4 mit GND bezeichneten Masseleitungen. Diese können sehr einfach mit einem Ohmmeter eindeutig ausgemessen werden. Alle 4 Leitungen werden mit GND des Arduinos verbunden. Auf dem nebenstehenden Foto sind dieses die vier blauen Leitungen.

Als nächstes lassen sich die sechs RGB Steuereingänge recht gut zuordnen uheader_rgbnd mit den Arduino Uno Pins 2 bis 6 verbinden. Aus Ermangelung an weiteren blauen Kabeln, sind die beiden Steuereingänge B0 und B1 für die blauen LEDs mit gelben Leitungen verkabelt. Für LEDs der Farben Rot und Grün kamen jedoch synonyme Farben zur Anwendung.

header_abc_adresseIm nun folgenden Schritt werden die 3 Adressleitungen A, B, C an die Arduino Kontakte A0 bis A2 angeschlossen. Wie eingangs bereits beschrieben, besteht das Display aus 8 Sektionen; jeweils 2 Zeilen werden immer parallel angesteuert, so dass hier 8 * 2 = 16 Zeilen adressiert werden können.header_clk_oe_

Im letzten Schritt werden die 3 verbleibenden Leitungen CLK und OE mit den Pins 8 und 9 verbunden und zu guter Letzt der LAT (STB) Pin mit Pin 10 des Arduino Uno, hier im Bild noch nicht verdrahtet.

Debugging des Panels

Die in Teil I unter Zusammenfassung beschriebene mögliche Vorgehensweise soll nun im nächsten Teil sukzessive mit Hilfe eines Arduino Sketches erprobt und die bisherigen Vermutungen ggf. korrigiert und ergänzt werden.

Hack einer 16*32 RGB LED Matrix – Teil I Die Vorüberlegungen

Das Adafruit oder ähnliche 16*32 RGB LED Matrix Panels bestehen aus 16 Zeilen mit 32 Spalten ziemlich heller RGB LEDs. In Summe also 512 RGB LEDs pro Panel, die irgendwie auch angesteuert werden wollen. Das Panel hat leider keine PWM Steuereingänge, die Farbkanäle lassen sich nur digital Ein- und Ausschalten! Eine Helligkeits- bzw. Farbsteuerung muss daher manuell durchgeführt werden. Mit Einschalten aller RGB LEDs ergibt sich eine gleichmäßig weiße Ausleuchtung. Die Panels sind elektrisch kaskadierbar, ein Arduino Uno mit der Adafruit Bibliothek jedoch nur eingeschränkt dazu in der Lage.

Es werden 12 Arduino Pins und 800 Byte RAM bei Verwendung der Library benötigt um ein 12-bit Farbimage zu speichern. Die Adafruit Bibliothek unterstützt ausschließlich den Uno oder den Mega. Der Arduino Leonardo oder andere Arduino Mikrocontroller werden derzeit nicht unterstützt.

Ein sehr gutes Tutorial ist bei der Lady Ada zu finden. Die beiden später ggf. noch notwendigen Bibliotheken RGB-Matrix-Panel sowie die Adafruit-GFX-Library können über das jeweilige Adafruit GitHub Repository durch Klick auf den Button „Download Zip“ heruntergeladen werden.

Stromversorgung

Die Stromversorgung des LED Panels darf keinesfalls über den Arduino erfolgen, da dieser nicht genügend Leistung liefern kann und zerstört werden würde! Das 16*32 RGB LED Display darf daher nur über ein separates Netzteil mit 5V und mindestens 2,5A betrieben werden. Werden Panels kaskadiert, vervielfacht sich entsprechend der Strombedarf und ein entsprechend leistungsstärkeres Netzteil ist notwendig!

Hardware Hacking des Panels

Um überhaupt erst einmal eine grobe Idee über die grundsätzliche Funktionsweise des Panels zu entwickeln, ist es durchaus sinnvoll auch einmal die Schaltung nebst Datenblätter dazu anzuschauen. Ein konkretes Schaltbild konnte ich jedoch bisher nicht ausfindig machen. Deshalb habe ich erst einmal festgehalten, welche ICs überhaupt verbaut worden sind, da außer bei Adafruit ansonsten nichts verwendbares an Informationen zu finden war. Jedoch selbst bei der bereits recht ausführlichen Beschreibung von Adafruit fehlen immer noch diverse Details.

Hack einer 16*32 RGB LED Matrix – Teil I Die Vorüberlegungen weiterlesen

III. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick

RasPi als ADS-B Flugtransponder Mode S Decoder

Mit Fertigstellung der RTL-SDR-Installation und ggf. der Kalibrierung im vorherigen Part II, kann nun der ADS-B Decoder dump1090 installiert werden.

  1. Laden wir erst einmal den Sourcecode herunter:
git clone git://github.com/MalcolmRobb/dump1090.git
  1. Mit nachfolgenden Befehlen wechseln wir in das Installationsverzeichnis und starten den Kompilierungsvorgang mit der Installation:
cd dump1090
make
  1. Es gibt nun wieder mehrere Optionen mit dem ADS-B Decoder Dump1090 durchzustarten.
  2. Wechseln wir erst in das Installationsverzeichnis
cd ~/dump1090

III. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick weiterlesen

II. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick

Der RasPi RTL-SDR Serverbetrieb

Nach der Installation des Treibers und der Softwaretools im ersten Teil geht es nun weiter mit der Konfiguration des SDR-Servers. Über das Tool rtl_tcp können die Signale des SDR auch über das Netzwerk gestreamt werden. Das ist der für mich spannendste Teil Radio über so einen preiswerten USB-Dongle zu hören.

  1. Auch die Funktion des SDR RTL-Servers sollte jetzt bereits funktionieren und kann mit sudo rtl_tcp –a <IP-Adresse RasPi> getestet werden. Hier läuft der Server standardmäßig auf Port 1234:
sudo rtl_tcp -a 192.168.1.49
  1. Mit einer kleinen Ergänzung beim Starten des Servers, kann der Port aber auch frei vergeben werden, wie hier auf 1337:
sudo rtl_tcp -a 192.168.1.49 -p 1337
  1. Der Server kann auch im Hintergrund laufen. Dazu wird ans Ende der Befehlszeile einfach noch ein & angehängt. So muss das Tool nicht jedes Mal mit einer neuen Verbindung des Clients ebenfalls neu gestartet werden, sondern lauscht einfach weiter im Hintergrund:
sudo rtl_tcp -a 192.168.1.49 -p 1337 & II. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick weiterlesen 

I. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick

RTL-SDR USB-Stick Installation und Test

In den letzten Tagen ist die Idee gereift meinen bislang noch separat laufenden Raspberry Pi ADS-B Flugtransponderempfänger mit einem sehr preiswerten NoName DVB-T+DAB+FM USB-Stick ebenfalls mit auf den gerade neu aufgesetzten RasPi FHEM-Server zu verlagern, um damit nur noch einen Controller im 24-Stunden Dauerbetrieb laufen zu haben. Der DVB-T USB-Empfänger soll dann dieses Mal auf dem RasPi nicht nur als ADS-B Server (Installationsanleitung und mehr folgt in weiteren Teilen) fungieren sondern auch noch als RTL-SDR Server und seine Daten zum SDR-Client wie zum Beispiel SDR# über das Netzwerk streamen.

Der von mir verwendete USB 2.0 Dongle ist mit einem RTL2832U Demodulator und USB-ControllDVB-T Stick offener, getaktet mit einem 28,8MHz Quarz sowie einem Rafael R820T Tuner-IC ausgestattet. Der Abstimmbereich überstreicht mit dem aktuellen Treiber lückenlos den Bereich von 24 MHz bis zu 1,766 GHz. Mit der Installation eines experimentellen Treibers lässt dich der Abstimmbereich noch etwas erweitern. Weitere Details zu den verwendbaren USB-Dongles können im Internet recherchiert werden. Der etwas empfindlichere R820T2 Tuner, oft in einem blauen USB-Stickgehäuse verbaut, wird bei ebay inzwischen für deutlich unter € 10 angeboten!

DVB-T Stick offen RTL2832UDVB-T Stick offen R820T

 

 

 

Die Stromaufnahme ist mit etwa 1,5W angegeben. Der (MicroCoax) MCX-Antenneneingang ist hier mit 75 Ohm spezifiziert. Die leichte Fehlanpassung auf 50 Ohm Koaxialkabel ist aber zu verschmerzen. I. Der RasPi als RTL-SDR Server mit einem DVB-T USB-Stick weiterlesen

I. Installation und Setup des Rasbian Wheezy auf einen Raspberry Pi

Dieses ist nun der 1. Teil einer mehrteiligen Reihe von Schritt-für-Schritt-Anleitungen die Hausautomatisierungssoftware FHEM auf einem Raspberry Pi zu installieren und später vollständig einzurichten.

  1. Die benötigte Hardware besteht aus:
    • Raspberry Pi Model B oder B+
    • Steckernetzteil 5V / 1,5A bis 2A mit Micro-USB-Anschluss
    • Je nach RasPi Modell eine SD oder MicroSD Karte mit mindestens 4GB, möglichst größer in Class 4 oder Class 6. Ggf. funktioniert im RasPi B+ auch eine schnellere Class 10 MicroSD Karte
    • MicroSD bzw. SD Kartenleser
    • Ethernet LAN-Kabel zum Anschluss des RasPi an den Router
  2. Die verwendete Software sowie einige Tools:
  3. Zuallererst müssen wir von der Downloadseite der Raspberry Pi Organisation das an den jeweils verwendeten Raspberry Pi angepasste Debian Linux Wheezy als Image herunterladen. Details zur Installation sind hier ebenfalls zu finden. Das derzeit aktuelle Image trägt das Datum 2015_05_05 mit dem Kernel 3.18. Das Image entpacken wir als nächstes in einen Unterordner unserer Wahl. Das Herunterladen der etwa 1GB großen Datei dauert schon einige Minuten. Das entpackte Image hat jetzt eine Größe von 3,2GB! Daher brauchen wir ein mindestens 4GB großes Speichermedium, zumal die tatsächlich verfügbare Speicherkapazität der Speicherkarten in der Realität immer deutlich kleiner ist. I. Installation und Setup des Rasbian Wheezy auf einen Raspberry Pi weiterlesen

Einige Ideen zur Erweiterung des Funktionsumfanges eines Class-E Teslaspulenbausatzes – Teil II

Im 1. Teil konnte ich bereits meine Erfahrungen mit dem Aufbau des Class-E SSTC Bausatzes beschreiben. Nachfolgend nun noch die Schilderung einiger weiterer Ideen und Erfahrungen. Auch hier möchte ich jedoch erst wieder mit einem Warnhinweis beginnen.

Teslaspulen sind kein Spielzeug mit dem unbedarft umgegangen werden kann. Schmerzhafte oder auch tödliche Verletzungen sind durchaus im Bereich des Möglichen. Ich kann keinerlei Verantwortung für entstandene Schäden übernehmen!

Optionale Erweiterungsideen

Nun ist so ein „Projekt Teslaspule“ ein durchaus faszinierendes Objekt und auch eine ideale Spielwiese zur Verwirklichung weiterer Ideen. In den nächsten Ausbaustufen sollen durch einige Einstell- und Überwachungsmöglichkeiten der sichere Dauerbetrieb erhöht werden. Eine visuelle Spannungs- und Stromüberwachung mittels einer analogen Anzeige Teslaspulenbausatz_6_CIMG3833_resizederschien mir dazu sinnvoll. Mit einem zusätzlichen Lüfter sollen lt. Manual 3A bei 30V im Dauerbetrieb machbar sein. Die SSTC Baugruppe selber kann bis maximal 35V Versorgungsspannung betrieben werden. Im Wesentlichen sollten dafür die beiden Elkos C2 und C4 mit jeweils 2200uF/35V verantwortlich sein wie aber auch der begrenzte Eingangsspannungsbereich des 12V Stabis. Der Austausch gegen 50V LOW ESR Kondensatoren sollte in diesem Bereich zumindest die Grenzen deutlich nach oben verschieben. Über einen 2. spannungsfesten Längsregler kann diese zu hohe Eingangsspannung vorm 12V Stabi auf ungefährliche Werte unterhalb von 35V begrenzt werden. Eine weitere Alternative wäre auch den 12V Stabi ggf. durch die Hochvoltausführung eines LM317HV zu ersetzen. Die Krönung wäre dann noch eine einstellbare Stromversorgung der SSTC Baugruppe über einen relativ weiten Bereich von vielleicht 24V bis 48V. Ebenfalls eine interessante Option ist noch eine einstellbare Strombegrenzung von 1A bis max. 5A einzubauen.

Einige Ideen zur Erweiterung des Funktionsumfanges eines Class-E Teslaspulenbausatzes – Teil II weiterlesen

Erfahrungsbericht mit dem Bausatz eines Teslaspulengenerators – Teil I

Der Erwerb des Bausatzes erfolgte völlig problemlos über einen eBay-Shop: http://search.ebay.de/?sass=kurt998&ht=-1. Nachfolgend dazu auch die Webseite des Entwicklers und privaten Anbieters http://www.kurts-werkstatt.de. Der Bausatz kann dort für € 69,00 auch direkt per Email bestellt werden. Es handelt sich um die obere Position im Shopbereich „Kleine SSTC im Class-E Betrieb. Betrieb an 15-30V bei 1-3A“! Hier auch noch ein Link zu einem Video dazu: http://youtu.be/ePsfle0Ll7w

Bevor es aber losgeht, unbedingt erst noch ein wichtiger Sicherheitshinweis den ich direkt von der Webseite des Entwicklers übernommen habe:

Sie sollten die Versuche nur nachbauen, wenn Sie sich mit der Materie auskennen. Ein kleiner Fehler kann bei manchen Versuchen tödlich sein. Für entstehende Schäden kann ich keine Verantwortung übernehmen! Alle Versuche auf eigene Gefahr!!!!

Erfahrungsbericht mit dem Bausatz eines Teslaspulengenerators – Teil I weiterlesen

Digispark Minitimer mit einem Atmel Attiny 85 – Das kleine Digispark Kochbuch

Vor einigen Tagen sprach mich ein Freund an, ob ich ihm testweise mit einem meiner Arduinos eine simple zeitgesteuerte Ein-/Aus-Schaltung einer kleinen Spülpumpe programmieren könnte. Auf meine Frage, warum denn dafür keine Schaltuhr aus dem Baumarkt funktioniert, bekam ich folgende Antwort: Die üblichen mechanischen Schaltuhren aus dem Baumarkt haben Schaltreiter mit 30 Minuten Auflösung. Die Pumpe soll aber alle 12 Stunden nur für 10 Sekunden laufen, eine Leitung spülen und dann gleich wieder abgeschaltet werden. Außerdem soll die Bedienung so einfach und vor allem auch so robust wie möglich sein.

Digispark_Minitimer_BaugruppeAlso programmierte ich einen kleinen Sketch und steckte auf dem Steckbrett die beiden LEDs und die Relaissteuerung passend zusammen. Es funktionierte alles einwandfrei. Allerdings widerstrebte es mir für so eine simple Aufgabe am Ende einen vollständigen Arduino Uno oder Leonardo zu verwenden. Einen Barebone mit einem ATmega328P zusammenzulöten erschien mir ebenfalls immer noch zu aufwändig. Nach einigen weiteren Überlegungen eDigispark_Attiny85ntschied ich mich im Laufe des Projektes ein deutlich kleineres Arduino Derivat mit einem kleineren Microcontroller zu verwenden. Ein Digispark sollte hier die Lösung werden. Nebenbei entstand dazu gleich noch ein kleines Digispark Kochbuch.

Digispark Minitimer mit einem Atmel Attiny 85 – Das kleine Digispark Kochbuch weiterlesen