Beagle Board Robot (DC Motor power, Wireless, etc)

793 views
Skip to first unread message

Ian

unread,
Mar 26, 2010, 5:24:45 PM3/26/10
to Beagle Board, i...@leximo.org
I am building a robot using a Beagle Board and 4 wheel robot chassis
that has 4 DC motors but I have some basic questions that are puzzling
me.

1 - How do I get my Beagle Board to control the 4 DC motors in order
to make them turn?

So far I think I have to use the I2C pins but I'm not sure about that.
And if I can control the DC motors through a Beagle Board...

2 - Will the Beagle Board have enough power to handle the peripherals
and control the DC motors as well?

3 - The Beagle Board came with no pin headers, will I need them to
connect to the DC motors?


Gerald Coley

unread,
Mar 26, 2010, 7:23:56 PM3/26/10
to beagl...@googlegroups.com
The Beagle board has no power in reality. It uses the 5V you supply and passes the rest through to the connectors.. If you use 5V motors and provide enough power to drive the motors and the Beagle, then there will be enough power. So the answer is that if you provide enough power, then there will be enough power.

I2C can be use to control motors or there are a couple of PWM outputs from the Beagle that can also be used. Obviusly, these signals cannot drive a motor direct, so a power driver, such as a power FET, would be required.

In order to connect to these signals, you will need to connect the signals to the board, either via a connector or by adding wires direct to the holes in the connector area. Do not attemp to connect a motor direct to these pins as that will result in nothing happening. The signals are 1.8V so unless you can find a very low current motor that runs on 1.8V, the motor won't turn.

I suggest you do a Google search on driving DC motors and the required circuitry. Then decide what type of motor you need. Then decide if you want to use a PWM or I2C interface to control them. Then you can work on how to connect it to the Beagle.

Gerald



--
You received this message because you are subscribed to the Google Groups "Beagle Board" group.
To post to this group, send email to beagl...@googlegroups.com.
To unsubscribe from this group, send email to beagleboard...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/beagleboard?hl=en.


djlewis

unread,
Mar 27, 2010, 7:36:39 PM3/27/10
to Beagle Board
Hello Ian,
You have not offered much information for us to go on really. I do
gather you
have started your robot design with the base (motors and chassis). I
also gather
you plan to use the BeagleBoard as the brains. Gerald mentioned the BB
has a
1.8vDC interface to its signal lines (GPIO, !2C, SPIO...). Your robot
base will
no doubt require a motor drive controller with a interface voltage
level translation
circuit between it and the BB. I am not aware of any 1.8 vDC signal
level motor
controllers. You could of course design and build your own. Have a
look here to
get more an idea of your up and coming adventure.

http://www.hervanta.com/stuff/Beaglebot

This is the controller I use for my two motor robot.

http://www.roboticsconnection.com/c-5-robot-controllers.aspx

You need to know the running current and stall current of your
motors as well
as the voltage to plan your motor controller. The BB runs on regulated
5vDC
so you will need to plan for that.

Sounds like a great project..

Don Lewis
robotics.djlewis.us
-----------------------------------

Ian

unread,
Mar 27, 2010, 8:01:45 PM3/27/10
to Beagle Board
So I cannot control the DC motors by just connecting a wire from the
Beagle Board to them, I have to have a motor controller circuit?

Will something like this work?

http://mechomaniac.com/ArduinoMotorControlWithTheArdumotoShield

http://mechomaniac.com/ConnectingServosToTheArdumoto

> > beagleboard...@googlegroups.com<beagleboard%2Bunsu...@googlegroups.com>

Ian

unread,
Mar 27, 2010, 8:08:49 PM3/27/10
to Beagle Board
I am using a Beagle Board and Arduino Mobile Platform Chassis (http://
www.robotshop.com/dfrobot-4wd-arduino-mobile-platform-4.html).

The motors for the chassis have the following specs:

• 4WD Mobile platform Motors: 3-12V DC
• Speed: 90cm/s
Motor Specifications

Green Motor

• Gear Ratio 1:120
• No-load speed(3V):100RPM
• No-load speed(6V):200RPM
• No-load current(3V):60mA
• No-load current(6V):71mA
• Stall current(3V):260mA
• Stall current(6V):470mA
• Torgue (3V): 1.2Kgcm
• Torque (6V): 1.92Kgcm
• Size: 55mm x 48.3mm x 23mm
• Weight:45g

