64 bit graphical hand held

I read a post on Hackaday about a ‘64 bit graphics’ hand held game system powered by the atmel 328…an Arduino Uno like handheld.  Well, the headline was a bit deceptive, the 64 bit part was correct, as there is an 8×8 LED matrix being use for the ‘screen’. 

WP_20160702_03_18_57_Pro (2)This is actually something I had toyed with building for quite a while now.  I had seen several (Super Pixel Brothers being the first) and, after seeing this particular build, I thought…why not?  I have a lot of those matrices lying about, so I took my last unbuilt matrix (it was a ‘kit’) and used it as the basis of my console.

I used my previous handheld build as the basis for this one, which was also very similar to the Hackaday build.  I guess there aren’t many different to do this.

My build has four buttons: Reset, left, right and action.  I deviated from the article’s build and used a battery pack that has three AA batteries.  The unit ran nearly 24 hours on those three batteries.

While I have the hardware complete, I am working on software. The article’s build has six games: space invaders, pong, racing and three others.

So, I now have a piece of nice hardware and nothing running on it.  I’m thinking about adapting the Super Pixel Brothers to the handheld or doing a Space Invaders type game.  Not sure yet. Heck, I WP_20160630_21_10_14_Promay just put several pre-programmed messages and use the buttons to select them. 

What would you do?  Thoughts on software/games?  Leave them in the comments below.

 

Link to the Hackaday article: http://hackaday.com/2016/06/25/this-arduino-console-has-64-bit-graphics/

Advertisements

MAX7219 Dot Matrix LED Display: Assembling and usage

I have to admit something: I have a major fetish.

XANDER - WIN_20140226_131628 (2)No, get your mind out of the gutter. This fetish is for displays. Any kind of display. LCD, LED, Plasma even CRT. I love them all. If it lights up, I like it. So, while perusing eBay for some parts and Arduino shields, I came across these nifty little 8×8 LED arrays.  They were complete with a driver board. You can get them assembled or in little kits. And, the best part? They are very cheap.  $13US for a package of five kits. (See here) (Please note: the listing may not be here for long, but you can find lots of similar listing for the same or less.)

Since I like to put things together, I got the kits. They arrived about a week and a half later. Only problem was that there was zero documentation.  Fortunately, the boards are nicely done and silkscreened with parts.  So, after building all five, I have a pretty good strategy for putting them together.  I wish to share that with you , so…read on!XANDER - WIN_20140226_131933 (2)

Your kit should include:

  1. 1 PC Board
  2. 1 10Kohm, 1/4 watt resistor (BROWN, BLACK, BLACK, RED)
  3. 1 10uF capacitor
  4. 1 .1 uF capacitor
  5. 1 MAX7219 IC
  6. 1 20 pin IC Socket
  7. 2 8 pin female headers
  8. 2 5 pin, 90 degree headers
  9. 1 8×8 LED array

Assembly is easy.  Start with the parts that will be hidden by the array: the two capacitors and the resistor.

The 10uF capacitor, which looks like a cylinder, is polarized and can only be inserted one way. Look at it and you will see a thick, white arrow with a minus sign. Holding the board so the silkscreened writing is facing you, and you can read the writing, carefully bend the legs of the capacitor at about 90 degrees, with the minus sign facing you. Insert it into the board. Refer to the photo below for correct placement. XANDER - WIN_20140226_131056 Bend its legs slight so it does not fall out.

Next, insert the 0.1uF capacitor. It does not matter which way it goes. Bend the legs slightly to hold it in place.

Insert the resistor into the 10K resistor holes. Bend the legs slightly to hold it in place.

Turn the board over and solder each of the legs into place. Trim the excess once you have soldered the parts.

Insert the 20 pin socket. You may want to place a piece of tape over the socket to keep it from falling out when you turn the board over to solder it into place.  Solder the socket, making sure it is flat and level against the board.

Once the socket is soldered into place, insert the MAX chip.  You may need to bend one or both sides so it fits. You can do so by placing the chip on its side, on a flat surface and gently apply pressure while slightly bending the chip down. It won’t take much.

Next, solder the two five pin headers into the board. Make sure you solder the shorter ends into the board. One header goes into each side of the board into the holes marked VCC,GND,DIN, CS and CLK.XANDER - WIN_20140226_131346

Now, take the LED array and turn over so the pins are sticking up. Insert one of the 8 pin female headers onto each set of pins. Doing this before soldering the headers onto the board makes it easier than soldering and then inserting the array.  XANDER - WIN_20140226_131417 (2)

Next, insert the array with the board, making sure the NOTCHED side is toward the bottom of the board, see the picture for proper orientation.

Congratulations, you have assembled your display!

Next, we need to test it.

Go here and read up on the array and how it works. You can download sample code and the library to use in your own code.

I am using this library, available on Google’s code repository.

Download the MaxMatrix library from the Google site and import it into your Arduino Libraries via the Arduino’s Import Library function. Then, load up the example code and upload to your UNO or other compatible device.  When it runs, you should see the message scrolling by, letter by letter.

If you have more than one, you can chain up to four together (using MaxMatrix) and see the message more clearly.

I have four of them chained together and connected to Arduino Mini Pro, which is like a UNO, only really small.

When chaining them together, remember that the one that is connected to the Arduino is where the message STARTS. So, arrange them in order from the last connected to the first. When the message scrolls, it should appear normally, scrolling from right to left.

scrollerI have gone a bit further and used one of my PC’s to send data to the 4 8×8 array’s. Currently, I am just sending the date and time, but I have plans to feed it news and weather information as well. Possibly using wireless. For now, I am just using the USB interface. I wrote the PC code using Visual Studio 2005 and the serial port control.  See below for my sample code.

There are a ton of uses for these nifty and cheap devices. From a scrolling marquee to crude handheld gaming. 

Have fun!

SAMPLE VB.NET CODE:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim thetime As String
        thetime = ”  ” + Format(Now) + ”   “
        If SerialPort1.IsOpen Then
            SerialPort1.Write(thetime)
        Else
            SerialPort1.Open()
            SerialPort1.Write(thetime)
        End If
        Timer1.Interval = 10000
        Timer1.Start() 

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim thetime As String
        thetime = ”  ” + Format(Now) + ”   “
        If SerialPort1.IsOpen Then
            SerialPort1.Write(thetime)
        Else
            SerialPort1.Open()
            SerialPort1.Write(thetime)
            SerialPort1.Write(“~”)
        End If
End Sub