Go to any control systems class, and you’ll see a final project that demonstrates loops, integration, and everything else that can be learned in a semester or two of control theory. This project is not from one of those classes. It is, however, very cool: it balances a 40mm steel ball on the rim of a lasercut wood wheel using nothing more than a solar cell as a sensor.
[Manuel] was inspired to build this ball-balancing device after seeing a similar project at CCC about six years ago. He doesn’t remember who made it, and eschewed the PC/Matlab architecture of the original, but this build retains one interesting feature of its muse. The input to the control system is just a high intensity light bulb and a solar cell. The 40mm steel ball blocks the light reaching the solar cell most of the time. Slight variations in voltage go through the control system to keep this ball balanced on top of the wheel.
The only hardware for this build is a motor, a motor driver, and an ATMega644P. The first revision of the hardware was just a few breakout boards stuffed into a rat’s nest of wiring in the base of the build, but this has been fixed in version two with a new PCB. Video below.
Continue reading “Balancing A Ball With A Solar Cell”
[AlxDroidDev] built himself a nice remote control box for CHDK-enabled cameras. If you haven’t heard of CHDK, it’s a pretty cool software modification for some Canon cameras. CHDK adds many new features to inexpensive cameras. In this case, [AlxDroidDev] is using a feature that allows the camera shutter to be activated via USB. CHDK can be run from the SD card, so no permanent modifications need to be made to the camera.
[AlxDroidDev’s] device runs off of an ATMega328p with Arduino. It operates from a 9V battery. The circuit contains an infrared receiver and also a Bluetooth module. This allows [AlxDroidDev] to control his camera using either method. The device interfaces to the camera using a standard USB connector and cable. It contains three LEDs, red, green, and blue. Each one indicates the status of a different function.
The Arduino uses Ken Shirrif’s IR Remote library to handle the infrared remote control functions. SoftwareSerial is used to connect to the Bluetooth module. The Arduino code has built-in functionality for both Canon and Nikon infrared remote controls. To control the camera via Bluetooth, [AlxDroidDev] built a custom Android application. The app can not only control the camera’s shutter, but it can also control the level of zoom.
We’ve said it before: in the future simple interfaces will use nothing but your body. At least at first glance that’s the case with this WiFi-based gesture control system. If you have Internet at home you probably have a WiFi access point. That’s the first portion of the equation. The remainder is a way of measuring how the radio waves bounce off of your body. So far this is being done with Software-Define Radio (SDR) but researchers at University of Washington think it may be possible to build the technique into future WiFi devices.
The demo video shows this man waving his arm to adjust the volume of his home entertainment system. Intuition tells us that this would be impossible if your arm wasn’t the only thing in motion at the time. But that issue is quickly addressed. Multiple antennas can track multiple people at the same time. There is also consideration for false-positives. The system requires a moderately complex wake-up gesture sequence to prevent you from, say, accidentally turning on the stereo when you roll over in bed.
If you’re having trouble wraping your mind around this, consider this ultrasonic music player. The WiFi version does the same thing, but processing changes in the returning radio waves is much more complex.
Continue reading “Gesture control uses WiFi doppler shift”
[Buddhra] wanted to use a set of ear buds that also had a controller built into the wire. The headset he chose to go with is meant for use with iPod, but he figured it should be possible to make it work with Android too. He was right, and managed to alter the controller for Android use and still fit it into the original case.
He had already made a custom control module that has fast forward and rewind features and play/pause events. The signals used for the controls are based on resistive dividers. The play/pause button on the iLuv headset already worked, so he cracked the controller open to see why the forward and back buttons didn’t work. It turns out all he needed to do was add the right resistors to those buttons. Here you can almost see the 0603 surface mount packages he used to add a 220 Ohm resistor to the back button, and a 600 Ohm resistor to the forward switch.
Here’s an Android headphone add-on so clean that most people won’t know you built it yourself. [Will Robertson] was unsatisfied with the stock headphones that came with his HTC phone, but didn’t want to lose the control interface when upgrading. He built this add-on that lets him control the Android music player.
He was inspired to do this after reading about the control interface in one of our previous features. That hack detailed how to add control based on the 4-conductor headphone jack, but didn’t see us through to a clean finished product. [Will] picked up where it left off by designing a sleek surface mount board that hosts a headphone jack and three tactile switches. A patch cable is soldered opposite the jack, making this work as a pass-through device. The icing on the cake is the shrink tubing that masks the fact that this is a diy dongle.
If you want to follow his lead, [Will] posted his EagleCAD design files and footprints for the components he used in the post linked at the top.
Here’s a way to gain control of your projects using an Android device. Bluescripts is a free app available in the Android market that makes it a bit easier to make interfaces to send customizable messages. If you have a Bluetooth receiver in your project, connecting to it is as easy as putting the MAC address into an XML file on the Android device. Each tag in that file has a name, as well as the address of the target and the message that should be sent. On the receiving end, you just need to make sure your project hardware is ready to receive an ASCII message and act based on what comes through.
Check out the demonstration video after the break. Perhaps it’s not as cool as you could do if you were writing your own Android program, but we can’t think of anything we’ve seen that makes an Android interface this quick and easy.
Continue reading “Bluescripts makes Bluetooth control from Android a bit easier”
Here’s a look at the TRRS cable that Android phones use. [Rich Kappmeier] want to control the music player on his Nexus One while driving. It’s not necessarily a safe endeavor if you’re staring at the screen and poking away with one hand while trying to stay in your lane. A little bit of research helped him figure out how the hardware in a headphone controller worked and he decided to incorporate that into a connector cable for the car.
The control signals rely on a specific resistance between the TRRS function ring and ground. Once he worked out the chart above and targeted the correct resistance values he built a rocker switch for Fast Forward and Reverse, as well as a Play/Pause button into the connector cable. You should be able to use this for more than just music control. Take a look at our Android Development tutorial and see what else you can come up with.