Projekt:CO2-Ampel: Unterschied zwischen den Versionen

K
keine Bearbeitungszusammenfassung
(Die Seite wurde neu angelegt: „{{Infobox Projekt |name = CO2-Ampel |status = beta |beschreibung = Calliope-Projekt zur Luftgütemessung in Kooperation mit JuMi |autor…“)
 
KKeine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:


= Plattform =
= Plattform =
* Als Hardwareplatform sollte ein bereits vorhandenes Calliope-Mini-Board zum Einsatz kommen. Hierfür existiert mit dem SCD30 ein sehr genau arbeitender optoelektronischer CO2-Sensor mit I²C-Anschluss.
* Als Hardwareplatform sollte ein bereits vorhandenes Calliope-Mini-Board zum Einsatz kommen
* Hierfür existiert mit dem SCD30 ein sehr genau arbeitender optoelektronischer CO2-Sensor mit I²C-Anschluss.
* Als Anzeigeeinheit sollte ein RGB-LED-Ring dienen
* Als Anzeigeeinheit sollte ein RGB-LED-Ring dienen
* Die Programmierung sollte mit MakeCode erfolgen, einem web-basierten grafischen Programmiertool
* Die Programmierung sollte mit MakeCode erfolgen, einem web-basierten grafischen Programmiertool
Zeile 25: Zeile 26:


== RGB-LED-Ring ==
== RGB-LED-Ring ==
Über einen Ring mit WS2812-LEDs sollte die Anzeige der Luftgüte erfolgen. Leider ist die Anbindung dieser Art LEDs von den Machern der Calliope offensichtlich so nicht vorgesehen und erforderte einige Tüftelei. Der Ring ist zwar genau wie der Sensor mit einem Grove-Port ausgestattet, allerdings erfolgt die Ansteuerung der adressierbaren LEDs hier nicht per I²C sondern per eigenem Protokoll über eine Datenleitung. Um den Ring physisch anzuschließen, habe ich daher zunächst eine Grove-Buchse im unteren GPIO-Anschlussfeld der Calliope an den Pin C4 + Spannungsversorgung angelötet und festgeklebt. Dabei kam es zu undefinierbarem Verhalten und Flackern der LED-Matrix. Offensichtlich wurde dieser Pin bereits anderweitig verschaltet. Daher habe ich den Datenpin für den LED-Ring an den Ausgangspin der einzelnen bereits auf der Calliope verbauten WS2812-LED gebodged, in der Hoffnung auf diese Weise alle LEDs als eine gemeinsame Kette adressieren zu können. Dies war jedoch auf Grund von Softwareeinschränkungen in MakeCode ebenfalls nicht möglich. Der Elementblock für die eingebaute RGB-LED kann nicht erweitert werden und die Auswahl des entsprechenden GPIO-Pins P18 ist im Menü für Neopixel-Strips nicht auswählbar. Folglich musste ich den Datenpin ein weiteres Mal bodgen und habe diesmal den Pin C1 gewählt, der auch explizit für externe Ansteuerung an einer Spitze der Calliope herausgeführt ist. Hiermit funktionierte die Ansteuerung des LED-Rings endlich.
Über einen Ring mit WS2812-LEDs sollte die Anzeige der Luftgüte erfolgen. Leider ist die Anbindung dieser Art LEDs von den Machern der Calliope offensichtlich so nicht vorgesehen und erforderte einige Tüftelei. Der Ring ist zwar genau wie der Sensor mit einem Grove-Port ausgestattet, allerdings erfolgt die Ansteuerung der adressierbaren LEDs hier nicht per I²C sondern per eigenem Protokoll über eine Datenleitung. Um den Ring physisch anzuschließen, habe ich daher zunächst eine Grove-Buchse im unteren GPIO-Anschlussfeld der Calliope an den Pin C4 + Spannungsversorgung angelötet und festgeklebt. Dabei kam es zu undefinierbarem Verhalten und Flackern der LED-Matrix.
 
Offensichtlich wurde dieser Pin bereits anderweitig verschaltet. Daher habe ich den Datenpin für den LED-Ring an den Ausgangspin der einzelnen bereits auf der Calliope verbauten WS2812-LED gebodged, in der Hoffnung auf diese Weise alle LEDs als eine gemeinsame Kette adressieren zu können. Dies war jedoch auf Grund von Softwareeinschränkungen in MakeCode ebenfalls nicht möglich. Der Elementblock für die eingebaute RGB-LED kann nicht erweitert werden und die Auswahl des entsprechenden GPIO-Pins P18 ist im Menü für Neopixel-Strips nicht auswählbar. Folglich musste ich den Datenpin ein weiteres Mal bodgen und habe diesmal den Pin C1 gewählt, der auch explizit für externe Ansteuerung an einer Spitze der Calliope herausgeführt ist. Hiermit funktionierte die Ansteuerung des LED-Rings endlich.


== Software ==
== Software ==