Home  Service  Projekte  Software  Referenzen  Galerie  Kontakt
  Projekte

Sie finden in dieser Liste alle meine privaten Projekte mit Beschreibung und teilweise auch mit Bildern, Videos und/oder Links zu weiterführenden Seiten.

Sie haben Fragen zu einer bestimmten Projekt oder planen etwas ähnliches? - Fragen Sie mich einfach zu dem entsprechenden Projekt an mit einem Klick auf den Fragen-Button.

➥ Status: gestartet (gestartet: 2020-06)
Evaluationsboard RAPITUS mit ATMEL ARM Cortex Prozessor SAM4S und Schrittmotortreiberstufe über TCP/IP

Ich habe mir mal das RAPITUS Evaluationsboard von Pollin bestellt und habe mal begonnen, mit ARM CPUs etwas herumzuprobieren, da diese schon etwas leistungsfähiger sind als normale Mikroprozessoren. Kombiniert wurde das Board mit einem 32-Bit SAM4S RISC Prozessor mit 2MB Flash, SPI, ADC, RTC, I2C, PWM, USB ... und allem, was das Herz begehrt. Das Board an sich bietet schon einige Peripherie an. Folgende Komponenten habe ich in Gebrauch bzw. mit angeschaltet:

  • DCF77 Zeitmodul
  • 4x16 LCD Module
  • Eigenentwicklung Schrittmotortreiber (3 Motoren)
  • LED-Matrixmodule (hatte ich noch übrig)
  • Ethernet Controller-Modul mit ENC28J60
  • SD Kartenslot
  • USB Schnittstelle
  • Buzzer
  • Taster
  • 2x RS232 Schnittstelle

Programmiert wird das Ganze übrigens über ein ISP Schnittastelle. Ich habe mit dazu ein ATMEL ICE Programmer besorgt.

Zum Einstieg hieß es erstmal, einige an Dokumenten, Forenebiträgen und Beispielen zu durchforsten, um in die Thematik reinzukommen. Das ATMEL Studio 7 biete da schon gute und viele Beispeilprojekte. Auch Pollin liefert schon ein komplegttes Projekt mit, jedoch wollte ich das von Grund auf selbst aufbauen. Ich habe relativ schnell gemerkt, dass es einfacher ist, das ASF (ATMEL Software Framework) zu nutzen, wobei schon viele Treiber fertig zur Verfügung gestellt werden und auch das Projekt kann damit Modulartig aufgebaut werden kann, je nachdem, was man benötigt. Folgende Funktionalitäten der CPU habe ich aktuell in Verwendung:

  • ADC Treiber
  • FatFS File System Treiber
  • GPIO Treiber
  • IOPORT Treiber
  • RTS Echtzeituhr Treiber
  • SD/MMC Stack
  • Serial I/O Treiber
  • SPI Treiber (Master)
  • TC Timer Treiber
  • TWI Two Wire Interface Treiber
  • USB Treiber als Massenspeicher

Damit habe ich schon ein richtiges kleines Betriebssystem in C/GCC umgesetzt, was sich mit den Taster über ein Menü auf dem LCD-Display bedienen lässt. Das DCF77 Zeitmodul tut auch seinen Dienst und dekodiert das Signal aus Frankfurt/M. Die Komponenten wurden nach und nach integriert und haben mir hier und da schon manch eine Stunde geraubt :-). Soweit läuft es stabil, man hat dann auch immer mehr Ideen, was man damit machen kann.

Da ich noch eine Schrittmotor-Modul aus einem alten Projekt hatte, kann ich aktuell auch 3 NEMA-Motoren ansteuern. Aktuell versuche ich mich noch an der Ethernet TCP/IP Kommunikation  über einen angepassten Stack.

 661
 342
2 Bild(er) verfügbar


0 Kommentare

➥ Status: fertig (gestartet: 2020-06)
Anfertigung einer Garderobe mit LED-Beleuchtung und Bewegungsmelder

Im Zuge eines Umzuges habe ich eine neue Garderobe angefertigt. Da gängige Gaderoben für Jacken immer recht teuer sind, jedoch trotzem recht einfach gehalten sind, habe ich mich dazu entschlossen, selbst eine zu bauen. Passgenau mit einem Meter Länge wurde Buchenholze mit Kupfer kombiniert, das Kupfernveleiht dem Ganzen einen Hauch "Vintage". Hinzu kommt eine praktische LED-Beleuchtung mit einem Bewegungsmelder. Dieser lässt sich über einen Schalter ein- und ausschalten, sowie die Einstellung der Lichtempfindlichkeit und Einschaltdauer.


 266
 269
 261
 182
 226
 208
