-
• #2
Pretty cool! - not just the visual, but also making the Espruino-Wifi with the .boot0 & 1 a Display/Application server.
What was the reason to use a black / light blocking grid versus a semi-transparent / partly light conducting grid? ...after all you used a diffuser anyway, as I think I understand.
Checked out the Fireplace and wondered what it would take to make the individual flames behaving randomly...
Your application inspires me to modify this project about Reusing some RGB LED interior lighting modules and replace the single source with your multi source...
I'm sure you have seen these conversations:
- 1. Retro Horse Derby Game Board with Neopixels showing Reaction Game Status (1 direct)
- 2. Large Display: x by y w/ 24 bpp Graphics buffer visualized with neopixel string in zig-zag layout
- 3. Retro Horse Derby Game Board with Neopixels showing Reaction Game Status (2 via Graphics)
In the first conversation of the reaction game implementation I drive the LED string directly from the application data.
The second introduces a Graphics layer to a zig-zag display wired matrix to display just any thing.
In the third conversation I let the application draw to the graphics buffer thru the Graphics object's methods / functions and let the display update independently... (I did then also some work for translating areas within the graphics buffer for, for example, scrolling... more could be done there to also include more complex graphic operations... rotation, shrink, warp,... Efficiently moving things around in zig-zag Graphics buffer visualized w/ 24/32 bpp displays / neopixel strings, where for speed I use inline-C).
- 1. Retro Horse Derby Game Board with Neopixels showing Reaction Game Status (1 direct)
-
• #3
Thanks!
I organized the code like that because my original plan was to deploy the different displays over the web using websockets and http requests. But I'm still working through some issues with that approach because it's too easy to break things and a bit harder to debug remotely.
As for the grid, I went with black to limit the light blending between squares. I was trying to get a crisp square "pixel" look, which I think the black achieved pretty well. Having a more transparent grid would probably soften the look, which is also nice especially for more ambient displays.
I'm sure I could create a randomly generated flame effect but for that I would probably need to leverage the graphics library. I went with a simpler (to me) approach of mapping the matrix to an almost paint-by-numbers array. I did this because originally I was going to have my kids come up with some pixel art .... yeah they lost interest before I was able to get it in-place. :) While the array method makes it easier to visualize what will be displayed, it's slower for the microcontroller to render.
I did see some of your posts when I was searching around. Very cool stuff. I like the post where you and Gordon discuss the inline C and Graphics approaches. The C stuff is very cool. To be honest, I need to sit with those a bit more and play around. I get it more when dealing with LCDs but I'm not quite putting 2 and 2 together on how the Graphics library works with a 16x16 neopixel matrix to draw some sort of pixel art without having to code up a ton of drawline function calls. I just need to get familiar with it.
Thanks for checking out the project!
-
• #4
This looks great! Really nice to see the grid - I'll have to have a play with something like that here.
I can definitely recommend the Graphics library if you get around to it. It's really handy for images and fonts - and there are loads of custom fonts on http://www.espruino.com/Fonts that you can pull in if needed.
I'm actually still running this: http://forum.espruino.com/conversations/352568/#comment15472743
So I'll drop you a voucher code for the Espruino Shop as a PM in a few minutes. Maybe it'll help with the multiple websocket displays ;)
-
• #5
Thats awesome. Thanks Gordon!
Hey all,
My daughter was looking at LED displays on Amazon. Instead of buying one, I decide to build her a 16x16 LED frame. I have a couple example apps / displays written up and am working on another that pulls data in from the web that drives the display.
If anyones interested, I posted a little how-to over on Make:Projects and the code is up on Github.
How-to: https://makeprojects.com/project/lumiius-led-matrix
Repo: https://github.com/robotictheater/lumiius