Forums

Blank Piece of Paper: Bluetooth Controlled Motor

Started by Unknown May 14, 2008
Greetings,
Though I have an educational background in computer hardware and
embedded systems I have never taken on a blank slate project on my
own, and I am having trouble as to where to begin.  After a few
minutes lamenting the high cost of my education versus the actual real
world experience needed to accomplish anything I figured I would ask
for some advice since starting from a blank piece of paper is hard
when your new to real world applications.

The basic gist of what I want to accomplish is a rechargeable battery
powered motor whose speed is controlled via software which is itself
controlled remotely via a bluetooth connection to a PC, Phone,
whatever.  Ideally this device will sip power consciously, though that
may be a reach goal for just starting out.  I would also like to
accomplish a code division, basically I want to design software that
will live in a microcontroller's ROM that will in turn read
information from say easily reprogrammable flash to determine motor
action.

I figure I will need the following components:

1) A rechargeable battery
2) Some kind of circuitry to control the battery, its output, and its
charging
3) A motor that supports variable speeds based on varying voltages
4) A power conscious bluetooth chip that supports basic data
transfers, from my reading this seems to be a serial cable replacement
bluetooth device
5) Some form of D/A converter to control the motor
6) A small amount of flash memory to contain motor control commands
7) A microcontroller to tie everything together (Bluetooth
communication, Motor control, Battery/Power management, Accessing the
flash memory)
8) Minimal interfacing components (LED's for functionality feedback,
button for basic control/bluetooth pairing)
9) Connective tissue to hold this all together, and no fry the nice
bluetooth chip

My background offers me the skills of knowing what I need in a general
sense, but I am not sure how to go from that list to components that
fit my need, but are not overkill.  I feel very comfortable
programming a microcontroller in either assembly or C, basic hardware
design concepts are second nature, pouring over specs is fun, but
starting from this place is new to me and I am unsure of how to
correctly begin this process.

Any help would be very much appreciated!

Thanks,

Gadi
>Greetings, >Though I have an educational background in computer hardware and >embedded systems I have never taken on a blank slate project on my >own, and I am having trouble as to where to begin. After a few >minutes lamenting the high cost of my education versus the actual real >world experience needed to accomplish anything I figured I would ask >for some advice since starting from a blank piece of paper is hard >when your new to real world applications. > >The basic gist of what I want to accomplish is a rechargeable battery >powered motor whose speed is controlled via software which is itself >controlled remotely via a bluetooth connection to a PC, Phone, >whatever. Ideally this device will sip power consciously, though that >may be a reach goal for just starting out. I would also like to >accomplish a code division, basically I want to design software that >will live in a microcontroller's ROM that will in turn read >information from say easily reprogrammable flash to determine motor >action. > >I figure I will need the following components: > >1) A rechargeable battery >2) Some kind of circuitry to control the battery, its output, and its >charging >3) A motor that supports variable speeds based on varying voltages >4) A power conscious bluetooth chip that supports basic data >transfers, from my reading this seems to be a serial cable replacement >bluetooth device >5) Some form of D/A converter to control the motor >6) A small amount of flash memory to contain motor control commands >7) A microcontroller to tie everything together (Bluetooth >communication, Motor control, Battery/Power management, Accessing the >flash memory) >8) Minimal interfacing components (LED's for functionality feedback, >button for basic control/bluetooth pairing) >9) Connective tissue to hold this all together, and no fry the nice >bluetooth chip > >My background offers me the skills of knowing what I need in a general >sense, but I am not sure how to go from that list to components that >fit my need, but are not overkill. I feel very comfortable >programming a microcontroller in either assembly or C, basic hardware >design concepts are second nature, pouring over specs is fun, but >starting from this place is new to me and I am unsure of how to >correctly begin this process. > >Any help would be very much appreciated! > >Thanks, > >Gadi >
How big of a motor are we talking about? I would start from the motor on. Start by creating a motor and PWM motor controller. A small 8 bit AVR would suffice and probably have enough on board memory to hold your commands. I would start by getting this to work by sending commands through the UART with hyper terminal and then adding the bluetooth and power circuitry later. If it doesn't need to be bluetooth zigbee is a pleasure to work with.
ggolan@gmail.com wrote:

> Greetings,
[%X]
> The basic gist of what I want to accomplish is a rechargeable battery > powered motor whose speed is controlled via software which is itself > controlled remotely via a bluetooth connection to a PC, Phone, > whatever. Ideally this device will sip power consciously, though that > may be a reach goal for just starting out. I would also like to > accomplish a code division, basically I want to design software that > will live in a microcontroller's ROM that will in turn read > information from say easily reprogrammable flash to determine motor > action.
With such things it is usually best to start with the outputs and design towards the inputs. In this case you know your target input mode.
> I figure I will need the following components: > > 1) A rechargeable battery
Choose the battery technology carefully and ensure you take appropriate advice on recharging schemes (asking specifically about that here might get you some of that advice).
> 2) Some kind of circuitry to control the battery, its output, and its > charging
In a very light power application you could use a pins from the micro-controller to regulate most of the circuitry of the motor and chargers. You may need some simple A to D inputs to measure the voltages and currents. You also have the option of using the many battery and charge controllers available on the market.
> 3) A motor that supports variable speeds based on varying voltages
Presumably a very low power motor. You will need some form of power stage to drive the motor (one to four transistors). If the motor is to be a single direction of rotation device then a single pin from the micro programmed to produce a Pulse Width Modulated Output. If bi-directional then you will need to programme two pins for PWM output.
> 4) A power conscious bluetooth chip that supports basic data > transfers, from my reading this seems to be a serial cable replacement > bluetooth device > 5) Some form of D/A converter to control the motor
D to A not really needed as the PWM coding of one or two pins (with appropriate phasing) will do that aspect.
> 6) A small amount of flash memory to contain motor control commands
Motor control code is taking a variable (desired speed) and loading this into a counter, switch on the output, count down to zero and when you get there switch off the output. If bipolar motor control is needed you also have directional information to deal with so that the PWM outputs are phased appropriately.
> 7) A microcontroller to tie everything together (Bluetooth > communication, Motor control, Battery/Power management, Accessing the > flash memory)
There are plenty to choose from.
> 8) Minimal interfacing components (LED's for functionality feedback, > button for basic control/bluetooth pairing) > 9) Connective tissue to hold this all together, and no fry the nice > bluetooth chip
I suppose that some of the small modules like Zigbee, Rabbit and the like will provide much of what you need.
> My background offers me the skills of knowing what I need in a general > sense, but I am not sure how to go from that list to components that > fit my need, but are not overkill. I feel very comfortable > programming a microcontroller in either assembly or C, basic hardware > design concepts are second nature, pouring over specs is fun, but > starting from this place is new to me and I am unsure of how to > correctly begin this process. > > Any help would be very much appreciated!
Just don't panic. It sounds like you have a lot of what you need already. Just a few details to resolve and you could have a reasonable design on your hands. In all of this, of course, I have presumed that the motor is so low powered that it does not present any sort of safety hazard. You should, of course do a risk assessment on the device to ensure the appropriate safety measures are all taken care of. For specific advice on the various aspects you will need to ask specific targeted questions. -- ******************************************************************** Paul E. Bennett...............<email://Paul_E.Bennett@topmail.co.uk> Forth based HIDECS Consultancy Mob: +44 (0)7811-639972 Tel: +44 (0)1235-811095 Going Forth Safely ..... EBA. www.electric-boat-association.org.uk.. ********************************************************************
On May 14, 1:17=A0pm, "Paul E. Bennett" <Paul_E.Benn...@topmail.co.uk>
wrote:
> ggo...@gmail.com wrote: > > Greetings, > > [%X] > > > The basic gist of what I want to accomplish is a rechargeable battery > > powered motor whose speed is controlled via software which is itself > > controlled remotely via a bluetooth connection to a PC, Phone, > > whatever. =A0Ideally this device will sip power consciously, though that=
> > may be a reach goal for just starting out. =A0I would also like to > > accomplish a code division, basically I want to design software that > > will live in a microcontroller's ROM that will in turn read > > information from say easily reprogrammable flash to determine motor > > action. > > With such things it is usually best to start with the outputs and design > towards the inputs. In this case you know your target input mode. > > > I figure I will need the following components: > > > 1) A rechargeable battery > > Choose the battery technology carefully and ensure you take appropriate > advice on recharging schemes (asking specifically about that here might > get you some of that advice). > > > 2) Some kind of circuitry to control the battery, its output, and its > > charging > > In a very light power application you could use a pins from the > micro-controller to regulate most of the circuitry of the motor and > chargers. You may need some simple A to D inputs to measure the voltages > and currents. You also have the option of using the many battery and > charge controllers available on the market. > > > 3) A motor that supports variable speeds based on varying voltages > > Presumably a very low power motor. You will need some form of power stage > to drive the motor (one to four transistors). If the motor is to be a > single direction of rotation device then a single pin from the micro > programmed to produce a Pulse Width Modulated Output. If bi-directional > then you will need to programme two pins for PWM output. > > > 4) A power conscious bluetooth chip that supports basic data > > transfers, from my reading this seems to be a serial cable replacement > > bluetooth device > > 5) Some form of D/A converter to control the motor > > D to A not really needed as the PWM coding of one or two pins (with > appropriate phasing) will do that aspect. > > > 6) A small amount of flash memory to contain motor control commands > > Motor control code is taking a variable (desired speed) and loading this > into a counter, switch on the output, count down to zero and when you > get there switch off the output. If bipolar motor control is needed you > also have directional information to deal with so that the PWM outputs > are phased appropriately. > > > 7) A microcontroller to tie everything together (Bluetooth > > communication, Motor control, Battery/Power management, Accessing the > > flash memory) > > There are plenty to choose from. > > > 8) Minimal interfacing components (LED's for functionality feedback, > > button for basic control/bluetooth pairing) > > 9) Connective tissue to hold this all together, and no fry the nice > > bluetooth chip > > I suppose that some of the small modules like Zigbee, Rabbit and the like > will provide much of what you need. > > > My background offers me the skills of knowing what I need in a general > > sense, but I am not sure how to go from that list to components that > > fit my need, but are not overkill. =A0I feel very comfortable > > programming a microcontroller in either assembly or C, basic hardware > > design concepts are second nature, pouring over specs is fun, but > > starting from this place is new to me and I am unsure of how to > > correctly begin this process. > > > Any help would be very much appreciated! > > Just don't panic. It sounds like you have a lot of what you need already. > Just a few details to resolve and you could have a reasonable design on > your hands. > > In all of this, of course, I have presumed that the motor is so low > powered that it does not present any sort of safety hazard. You should, > of course do a risk assessment on the device to ensure the appropriate > safety measures are all taken care of. > > For specific advice on the various aspects you will need to ask specific > targeted questions. > > -- > ******************************************************************** > Paul E. Bennett...............<email://Paul_E.Benn...@topmail.co.uk> > Forth based HIDECS Consultancy > Mob: +44 (0)7811-639972 > Tel: +44 (0)1235-811095 > Going Forth Safely ..... EBA.www.electric-boat-association.org.uk.. > ********************************************************************
Greetings, Thank you both for your fantastic and helpful answers! I think I have just about enough now to get started on my project, but a few quick questions still linger. I looked over the 8 bit AVR microcontrollers and they do seem to do most everything I can dream up. I was wondering, do I need to buy any special boards or anything to begin experimenting or can I simply select an AVR chip that seems to have all the components I need, purchase it, put it on a breadboard, and wire it up to my other components? Assuming that is the case, how do I flash the EEPROM/ FLASH on the chip, is there special software or some helpful instructions out there to get me started? Do I need to code in assembly or is there some C compiler for the chips? Is there just a general reference out there for "I bought a microcontroller, I stuck it in the breadboard... now what?" that might give me the information I need? Thanks so much for all the help, -Gadi
In article <7331c873-72ab-4ec7-af12-1a6aa735bac5@a9g2000prl.googlegroups.com>, ggolan@gmail.com wrote:
>The basic gist of what I want to accomplish is a rechargeable battery >powered motor whose speed is controlled via software which is itself >controlled remotely via a bluetooth connection to a PC, Phone, >whatever.
Most of this is fairly straightforward. However the Bluetooth / phone interface appears to be the most difficult part of this project so I would start there first. Bluetooth modules that emulate a serial connection using the Serial Port Profile (SPP) are easy to find and easy to talk to from a PC. However most phones will only support audio over Bluetooth using the Headset Profile (HSP). Those that do support SPP will only use it to emulate a FAX/modem or download the phone book. They will not let you use the keypad to send arbitrary data over the SPP. I would start by finding a phone that supports SPP and that has a developer kit that lets you write your own programs. Here is a starting point: http://support.vzw.com/pdf/BT_Chart_Handsets.pdf I believe some of the higher-end Nokias have a developer kit that will let you access both HSP and SPP. Once you have the phone, try writing a simple program for it that will send messages over the serial port, and then buy a Bluetooth module that can receive them. After that, the rest is easy!