6 Bild(er) verfügbar


0 Kommentare

➥ Status: gestartet (gestartet: 2019-10)
Erweiterung LED-Bar mit NodeRed auf Basis des RaspberryPi

Da ich noch einen RaspberryPi Model B Revision 2.0 von 2011 übrig hatte, habe ich mir gedacht, man könnte diesen doch verwenden, um meine kürzlich gebaute LED-Bar zu erweitern. Ich habe mich dabei auf die IoT OpenSource-Plattform NodeRed entschieden. Diese Umgebung basiert auf der Programmiersprache NodeJS und bietet vielseitige Netzwerkschnittstellen mit Erweiterungsmöglichkeiten, siehe auch unter https://nodered.org. Programmiert wird hier grafisch mittels "Flows", der Inhalt des Nachrichtenflows kann zudem über JavaScript beliebig modifiziert werden. Zudem läuft das Ganze ziemlich zügig auf dem Pi, da die Umgebung mit mehreren Threads arbeitet. Außerdem gibt es hier schon viele Anwendungsbeispiele.

Ich musste für die ganze Aktion in der Firmware meiner LED-Bar den Remote-Modus etwas erweitern, so dass eingehende ASCII-Zeichen via UDP direkt verarbeitet werden können. Zudem lassen sich jetzt auch mehr als 10 Zeichen darstellen (max. 48), in dem der Text in einer einstellbaren Geschwindigkeit (Drehpoti) durchrollt, dann sieht's auch schöner aus :-D. Auch den ASCII-Befehlssatz der LED-Module musste ich anpassen, die ATiny-Controller sind jetzt zu 99% voll belegt ;-). Es passten leider nur Großbuchstaben + Sonderzeichen rein.

Der RasPi soll später verschiedene Informationen zyklisch aus dem Netz holen, wie z.B. lokale Wetternformationen und Top-Nachrichten (Newsticker) usw. Mit beiden Punkten habe ich schon begonnen. Das Wetter ist eine einfach Geschichte, da es dafür schon fertige Module gibt. Für die Nachrichten wollte ich eigentlich RSS Feed von beliebigen Nachrichtenprotalen einlesen, das Modul dafür ist von der Funktionalität her etwas schwach. Deswegen leses ich die XML RSS Feed direkt über ein HTTP-Request ein und Parse die Daten, mal sehen, was dabei raus kommt ;-)

 475
 361
 522
 360
4 Bild(er) verfügbar


0 Kommentare

➥ Status: fertig (gestartet: 2018-11)
LED Ansteuerung via AVR-NET-IO und TCP/IP
Ich dachte mir, es wäre wieder mal cool, etwas mit LEDs zu machen. Anspruchsvoller ist hier die Ansteuerung von LED-Matrix-Modulen, da man damit auch tolle Effekte umsetzten kann. Hier möchte ich gerne die Ansteuerung über Netzwerk (TCP/IP) umsetzen. Dafür benötigt man natürlich eine Basis mit Microcontroller + Netzwerkcontroller. Diese Basis bietet mir hier der kostengünstige Bausatz AVR-NET-IO von Pollin (www.pollin.de) mit einem ATMEGA32 Prozessor sowie ein ENC28J60 Netzwerk-Controller. Diesen Missbrauche ich als Entwicklungsumgebung.
Ich habe bereits angefangen, eine neue Firmware aufzubauen. Basis dafür fand ich auf der Homepage von Ulrich Radig (https://www.ulrichradig.de). Die Softwarestruktur bietet viele Anpassungsmöglichkeiten. Die Basisdienste TCP/IP, ICMP, DHCP, UDP, ARP und NTP laufen bereits. Eine entsprechende Client-Software muss noch aufgebaut werden sowie eine LC-Diplay wird noch eingebunden zwecks zusätzlicher Diagnose und Menüführung - Die Arbeit geht also nicht aus :-)

Die Firmware kann auch via UART kommunizieren. Dies Kommunikation wird jeodch später genutzt, um die einzelnen LED-Module als "Bus" Seriell aanzusteuern. Hier gibt es ebenfalls Anregungen von Ulrich Radig. Die Idee ist hier, einzelne Adapter-Module aufzubauen, welche jeweils einen günstigen ATiny2313 beinhalten. Die Module wurden von mir bereits etwas verbessert, neu gelayoutet und beauftragt. Das LED-Matrix Module (5x7) wird drauf aufgelötet. Wenn diese Trägermodule bei mir angekommen sind, kann ich beginnen, die Ansteuerung der LEDs zu testen :-). Geplant ist zunächst eine Laufschrift, welche mir die aktuelle Zeit via NTP ausgibt.
 228
 218
 285
 192
 227
 230
 218
 228
 274
 210
 207
 257
 227
 283
 209
 230
 204
 220
 218
 207
