Showing posts with label Project 6 - Balancing Bot. Show all posts
Showing posts with label Project 6 - Balancing Bot. Show all posts

Friday, January 18, 2013

Heat Sinks

In the last post, I briefly mentioned that I planned on adding a 'heat sink' to my motor driver board in order to prevent it from over heating.  In this post I will cover why a heat sink is often needed and what it does.

Definition 
A heat sink (a.k.a heat exchanger) is a part which transfers heat into the surroundings (air in most cases).  It is typically an additional metal part, usually Aluminum but can be any highly conductive material, which is adhered to the thing that is getting hot.  Additional explanation... Wikipedia definition.
The heat (or 'thermal') energy is exchanged (or 'transferred') in to the air through a mode called convection (mostly).  There are also two other modes which do contribute to some transfer, but tend to be relatively small.  They are known as conduction and radiation.

  • Convection is the thermal energy transfer through fluids, like air (Link)
    • If you hold your hand above to something hot, you can feel the heat mostly because of convection
  • Conduction is the thermal energy transfer through a material, like metal (Link)
    • If you touch something hot, energy is transferred into your hand by conduction
  • Radiation is basically waves of thermal energy (e.i. infrared light) which are emitted by the thing that is hot (Link)
    • If you hold your hand next to something hot, you can feel the heat mostly because of radiation.
    • The earth is warmed by radiation from the sun.  In order for radiation to be of concern, the difference in temperature between the two objects (like the sun and earth) must be very large.


Overview of a Heat Sink


So, when do you need a heat sink?  
Well, that is not always an obvious question... it depends what you are doing, what you are doing it with, and where you are doing it.

What you are doing?
Are you driving a 0.5 Amp (at stall) motor with a 10 Amp motor driver?  Then no.
Are you driving a 6.0 Amp (at stall) motor with a 2.4 Amp motor driver (like me)? Then yes!
Are you driving a 6.0 Amp (at stall) motor with a 6.0 Amp motor driver?  Then probably...

What are you doing it with?
When using a motor driver, pull up the specification sheet and determine the maximum constant operating temperature.  In my case, I am using the L293D chip (Link to data sheet) which has an operating temperature from 0C to 70C.  If you have an IR thermometer, measure the temperature during heavy use.

Where are you doing it?
If you had a motor driver chip on a RC helicopter which is exposed to the wind created by the blades (that is key), you may not need a heat sink.  In this case, the wind causes forced convection into the air. Forced convection allows more thermal energy to be transferred into the air.  That is why you will often find a heat sink with a fan strapped to the top (like the CPU on the motherboard of your computer).

In general, if it gets hot to the touch during operation, I would recommend adding a heat sink.  If it is added correctly, you will only help prolong the life of the chip.

Finding a heat sink
You will typically find a heat sink in your local electronics shop or maybe even a hardware store.  If not, try pulling apart old electronics like computers or an Xbox.  After my Xbox showed me its red 'ring of death', I took the liberty of ripping it apart to salvage anything.  There were two of the coolest (ha) heat exchanges inside.

In most cases, finding a heat sink with fins is preferable.  Some of the really cheap versions are simply a bent piece of sheet metal... essentially creating two fins.  The key to an effective heat sink is surface area.  The more surface area your heat sink has, the better it will transfer the heat to the surroundings.
The image below shows a 'good' heat sink.  However, I am somewhat bias to the cool look of these.  An inexpensive bent sheet metal heat sink may be acceptable in some applications.

Heat Sink with Fins
In order to attach it to the chip, you should find yourself some thermally conductive grease or epoxy (a.k.a heat sink compound).  Simply using common household glue or bolting the heat sink to the chip is not sufficient (The generic glue could create a thermal barrier, having low conductivity, and restrict the flow of energy.  The same is true with an air gap between the chip and heat sink).  Conductive grease or epoxy usually has a high content of conductive particles, like silver, to help the heat transfer through it.  Apply a thin layer to the chip (avoiding bubbles).  The thinner the gap the better (unless you have bubbles). (Search Google for heat sink compound for more info).

Hope that helps.

Balancing Bot Arduino Shield Stack


