Friday, 31 May 2013

Controlling a Dish Antenna

Actuators and motor drives

One of the tasks we need to do with the Radio Astronomy project is steer the Dish Antenna. The two important parts of this are the hardware motor controller and the software to read position information fed back from the dish.

While I'm still thrashing out the hardware for the Azimuth 360 degree drive I thought I'd look at the Elevation drive for the dish. As I'm using a fairly standard 2.4 Meter C-Band dish and mounting hardware that came with the dish I'm going to use a linear actuator arm which are available from most good Satellite TV suppliers.

Actuator Base - Red reed switch on right
The actuator arm has a 24 inch travel from fully retracted to fully extended. Although it has a 36 volt rated motor I'm going to run it at 24 volts to reduce stress on the motor. I also have a concern with the electrical EMF noise from the motor brushes so I'm hoping a lower voltage will reduce this. I'm also trying to keep the current on the drive under 2 Amps which is my limit for the electronics driving the motor.

Linear actuator arms have two pairs of connections. One pair is the motor power and by swapping polarity of the power the motor can run forward or reverse. This lets us extend or retract the actuator. The other pair of contacts is a magnetic reed switch which is used to count revolutions of the motor drive. A pair of limit switches are also wired up with the motor power to cut off the motor when maximum or minimum positions of the actuator are reached. I intend to use the limit switch signals to tell when Zero Degrees and 90 Degrees are reached on the dish position.

To provide forward and reverse voltages to the actuator arm I am using a device called a 'H-Bridge'. This lets me turn on and off the power to the motor as well as reversing polarity. The controller for the dish aiming hardware is an Arduino Uno R3 that uses an Atmel micro-controller on a prototyping board. The board has plug in connection pins on the edge of the board allowing modular devices called 'Shields' to be plugged in for different tasks. One such Shield is a H-Bridge that is perfect for controlling power to the dish positioning system.

Arduino Uno R3

The H-Bridge shield is a dual output device using an L298 high current switch. With this we can use one output to drive the Elevation motor actuator arm and the other output to drive the Azimuth 360 degree motor.

From the Actuator arm the magnetic reed switch contacts will go back to an Input on the Arduino so we can measure how far in and out the arm has traveled. Using this method of Elevation positioning the Arduino will need to frequently reset the dish back to Zero Degrees by reading the limit switch output. It will also allow Pulse counting of the reed switch between Zero degrees and 90 degrees so the Arduino knows how many pulses to expect as it travels.

For our purposes one of the Automatic Calibration tasks when the system is powered up will be to run the dish from zero to 90 degrees to pre-determine the dish position. The same task will also occur for the Azimuth drive as the Arduino will need to determine the direction in degrees. Therefore we will also need limit switches at Zero degrees North and at 360 degrees North. Azimuth sensing may also be done with a magnetic sensor at the motor drive. More on that part in a later post.

L298 H-Bridge Motor Driver
In my next post we'll be looking at adding the Software Defined Radio USB stick to the Raspberry Pi and getting our computer hardware receiving radio signals.

If you have already jumped in with both feet and followed some of the links in previous posts you may already have your system receiving signals. Thats where it starts to get exciting and our Radio Astronomy Project really starts to take shape.


Rob Arrowsmith