M5stack Atom Matrix: Difference between revisions
(29 intermediate revisions by 7 users not shown) | |||
Line 3: | Line 3: | ||
|Picture=2020-04-09 17.14.52.jpg | |Picture=2020-04-09 17.14.52.jpg | ||
|Omschrijving=Klein ESP32 dingetje waar we er veel van hebben | |Omschrijving=Klein ESP32 dingetje waar we er veel van hebben | ||
|Status= | |Status=Completed | ||
|Contact=Sebastius | |Contact=Sebastius | ||
|Contact1=F0x | |Contact1=F0x | ||
Line 13: | Line 13: | ||
==Belangrijk volgens m5stack== | ==Belangrijk volgens m5stack== | ||
NOTE: We have set the brightness of RGB LED limited to 20. Pls DO NOT set it higher to avoid damaging the LED and acrylic screen. | "NOTE: We have set the brightness of RGB LED limited to 20. Pls DO NOT set it higher to avoid damaging the LED and acrylic screen." —M5 | ||
Oftewel: | |||
void setup() { | |||
... | |||
FastLED.setBrightness(20); | |||
... | |||
} | |||
==Handige tips== | ==Handige tips== | ||
* WS2812B zit op pin 27 (25 stuks, led 0 linksboven als de USB connector naar je toe ligt, van links naar rechts), met de kleurvolgorde GRB ([https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/WS2812B-2020_EN.PDF datasheet]) | * WS2812B zit op pin 27 (25 stuks, led 0 linksboven als de USB connector naar je toe ligt, van links naar rechts), met de kleurvolgorde GRB ([https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/WS2812B-2020_EN.PDF datasheet]) | ||
* Als je de Arduino IDE gebruikt, kies dan als board "ESP32 Pico Kit" met 115200 als upload speed. | |||
* De upload speed is cruciaal. Gebruik '''maximaal 115200 baud''', sneller kan de USB-serial in het dingetje niet aan. | |||
==Foto's== | ==Foto's== | ||
Line 28: | Line 39: | ||
==Jouw projecten hier?== | ==Jouw projecten hier?== | ||
=== | === kleurtje op basis van versnellingsmeter === | ||
[[File:accelled.jpg|thumb|right|200px|shake it for pretty colors]] | |||
Zie: https://github.com/bertrik/atommatrix | Zie: https://github.com/bertrik/atommatrix | ||
Wat doet het: | Wat doet het: | ||
* voorbeeld van een demo-project met platformio | * voorbeeld van een demo-project met platformio | ||
* | * toont kleurtjes op LEDs op basis van versnellingsmeter | ||
Compile en upload: | Compile en upload: | ||
cd accelled | |||
pio run -t upload && pio device monitor | |||
=== waterpas === | |||
[[File:m5level.jpg|thumb|right|200px|bubble moves when tilted]] | |||
Zie: https://github.com/bertrik/atommatrix | |||
Compile en upload: | |||
cd level | |||
pio run -t upload && pio device monitor | pio run -t upload && pio device monitor | ||
Line 43: | Line 63: | ||
* https://github.com/Juerd/mumble-ping-esp32/commit/8951d2046e2a1a59b8d60c86b083ad5d65db85dd | * https://github.com/Juerd/mumble-ping-esp32/commit/8951d2046e2a1a59b8d60c86b083ad5d65db85dd | ||
* Fork && improve! | * Fork && improve! | ||
* Momenteel de nieuwste: https://github.com/ | * Momenteel de nieuwste: https://github.com/revspace/mumble-ping-esp32 | ||
=== Push to Talk (of een willekeurig keyboard knopje) via BLE === | === Push to Talk (of een willekeurig keyboard knopje) via BLE === | ||
* https://github.com/sebastius/AtomPTT | * https://github.com/sebastius/AtomPTT | ||
=== | === Seconds counter with 10s and 100s seconds interval in different colors === | ||
* https://gist.github.com/Yornik/4f389cf738b04fcdd16d426f9ed69e1d | * https://gist.github.com/Yornik/4f389cf738b04fcdd16d426f9ed69e1d | ||
=== MQTT naar infrarood bridge === | |||
* https://gist.github.com/Kartoffel/6c617b232e3f39842af5577d5abd9e38 | |||
[[File:Atom_IR_hack.jpg|100px]] Overkill IR led hack. De Atom heeft standaard al een infraroodledje, maar een externe is wat makkelijker om te buigen en te richten. | |||
=== Seconds counter for washing hands using updated number srites based of [https://www.dafont.com/5x5.font this font] . === | |||
* https://gist.github.com/Yornik/5db9cd381b9f9598e859bc34931f0f51 | |||
=== Another hand washing counter === | |||
* https://github.com/Juerd/hand-washing-timer | |||
* Preview: https://www.youtube.com/watch?v=XdrLNXJY4wY | |||
=== Dobbelsteentje === | |||
* https://github.com/devnuller/m5dice | |||
Druk op de faceplate voor het volgende getal. Het scherm doorloopt 3 verschillende kleuren, zodat je ook als je 2x op rij hetzelfde gooit ziet dat het toch echt het volgende getal is. | |||
=== Nog een dobbelsteentje === | |||
* https://github.com/Juerd/m5atom-dice | |||
=== Matrixflut === | |||
Stuur 5×5×3 = 75 bytes aan rauwe binaire RGB data naar test.mosquitto.org op het MQTT-topic "matrixflut" om het plaatje op de matrix te tonen. | |||
* https://github.com/Juerd/m5atom-matrixflut | |||
==== Desktop matrixflut viewer ==== | |||
Om zonder M5 te zien wat matrixflut doet: https://gist.github.com/Kartoffel/7c31d3daace1c01abf03aa0bcdcf716c | |||
Gebruikt paho-mqtt en sty, installatie met <code>sudo -H python3 -m pip install paho-mqtt sty</code> | |||
[[File:m5flut_viewer.png|100px]] | |||
=== Heartbeat === | |||
Simpel demo-tje van een van de ''beat'' functies in FastLED en de ''ArduinoTapTempo'' library. Het laat een hartje zien die pulseert op een bepaalde beats/min. Beats/min instelbaar via het knopje. Gewoon drukken op de gewenste tempo. | |||
* https://github.com/costyn/atommatrix/tree/master/heartbeat (Repo is een fork van Bertrik) | |||
=== Pomodoro === | |||
Counts out work/break cycles of 47/13 minutes using orange/blue color. You can press the screen to immediately take a break or return to work. | |||
See: https://github.com/qguv/m5atom-pomodoro | |||
What it does: | |||
* Adds orange LEDs for 47 minutes until they're all orange | |||
* Switch color to blue and blinks | |||
* Blanks LEDs for 13 minutes until they're all dark | |||
* Blink orange a few times | |||
* Repeat | |||
Compile and upload: | |||
make upload | |||
Warning: the LEDs exceed their recommended brightness for a few 20ms intervals during the flashes at the end of each cycle. I found that it couldn't get my attention otherwise. | |||
Don't mind the commit history; in a past life, it was an ESP8266 gas meter. Then it was a breathalyzer. | |||
=== ISS / people in space tracker === | |||
Shows a crude image of the earth globe, with a pixel indicating the approximate position of the ISS. | |||
See: https://github.com/bertrik/peopleinspacenow | |||
When you press the button, it shows the current number of people in space right now (max 9). | |||
=== CoronaMelderMelder === | |||
* https://github.com/Juerd/m5atom-corona | |||
* Zet een ledje aan per GAEN-device dat beacons uitstuurt, de kleur varieert met de signaalsterkte. | |||
* De BLE-ontvangst van de ESP32 is nogal ruk dus het heeft nog minder bereik dan BLE tussen telefoons. | |||
* Bekijk de seriële output als je de RPI's zelf wilt zien. | |||
* Verdiep je in de werking van het protocol voordat je klaagt over privacy of allerlei doemscenarios verzint. De techniek zit netjes in elkaar. :) |
Latest revision as of 00:24, 21 August 2020
Project M5stack Atom Matrix | |
---|---|
![]() | |
Klein ESP32 dingetje waar we er veel van hebben | |
Status | Completed |
Contact | Sebastius, F0x, Juerd, Foobar, Maxell, WinSCaP |
Last Update | 2020-08-21 |
Belangrijk volgens m5stack
"NOTE: We have set the brightness of RGB LED limited to 20. Pls DO NOT set it higher to avoid damaging the LED and acrylic screen." —M5
Oftewel:
void setup() { ... FastLED.setBrightness(20); ... }
Handige tips
- WS2812B zit op pin 27 (25 stuks, led 0 linksboven als de USB connector naar je toe ligt, van links naar rechts), met de kleurvolgorde GRB (datasheet)
- Als je de Arduino IDE gebruikt, kies dan als board "ESP32 Pico Kit" met 115200 als upload speed.
- De upload speed is cruciaal. Gebruik maximaal 115200 baud, sneller kan de USB-serial in het dingetje niet aan.
Foto's
Datasheets, linkjes etc
- https://m5stack.com/collections/m5-core/products/atom-matrix-esp32-development-kit
- https://docs.m5stack.com/#/en/core/atom_matrix
- https://github.com/m5stack/M5Atom
- Media:M5stack Atom Matrix - User Manual.pdf (PDF, 9p, 662 kB)
Jouw projecten hier?
kleurtje op basis van versnellingsmeter
Zie: https://github.com/bertrik/atommatrix
Wat doet het:
- voorbeeld van een demo-project met platformio
- toont kleurtjes op LEDs op basis van versnellingsmeter
Compile en upload:
cd accelled pio run -t upload && pio device monitor
waterpas
Zie: https://github.com/bertrik/atommatrix
Compile en upload:
cd level pio run -t upload && pio device monitor
Mumble-indicator
- https://github.com/Juerd/mumble-ping-esp32/commit/8951d2046e2a1a59b8d60c86b083ad5d65db85dd
- Fork && improve!
- Momenteel de nieuwste: https://github.com/revspace/mumble-ping-esp32
Push to Talk (of een willekeurig keyboard knopje) via BLE
Seconds counter with 10s and 100s seconds interval in different colors
MQTT naar infrarood bridge
Overkill IR led hack. De Atom heeft standaard al een infraroodledje, maar een externe is wat makkelijker om te buigen en te richten.
Seconds counter for washing hands using updated number srites based of this font .
Another hand washing counter
Dobbelsteentje
Druk op de faceplate voor het volgende getal. Het scherm doorloopt 3 verschillende kleuren, zodat je ook als je 2x op rij hetzelfde gooit ziet dat het toch echt het volgende getal is.
Nog een dobbelsteentje
Matrixflut
Stuur 5×5×3 = 75 bytes aan rauwe binaire RGB data naar test.mosquitto.org op het MQTT-topic "matrixflut" om het plaatje op de matrix te tonen.
Desktop matrixflut viewer
Om zonder M5 te zien wat matrixflut doet: https://gist.github.com/Kartoffel/7c31d3daace1c01abf03aa0bcdcf716c
Gebruikt paho-mqtt en sty, installatie met sudo -H python3 -m pip install paho-mqtt sty
Heartbeat
Simpel demo-tje van een van de beat functies in FastLED en de ArduinoTapTempo library. Het laat een hartje zien die pulseert op een bepaalde beats/min. Beats/min instelbaar via het knopje. Gewoon drukken op de gewenste tempo.
- https://github.com/costyn/atommatrix/tree/master/heartbeat (Repo is een fork van Bertrik)
Pomodoro
Counts out work/break cycles of 47/13 minutes using orange/blue color. You can press the screen to immediately take a break or return to work.
See: https://github.com/qguv/m5atom-pomodoro
What it does:
- Adds orange LEDs for 47 minutes until they're all orange
- Switch color to blue and blinks
- Blanks LEDs for 13 minutes until they're all dark
- Blink orange a few times
- Repeat
Compile and upload:
make upload
Warning: the LEDs exceed their recommended brightness for a few 20ms intervals during the flashes at the end of each cycle. I found that it couldn't get my attention otherwise.
Don't mind the commit history; in a past life, it was an ESP8266 gas meter. Then it was a breathalyzer.
ISS / people in space tracker
Shows a crude image of the earth globe, with a pixel indicating the approximate position of the ISS.
See: https://github.com/bertrik/peopleinspacenow
When you press the button, it shows the current number of people in space right now (max 9).
CoronaMelderMelder
- https://github.com/Juerd/m5atom-corona
- Zet een ledje aan per GAEN-device dat beacons uitstuurt, de kleur varieert met de signaalsterkte.
- De BLE-ontvangst van de ESP32 is nogal ruk dus het heeft nog minder bereik dan BLE tussen telefoons.
- Bekijk de seriële output als je de RPI's zelf wilt zien.
- Verdiep je in de werking van het protocol voordat je klaagt over privacy of allerlei doemscenarios verzint. De techniek zit netjes in elkaar. :)