Current Updates

This blog is an informal, and sometimes intermittent, record of my MEng project.

Tuesday, 17 January 2012

In The Beginning...

Introduction
This blog will serve as a day-to-day summary of my work on a two-wheeled robot as part of my MEng degree in Electronic Engineering.  Originally I intended to do video recordings, but used audio recordings instead when I couldn't find any simple software to do that.  Since then, I've discovered how long audio editing takes.

So now, having completed about two and a half weeks of the project, I'm reverting to text, and rewriting all the information I've produced so far.  Hopefully someone will find some of it useful.  Anyway, on with the show...



Motor Controller
I've started a log book, which signals quite clearly the start of the project for real.  It now contains some sketches of possible motor controller designs, as I intend to replace the current board.  A six-transistor H bridge crossed my mind as a good choice, and the logic would be simple to implement using a programmable logic device such as a PEEL, or using standard logic ICs.


At some point, the maximum switching frequency of any design would need to be determined, and it must be above the desired PWM frequency used to control the motors (usually a couple of kHz).  Also, some protection against shoot-through would be advisable - I've created controllers in the past which have suffered from this; it made them next to useless.


An obvious alternative to all of the above is to use a standard motor control IC.


Trigonometry - Where am I?
On a completely separate note, I have considered the trigonometry required to perform dead-reckoning on the robot.  It has quadrature-encoding wheel sensors to feed back wheel rotation, so as long as wheel slip is controlled, dead reckoning should be reasonably accurate.  As the guidance will probably be performed on a microcontroller (AVR or PIC), the trigonometry functions need to be programmed manually.  The two contending algorithms are currently CORDIC, which requires no multiplication, and successive angular bisection, which requires multiplication to renormalize the vectors at each stage of the algorithm.  There are various tradeoffs between these:
  • CORDIC doesn't require a multiply instruction.  The microcontrollers I intend to use contain a multiplier anyway, so this isn't really an issue.
  • CORDIC can perform an incremental correction - since the robot's heading doesn't change much in a short time period, this is an advantage.
  • CORDIC may lose accuracy due to repeated correction.  Therefore renormalisation or 'redo from start' would likely be required at some point.
  • In a simple coded test, angular bisection was more accurate.
  • The look-up table for angular bisection converges to a limit much faster than CORDIC.  This keeps the table size down.
At some point, I'll need to make a decision, and it may be arbitrary in the end.
Wheel Friction
To prevent slippage between the plastic wheels and the ground (which will mostly by some variant of lino), some measurements will need to be made to calculate the maximum acceleration force that each wheel can produce on a given surface.  The mass and moment of inertia of the robot (treated as 2D viewed from above) will need to be known to properly limit the motor output.
Power Supply
A DC-DC converter needs to be purchased or constructed, as the robot is meant to run from a 12V lead-acid battery, but the Mini-ITX board has a PSU that requires a 12V regulated input.  The tolerance at the input is much smaller than can be achieved directly off the battery, so a converter will be required.  For now, the robot will be run off a bench supply for testing.  When it comes to adding the battery, there will need to be a main fuse involved to prevent any hot incidents occurring.

That really sums up the first day of the project.  Tomorrow I see my supervisor, and I'll probably get the robot (which has been used in past projects) and any associated hardware and manuals.

No comments:

Post a Comment

Comments are moderated. Sometimes it might take me a long time to get round to it, so please be patient.