Pitendo NES Emulator

pines_top

A couple of years ago my original Nintendo Entertainment System stopped working – the pins in the machine had worn out and wouldn’t recognize the games. I found a used game store in my neighborhood that had a new head of pins, so I replaced the part, which worked for a while but ultimately this set of pins also wore out.

Lucky for me, this was around the time I was getting into Raspberry Pi projects, and doubly lucky for me, emulating old console games is one of the most popular uses of Raspberry Pi. With a software package called RetroPie, you can emulate games from dozens of systems, including NES, SNES, Sega Genesis, Gameboy, arcade games, and more. Frankly, installing the RetroPie software on a Raspberry Pi is so easy to do, it’s worth the $50-ish cost of getting all the parts. You probably can’t find an actual functioning NES for that price anymore.

Using the following resources, I built my own Pitendo console:

I also bough a few cheap USB SNES controllers from Amazon. Also, the Pitendo wasn’t complete without this sweet 3D-printed case.

My Pitendo uses a Raspberry B+, and some of the more graphically intensive games like Starfox and Yoshi’s Island don’t function. But the B+ is already a few Pi models behind, and others have had good results with those (and even Nintendo 64 and Playstation games) on the Raspberry Pi 3 and the latest version of RetroPie.

I wouldn’t consider myself a “gamer” by any means. The most recent system I own is the Gamecube, which came out 13 years ago. I just wanted a way to play those old games without having to buy a new console every few years. With the Pitendo and an 8MB SD card, not only can I play the old NES games I had, but I can find and store thousands of classic and undiscovered games from all kinds of systems.

Here are my top ten favorite games I’ve been able to emulate on Raspberry Pi. Some are old favorites, some are new discoveries, but all have successfully prevented me from writing numerous blog entries:

Continue reading

Piplanter Reboot

piplanter_april2016

Even robots need a little motivation every once in a while. My Piplanter was no exception.

Nine months after I first booted up my JG Piplanter (which is still keeping itself updated hourly here and here), the system is growing a fresh batch of basil, which should be ready just in time for summer. But for a while there, things got a little dodgy, and I was worried the experiment had entered its end stage.

For starters, some of the basil plants were collapsing practically overnight. I was concerned they were being shocked by the moisture sensors, or that they weren’t getting enough water. Yet even after adjustments, plants continued to wilt and die unexpectedly. As it turns out, some of the basil seeds had brought in a fatal fusarium wilt. Bad news. All of the plants and soil would have to go, and the entire planter needed sterilization.

piplanter2_tall20160404 No problem, I thought. This would give me a chance to replace the moisture sensors, which had rusted down to nearly nothing, and to redesign the irrigation system, which wasn’t doing a great job of evenly watering the plants. Over a couple days in January, I cleaned and rebuilt the system.

But there was another issue – we moved. I actually managed to transport the Piplanter completely intact (in a moving van, and down and up two flights of stairs). But its new location was in a room and location with 50% less sunlight. Not to mention, the dark days of December starved the plants of light, even with the grow lamp on 12 hours per day, and the winter months made this drafty room about 15-20 degrees colder than the previous spot.

At first, the refreshed planter shot up seedlings, but all of them died in about a month. I think the cold had a lot to do with it, because many of them shot up quickly but never grew any bigger.

In addition, it took a little while to work the kinks out of the new watering pattern. At first the pressure was way too low. I had drilled holes that were too big, and the water just dribbled down the sides of the bin. So I installed new tubing with smaller holes, which now sprays water across the full length of the planter from both sides (I even sprayed myself in the eye while testing it).

Finally, I updated the Pi software so that I could SSH into the system and control it remotely. That is, I no longer need to haul a flat screen TV monitor and keyboard into the room every time I need to access the system. I can simply remote in from my laptop. I know this is pretty run-of-the-mill stuff to most tech people, but it was a first for me, and made working with the PiPlanter so much easier.

I replanted once more, this time with about twice the seeds. I also switched to new varieties of seed, including a mini mounding basil variety. With a little help, the seeds have a started again, and as the days grow longer and warmer, the new plants look a little bigger and happier each day. Now I’m keeping my fingers crossed that the wilt stays away and we will soon be back to a regular supply of basil to feed our addiction.

Check out new photos and a recent video below!

Continue reading

Introducing the JG PiPlanter

piplanter_slide0

Well, it’s been about seven months in the making, but it’s finally alive: my PiPlanter.

Taylor gave me a box of tubing, resistors and electrical components for Christmas last year, along with a web address for instructions to build us a Raspberry Pi-powered automated plant growing robot (or “growbot,” as I like to say now that I just thought of it just right now). Challenge accepted!

