Forum: Projekte & Code Weihnachtsstern mit WS2812B und STM32F042


von Ernst W. (ewo)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

pünktlich zum ersten Advent habe ich im Anhang die Daten für einen 
beleuchteten Weihnachtsstern angefügt.
Die Unterlagen sind für alle Bastler, die für die kommende "ruhige"
Zeit noch ein Projekt suchen.

Beleuchtet wird der Weihnachtsstern mit WS2812B (RGB LED),
die Ansteuerung übernimmt ein STM32F042.

Der Weihnachtsstern wird über USB versorgt.

Zur Einstellung der Helligkeit und zur Auswahl der angezeigten
"Lichtfolgen" sind Touch Elemente vorhanden.

Eine open source SW wird noch am WE angefügt.

Die Platine ist bestückt und funktioniert, als Info für alle die ein 
funktionierendes Projekt suchen.

Ich wünsche allen eine gute Zeit und ein frohes Fest.


Viele Grüße
E.Wolf

: Bearbeitet durch User
von Tippgeber (Gast)


Lesenswert?

Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg 
wenig, selbst für ein Nachbauangebot nicht ausreichend. Weder sind die 
Konstruktionsdateien dabei, damit man das Projekt für sich anpassen kann 
noch irgendeine Software, nicht mal eine BIN-Datei zum Flashen. Das 
gehört in dieser Form höchstens hierher: 
Beitrag "Zeigt her eure Kunstwerke (2017-2019)"

Schade, dabei finde ich die im Vergleich zu 
https://ronsholidaylights.com/ws2811-mini-star/ konsequent zu Ende 
gedachte Entwicklung (Controller, USB-Buchse) richtig gut.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein

Deine Argumentation kann ich zwar nachvollziehen, aber Du hättest 
gründlicher lesen sollen:

E. W. schrieb:
> Eine open source SW wird noch am WE angefügt.

von Tippgeber (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Deine Argumentation kann ich zwar nachvollziehen, aber Du hättest
> gründlicher lesen sollen:

E. W. schrieb:
> 03.12.2017 11:29:
>     Bearbeitet durch User

von Hmmm (Gast)


Lesenswert?

Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs hat?

von Tippgeber (Gast)


Lesenswert?

Hmmm schrieb:
> Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs
> hat?

Ich verstehe Deine Aussage als ironisch, also:

Klar kann das ein Tiny auch, aber warum, wenn ein STM32F042 kaum mehr 
kostet und man sich in der Software so richtig austoben kann, ohne auf 
Platz achten zu müssen?

Beitrag #5231378 wurde vom Autor gelöscht.
von Alexander W. (cyancali)


Angehängte Dateien:

Lesenswert?

Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg
> wenig, selbst für ein Nachbauangebot nicht ausreichend. Weder sind die
> Konstruktionsdateien dabei, damit man das Projekt für sich anpassen kann
> noch irgendeine Software, nicht mal eine BIN-Datei zum Flashen. Das
> gehört in dieser Form höchstens hierher:
> Beitrag "Zeigt her eure Kunstwerke (2017-2019)"
>
> Schade, dabei finde ich die im Vergleich zu
> https://ronsholidaylights.com/ws2811-mini-star/ konsequent zu Ende
> gedachte Entwicklung (Controller, USB-Buchse) richtig gut.

Huhu,
anbei die aktuelle Version der SW.

Programmieren könnt ihr das Board mit einem ST-LINK. Die IDE (uVision) 
dazu gibts hier: https://www.keil.com/download/product/

Viele Grüße,

Alex

von Tippgeber (Gast)


Lesenswert?

Alexander W. schrieb:
> Huhu,
> anbei die aktuelle Version der SW.

Vielen Dank. Wie ich auf die Schnelle sehen konnte, nutzt Ihr die HAL 
und der Betrieb der WS2812B erfolgt per Bitbanging? Wenn Ihr etwas Zeit 
habt, wäre ein (oder zwei ;-) erklärendes Wort zur Software schön. Ich 
fitzel mich auch so durch, aaaaber ...

Vielen Dank vorab.

von Alexander W. (cyancali)


Lesenswert?

Klar, gerne. Ich versuche mal mein bestes. =)

