Rotary encoders are pretty interesting pieces of technology. They’re a solid way to accurately measure rotation including the direction. [David] recently wrote some software to handle these input devices, but unlike everyone else, his application can get by on only one microcontroller pin.
Most people will use three pins to handle a rotary encoder with a microcontroller: one to handle the switch and two to handle the quadrature inputs. With only one pin left available on his project [David] had to look for another solution, and he focused on the principle that the encoder pins behaved in very specific ways when turning the shaft. He designed a circuit that generates an analog voltage based on the state of those pins. He also wrote a program that can recognize the new analog patterns produced by his rotary encoder and his new circuit.
If you’ve been stuck on a project that uses a rotary encoder because you’ve run out of pins, this novel approach may help you get un-stuck. It’s a pretty impressive feat of circuit design to boot. Just think of how many other projects use these types of input devices and could benefit from it!
[via Hackaday.io Project Page go give it a Skull!]
When you look at the current methods of scanning 2D and 3D objects available today, you’re basically looking at an imaging process. Either you take a picture of a 2D object, or you grab a blob of point clouds with a 3D scanner and make a 3D object that way. It wasn’t always like this – real, hardware 3D digitizers were used all the way back in the 70s, and touch probes are standard equipment on high-end CNC machines.
[Nikolaj Møbius] needed a way to record points in physical space, and not wanting to deal with the problems of images, he made an open source DIY digitizer. It’s basically a laser cut arm with rotary encoders at each joint. By reading the rotary encoders with an Arduino, [Nikolaj] can digitize a few points on a workpiece – just enough to make a bracket, or find the critical dimensions of a part.
It’s a great tool for when you need a little more information than a set of calipers can provide, and a great example of some ancient tech made useful again.
Continue reading “An Open Source, DIY Digitizer”
[shantea] builds MIDI controllers, and after a successful first endeavor with a matrix of buttons and knobs, he decided to branch out to something a little bit cooler. It’s called Ceylon, and it’s effectively a turntable controller built from an old hard drive.
As a contrast to the first MIDI controller, this would be a stripped-down build, with just three faders, LEDs for eye candy, a pair of pots for gain control, and a hard disk surrounded by six anti-vandal buttons. The hard disk is the star of the show, acting as a rotary encoder.
When manually spun, the hard disk generates a few phases of sinusoidal waves. The faster you spin it, the higher the amplitude and frequency. These signals are far too weak to be sampled directly by a microcontroller, and for digital control – as in, MIDI – you don’t need to read the analog signals anyway. These signals were turned digital with the help of an LM339 quad comparator. With two of these comparators and signals out of the hard disk that are 90 degrees out of phase, quadrature encoding is pretty easy.
The software for this MIDI controller is based on the OpenDeck Platform, a neat system that allows anyone to create their own MIDI controllers and devices. It’s also a great looking board that seems to perform well. Video below.
Continue reading “The Hard Drive MIDI Controller”
[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”