Kegelbahn Lichtsteuerung (2): Die Steuerungsplatine
2. April, 2017 in: Elektronik, InspirationFür die Steuerung der WS2812B LEDs der Kegelbahnbeleuchtung hatte ich für jede Bahn eine eigene kleine Steuerung geplant. Da der Abstand zwischen den LEDs nach einigen Vorüberlegungen auf 40cm festgemacht wurde, mussten pro Bahn zwei LED Stränge mit jeweils 45 LEDs angesteuert werden.
Aus dem Datenblatt der WS2812B LEDs wird ersichtlich, dass diese ein festes 800kHz zur Datenübertragung nutzen.
Gehe ich davon aus, dass beide LED Stränge gleichzeitig mit Daten bedient werden können, benötigt dies eine Zeit von 45 LEDs * 3 Byte * 8 Bit * 1,25µs + 50µs = 1,4ms. Müssen die Daten für die beiden Stränge nacheinander ausgegeben werden, verdoppelt sich diese Zeit entsprechend. Da der Mikrocontroller bei der Ausgabe des Signals nicht unterbrochen wird, aber evtl. später noch Kommunikationsaufgaben übernehmen soll, wollte ich einen Controller mit DMA einsetzen. Schon seit längerem reifte in meiner Schublade für diese Testzwecke ein STM32 Discovery Board vor sich hin
Bei meinem Streifzügen durch Aliexpress wurde ich dann auf das von LeafLaps entwickelte Board MapleMini aufmerksam, auf welchem ein STM32F103 werkelt. Dieser ist ein 32Bit Cortex-M3 Controller, welcher mit bis zu 72MHz getaktet werden kann und über 20kB SRAM sowie üppige 128kB Flash verfügt. Neben DMA besitzt der Mikrocontroller auch einen CAN Controller, welcher ich für die Kommunikation nutzen wollte.
Eine erste Version der Platine, die den Namen Kegelbahn_Controller erhalten sollte hatte ich dann auch schnell erstellt und dort Huckepack das MapleMini Board aufgesteckt. Aufgrund der von mir präferierten Bauform der Platine zum Einbau in ein Hutschienen Gehäuse mit einer Breite von 4 TE wurde es jedoch schnell eng, da das MapleMini doch einiges an Platz brauchte. Daher musste das MapleMini im 45° Winkel eingebracht werden
Daher setzte ich bei der zweiten Version der Platine dann direkt auf den im MapleMini verwendeten STM32 Controller. Interessanterweise ist der reine Controller IC bei den gängigen Distributoren in Einzelstückzahlen um einiges teurer als ein fertiger MapleMini mit Versand aus China. Ein MapleMini liegt dabei bei rund 3,5€ und der einzelne IC aus China bei 2,5€. Bei Conrad kostet der verwendete STM32F103CBT6 knappe 10€, mittlerweile ist dieser jedoch auch bei Reichelt für faire 3,80€ verfügbar. Auf der Platine sind neben dem Mikrocontroller noch ein 3,3V CAN Transceiver von TI (SN65HVD230) zur Anbindung an den CAN Bus, sowie ein 74HC245 als Levelshifter von 3,3V auf 5V für die Ansteuerung der WS2812B LED Stränge. Außerdem sind noch vier, über Optokoppler, galvanisch getrennte Eingänge und drei PWM Ausgänge mit N-Kanal Mosfets zur Ansteuerung von herkömlichen RGB LED Strips vorgesehen. Das ganze sitzt in einem Hutschienengehäuse von Reichelt. Hinzugekommen ist ebenfalls der nun benötigte JTAG Anschluss zum programmieren des Controllers. Auch die bei der Umsetzung von Version 1 versäumten eingefrästen Ecken, die durch das Gehäuse vorgegeben werden, wurden nachgezogen. Und wer genau hin sieht, bemerkt auch das nun eine der beiden Anschlussleisten nur noch 13 Pins hat, nicht fehlerhaft beide 14 wie bei Version 1
Mithilfe der vier galvanisch getrennten Eingänge wurde es mir möglich das Signal der drei Lichtschranken am Anfang der Kugellauffläche aufzunehmen. Es handelt sich dabei um eine „normale“ Lichtschranke, welche im 90° Winkel zur Kugellauffläche sitzt. Die zwei weiteren Lichtschranken sitzen direkt hinter der ersten Lichtschranke, sind jedoch etwa in einem 45° Winkel zur Bahn angeordnet. Durch den zeitlichen Versatz, wann die Kugel dabei welche Lichtschranke auslöst, ist es möglich die Position der Kugel beim durchqueren der Lichtschranke zu bestimmen, dies wird bei unserem Kegelbahnsystem (Vollmer) genutzt, um die Kugelauflage anzuzeigen. Die Information des Auflagepunktes ist für die Lichtsteuerung bisher unwichtig, jedoch ist es mithilfe der drei Lichtschranken auch möglich die Kugelgeschwindigkeit zu bestimmen. Das Ergebnis ist ausreichend genau, um damit Animationen für die LED Lichtinstallation zu bedaten. Sodass es möglich ist, die LEDs passend zur hinausrollenden Kugel aufleuchten zu lassen, was zugegebenermaßen einen schönen Effekt darstellt.
Abschließend noch Bilder der unbestückten und fertig bestückten Platinen.