Yellow Motor:

• Motor Model: 130 Motor
• Output Mode: Two-way shaft output
• Gear ratio: 1:120
• No-load speed (3V): 90RPM
• No-load speed (6V): 180RPM
• No load current (3V): 120mA
• No load current (6V): 160mA
• Locked-rotor current (3V): 1.5A
• Locked-rotor current (6V): 2.8A


I consider myself a beginner robot enthusiast and don't know how
complicated it would be to do this now that this issue has come up.

Could you suggest what parts I should buy to get this done (using BB
to control chassis)?

Thanks

Gerald Coley

unread,
Mar 27, 2010, 9:18:38 PM3/27/10
to beagl...@googlegroups.com
A good place to start is with a schematic or connection diagram. I glanced at the website, but I do not see where to download any documentation. Try and find this information and then see what is required to connect it to the recommended micro controller. In essence you will need to supply the same interfaces as the microcontroller. Once that is figured out, we can talk about what is need to adapt that to the BeagleBoard.


Gerald


--
You received this message because you are subscribed to the Google Groups "Beagle Board" group.
To post to this group, send email to beagl...@googlegroups.com.
To unsubscribe from this group, send email to beagleboard...@googlegroups.com.

Maxim Podbereznyi

unread,
Mar 28, 2010, 5:07:22 AM3/28/10
to beagl...@googlegroups.com
Guys!

A good way to start is to create an isolation circuit for the power supply for the Beagleboard. If you ever controlled DC motors you know that they provide a lot of electrical noise and a lift off current is rather big. Imaging a situation when your robot has to lift up a hand or leg and the CPU falls to reset.. Even if the current will not drop significantly DC motors use brushes which provide a lot of high frequency impulses and noise. Please don't forget about this.

DC motors are usually controlled by PWM signals. OMAP3530 has a number of such but with 1.8V level. Voltage translator is not a big deal I would suggest to use special controllers or special external microcontroller intended for use with DC motors. You will have to write two programs but as believe writing a code for simple MCU is simpler than doing the same for complex CPU like OMAP3. Anyway you will only benefit from splitting programs into two parts because all complex systems are designed with decomposition. This is my opinion.

Max

2010/3/28 Gerald Coley <ger...@beagleboard.org>

jpiat

unread,
Mar 28, 2010, 6:36:40 AM3/28/10
to Beagle Board
Wait for http://www.tincantools.com/product.php?productid=16149&cat=0&page=1&featured
, this will give you the voltage translator and a prototyping area for
soldering an H-bridge. The best option would be to control the motors
through an i2c motor controller.

> >> beagleboard...@googlegroups.com<beagleboard%2Bunsubscribe@googlegr oups.com>


> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/beagleboard?hl=en.
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Beagle Board" group.
> > To post to this group, send email to beagl...@googlegroups.com.
> > To unsubscribe from this group, send email to

> > beagleboard...@googlegroups.com<beagleboard%2Bunsubscribe@googlegr oups.com>

Ben Gamari

unread,
Mar 28, 2010, 10:21:03 AM3/28/10
to Maxim Podbereznyi, beagl...@googlegroups.com
On Sun, 28 Mar 2010 12:07:22 +0300, Maxim Podbereznyi <lisa...@gmail.com> wrote:
> DC motors are usually controlled by PWM signals. OMAP3530 has a number of
> such but with 1.8V level. Voltage translator is not a big deal I would
> suggest to use special controllers or special external microcontroller
> intended for use with DC motors. You will have to write two programs but as
> believe writing a code for simple MCU is simpler than doing the same for
> complex CPU like OMAP3. Anyway you will only benefit from splitting programs
> into two parts because all complex systems are designed with decomposition.
>

I would strongly agree with this. You'll find that Sparkfun[1] has a variety of
excellent motor controller boards. This will save you a lot of time and will be
another layer of isolation between the high-draw/high-voltage motors and your
sensitive BeagleBoard.

- Ben

[1] http://www.sparkfun.com/commerce/advanced_search_result.php?keywords=motor&x=0&y=0&search_section=products

Matti Ruusunen

unread,
Mar 28, 2010, 6:36:41 PM3/28/10
to beagl...@googlegroups.com
Arduino environment is nice match to your needs.

I have seen a setup that controlled a few dc-motors in a camera platform. And it
worked.

