USB
2.0 Controller for a Bi-Polar Stepper motor OR Two DC Motors
With the Motor Hawk it is possible to
control either a 4-phase Bi-Polar stepper motor or two DC motors in
both speed and direction. There are also 8 digital inputs and 5
digital outputs available for general use, with 4 of those inputs
configurable as automatic limit switch inputs for motion control
applications.

Stepper
Motor Control
The Motor Hawk has outputs capable of “driving”
one bi-polar (or hybrid) stepper motor. Stepper motors are one of the
most useful devices in the world of control, automation and robotics.
They form the most convenient and versatile bridge between a set of
motion rules in a controller (computer) and the motion itself. They
can be made to move slowly, quickly, in reverse, pause, complete
revolutions, partial revolutions and even individual steps of less
than a degree of rotation. With this flexibility of movement coupled
with an abundance of torque for relatively little power applied, the
stepper motor finds many suitable applications.
The downside to stepper motors is that they are
not as simple to “drive” (electrically speaking) as simple DC motors,
which just need the required volts and amps to do their bit. Stepper
motors need a precise sequence of pulses delivered to the correct
winding at the correct time in order to perform their required task.
It would be nice if all you had to do was specify the number of steps
to take , in what direction and at what speed and the stepper motor
obliged. This is the function of the Motor Hawk.
From the PC, these requirements can be specified
and “sent” to the Motor Hawk via USB, and the Motor Hawk on board
microcontroller then generates the precise sequence of pulses on the
appropriate winding to move the stepper motor accordingly

DC
Motor Control
The Motor Hawk has the option of either driving a stepper motor or ,
up to two DC motors. This option is selectable in software (see
software section). The DC Motors can be any simple DC motor with
voltage and current requirements within the specifications of the
Motor Hawk (i.e. less than 36v and less than 2A each). The motors
which can be driven in both directions are connected as shown above.
The Motor Hawk has four outputs for
driving two motors independently. The output terminals are labelled as
OP1 and OP2 for motor 1 and OP3 and OP4 for motor 2. When Motor
1 is set to drive in the forward direction terminal ‘OP1’ is positive
with respect to ‘OP2’ and vice-versa when set to go in
reverse.(similarly for OP3/OP4 and Motor 2). As well as direction
control the motor outputs control the speed of the attached motor by
using PWM (pulse width modulation) to deliver a variable power based
on the external motor supply. i.e. the voltage it produces is always
exactly equal to the voltage applied to the motor supply terminals
(VM+ and GND) but it is constantly turned on and off at a high rate.
The power transferred to the motor (and hence the resulting speed) is
varied by changing the amount of time the output spends ‘ON’. i.e. if
the output is only on for 5ms out of every 100ms then the resulting
speed would be about 5% of full speed. If it is on for 50ms out of
every 100ms then you would have approx half full speed.
The speed
can be varied over the full range from less than 1% to more than 99%
in 255 pre-defined steps. This gives very fine control over the speed
of the motor. Remember that it is the power being delivered to the
motor which is being varied which in turn causes a speed change. If
the motor is turning a heavy load then the speed will be
proportionally less for the same power output. Each motor output is
capable of delivering up to 2A to the connected motor. The Multi-pin
driver chip on the Motor Hawk board will tend to be warm when driving
significant currents into one or both motors. This is perfectly
normal. Most applications will not require the use of maximum power in
both motors for long periods. However, if your particular application
is intended to run close to maximum limits you may prefer to fit the
optional heatsink (part no. ACC001) to the driver chip to reduce its
temperature. This is available in the accessories section of the
Control Shop
Digital Inputs
There are 6 digital inputs on a Motor Hawk provided on a standard 10
way header connector.These inputs have characteristics compatible with
standard 5v logic devices. i.e. when the input is at +5v it will be
read as a logic ‘1’ or “High”. When the input is at 0v or GND it will
be read as logic ‘0’ or “Low. If you are using an input to monitor a
switch, the correct way to connect it is to have the input "pulled up"
to +5v via a resistor (eg 4K7) and use the switch to connect it to GND
when applied. For convenience a 5v supply is provided for this purpose
on PL4 pin 1. The diagram below shows all six inputs connected to show
the status of 6 external switches.

Although all six are available for general use as
inputs, four of them can be configured (in software) for an automatic
function in the control of the motors. They are designed to act as
range limits. A range limit is a mechanism to prevent a moving object
moving beyond its safe operating range. For example, the motor you are
controlling may be moving a drill on an X/Y drilling table along the X
axis. At some point it will reach the end of its available travel and,
without limits, presumably hit an end stop. If the motor continues to
operate in this condition it will probably overheat and may even have
enough power to damage the mechanism it is moving. To prevent this, a
limit switch may be fitted near the end of travel in such a way that
it is closed when reached by the moving part. The closure of this
switch is used to switch off the motor automatically. However, it
would be impractical to just leave the motor “dead” against the end
stop with no possibility of reversing it back into the working range,
so the automatic stop only stops the forward motion. When the signal
is, at some point, changed to reverse, the motor is then allowed to
reverse back from the end stop. Similarly at the other end of travel,
the reverse will be inhibited automatically when the other limit
switch is reached but forward motion would then be allowed. This is
the function of the inputs on PL4 pins 2,4,6 and 8.
When being used for control of two DC Motors the following applies:
When 2 is connected to ground it inhibits forward motion of the Motor
1 immediately and automatically without any intervention by the
controlling program. Reverse would still be allowed. Similarly Pin 4
inhibits reverse motion but allows forward when connected to ground.
Pins 6 and 8 are the corresponding limits for motor 2 (6 for forward
and 8 for reverse). This makes the fitting of range limit switches
very easy for both motors. When the Motor Hawk is being used for
stepper motor control only inputs 1 and 2 (pins 2 and 4) can be used
in this way. Since the limit switch inputs can be read like any other
input it can be determined whether or not the moving device has
operated any of the limit switches from within the control program
allowing suitable additional remedial action to be taken, if required.
It is not necessary to use these inputs as range limits if not
required. This facility can be enabled or disabled within the
software.
Digital Outputs
There are 8 digital outputs on a Motor Hawk provided on PL3. Like PL4
this is also a standard 10 way header connector suitable for use with
standard 10 way ribbon cable type plugs. Each output provides either
+5v or 0v under program control. These can be used for a wide variety
of tasks but it should be remembered that the current capability of
each output is limited to no more than 25mA.
Software and Programming
The Hawkeye software supplied with the
board provides a PC based application allowing full control of all
facilities on the Motor Hawk including the speed and direction of all
motors.

This, in itself,
provides a very useful control facility which can be applied to a wide
range of projects. However, the real power of the board becomes available
when it provides those facilities to the programmer writing his own
control software using the supplied DLL function library. This DLL
allows user programs written in a wide range of languages (eg C, C++ and
Visual Basic), to have easy access to it's facilities. This gives the
programmer simple to use functions like
Sys_Initialise( )
Motor_RunSteps(BoardNumber, number of steps etc... )
Motor_SetDCMotors(BoardNumber,
motor settings etc...)
rather than having to address the tricky USB comms
protocols. Multiple hawk boards of any type on the same PC are
automatically accommodated and made available by a simple board number
allocation.
More information on programming in Visual Basic and also in C++ is available within the
manual, which may be downloaded below. |