The project was created, designed, coded, everything-ed, by Devon Bray at Esologic (@eso_logic), so I simply set out to replicate his basic PiPlanter 2 Lite model.

The PiPlanter monitors light, air temperature and soil moisture levels, and then – my primary albeit minor modification – waters the plants when it detects that the soil has become too dry. It also tweets an hourly photo and update on the readings, as well as periodic charts and videos documenting the planter’s status and growth.

As it turned out, everything from Devon worked great. I would have been done a lot sooner, but I am not skilled nor wise with either Raspberry Pi or Python, so I managed to completely brick my Pi twice before I even got the basic software packages downloaded. Then, a third time, after the Pi had been running for a few weeks, I tried to delete a folder of photos and ended up wiping every file and program off my computer. Whoops. I am not a skilled programmer. I can barely make a robot arm dance.

But, hey, even I figured out how to eventually make the code and circuits work. I got pretty skilled at starting from scratch with the Pi, and the final reinstall took me less than 90 minutes. I learned quite a bit about Raspbian, Python, etc. This was a fun, challenging, next-level project for me, and, to boot, I might even have some decent basil and thyme out of all of this soon.

My goal now is to not touch the PiPlanter for a few weeks and see if the plant survive without my human interference. In the meantime, I’ll be trying to figure out what else around the house I can automate…

Check out my PiPlanter page here: JG PiPlanter. I’ve got some photos, Tweet samples and videos there. I’ve also put up my final code (I made a few tweaks and updates to the Esologic code, but again I take no credit for creating this project). Feel free to borrow, replicate, improve and try your own PiPlanter!

 

Raspberry Pi Robot Arm

arm_main

I said that I would work on controlling my robotic arm with Python/Raspberry Pi, and after a few week’s planning and tinkering, I got it to work. Using a couple of L293 motor drivers (PDF), I hooked up four of the arm’s motors plus the LED and wrote some simple functions to control it all via GPIO. Introducing my Raspberry Pi Robot Arm!

I used this DC motor guide for help with the circuit and the programming. However, I found the batteries didn’t provide enough voltage, so I used a 5v cooling fan power source instead. From there, I pre-programmed a routine in which the arm picks up blocks and stacks them. Here, watch. The RPi Arm picks up the blocks, stacks them, then signals “HEY” in Morse code with the LED:

Continue reading

Raspberry Pi

raspberry_pi

Taylor gave me a Raspberry Pi kit and wireless keyboard for my birthday. So far I haven’t done much – I set up Rasbian, streamed live video from the International Space Station, played a little Minecraft – but I’m pretty excited to start some projects on it. My initial goal was to create a media center and couch computer on my TV. The latter is done, and I may or may not be able to accomplish the former, but I’m realizing now there are so many other interesting challenges.

For example, I want to try this retro gaming emulator. I also want to try my hand a some simple GPIO games, or maybe even hook it up to my robotic arm. I think this binary LED clock would be pretty cool, and I’m exploring whether I can put my Kindle to work as a Kindleberry Pi. I’ve also seen some cool automated holiday light setups, and if I’m feeling ambitious, I might even create a monitoring system for our container garden.

In order to do any of this, however, I’ll need to get a lot better at electronics and code. I have absolutely zero computer engineering experience. I was under the impression that all computers were powered by magic until about a year ago when I read “Code: The Hidden Language of Computer Hardware and Software.” It explained computational logic and schematics in terms of old technologies like telegraph relays, slowly transitioning into transistors and modern chips. It gave me the basics. As for electrical engineering, I read some of the free text available here on allaboutcircuits.com, particularly those about basic DC and AC electrical systems and computing. So now I know almost nothing instead of entirely nothing.

I also know very little about programming, but I found some resources to get me started. I used Codecademy to learn the HTML/CSS/Javascript and PHP I needed to build this site, and I’ve not moved on to Python and Ruby lessons. In addition, the Pi itself comes loaded with some Python learning environments, so I’ll be diving into those when I’ve got the basics down.

I’ve never used a Linux system before. But the interface feels very familiar, and I’m getting used to the terminal/command line, so I hope that means I can continue to explore this environment smoothly. It’s weird playing around with the Pi after using Windows 7, an iPad and an Android phone all day. I feel like I’m learning computing backwards. Maybe when I get done with Raspberry Pi projects I’ll build a Turing Machine (or at least read this Turing biography).

Does anyone have any more good ideas for beginner Raspberry Pi projects? Can you point me to any resources? Any good texts?