You may consider it a hobbyist toy which it is. But you get quick and working
things out of it.

Cheers,
Matti


On 28.3.2010 2:01, Ian wrote:
> So I cannot control the DC motors by just connecting a wire from the
> Beagle Board to them, I have to have a motor controller circuit?
>
> Will something like this work?
>
> http://mechomaniac.com/ArduinoMotorControlWithTheArdumotoShield
>
> http://mechomaniac.com/ConnectingServosToTheArdumoto
>

--
Matti.R...@iki.fi
Phone: +358 44 251 1191

Ian

unread,
Mar 28, 2010, 9:19:28 PM3/28/10
to Beagle Board
Thanks for all the responses guys, I appreciate it! :-)

I consider myself a newbie and would like to stay away from building a
circuit, buying one is my best option since I have a time constraint.

I've done a little research and found this Motor Shield (http://
www.ladyada.net/make/mshield/)

I think this is all I should need??

I'm thinking of interfacing this motor shield to the 4 DC motors, and
interface the motor shield to the Beagle Board. Is this the right
process to get what I want done (BB controlling 4 DC motors for
navigation)?

- Ian

> Matti.Ruusu...@iki.fi

djlewis

unread,
Mar 29, 2010, 1:53:23 AM3/29/10
to Beagle Board
Ian,
That is a good motor controller for your needs.
However, if you are not designing a circuit that goes between the
beagleboard and the motor controller than I suggest you either take
jplat's (above) advice on the "Trainer" board and you will still have
to do some wiring or drop the beagleboard and
get the Arduino USB Board (Duemilanove) and the mshield yo mention,
also known as the Adafruit Motor/Stepper/Servo Shield, both
available from this link...
http://www.solarbotics.com/freeduino_arduino/

Don
------------

Viral Sachde

unread,
Apr 1, 2010, 3:57:27 AM4/1/10
to beagl...@googlegroups.com, i...@leximo.org

Hi Ian,

Ans 1. H-Bridge, H- bridge takes PWM input and controls DC motor. So
Beagle GPIO -> Signal amplifier -> H-Bridge. I had used National
semiconductor 's H-bridge.
2. You will need separate power 9V/12 V with .5 to 3 A for motor & H-bridge.
3. Schematics of beagle will help you to locate GPIO.
(I am not sure, but omap3530 might have PWM output to on some pin.)

Regards, Viral

jpiat

unread,
Apr 1, 2010, 10:24:42 AM4/1/10
to Beagle Board
If you want to make it easy, just take an arduino + H-Bridge daughter
card et connect the arduino to the beagle using the USB port. Then
program the arduino to take command from the usb/serial port and
generate PWM.

Ian

unread,
Apr 8, 2010, 9:19:33 PM4/8/10
to Beagle Board
Thanks for the help guys, I appreciate it.

Here is where I'm at right now:

1 - Build an H-bridge to control the DC motors
2 - Get a 9V/12V battery to power the DC motors
3 - Use the Beagle Board's I2C for PWM for the H-bridge

Will this work? Will it take care of the fact that the Beagle Board
only has 1.8V?

- Ian

Ian

unread,
Apr 8, 2010, 9:19:39 PM4/8/10
to Beagle Board
Thanks for the help guys, I appreciate it.

Here is where I'm at right now:

1 - Build an H-bridge to control the DC motors
2 - Get a 9V/12V battery to power the DC motors
3 - Use the Beagle Board's I2C for PWM for the H-bridge

Will this work? Will it take care of the fact that the Beagle Board
only has 1.8V?

- Ian

On Apr 1, 3:57 am, Viral Sachde <vi...@allaboutif.com> wrote:

Gerald Coley

unread,
Apr 8, 2010, 9:34:10 PM4/8/10
to beagl...@googlegroups.com
Well, close. The I2C can't really do PWM. There are parts out there that can handle the PWM function for you and they do talk via I2C. I think Maxim makes several of these. You also need to have a way to reverse the polarity of the motor to go in reverse, assuming you need to do that. You might find that a 7.2V battery would work better depending on your motors. You also need to look at the battery and decide what type to use, taking into consideration the weight of the battery as that will put more strain on the motors to carry the additional weight and cause your battery to run down faster.
 
Gerald

--
You received this message because you are subscribed to the Google Groups "Beagle Board" group.
To post to this group, send email to beagl...@googlegroups.com.
To unsubscribe from this group, send email to beagleboard...@googlegroups.com.