Der Zugriff auf die Taster (3 Touchfelder) erfolgt mittels der 
HAL-Treiber in der Funktion tasten. Je nachdem welche Taste gedrückt 
wurde, wird eine unterschiedliche Funktion aufgerufen. Also bei Taste1 
wird eine neue Lichtabfolge gestartet und bei den anderen beiden (Taste2 
und Taste3) die Helligkeit der LEDs erhöht oder gesenkt.

Datei FLASH_DataSaver:

Funktionen, um die ausgewählte Helligkeit im Flash zu speichern. Genutzt 
wird dafür ein Bereich ganz am Ende des Flashs, um genügend Speicher 
übrig für den Programmcode übrig zu haben. Gespeichert wird 5 Minuten 
nach der letzten Veränderung des Helligkeitswertes, falls ein anderer 
Wert im Speicher liegt. Erfolgt ebenfalls mittels der HAL-Treiber.

Datei LED_Controller:

Hier passiert das meiste.

Die Funktion userTimeControl() setzt flags, falls die Zeit für eine neue 
Aktion ist.

Die Funktion userRunControl() führt je nach gesetzten flags Aktionen 
aus. Unter dem Switch Befehl (Kommentar: /* Execute operation */) können 
neue Leuchtmodi hinzugefügt werden. Der case 8 muss dann immer erhöht 
werden, da er wieder zurück auf 0 setzt.

Alle Funktionen die mit LED_Mode starten sind Muster wie die LEDs 
leuchten sollen.

Ich hoffe das hilft fürs Erste.

Vorweihnachtliche Grüße,

Alex

PS: Hinter dem case 8 stehen noch zwei case Blöcke. Case 9 ist 
LED_Mode_Star, da bin ich noch am testen mit dem LED Muster. Case 11 ist 
einfach ein Regenbogen, wo wie es auch im Default läuft.

: Bearbeitet durch User
von Tippgeber (Gast)


Lesenswert?

Alexander W. schrieb:
> Ich hoffe das hilft fürs Erste.

Ja, vielen Dank dafür. Jetzt hab ich erstmal Beschäftigung. :-)

von Alexander W. (cyancali)


Lesenswert?

Tippgeber schrieb:
> Alexander W. schrieb:
>> Ich hoffe das hilft fürs Erste.
>
> Ja, vielen Dank dafür. Jetzt hab ich erstmal Beschäftigung. :-)

Noch ein Nachtrag:

Innerhalb der Funktion void smoothColorChange(void) wird die Variable 
rgbLED dauerhaft verändert, um Farbwechsel zu ermöglichen.

: Bearbeitet durch User
von Hmm (Gast)


Lesenswert?

Hmmm schrieb:
> Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs hat?


STM32F042 : 1€

Die F042 sind so ziemlich das untere Ende der STM32. Warum sich extra 
Equipment für PIC12 oder ATTINY anschaffen? Wegen 0,x€ Ersparnis?

Ist das dein Ernst?

von Werner A. (homebrew)


Lesenswert?

Kann mir jemand sagen, wo ich die Platinen am besten bestelle und was 
für Dateien ich dann schicken muss? Bisher hab ich immer nur das Eagle 
Board geschickt...
Ist hat jemand welche übrig?

von Markus M. (adrock)


Lesenswert?

Ein schönes Projekt, ich hatte auch mal vor soetwas zu bauen.

Ich hätte die doppelte Anzahl an LEDs verwendet, so dass sich eine Art 
geschlossene Linie ergibt. Allerdings ist dann natürlich die 
Stromaufnahme schon wieder grenzwertig...

von Ernst W. (ewo)


Lesenswert?

Hallo Werner,

die Daten im Ordner Gerber und Ordner NC Drill werden benötigt
um die Leiterplatten zu fertigen.

Leiterplattenhersteller gibt es viele, z.B. eine Übersicht:

https://www.mikrocontroller.net/articles/Platinenhersteller

Bitte sende mir deine Anschrift an 
https://www.mikrocontroller.net/user/show/ewo

Viele Grüße

Ernst

--

Du willst Deine Email-Adresse sicherlich nicht veröffentlichen. 
Angemeldete Forenmitglieder können Dir aber auch über das Forum eine 
Email an Deine hinterlegte Adresse senden.

-rufus

