Which Way Are We Going? Concepts Behind Rotary Encoders

[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”

THP Entry: Etch-A-CNC

etchacncCNC 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.


SpaceWrencherThe 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”

A USB Connected Box-o-Encoders

picoscope-encoder

[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”

Hacking a Disco Laser

hacked laser disco

[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”

Update: testing the accuracy of a magnetic rotary encoder

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.

Salvaging parts from broken Roomba robots

salvaging-parts-from-broken-roombas

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”

Autonomous RC car navigates by waypoints

autonomous-rc-car

Check out this autonomous RC car which [Jason] built for the chipKIT design challenge. It’s been able to successfully navigate a planned route taking just a few waypoints as inputs.

Obviously this uses a chipKIT as the controller, the max32 to be specific. [Jason's] write-up shows off all of the components of the design, but you’ll have to head over to his recently posted update to hear about the custom board he had spun to host them all. It starts with a GPS module, but that’s only accurate enough to give the rover the big picture. To handle getting from one waypoint to the next successfully he also included a gyroscope which provides very accurate orientation data, as well as optical encoders on the wheels for on-board distance traveled information.

We hope he’ll keep refining the design and make a trip to next year’s Autonomous Vehicle Competition.

Continue reading “Autonomous RC car navigates by waypoints”