Viral Sachde

unread,
Apr 9, 2010, 4:49:55 AM4/9/10
to beagl...@googlegroups.com
Hi Ian,

I think,
- Use GPIO as makeshift PWM instant of I2C
- H-Bridge should take care of reverse stuff.
- 7.2 might not be enough. Long back, i guess in 2003, I had used old
2 - wheeler battery which use to provide 12 V to high power DC motor
which could with stand even 1kg+ weight. But that will require proper
physical body, where battery, circuit and wheels can be mounted.

Regards, Viral

jpiat

unread,
Apr 9, 2010, 7:47:03 AM4/9/10
to Beagle Board
using GPIO or I2C will require to translate voltage on a custom board.
Using arduino on USB bus will only require a USB hub , and there is a
lot of arduino sketches to control motors.

Ian

unread,
Apr 9, 2010, 5:55:54 PM4/9/10
to Beagle Board
I spoke with someone and he suggested that I use 4 Solid State Relays
(DPDT) to control the DC motors and that I can add 4 MOSFETs if I want
to have speed control.

This sounds like the easiest and cheapest choice?

Jpiat, so you're saying that even if I use an H-bridge or Relays to
drive the motors, I'll still need to translate the voltage and the
only way to get around this is to use an Arduino board.

If I use an Arduino board, how would I get it to talk to the BB?

- Ian

Ian

unread,
Apr 9, 2010, 7:12:21 PM4/9/10
to Beagle Board
Just found this on Sparkfun. It might do what I need.

Level Converter (1.8v to 5v)

http://www.sparkfun.com/commerce/product_info.php?products_id=8745

Dingo_aus

unread,
Apr 9, 2010, 11:24:23 PM4/9/10
to beagl...@googlegroups.com
In my set up I use an Arduino. I talk to it via UART. I have a webcam
doing all the hard work and tell the Arduino what to do. You can get
pre-made motor control "shields" for the Arduino Decemillia.

Ben Gamari

unread,
Apr 10, 2010, 5:36:46 PM4/10/10
to Ian, Beagle Board
On Fri, 9 Apr 2010 14:55:54 -0700 (PDT), Ian <i...@leximo.org> wrote:
> I spoke with someone and he suggested that I use 4 Solid State Relays
> (DPDT) to control the DC motors and that I can add 4 MOSFETs if I want
> to have speed control.
>
> This sounds like the easiest and cheapest choice?
>
> Jpiat, so you're saying that even if I use an H-bridge or Relays to
> drive the motors, I'll still need to translate the voltage and the
> only way to get around this is to use an Arduino board.
>
> If I use an Arduino board, how would I get it to talk to the BB?
>
Sorry to jump in a little late here, but I think an Arduino is a little
overkill if all you need is a motor controller. Sparkfun has a variety[1] of
motor controller boards for not too much more (certainly cheaper than an
arduino). These all seem to have RS-232 interfaces, so interfacing shouldn't be
an issue. Just a thought.

Carson Au

unread,
Apr 11, 2010, 1:14:40 AM4/11/10
to beagl...@googlegroups.com
Should check out POLOLU too for their motor control boards (some have rs232 interfaces too i think, not sure).

--

Boireau Laurent

unread,
Apr 14, 2010, 5:38:21 AM4/14/10
to beagl...@googlegroups.com
Beware !!! That component is by no mean a real level translator. It barely resistor divides voltage (Look carefully at the datasheet schematics). If I remember well, 5V in will give you 2.5V out .... You should forget it especially if you are considering fast and/or bidirectionnal applications like I2C ... I am a big sparkfun fan and user, but on ths one single component, they really messed up. I can't figure out why they did not just make a breakout for a real level shifter like maxims components (see http://www.maxim-ic.com/app-notes/index.mvp/id/3007) or similar alternatives discussed earlier. However, since the sparkfun so called "level shifter" is so cheap, you can still buy one and test for yourself with a multimeter ... Expect surprises !

Laurent

-----Message d'origine-----
De : beagl...@googlegroups.com [mailto:beagl...@googlegroups.com] De la part de Ian
Envoyé : samedi 10 avril 2010 01:12
À : Beagle Board
Objet : [beagleboard] Re: Beagle Board Robot (DC Motor power, Wireless, etc)

Reply all
Reply to author
Forward
0 new messages