Check the videos on Youtube
20x10 WS2812 LEDs driven by Raspberry Pi/Arduino to play games like Tetris in the living room
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Check the videos on Youtube
ledmatrix.pdfSchematicAdobe Portable Document Format - 13.96 kB - 06/12/2016 at 14:51 |
|
|
matrix_cad.zipCAD files for MDF matrixZip Archive - 306.31 kB - 05/04/2016 at 15:44 |
|
After using the matrix for several years and supporting many other person to realize their own version, it is time to update my matrix based on all the learning from the last years. So now it has the following features:
So it should be easier now to rebuild the matrix using available components and latest libs. Therefore I wrote an instructable to provide a step-by-step guide to build your own matrix. It is also planned to offer a set with the main components like wood veneer and laser cut parts on Tindie soon. So stay tuned and enjoy making ;-)
After discussing this issue with several people who want to build their own matrix, I decided to sum up the main points in a project log.
In the newer versions of the Raspberry Pi with integrated Bluetooth like Pi3B/B+, ZeroW and the new 3A+, the hardware UART is used for the Bluetooth module. The second UART, which is connected to the extension header, is a software UART implementation. This second UART seems to be limited to 250kBaud. You can read more details on this website:
https://www.raspberrypi.org/documentation/configuration/uart.md
This project uses 500kBaud for transferring the LED data between Pi and Arduino. I am using an old, non-Bluetooth Pi A+. The only thing, I have changed, was adding this line at the end of the /boot/config.txt :
init_uart_clock=64000000
There is an option to change the UART configuration on newer Pis by connecting the hardware UART to the extension header and the software UART to Bluetooth:
https://blog.adafruit.com/2016/03/07/raspberry-pi-3-uart-speed-workaround/
I didn't have time to test this, but it looks quite straight forward. Also if there are other solutions, I will update this post.
Of course, it is also possible to reduce display update timings to reduce the UART speed to 250k.
I just started to play around with parsing data from internet sources to the matrix.
Starting with this page (German parliament seat distribution):
https://www.bundeswahlleiter.de/bundestagswahlen/2017/ergebnisse/bund-99.html
and extracting data and colors from the SVG image using this code:
doc = minidom.parse('diagramm.svg') # parseString also exists
style_string = [path.getAttribute('style') for path in doc.getElementsByTagName('path')]
label_string = [path.getAttribute('aria-labelledby') for path in doc.getElementsByTagName('path')]
text_string = [text.getAttribute('id') for text in doc.getElementsByTagName('text')]
data_string = [text for text in doc.getElementsByTagName('text')]
rgb=[]
percentage=[]
index=0
for i in range(0,7):
rgb.append(style_string[i].split("(")[1].split(")")[0].split(","))
for i in range(0,text_string.__len__()):
if text_string[i]==label_string[index]:
percentage.append(int(round(200*int(data_string[i]._get_childNodes()[0]._get_data().split(": ")[1])/709)))
if index < label_string.__len__()-1:
index=index+1
doc.unlink()
pix=0
So after sending this data to the matrix, I got this:
Nice starting point...
After several questions regarding code adaption for different matrix sizes, python code now has global pixel settings called PIXEL_X and PIXEL_Y.
I have uploaded the Arduino sketch of the ESP8266 based controller to Github.
Wiring is pretty simple, using a Sparkfun Thing and a single cell LiPo.
The schematic is now available. There are only three relevant connections:
Instead of the retro controller there is also a small Android app for game control. It provides the same functionality, so no additional controller hardware is needed if you already have an Android device.
There is a video on Youtube showing the app in action:
Python code and Arduino sketch now on Github. I will add more documentation how to use the code within the next week.
In reply to a comment, I will describe how to apply the veneer paper to the MDF matrix. The veneer I have used, is called Microwood, which is a 0.1 mm veneer with paper backing.
Before the final full-surface bonding onto the MDF matrix, I did some pre-testing with the glue and the surface preparation of the MDF. To avoid paper curling after the adhesion, I used a solvent based all purpose adhesive (UHU black), which worked as expected. For testing purpose, the black laser cutting edge on the MDF surface was removed with sand paper:
The following image shows the veneer glued on the MDF sanded off (right) in comparison to the veneer glued on the more or less black MDF. For me, this difference was not enough to polish all the MDF parts and the final result proved me right.
Because of the paper backing, it is quite easy to apply the veneer and there is no problem with dissolving, although the veneer was rolled up when it arrived.
If you have any questions, leave a comment.
I have now uploaded the DXF files of the MDF matrix. I have used 3mm MDF. The next version will be a combination of MDF and cardboard to save some cost.
Create an account to leave a comment. Already have an account? Log In.
Sounds great, do you have an idea regarding the overall size and the number of leds for your project?
Similar size to your project. Just wanting something large that can be on the wall. I was thinking a 5 to 6' tall field. I was considering trying to program something that was only on an Arduino, but that might be a bit of a challenge for me.
I love the added score and next piece at the bottom.
I would like to have it switch between an LED clock mode and Tetris mode when not being played. You could have the time rotated 90 degrees or have the hours stacked on top of the minutes.
Will you be adding more detail to the build? I was hoping you would get it to the point that others would be able to use the information to build their own.
Thanks!
Sure, I will add more details for rebuilding. But during this process, I will also fix some issues from the first version, so it will take some time.
And there are also some new features in the pipeline ;-)
From the programming side, it would be the easiest way to combine the Raspberry Pi with one of the availiable Arduino addon boards for the Pi and slightly adapt my software.
MakeTVee - That would be great. I look forward to the next improved version.
Thanks for your input.
Another thought I had was mounting the LED board on a swivel in the center so it can be rotated 90 degrees. Might make using it as a digital clock a little more appropriate in landscape mode.
I would like to see a log with abit more detail about the veneer apply method, any fotos/ docu about that?
And a question (for the next Türtris Version) : How good is the length tolerance of the LED strips (how much difference after 1m/ 5m)?
I will address this veneer topic in one of my next logs.
The length tolerance is an issue, there is an offset of minus 2-3 mm/m, but this offset is quite constant.
For these longer strips, 50cm-strips are soldered together and there is some overlapping at the connection point. Might be avoided by re-soldering these points.
Now there is a log focused on the veneer topic. Hope that helps.
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
I've been looking for details for building something like this. Looking forward to seeing more about it and diving into the details.