I am slowly working toward the balancing robot Arduino shield stack.  So far, I have tested the XBee shield by sending information from the Arduino to the XBee and to my computer across the room.  As you can see from the below images, I have soldered my SparkFun 2 axis gyro and 3 axis accelerometer (Link) to my ProtoShield and mounted that to the XBee Shield which is mounted on the Arduino UNO.  The addition of the gyro/accelerometer was simple since no other shield I plan on using utilizes the analog pins (in order to use a stack of shields successfully, two shields can not use the same analog or digital pin... logic power is fine).


Gyro on ProtoShield

Wireless Gyro Stack
Next, I plan on adding the motor shield, which I purchased through the MakerShed (Link), to complete my balancing bot stack.  I have tested this shield and it should work for what I need it to do.  The shield is capable of driving 4 bi-directional motors... however, since my robot has 2 'large' motors (6A stall) (Link), I plan on doing some 'hacking' to allow it to drive 2 motors with all of the 8 outputs (essentially spreading the power around so I don't overheat the chips).  I will also add an Aluminum heat sink, which may be custom made unless I can find my way over to my local electronics store.  If heat sinks are new to you, I will do some explaining in the next post (in a nutshell, they help pull the heat out of the thing it is connected to,  a motor driver chip in this case, and spread it over a larger area).

Balancing Bot Arduino Stack

Friday, January 11, 2013

My First Arduino

After months of doing next to nothing with my electronics, I have finally jumped back into it.  This time I have come back with an Arduino!

I started playing with micro controllers while in college... about 8 years ago... really, 8years ago... I'm getting old.

My first micro controller was a Basic Atom Pro which used a C compiler which cost around $100 if you wanted to get into longer code (50+ lines if memory serves me correctly).

I quickly ran into issues and ended up switching to standard PIC chips (by Microchip) after a coworker, an electrical engineer, gave me a bunch of his old books and programmer.  Since then, and up to now, PIC is all I have used.

Since I began hearing about Arduino a few years ago, I considered giving it a shot... however, up until someone got me a UNO this Christmas, I had never used one.

After installing the software and about 10 minutes of playing... I regretted not switching sooner!  The majority of my time spent on the PIC was figuring out how to set the bits correctly to get something to work.  With the Arduino, although that stuff is still needed, it is all behind the scenes.. and I am glad to see it go.

I have purchased a number of shields and plan on hooking up my balancing bot (or so I hope it will balance).  I will probably update the Sumo Bot also with an Arduino...

Stay tuned...

Arduino UNO, XBee, Proto and Motor Shields

Saturday, February 25, 2012

Added Electronics to the Balancing Bot

Last weekend, before getting the sumo bot kit, I spent some time working on the balancing bot.  I added a vertical length of Aluminum and mounted the electronics on it.  The plate is 3/8 thick and about 5 inches long... it not only acts as a place to mount the electronics, but its main purpose is to raise the center of gravity (CG) higher.  Confused??  Which is easier to balance in your hand, a pencil or a broom stick?  (the correct answer is the broom stick).  The greater the distance between your hand and the CG, the easier it will be to control.  

Before ripping the motor controller off to be used on the Sumo Bot, I was able to get all the parts working... I still have a bit of work before I will be able to get that thing balancing.  During initial wiring, I managed to smoke the H-Bridge and fry the PIC Microchip on my PICKit2 Evaluation board.  Too bad really, I used that thing all the time (no, really.)  These motors have a 6 Amp stall current, so I need to buy something a little beefier.

After that fiasco, I spent some time using my USB to Serial breakout board from Sparkfun (DEV-09716).  After a bit of playing around, I managed to send the accelerometer data from one axis to my PC using Hyperterminal, which I think is a standard program installed on every machine... if not, I'm sure you can find it, or an equivalent for free.  The accelerometer is from Pololu (MMA7361L).

Front Isometric View

Side View

Rear Isometric View

Sunday, February 19, 2012

Project 6 - Balancing Bot

For a while now, I have been gathering all the parts needed for a two wheeled balancing robot.  Finally, I had the motivation (not to mention a few nights) to design and fabricate the chassis.

Balancing Bot CAD Isometric View


Isometric View #1

Isometric View #2

Underside View

Side View
I'm using gear motors and wheels purchased from Pololu.  The unique thing about this design is the o-ring belt drive system.  At work, I am constantly using o-rings in their traditional means... sealing.  However, when I inspected the o-ring bible, published by Parker, they discuss using them as belts.  Odd?  Next time your taking apart that old printer, keep your eyes open... this method is used often when gears are not needed or optimal.

I have a few more parts to make, then the 'fun' begins.... How hard can it be?