Robotic Odometry From An Optical Mouse

One of the problems future engineers spend a lot of class time solving is the issue of odometry for robots. It’s actually kind of hard to tell how far a robot has traveled after applying power to its wheels, but [John] has a pretty nifty solution to this problem. He converted an optical mouse into an odometry sensor, making for a very easy way to tell how far a robot has traveled  regardless of wheels slipping or motors stalling.

The build began with a very old PS/2 optical mouse he had lying around. Inside this mouse was a MCS-12085 optical sensor connected to a small, useless microcontroller via a serial interface.

After dremeling the PCB and discarding the microcontroller, [John] was left with an optical sensor that recorded distance at a resolution of 1000dpi. It does this by passing a value from -128 to 127, rolling over every time the sensor moves more than 3.2 mm.

As far as detecting how far a robot has moved, [John] now has the basis for a very simple way to measure odometry without having to deal with wheels slipping or motors stalling. We can’t wait to see this operate inside a proper robot.

Typewriter Is USB Keyboard, Also Awesome

If you’re a brooding author putting the finishing touches on the next Great American Novel™ while sipping a latte in Starbucks, a MacBook is far too common to impress uncultured proles guzzling caramel macchiatos. No, to impress the next [Joyce] or [T. S. Eliot] sitting at the table next to you, you’ll need something much more hip, like a kit to turn a typewriter into a USB keyboard.

This kit to turn an old Underwood into a USB keyboard comes from the drawing board of [Jack Zylkin], member of Philly hackerspace Hive 76. [Jack] managed to make the process of turning an old typewriter into a keyboard a relatively painless process.

[Jack] created a sensor board loaded up with 74HC595 shift registers that easily mounts to the frame of just about any typewriter. When a key on the typewriter is struck, the mechanical levers strike metal strips soldered to the sensor board. An ATMega microcontroller records these keypresses and sends them over a USB port just like any other USB keyboard.

Modifying a typewriter into a USB keyboard is one of those projects we’d dread; you’d think there would be far too much futzing about with a lot of small electrical contacts and dirty mechanical devices. [Jack] actually managed to put together a very nice kit to turn a typewriter into a keyboard here.

You can pick up a kit over at [Jack]’s etsy store, but doing the same thing with a bit of perf board isn’t out of the question. Awesome video after the break.

Continue reading “Typewriter Is USB Keyboard, Also Awesome”

PIC-based USB Conversion For An NES Controller

[Andres] wrote in to share his USB for NES controller project (translated). It enumerates as a USB keyboard and is easily mapped on most emulators. Over the weekend we looked in on an AVR programmer used for this purpose. [Andres] went a different direction, using a PIC microcontroller and eventually incorporating his circuit into the body of the controller.

The prototype circuit can be seen above. [Andres] uses a breakout board for the PIC 18F4550 to test the circuit. The chip has native USB support, and reading the button states from the controller’s shift register is a snap. You can see him using this test rig to play Super Mario Bros. on an emulator in the video after the break.

The second iteration of the project moves from breadboard to a soldered circuit. A 18F2550 is used as it comes in a rather small DIP package. If the legs are flattened there’s room inside the controller case for it, along with a few capacitors and a crystal. The original controller cord is removed to make way for a USB cable.

Continue reading “PIC-based USB Conversion For An NES Controller”

A Visually Satisfying Tape Ticker

This visually stunning tape ticker prints out [Horatius Steam’s] emails for him. It watches his email address for a secret trigger phrase in the subject line. Sure, thermal receipt printer projects are becoming rather common, but we can’t remember seeing one that took this much time and effort to make it into a showpiece.

The two parts that make this happen are the thermal printer with cutter module and the glass dome which is just large enough to house the business end of it. The driver PCB for the printer is hidden in the base (a paper tube which is painted to took like wood), which positions the outfeed near the bottom of the dome. This had the added benefit of leaving plenty of room for [Horatius] to proudly display the paper roll. Since the receipt printer is designed to work with a Windows machine there was no custom circuitry necessary.

Super Angry Birds Is A Physical Controller For The Game

This role reversal is quite entertaining. While the game Angry Birds is a virtual realization of knocking over stuff with a sling-shot, Super Angry Birds adds a physical control element back to the virtual game. It’s silly, but well-executed. The main controller takes advantage a part which we don’t see used very often. It’s a motorized linear actuator which would most often be seen on a high-end audio console.

Check out the video after the break to see the controller in action. The linear encoder is used to simulate pulling the rubber sling shot back. It uses the motorized feature to spring back in place, but we’re not sure whether or not the motor also provides resistance during the pull. The laser cut case also includes a companion in the form of a TNT trigger box al-a Wile E Coyote.

If this isn’t real enough for you perhaps this slingshot controller will suffice.

Continue reading “Super Angry Birds Is A Physical Controller For The Game”

Node.js For Linux Joysticks

[Tim Caswell] has been using gamepads and joysticks to demonstrate his node.js hacks for a long time. The thing is, he has been relying on C++ bindings to handle the hardware while trying to herald the praises of node.js. Why not cut out the middle man and write a joystick driver in node.js? It turns out to be so simple anyone can do it.

Granted, this is not a kernel driver. He’s relying on the Linux kernel to recognize the hardware and provide him with the customary /dev/js0 file which he can then work with. As you can see in the snippet above, he’s looping through code in order to constantly read from the hardware. To get this far he dug through the documentation for joystick packets (yay for open source!) to find that each is made of a 32-bit timestamp, a 16-bit value, and two 8-bit numbers identifying the event type and button or axis.

Once he has the packets, it’s off to the races. Each data type is parsed into an appropriate variable which you can use in the logic of your own program. Don’t be nervous, this will make a great weekend project!

A Wireless MAME Coffee Table Controller

MAME coffee table plan

Although we’ve featured quite a few MAME controllers here, we thought we’d feature one more. It’s only a well-drawn mechanical plan at this point, but if the results are anything like the model or detail drawing, we will be quite impressed.

One thing that is of particular interest is the planned parts list. Amongst them are the typical joysticks, buttons, and even a trackball. What may be new to some of our readers is the bluetooth arcade controller by [Wayne and Layne] opensource hardware kits. Although they aren’t cheap at just under $80, and requre an Arduino Mega for use, this is nonetheless an interesting control option. The maximum button presses may be another limiting factor at 6, but it should be a cleaner solution than cannibalizing one or more wireless controllers.

Of course, we’d be negligent if we didn’t at least give you a link to a completed MAME controller. Be sure to feast your eyes on these images if you’d like some finished controller eye candy or check out the pic after the break!

Continue reading “A Wireless MAME Coffee Table Controller”