: Bearbeitet durch User
von Ralf L. (ladesystemtech)


Angehängte Dateien:

Lesenswert?

Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg
> wenig, selbst für ein Nachbauangebot nicht ausreichend.

Es geht auch ohne µC und ohne programmieren. Ich habe mal auf dem 
Trödelmarkt einen Weihnachtsstern gekauft mit einem CD 4060 bzw. MC 
14060 und 24 LED's mit Schaltplan.

Das Spitzenmaß der Platine beträgt 65mm (von Spitze zu Spitze). Das 
R-C-R Netzwerk bestehend aus 2x 100k und 1x 100nF erzeugt eine Frequenz 
von ca. 50Hz. Da aber erst ab Ausgang Q4 ausgekoppelt wird, entsteht 
eine Blinkfrequenz von 50Hz x 2 hoch -4 = 3,125Hz.

Ab Q4 bis Q14 wird immer weiter durch 2 geteilt und dadurch entsteht 
eine Wiederholrate eines bestimmten Musters von ca. 10 Minuten und 40 
Sekunden, und das schon bei 3 verschiedenen Ereignissen bzw. Mustern pro 
Sekunde an der aktivsten Stelle! Bei 7 geschickt beschalteten Ausgängen 
mit je zwei möglichen Zuständen gibt es insgesamt 2 hoch 7 = 128 
verschiedene Leuchtmuster.

Für die Berechnung der Wiederholrate muss allerdings 2 hoch 11 gerechnet 
werden (von einschließlich Q4 bis einschließlich Q14), weil Q8, Q9, Q10 
nicht verwendet, und Q11 gar nicht erst rausgeführt wird.

Die Versorgungsspannung darf zwischen 5 Volt und 9 Volt betragen.

Frohe Weihnachten
Ralf Leschner

: Bearbeitet durch User
von bernte (Gast)


Lesenswert?

an sich erstmal danke fürs zeigen

eine batterieversion von dem Stern hätte mir aber besser zugesagt
dann könnte man wenigstens ein paar davon in den baum hängen

von Olaf (Gast)


Lesenswert?

> Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs hat?

Ich hab vom letzten Jahr noch einen Stern mit einem EFM32GG230F512 in 
DFN64 mit Masseflaeche unter dem Prozessor rumliegen. :-D

Ich habe damals auf die Veroeffentlichung verzichtet weil ich mir dachte 
das die meisten den hier sowieso nicht loeten koennen. Kann ich aber 
gerne mal nachreichen falls du eine Herausforderung suchst. .-)

Olaf

von Reinhard R. (reirawb)


Angehängte Dateien:

Lesenswert?

Hallo,

ist ja putzig, alle basteln für Weihnachten, ich auch :-)

Reinhard

von KayD (Gast)


Angehängte Dateien:

Lesenswert?

Sehr nettes Projekt, vielen Dank. Ich habe es gleich mal nachgebaut. 
Leider hat die Schaltung nicht auf Anhieb funktioniert. Das Problem lag 
im Level-Shifting zwischen dem STM32 und den LEDs. Im Schaltplan ist ein 
Pullup (R26) zwar eingezeichnet aber mit n.b. gekennzeichnet. Da die 
3,3V des IO-Ausgangs nicht ausreichen funktionierte das nicht (bei mir 
zumindest).
Den Pullup bestücken reichte leider auch nicht, da der Ausgang des STM32 
(PB1) nicht 5V tolerant ist. Die Lösung, die bei mir funktioniert hat 
ist R27 nicht mit PB1, sondern mit PA10 zu verbinden und R26 zu 
bestücken, da dieser Ausgang 5V tolerant ist. Dafür war natürlich eine 
Anpassung der Software notwendig, insbesondere den PA10 nicht im 
Push-Pull zu betreiben, sondern im Open-Drain Mode.
Trotzdem vielen Dank für diesen schönen, kleinen Stern! Er hängt jetzt 
in meinem Wohnzimmer :-)

von Gerald B. (gerald_b)


Lesenswert?

Wer sich beeilt, bei Elecrow gibt's weihnachtsrelevante PCBs bis 10x10 
cm doppelseitig für lau. Lediglich die Frachtkosten bleiben übrig. Meine 
wurden heute abgeschickt :-)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.