[Patrick] was looking for an easier way to control music and movies on his computer from across the room. There is a huge amount of remote control products that could be purchased to do this, but as a hacker [Patrick] wanted to make something himself. He calls his creation, “Dial” and it’s a simple but elegant solution to the problem.
Dial looks like a small cylindrical container that sits on a flat surface. It’s actually split into a top and bottom cylinder. The bottom acts as a base and stays stationary while the top acts as a dial and a push button. The case was designed in SOLIDWORKS and printed on a 3D printer.
The Dial runs on an Arduino Pro mini with a Bluetooth module. The original prototype used Bluetooth 2.0 and required a recharge after about a day. The latest version uses the Bluetooth low energy spec and can reportedly last several weeks on a single charge. Once the LiPo battery dies, it can be recharged easily once plugged into a USB port.
The mechanical component of the dial is actually an off-the-shelf rotary encoder. The encoder included a built-in push button to make things easier. The firmware is able to detect rotation in either direction, a button press, a double press, and a press-and-hold. This gives five different possible functions.
[Patrick] wrote two pieces of software to handle interaction with the Dial. The first is a C program to deal with the Bluetooth communication. The second is actually a set of Apple scripts to actually handle interaction between the Dial and the various media programs on his computer. This allows the user to more easily write their own scripts for whatever software they want. While this may have read like a product review, the Dial is actually open source! Continue reading “Dial is a Simple and Effective Wireless Media Controller”
[Pete] needed a rotary encoder for one of his project so he set out to build his own. As the name implies, a rotary encoder measures rotation by encoding “steps” into electrical signals which can be measured by a microcontroller (or used in numerous other ways). Knowing the degrees of movement for each step will allow you to calculate precise distance traveled in applications like robot wheels. Or you can simply use the rotating shaft as an input device which navigates menus or settings.
This concept is a good one to understand. We had originally planned to build rotary encoders for the multi-person Duck Hunt at Hackaday’s 10th Anniversary but the build-off crew had difficulty getting the system to work. In [Pete’s] case he’s using photointerrupters (apparently the IR beam is easily detected through the white paper but usually these parts would be cut out of the disk). We were using reflectance sensors. Either way there’s a trick to detecting which direction a rotary encoder is turning. We’ll explain that for you after the break.
Continue reading “Which Way Are We Going? Concepts Behind Rotary Encoders”
CNC machines have been around for decades, but only recently have small desktop routers, 3D printers, and laser cutters brought G code to the tabletop. Obviously, this is a teaching opportunity, and if you’re trying to get kids interested in the inner workings of machines that build things, you can’t begin with obtuse codes understood only by machines and CNC operators.
[johnyang] is building his own CNC controller based on something just about every kid is already familiar with: the Etch A Sketch. He’s retrofitted a small, travel size Etch A Sketch with an LCD, buttons, rotary encoders, and a Raspberry Pi to turn this primitive drawing toy into a machine that generates G code for a Shapeoko 2 CNC mill.
The user interface for this CNC controller is as similar to the Etch A Sketch as [johnyang] can make it – two rotary encoders draw a shape on the LCD, and G code is generated from the drawn shape. Adding a third dimension is a bit of a challenge – it looks like two buttons take care of the up and down movement of the spindle. Still, [johnyang] plans to add the definitive Etch A Sketch feature – holding it upside down and shaking it will reset the CNC to its original state.
There are a few videos of [johnyang]’s progress. You can check those out below.
The project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.
Continue reading “THP Entry: Etch-A-CNC”
[Colin] loves his PicoScope, a USB based “headless” oscilloscope. While using it he found himself longing for a classic oscilloscope interface. Mouse clicks just weren’t a replacement for grabbing a dial and twisting it. To correct the situation he created his USB-Connected Box-o-Encoders. The box maps as a USB keyboard, so it will work with almost any program.
[Colin] started by finding encoders. There are plenty of choices – splined or flatted shaft, detents or no detents, panel, PCB, or chassis mount. He settled on an encoder from Bourns Inc. which uses an 18 spline shaft. His encoder also includes a push button switch for selection. With encoders down, knobs were next. [Colin] chose two distinct styles. The two knob styles aren’t just decorative. The user can tell which row of knobs they are on by touch alone. Electronics were made simple with the use of a Teensy++ 2.0. [Colin] used a ATUSBKey device running Teensy software, but says the Teensy would have been a much better choice in terms of size and simplicity.
Once everything was wired into the box, [Colin] found his encoders would “spin” when the knobs were turned. They are actually designed to be PCB mounted, and then screwed into a control panel. Attempts to tighten down the panel mounting nut resulted in a broken encoder. Rather than redesign with purely panel mounted encoders, [Colin] used a dab of epoxy to hold the encoder body in place.
Continue reading “A USB Connected Box-o-Encoders”
[Mark] was looking for a cheap disco laser projector for parties, and he found one. Unfortunately for him, the advertised features were a bit lacking. The “sound activation mode” was merely an on off circuit, as opposed to it actually being controlled by the music — he set out to fix this.
Taking the unit apart revealed a very convenient design for hacking. All of the components were connected to the main PCB by connectors, meaning the laser driver board was completely separate! He replaced the PCB completely using a prototyping board, an Arduino pro mini, a microphone with a simple preamp, a rotary encoder, and a MSGEQ7 chip to analyse the levels. Oh, and a MOSFET to control the motor via PWM output. It even ended up being close to the same size as the original!
If you happen to have one of these projectors and want to fix it too, he’s posted the source code and circuit diagram on github.
After the break, check out the before and after video. It’s still a cheap disco laser projector, but at least it works as advertised now!
Continue reading “Hacking a Disco Laser”
A while back we featured a magnetic rotary encoder that [LongHairedHacker] designed. The heart of the system is an AS5043 magnetic rotary sensor which runs from $6.5-$11 and has a 10 bits precision. As we wanted to check if his design was really efficient, he made a test bench for it.
For 360 degrees, a 10 bits precision means a ±0.175º accuracy, which is quite impossible to check with conventional measurement equipment. The first approach he thought of was to attach a mirror to the encoders axis and point a laser beam at it. The laser beam would be reflected across the room to a big scale, but the minimum required distance would have been 5 meters (16 feet). So he preferred attaching a motor to the sensor, rotating at a given speed and measuring the sensor output.
In the first part of his write-up, [LongHairedHacker] lays the math which explains the different kinds of errors that should be expected from his setup and sensor. He then proceeds with his test, where an ATMEGA8 based board is used to send the measured position to his computer. It should be noted that [LongHairedHacker] currently uses the time spent between two received measurements on his computer as a time base, but he is planning on time stamping the data on his board in the next future. Nevertheless, he managed to measure an average ±0.179º accuracy with his simple test bench, which is very close to the manufacturer specification.
Here is the link to our original post about his sensor.
The great thing about hacking on Roombas is that iRobot used quality parts to build them. [Jason] got his hands on a broken 5XX series Roomba and posted an article about how he reused the salvaged parts.
What you see above is one of the results of his work. This little bot takes commands from an IR television remote control. But he also used the setup to make a self-balancing bot. The two motors from the Roomba have magnetic rotary encoders with 8-bit resolution. Pair this with a well-tuned PID algorithm and you’re in business. The video below shows him testing a motor with his PID code.
You don’t get very much info on the guts of the donor robot. If that’s what you’re looking for you need to look at [Dino’s] Roomba 4000 teardown.
Continue reading “Salvaging parts from broken Roomba robots”