Simple Sprite Routines Ease Handheld Gaming DIY

Making your own handheld games is made much easier with [David Johnson-Davies’] simple sprite routines for the Adafruit PyBadge and PyGamer boards. Sprites can be thought of as small, fixed-size graphical objects that are drawn, erased, moved, and checked for collision with other screen elements.

xorSprite() plots an 8×8 sprite, moveSprite() moves a given sprite by one pixel without any flicker, and hitSprite() checks a sprite for collision with any screen elements in a given color. That is all it takes to implement a simple game, and [David] makes them easy to use, even providing a demo program in the form of the rolling ball maze shown here.

These routines work out-of-the-box with the PyBadge and PyGamer, but should be easy to adapt to any TFT display based on the ST7735 controller. The PyGamer is the board shown here, but you can see the PyBadge as it was used to create an MQTT-enabled conference badge.

If you really want to take a trip down the rabbit hole of sprite-based gaming graphics, you simply can’t miss hearing about the system [Sprite_TM] built into the FPGA Game Boy badge.

A Minimal ESP8266 Digital Picture Frame

Over the last few years, the price of a good digital picture frame has dropped to the point that we don’t often see DIY versions anymore. As much as we might hate to admit it, it’s hard to justify building something yourself when the economies of scale have made it so you can buy the final product for less than the cost of the parts themselves. But of course, there are always fringe cases where building it might be the only way to get what you need.

Granted we’re not sure that [Tony Liu] actually¬†needs a 1.8-inch digital picture frame, but we’re sure somebody out there does. The ST7735R display used in this project is a real TFT, so the color and refresh rate is pretty good; but with a resolution of just 128×160, we’d recommend keeping your expectations low in regards to visual fidelity.

What’s really interesting about this project is how low the part count is. All you need is the ST7735R display and the ESP8266 itself (or the development board of your choice, naturally). Even the 3D printed frame is technically optional. The display is driven by SPI, so with the power added in, that’s only eight wires that need to be soldered between the two devices. If you’re looking for an easy way to add a photo slideshow to a small device, say a conference badge, this is about as easy as it gets.

But where are the images coming from? You might think SPIFFS, but in this case [Tony] has converted the images to bitmaps and is loading them into the Arduino Sketch as a header file with PROGMEM. Helpfully, he provides the link for the tool he uses to convert the images into an array the graphics library can understand. This makes adding new images slightly time consuming, but we imagine if you have the need for something like this, it’s probably only showing a pretty specific set of images anyway.

If you’re looking for something bigger, or maybe just an excuse to put that dusty Raspberry Pi to use, you might be interested in one of the more substantial builds we’ve seen over the years.

Continue reading “A Minimal ESP8266 Digital Picture Frame”

A Custom Keypad With Vision

A combination of cheap USB HID capable microcontrollers, the ability to buy individual mechanical keys online, and 3D printing has opened up a whole new world of purpose-built input devices. Occasionally these take the form of full keyboards, but more often than not they are small boards with six or so keys that are dedicated to specific tasks or occasionally a particular game or program. An easy and cheap project with tangible benefits to anyone who spends a decent amount of time sitting in front of the computer certainly sounds like a win to us.

But this build by [r0ckR2] takes the concept one step farther. Rather than just being a simple 3×3 keypad, his includes a small screen that shows the current assignments for each key. Not only does this look really cool on the desk (always important), but it also allows assigning multiple functions to each key. The screen enables the user to switch between different pages of key assignments, potentially allowing a different set of hot keys or macros for every piece of software they use.

The case is entirely 3D printed, as are the key caps. To keep things simple,¬†[r0ckR2] didn’t bother to design a full enclosure, leaving all the electronics exposed on the back. Some might think it’s a little messy, but we appreciate the fact that it gives you easy access to the internals if you need to fix anything. Rubber feet were added to the bottom so it doesn’t slide around while in use, but otherwise the case is a pretty straightforward affair.

As for the electronics,¬†[r0ckR2] went with an STM32 “Blue Pill” board, simply because it’s what he had on hand. The screen is a ST7735 1.44 inch SPI TFT, and the keys themselves are Cherry MX Red clones he got off of eBay. All in all, most of the gear came from his parts bins or else was only a couple bucks online.

If you’re looking for something a bit bigger, check out this gorgeous Arduino-powered version, or this far more utilitarian version. Both are almost entirely 3D printed, proving the technology is capable of more than making little boats.

[via /r/functionalprint]