20 Bild(er) verfügbar


Die Weihnachtstzeit habe ich genutzt, um auch mal an dem Projekt weiterzuarbeiten. Die Platinen sind gekommen, 11 Stück an der Zahl - eines als Reserve. Die Bestückung war nach der dritte Platine Routine. Einiges hatte ich auch vergessen, mitzubestellen :-D - also dann .. Bestellung die zweite.
Das sich die DOT-Matrix-Modul schön zusammenfügen lassen, habe ich mich entschlossen, diese horizontal zu mondtieren, damit man später das ganze in die Wohnung stellen kann. Die Platinen werden durchgänge 9VDC und mit USART RX und TX durchverbunden. Jede Platine hat dabei ihren eigenn LM7805, damit Spannungsschwankungen kompensiert werden können. Ich hatte Bedenken wegen dem GND-Potential und der ISP-Programmierung, hat aber im Nachhinein gut funktioniert. Beim ersten Anlauf habe ich nur Pixel auf den Modulen darstellen können, bis ich mal das Multiplexen verstanden habe - dank des GCC-Beispiels von Ulrich Radig. Dieses habe ich an meine Bedürfnisse angepasst bzw. erweitert. Es werden später zwei Modis unterstützt, dabei kennen die ATTinys auf den Platinen einen bestimmten Zeichensatz, somit reicht es, einen String auszugeben via UART. Das ist später wichtig für einen Stand-Alone-Betrieb ohne laufende Software auf einem PC. Weiterhin wird aber auch die Ausgabe eines Datenstreams unterstützt, welcher vom Atmega32 gesendet wird bzw. später von eine Socket-Anwendung.
Ich habe festgestellt, dass die ATTiny recht begrenzt im Speicher sind, daher kann hier nur das nötigste implementiert werden - die ISR-Routine macht mir noch etwas zu schaffen aber der erste Meilenstein ist erreicht - ich kann dank DHCP und NTP-Protokoll auf dem Atmega32 schon mal die Uhrzeit ausgeben - jedoch noch mit einem unschönen Durchlaufeffekt, welchen man dan auch sieht bei sich ändernden Ausgaben. Weiter geht es mit der Mode-Umschaltung und der Ausgabe eines Datenstreams ...

Ich habe wieder etwas Zeit gefunden, um an diesem Projekt weiterzuarbeiten. Ich habe das Problem mit der Mode-Umschaltung der einzelnen Segment-Einheiten gelöst, die Quelle lässt sich jetzt vom Controller auf Daten via UDP-Telegramm umschalten. Somit kann nun über AVR/UART kommuniziert werden oder von einem externen Programm via UDP/IP. Ich habe zudem noch einige Modi im AVR hinzugefügt, um einige Effekte darzustellen zu können - Problematisch war hier immer etwas die Programm-Delay-Zeit. Es wird z.B. nun auch ein Mikrofon-Signal ausgewertet. Damit lassen sich akustisch-visuelle Effekte darstellen. Auch eine LED-Beleuchtung mit externem Schalttransistor-Treiber habe ich spendiert. Die Front-Plexiglas-Scheibe ist blau-fluoreszierend, somit gibt es einen schönen Beleuchtungseffekt. Das Licht kann gedimmt werden über ein Poti (ohne Timer-ISR).
Danach habe ich mich mal an das Ansteuerungsprogramm gekümmert. Dieses habe ich in Microsoft Visual C# erstellt - es bietet einige Möglichkeiten bzgl. der Benutzeroberfläche. Im Grunde übersetzt das Programme alle Eingaben in ein 2-Dimensionales Pixel-Datenfeld und sendet die Spalteninformationen pro Zeiteinheit via UDP/IP an den AVR-Port. Der AVR verarbeitet diese Signale und sendet diese dann via UART an die Segmente. Somit lassen sich viele Effekte in einem externen Programm rechnen mit mehr Ressourcen. Es können hierbei auch veschiedene Schriftarten und Symbole in Datensätzen gespeichert werden. Zudem wertet das Programm Wetterdaten aus dem Internet aus und zeigt diese an.

