A Maker named “randrews” recently created a handheld gaming system using a small LCD purchased from Adafruit, two custom PCBs, an ATMega328 microcontroller (MCU) and a number of buttons that function as de-facto control pads.
As HackADay’s Rick Osgood reports, Adafruit’s LCD display is a low-power sipper, making it a particularly good fit for the project.
After testing the screen, randrews kicked off the circuit design with Eagle.
“He hand routed all of the traces to avoid any weird issues that the auto router can sometimes cause. He made an efficient use of the space on the board by mounting the screen over top of the ATMega328 microcontroller (MCU) and other supporting components,” Osgood explained.
“The screen is designed to plug in and out of the socket, this way it can be removed to get to the chip. randrews needs to be able to reach the chip in order to reprogram it for different games.”
Once the initial board design was complete, randrews recruited his Shapeoko CNC mill to cut it out of a copper clad board. After milling it out, he used a small Dremel drill press to form all of the holes. On the power side, randrews designed a second, smaller PCB to fit 3V coin cell batteries and an on/off switch.
In terms of actual games, randrews says he will likely code a version of “Snake,” a popular title found on old Nokia phones.
Known as “FLORA,” Adafruit’s wearable electronics platform is built around Atmel’s Atmega32u4 MCU. The microcontroller boasts built-in USB support, eliminating the need for pesky special cables and extra parts.
As Adafruit’s Limor Fried notes, FLORA is extremely “beginner-friendly.” Indeed, the device is difficult to accidentally destroy by connecting a battery backwards, thanks to a polarized connector and protection diodes. Meanwhile, an onboard regulator ensures even connecting a 9V battery won’t result in damage or ruined projects.
Today, we’re going to be taking a closer look at a MIDI drum glove designed by Adafruit’s very own Becky Stern that is powered by the versatile Atmel-based platform. Aside from FLORA, key project components include:
4X small piezos
USB mini cable
4X 1M ohm resistors
Ribbon wires
Glove
Scrap fabric
Stern kicks off the MIDI drum glove project by ironing out some fabric to match the glove, cutting four small pieces slightly larger than her fingertips and ironing a small hem on one side.
“Put your glove on and establish what spots make contact with the table, then mark those spots with a pencil. Thread your needle and double the thread over, then tie a knot at the end of the tails,” Stern explains in detailed project tutorial.
“Stitch through one of your pieces of fabric and affix it to the glove fingertip over the pencil mark with a whip stitch. Be careful not to stitch the glove finger closed! Check periodically to be sure your stitches only pierce the intended layer. Stitch halfway around the pocket, tucking the seam allowance in as you go.”
Next? Stick the piezo in the pocket, finish stitching it shut, leaving the wire sticking out towards the back of the hand. Tie off and cut the thread.
“Repeat for the other three piezo pockets, and put your glove on to double check they are tapped when you finger drum,” Stern continues.
“We found the best placement was not necessarily on the pad of the finger, for instance the thumb is around to the side and the pinky is across the first knuckle.”
Next, Stern solders the FLORA circuit, tweaks/uploads the sketch and adds MIDI support to Flora.
“Once your glove is functioning properly, it’s time to tack everything down. Put the glove on and position FLORA so that the wires don’t tug when you make a fist. Tape it down so it stays put before stitching,” she concludes.
“Use plain thread to stitch FLORA’s unused pads to the glove. On the side where all the wires come in, stitch around the wires instead of through the pads. Tack the wires in place with strategic stitches along their lengths. Remove the tape and try on your completed drum glove!”
Aside from the board, key project hardware components include:
Two stepper motors
Two bracket sets
Two couplers and a 2mm Allen Key
12V power supply
One Adafruit Stepper motor shield
On the software side?
“I considered using remote procedure calls, I thought about implementing Hewlett Packard Graphics Language (HPGL) as used in pen plotters, but in the end for fun I decided to use GCODE as my drawing protocol – GCODE is how laser cutters and 3D printers and many other CNC machines are driven, so it seemed like good experience to learn a bit about how it worked,” Toal explained in a recent Instructables post.
“I found an Arduino GCODE interpreter and modified it to suit my project. Mostly the mods were just to remove the Z-axis code that wasn’t needed (you can’t lift or lower the pen in an etch-a-sketch – when you move, it always draws a line) but the main modification was to remove some machine-dependent stepper-motor-driving code and replace it with portable calls to the Adafruit libraries.”
To create a functional LOGO interpreter, Toal turned to Marcio Passos from Brazil who quickly coded an interface (EASiLOGO) based on the “Papert” LOGO interpreter written in Javascript by Thomas Figg along with an Etch-a-Sketch demo from the Mozilla Developer network.
“Marcio and I modified Papert to use the ‘Node.js’ system which gave the code the ability to drive the serial port so that we could send GCODE commands to the Arduino and make the Etch-a-Sketch draw,” he said.
“In a mammoth 30-hr session over the weekend, we got the LOGO interpreter working and sending drawings to the Etch-a-Sketch.”
So, what’s next for Toal? Well, the Maker says he hopes to polish the software so that anyone can use it without needing to build a physical Etch-a-Sketch robot.
“The emulation of the computer-controlled Etch-a-Sketch on our web page is very accurate and we’ll continue to work on it to make it look and perform even better. Programs that run on the web page will run just as nicely on the real hardware,” he added.
“If you can’t build the hardware, you can do the human simulation we described in the introduction, by writing down the instructions on a piece of paper, and giving them to your kids to execute on a real Etch-a-Sketch toy by hand. It’s a great way to learn to program, even without a computer.”
Stern kicks off the GPS logging dog harness by presenting a circuit diagram that displays the following connections:
FLORA 3.3V -> GPS 3.3V
FLORA RX -> GPS TX
FLORA TX -> GPS RX
FLORA GND -> GPS GND
GPS BAT -> positive coincell battery terminal
GPS GND -> negative coincell battery terminal
Next up? Sew the various components, load the logging program in the Arduino IDE or Codebender and upload, paste logs into LOCUS Parser, copy the KML output into a text file and import with Google maps.
It should be noted that Stern has also created a brooch version of the above-mentioned circuit, adapting the design for fashionable humans who want to track and review their trips around town.
“I suggest you build everything on a breadboard first using your Arduino. Then you will be able to test if the code works, and that you are able to connect to your WIFI,” MiCavaleri explained in a recent Instructables post.
“These images will show you how to set it up using the CC3000 shield, but it will work with the breakout as well.”
The Narrative Clip is a tiny, automatic 5 megapixel camera paired with an app that offers users access to a “photographic memory” which is both searchable and shareable.
Weighing in at 20 grams (0.7 oz) and measuring 36x36x9 mm (1.42×1.42×0.35 inches), Narrative boasts a storage capacity of 4,000 pictures and a two-day battery life. The device also features a double-tap function to more easily capture images, automatic sleep upon being placed face down, a specially coded companion smartphone app (iOS/Android) and cloud storage options.
The very first version of the open source PancakeBot was designed way back in 2010 by Miguel Valenzuela.
The latest iteration of the platform – which debuted at Maker Faire Bay Area 2014 – comprises an acrylic body packed with Adafruit motor shields, an Atmel-based Arduino Mega (ATmega1280 MCU), two stepper motors, a pair of belt drives and a vacuum pump.
Carnegie Mellon student Liana Kong recently designed a DIY musical rain poncho using an Atmel-powered Arduino Uno (ATmega328), FM tuner and flexible speaker.
According to the official Adafruit blog, the poncho is capable of controlling the radio in a number of ways, including: Hood up/down – power, colorful snaps – different station presets and hood strings – volume.
“Most of my classmates made radios out of wood or plastic, something that sits on a table. When I told everyone that the colorful pile of fabric was my radio, they had to second guess themselves,” Kong explained in a recent blog post.
“A lot of my past projects have been pretty practical, so it was refreshing that people were getting excited about my poncho. Also, seeing their faces brighten into a smile when they put the poncho on was really fulfilling.”
Kong also noted that the “key point” of her DIY musical rain poncho was to stay connected to one’s surrounding while listening to and enjoying music in harmony with the rain, sans earbuds or headphones which create walls to the outside.
“While the exterior is a more muted tone, the inside reflects the excitement and playful aspect of the poncho,” she added.
“Adafruit released more than 100 tutorials and over 25 libraries for the Arduino IDE, so they [ultimately] decided to produce their own wearable platform. The cool aspect about FLORA is that this tiny [platform] is fully compatible with Arduino, so no matter the operating system you will immediately be able to bootstrap your wearable startup,” Alessio explains.
“If you have the Arduino IDE installed on your computer, and if you know how to develop software for the original Arduino – and this is awesome, because as you know in an open ecosystem the knowledge reuse is on of the most important things.”
As Biancalana points out, FLORA boasts an on-board regulator, making the platform extremely beginner friendly.
“[It also] has four LEDs: power good, digital signal LED for bootloader feedback, data rx/tx. If we are power users, we can reprogram it all thanks to a ICSP controller; we have 14 sewing tap pads for electrical connections and attachments,” he says.
“[Makers] can expand [the] board to create even more powerful wearables, or maintain easy access to the controller so [it] can be hacked in many ways, growing a strong community around [the] hardware.”
“The tiny GEMMA microcontroller can display endless animations on this fun funky accessory that’s easy to make with a little soldering. The GEMMA and battery live on the outside of the collar, [while] the NeoPixels pierce through the collar to be wired on the inside.”
Becky recommends that Makers kick of the project by connecting all pixels power pins to GEMMA’s Vout, ground to GND and the first data input to GEMMA D1. The data out from each pixel is wired to the data in on the next – and hobbyists can easily add five more pixels for a total of ten.
Next up? Installing the NeoPixel library, connect the NeoPixels to a solderless breadboard, using alligator clips to attach to GEMMA.
“You’ll need to change a few lines in the code regarding the data pin (1), type of pixels (RGB vs GRB), and number of pixels (5). From the Tools→Board menu, select Adafruit Gemma 8MHz or Adafruit Trinket 8 MHz as appropriate,” Stern noted. “Connect the USB cable between the computer and Trinket, press the reset button on the board, then click the upload button (right arrow icon) in the Arduino IDE. When the battery is connected, you should get a light show from the LEDs.”
If all the pixels are working, Makers can proceed to the next step: building the collar.
“While the collar is pretty durable, use caution in heavy rainstorms or really sweaty dance parties- remove and power down the collar if the circuit is going to get wet. Store your collar in the round, and don’t shove it in your bag or it might get twisted or crushed, which could break the circuit,” added Stern.
Interested in learning more about building a NeoPixel ‘punk collar? You can check out Adafruit’s full tutorial here.