Showing posts with label motor. Show all posts
Showing posts with label motor. Show all posts

Tuesday, April 15, 2014

Motor Encoder Based Speed Control PCB

Hey team,

In the course of one of my classes, Electronics Design Lab, my partner, Alex Mault and I saw the chance to improve upon the design of our robot, affectionately named Geoff. Our goal was to take a messy breadboard and make an easy to use PCB from it. The result of our efforts worked remarkably well (meaning it worked exactly the same as before) and reduced the area of the circuit by two-thirds.

Figure 1: Our original, messy breadboard.
Figure 2: The beautiful, simple PCB copy.
The circuit we planned to replicate was a motor encoder feedback system, which uses the optical encoder output of a 10 V DC motor to maintain a constant angular wheel speed. Below is the block diagram  of this system for the right and left wheels of our robot, which are independently regulated by a microcontroller (Arduino).


While Geoff (our robot) is in motion, it's motor encoders output a 50% duty cycle square wave with a frequency proportional to the speed of rotation. For more information on Optical Encoders and how to build one, check out my previous post here. This square wave is sent to a 555 chip, set up as a one-shot circuit. A one-shot circuit outputs a pulse of fixed width on every rising edge of the input. Since the input of the one-shot 555 varies, but the pulse width (T_on) is fixed, we can achieve a variable duty cycle output. This output is fed into a voltage amplifier which regulates the ~3V input into a 5V output.

The speed control block is where all the magic happens. First, the output of the voltage amplifier is put through a basic RC circuit. What this does is create a primarily DC voltage with amplitude proportional to the duty cycle of the input signal. This DC voltage can be described as the "current" state of the motor.

For a moment, consider the robot ascending a slope. Given a constant voltage and current input, the robot would tend to slow down. By slowing down, the duty cycle output of the one-shot 555 decreases, and the DC "current" state of the motor decreases. If we use a voltage follower, where the reference voltage is given by a microcontroller to be either high or low, we can pull the dropping "current" DC voltage higher, which maintains the speed of the wheel equal to the reference voltage.

The packages we used were TL272 (Op-Amp) and LM555(One-shot 555). These are shown in the block diagram above.

To create the PCB that replicated this system, we first constructed a fully functional breadboard circuit. Taking these values, Alex created an EAGLE schematic and board layout. I then proceeded to hand make a two-layer board, which turned out to be a very tedious, but ultimately rewarding process, as the board worked just as planned.

The EAGLE project files.

- John "I really should be writing this lab report right now" Dunn


Figure 4: Left wheel 555 one-shot. 
Figure 5: Right wheel 555 one-shot 
Figure 6: Headers.
Figure 7: Voltage followers for right and left.
Figure 8: Right speed control.
Figure 9: Left Speed Control
Figure 10: PCB layout.

Wednesday, February 5, 2014

Optical Encoder

My most recent project was spurred from a lecture in my electronics design lab class. The goal of the class is to create a autonomous robot that preforms a unique function.  The robot consists of two driving wheels and a castor stabilizer wheel in the rear. Autonomy would be a relatively simple task for a micro controller. But there's a catch, in this class we must construct our own circuitry from the ground up. A type of component we are given are optical encoders, one for each wheel, which are used for speed and distance calculations.



Simply put, an optical encoder is a device that converts the angular position or motion of a shaft or axle to digital code. As shown in the figure below, a light source is shone through a rotating disk with a code track. If the disk is in a position such that the light source can shine through a code track hole, the photodetector puts out a high or low voltage, depending on the circuit.
http://zone.ni.com/cms/images/devzone/tut/b/82f98d1a421.gif
As the disk revolves, we start to see a square wave form. Note that a 50% duty cycle waveform, or a waveform that is on for 50% of the time, is produced only when the the code track has evenly spaced holes of equal parts hole and blocking material.


This sort of device seemed simple enough to replicate, so a week after that lecture, I sat down with some cardboard, a DC hobby motor, a bright red LED, and a photoresistor, to see what I could come up with.

As a prototype, I created a very basic cardboard box and disc. After connecting the disk to a DC hobby motor and running at high RPM, I foresaw an issue. Due to the inaccuracy of cutting with scissors, the center of mass of the disk was not at the axle. This resulted in a very unstable spin. Complications also occurred when testing the bright red LED and photoresistor.  When I flashed the LED at the photoresistor and probed the output, the flash was indistinguishable from the ambient light in my dorm room. At least, it wasn't giving me the nice square wave I was looking for.


The solution was to use an infrared emitter and receiver pair. To mediate the center of mass problem of the disk, I choose to construct a box and disk using a laser cutter, which is far more accurate than scissors.


Once constructed, the laser cut disk and IR emitter/reciever system worked beautifully, producing the pulse wave I was looking for. In my finished encoder, I only used four holes approximately 5mm wide at 0, 90,180, and 270 degrees. This produced a 90% duty cycle.


While this project was simple enough, it took a bit of time to work out some of the kinks. The end product was worth the effort, and I can now make calculations to determine the angular speed, frequency, and inertia of the disk. At least to me, this is quite exciting.



If you have any suggestions on how I might improve this design, please fell free to comment below!

Also, there are reasons we have web-controlled power supplies. One of those reasons is attached below.




-John "I was scared for my life filming this" Dunn