I've been thinking to do a cool project for my school. I want to create a 128 x 128 LED wall display of 1 to 2 meters diagonally. I've been looking at DIY one with LED Strips or LED Matrix (ws2812b type). I think a raspberry pi can drive the display and also run the Pico-8 player software (only for playing, the editor is not needed). So far I have no idea how to do this. I know how to solder and wire the LED but they seem very expensive.
The idea is to have a giant screen outside for students to play. We can use a camera (maybe a raspberry pi 4 can also due the video AI analysis) to detect the student's movement as d-pad and buttons input. We can have a sort of QR code that will redirect students to a webpage for them to upload their game cartridges (will have to manually approve them to avoid strange things displaying on the screen publicly). This will promote students to start coding in order to play their games on the big screen.
I'm a 5th grade science and math teacher but I'm also an Electrical Engineer with a minor in robotics and automation.
Any advice will be appreciated.
What a cool idea! I admit I've never really messed with anything like this, either... but you've got my gears turning. If I come up with anything helpful I'll be sure to pass it along. :-)
My first thought is that it might be simpler to build if you make a grid of 32x32 panels instead of one big 128x128. It's probably a trade-off though, as it will likely add complexity to the video driver code.
Detecting motion and gestures will be easier if you have the player stand in front of a wall/cloth/tarp that provides some contrast. Do you have a camera and image processing library in mind? If you happen upon an old Kinect I know there are PC libraries to use with them.
Anyway, just kinda spitballing here... good luck and keep us posted on your progress!
Thank you for your reply. I'll be honest with you. I have not tackled or thought much about the motion detection aspect because that's a topic that has been done in so many videos and I feel that as this time is an area very matured and developed. Also, 10 years ago I did a project involving the use of a camera to enhanced a Motorola robot used in the 80s and 90s to assemble (pick and place) beepers (yeah I know so oldie). I used a camera to automate the detection and pick & place of parts for a university project (Motorola donated these outdated machines for a robotics lab). In a nutshell, I feel that the camera thing is something that I can pull off eventually :) (too much bragging sorry).
What's harder for me is to make the screen (that's easy but keep reading) in a cost-effective way and also find a way to have Pico-8 (probably running on a Raspberry Pi) output at the correct resolution 128 x 128 on that led matrix display. I have no idea how to do this. The DIY of the screen has been done in the past but at a much lower resolution (64 x 64). I'm not sure if making it 128 x 128 (that's 4 times more pixels) will add latency issues. I want to have the screen refresh rate at 60 and if that's not possible then at least 30.
In regards to doing it at 64 x 64, that might add some complexities to game development because you will have to take that into consideration when drawing the sprites and maps. That may be too difficult for the 5th graders or maybe not. If I can't find a way of making the 128x128 cost-effectively I will purchase a 64x64 LED MAtrix Panel to see how it looks.
So the idea is to encourage my students to code. I would like to have like a QR Code to redirect to a webpage where students can upload a cartridge (PNG picture file) and have to input an auto-generated code from the screen (to upload you have to be in from of the screen, this helps with misuse) to authenticate, then they can play the game. So when the other kiddos see their friend's game being played they will want to make their own.
I'll split this project into the following steps. Everyone is welcome to help with any of these steps:
-making a waterproof 128x128 led matrix display/sign
-configuring a display driver to ensure the device (PC, raspberry pi, etc...) detects it as a monitor
*Develop a webpage/web-app for accepting Pico-8 Cartridge (PNG)
-Second-factor authentication (code generated at the local site LED Screen or to a nearby second display)
-Upload a Pico-8 Cartridge(PNG) to an external server or directly to the device running Pico-8 connected to
the LED Matrix.
-Develop a way of rebooting or loading a new game from the website in a way fair for every user.
*Run the Pico-8 player (not the editor) in a device capable of driving the LED Matrix (again, maybe a Raspberry Pi).
-Pick and connect a device with the above capabilities to the LED Matrix.
-Run a Pico-8 instance on that device and show a game on the LED Matrix.
-Control the Pico reboot and loading of the game from the website.
-For P1 and P2 Controller input implement a camera-based section system or go as simple as making an outdoor wired controller (in a fixed position) that doesn't require physical touch (pandemic friendly). This controller can use the opto-interrupter concept or ultrasonic sensor to detect a hand pressing a button.
I will start with the DIY Screen. I will post any updates to this forum. In the meantime, is there a website that can handle the project management of something like this? A place to post more regular updates, so that collaborators can be on the same page.
Hello Mr. ElektroPR,
at an electronics show I saw exactly the LED panels you would need (four of them) plus a special logic board to drive them. The Pi can't do it alone. The manufacturer is called Joy-It and it is the Debo LED Matrix. (They may have different sizes). You also need the controller board, there may be bundles available.
This guy here got it working:
Note: the flickering is caused by the camera. It is not visible in person.
Shouldn't be a big hassle. You can find driver boards and hook them up to a pi or such and they just work like a regular screen. This might be a good starting resource- https://learn.adafruit.com/adafruit-diy-led-video-wall
Here's another more-from-scratch solution- https://www.makeuseof.com/tag/weekend-project-build-giant-led-pixel-display/
Everywhere I've looked just the leds hasn't been cheap. One listing of rgb strips was 10$ for each row. Some loose leds I found came to over $600 for a full screen worth.
I would love to have a giant low res large format screen for gaming, but the only way to get close to that and vaguely affordable is a projector. (and still not cheap)
Thanks for the info. Like tyroney was saying is not hard because there are HDMI controllers hardware available. The problem is that the LED modules are very expensive. In my case, the reason they are expensive is becuase I want to use big panels/modules to reach a screen of around 4 feet wide by 4 feet long (1.22 meters by 1.22 meters). I don't want to use a TV because I want this project to be placed in the school backyard (protected from the weather) so that students can play during recess.
If I pick a 64x64 LED module @ $30 to $40 each, the ones that I can find are P2.5 with 6.3 inches or 160mm dimensions. For a 128x128 screen, I will need a 2by2 configuration (around $130+ for 4 modules) making the screen 12.6 inches by 12.6 inches or 320 mm by 320 mm, too small.
I found a person from NY selling a box of 40 32x32 panels at $250 plus $80 for shipping. I've been in conversation with him to see if I can just get 20 of those (I only need 16 32x32 panels if I do a 4by4 configuration to reach 128x128) at a lower price. With this setup I will get a screen with 30 inches by 30 inches or 762mm by 762mm dimensions.
In regards to the webpage/web app part of the project, I contacted a friend who is a programmer and has some experience with mobile gaming development. I'm going to send him a raspberry pi and set up a web hosting for him to start developing a way to control the loading of games on pico-8 remotely from pressing buttons on the webpage, maybe via SSH??? We'll see how that goes. Any other ideas or approaches will be appreciated.
Welcome to Pico-8. Don't be afraid to ask questions in the forum. I've been using Pico-8 for less than a week and I have never done any video game programming or development before, yet that has not stopped the Pico-8 community posting on this thread to help me out. I don't want to sound harsh but I believe that you will get more answers to your questions if you focus them on a new thread, nevertheless, I still want to help you out.
Like I was saying, my previous programming experiences were related more to the maker, robotic, engineering scene. When I was in college, I learned a little bit of C++ and some of Assembly (don't know why but it was cool). I'm also a robotics teacher at an elementary school and I have used Code.org and Scratch to teach programming to my students. Pico-8 is a great upgrade path for my 5th graders who feel like Code.org and Scratch are toys. The following are the resources that I have been using to learn more of Pico-8:
Programing: Start with something simple. Platformers (games like Mario Bros) are not simple. Pong is a great game to start with Pico 8. Unfortunately, the closest I found was a Breakout tutorial, an Arkanoid clone, from LazyDevs/TeamworkCast YouTube channel. After finishing that one, you can watch Pico 8 - Platformer Setup from NerdyTeachers YouTube Channel. My last and third recommendation is to go back to LazyDevs/TeamworkCast and watch their Pico-8 Tutorial - Roguelike tutorial. I will write the corresponding link for these tutorials below:
-Pico-8 Tutorial - Breakout
-Pico 8 - Platformer Setup
Pico-8 Tutorial - Roguelike
PixelArt: The thing that I most love of Pico-8 is its limitation: You are limited to 16 colors and sprites/tiles start at 8x8. You can use bigger sprites/tiles but you only have a page to store 128 of those 8x8 sprites/tiles. Use bigger sprites/tiles and you will run out of space to store more art. Don't forget that the sprites/tiles are not only used for characters but also for drawing the map of the game. The map page storage is 128 by 64 grid if those 8x8 sprites/tiles, to fill a fullscreen (128x128 pixels) you need to draw 16x16 tiles. In addition to the map sprite/tile and map storage, you have a third shared space that can be used to store 128 additional sprites or 128 by 64 tiles map or a combination of both that does not exceed the available space (ex. 64 additional sprite/tiles with 64 by 64 tiles map). I'm not that good at drawing so these limitations really really help me to not get overwhelmed by having infinite options to choose from. You’re not going to develop the next AAA game in Pico-8 but it will help you to develop good programming practice and great optimization skills, even for veteran game developers. Think of Pico-8 as a challenge platform to test your skills in a harsh environment, while having fun at the same time. I found that to start with the pixel art aspect of Pico-8, it was a good idea to see some examples of more experienced users. I started by opening other Pico-8 code and looking at their sprites/tiles and map pages. You can also get some example, from websites like Itch.io and NerdyTeachers.com, in the form of downloadable game assets (paid and free tile packs are available). Then I look for a few Pixel Art YouTube videos. Finally, I decided to look professionally drawn and sold pixel art design for Pico-8 specs (8x8 sprite/tiles with 16 Color Pico-8 Palette) or at least with 8x8 sprite/tiles with the least amount of colors (You'll have to modify the colors manually using the 16 Color Pico-8 Palette). Pico-8 Sprite and Map Editor is good enough for designing games but not very user friendly and is lacking many features, like animations. I found a program for $9 called PyxelEdit that is awesome. Astragali posted 2 cool files (templates for PyxelEdit) that when opened will have PyxelEdit already preconfigured for Pico-8 (8x8 tiles, Pico-8 16 Color Palette, and correct sprite sheet dimensions). The resulting sprite sheets can be exported as PNG files for importing into PICO-8 - just be sure to use the 128 x 64 version if you're not wanting to overwrite the map area of memory. Please see links below for the websites/resources mentioned above:
-Pico-8 Carts (games) Library
-Nerdy Teachers Sprites Library
-Itch.io Game Asset for Pico-8
-Itch.io Game Asset with Generic 8x8 Sprites/Tiles (You'll have to modify the colors manually using the 16 Color Pico-8 Palette)
-Game Assets Sold by Game Developer: Untied Games (If you become his $10 a month Patreon you can download all of sprites/tiles assets and support him to keep doing awesome designs)
-PyxelEdit Sprite/Tile Editor
-PyxelEdit and PICO-8 Forum Post (download the two PyxelEdit template files)
Sound/Music: Found a YouTuber with awesome tutorials and examples (see below).
-Pico-8 Music Tutorials
-Pico-8 Music Samples
[Please log in to post a comment]