Ein Video wird noch folgen...

2 Kommentare

➥ Status: fertig (gestartet: 2013-01)
Labornetzteil 12VDC/3A einstellbar
Gestartet 01/2013, hatte ich mich ein bisschen mit Prozessoren von ATMEL und Step-Down-Konvertern beschäftigt. Daraus entstanden ist ein kleines Labornetzteil, was mir bisher gute Dienste geleistet hat.
Die meisten Sachen hatte ich da, der Rest ist einfach in Elektronik-Onlineshops wie z.B: Reichelt.de oder Pollin.de erhältlich. Die Materialkosten belaufen sich auf etwa 150 EUR. Die Platine wurde eigens für dieses Projekt entworfen, layoutet und eine Ätzung + Lackierung beauftragt.
Herzschück ist hier natürlich die Stepdown-Schaltung, welche durch eine Pulsung des Transistors erreicht wird. Dies übernimmt ein Transistor-Treiber MCP1407, angesteuert von einem Mikroprozessor. Gespeist wird die Leistung durch einen Ringkerntrafo, Netzfilter + Gleichrichter, Sicherung und Zwischenkreis-Kondensatoren. Auf eine Vorladung wurde hier aufgrund der relativ geringen Leistung verzichtet. Hauptsächlich ging es mir um das Spielen mit der Transistorsteuerung mittels einens ATMEGA16 Prozessors von ATMEL (jetzt Microchip). Praktischerweise lässt dieser sich komfortabel über die ISP-Schnittstelle programmieren. Die 6-Pin Belegung wurde auf einen Platinenstecker gelegt. Weiterhin bietet der ATEMGA einige GPIOs und "vortgeschrittenen" Speicher von 16KB. Programmiert wurde in C (GCC). Die aktuelle Firmware V1.0 des Prozessors übernimmt folgende Funktionen:

  • die Menüauswertung über Fronttaster

  • die Berechnung des Tastgrades anhand der Poti-Stellung + Transistorpulsung (8 KHz)

  • die LCD-Displayansteuerung

  • eine Temperaturüberwachung

  • eine Strommessung mittels Shunt + Überwachung

  • die Ausgabe der Strom- und Spannungswerte an die COM-Schnittstelle


Aktuell pausiert das Projekt und funktioniert sowiet ganz gut. Den einen oder anderen Bug habe ich schon gefunden. Die Firmware wird wohl demnächst nochmal etwas überarbeitet :-)
 239
 233
 312
 240
 219
 289
 247
 303
 299
 260
 196
 264
 246
 241
14 Bild(er) verfügbar


Der eine oder andere Bug hat mit schon gestört und verfolgte mich als im Kopf, daher habe ich das Projekt nochmal in Angriff genommen und fertiggestellt :-). Ich habe auch wieder viele Sachen dazugelernt und werde diese für nächste Projekte berücksichtigen. Auch den Programmieradapter habe ich umgestellt von ursprünglich RS232 auf eine ISP-USB-Programmieradapter (ERFOS). Der Treiber machte etwas Probleme unter Win7 aber mit einem kleinen Workaround klappt es wunderbar. Zudem musste ich vom älteren ATMEL Studio 5.0 auf Version 7.0 wechseln, damit der ISP-Adapter läuft. Diesen gibt es in vielen Versionen bei Amazon zu kaufen (6 oder 9 Pin).
Die Überarbeitung der Firmware brachte folgende Neuheiten mit sich:

  • Temperaturregelung mittels Software-Hysterese

  • Überarbeitung der Sicherungsüberwachung, Eingangs und- Ausgangssicherung werden jetzt überwacht und. ggf. bei Defekt gemeldet

  • Zeitbasis 1 Sekunde mittels Interrupt-Routine erzeugen (ISR)

  • I*t Strom-Zeitüberwachung mit Abschaltung um Überlast zu verhindern

  • Remote-Modus überarbeitet, es werden jetzt alle verfügbaren Messwerte über RS232 zyklisch geloggt werden und mit einem Terminal Programm aufgezeichnet und ausgewertet werden (z.B. ZOC). Der Log kann jederzeit über Taster2 aktviert und deaktiviert werden.

  • Reduzierung der Menüstruktur auf drei wesentliche Seiten

  • Speicherinitialisierung vereinfacht


Funktioniert alles jetzt wunderbar, allerdings ist der Speicher jetzt auch zu 100% gefüllt :-).

1 Kommentar