Help - Search - Members - Calendar
Full Version: Microcontrollers, Soldering, and Programming
Lumenlab > CNC, Automata, Robotics > Robotics
mas3773
First, if this needs to move forums, please do so and nix this line...

With the micRo one of the areas I want to dive into is the creating some robots, in an effort to give myself a platform to play with coding some AI (could easily be done via simulator, but...well...robots are cool). So, to get started I need to set myself up for a good collection of tools, so I can basically not limit myself do to what I'm working with too much. To go first things first, I'm a software developer and my hardware experience is fairly limited. I mean I've programmed some microcontrollers in college to play pong. But nothing too big.

So, let's get started with these topics I'd like to throw out there...

(1) Soldering Iron - I'd like a decent, adjustable temp one, with tip options. I'm thinking about a Weller WES51. Are there any other highly recommended units? Digital would be cool, but I think it'd be overkill. Looking to spend around $75 max. So, the analog Weller is about at my cap, unless I can be talked into another unit.

(2) Microcontrollers - I guess this and programming go hand in hand. What's a good general purpose controller that is fairly cheap, that is pretty flexible and has open source development tools? I hate being locked into proprietary solutions. I've seen a lot of AVR hacks done on Hack-a-day, but I know there are quite a few more options. Language wise, I can learn anything, so it's only a matter of what tools are available and fit my criteria of being OSS. I realize this is rather open ended and needs more details. I plan on making each piece of this really modular, so I'm not going to be too concerned if I end up running 4, 5, 6 controllers on a robot. I was thinking with a tank like robot to have one controller for each track. One for movement in general (forward, reverse, left, right), so I can unit test everything easily and replace each modular. Then have one for the main controller, and one for the turret rotation. Then have modules that swap out on the turret (arm, camera, etc.), and probably another for sensors. So, they don't necessarily have to have many inputs per chip...and maybe a rethink of this is in order, but I'm thinking at least a moderate to high degree of modularity is in order. Hell, for the main controller, I may think about using an Asus Eee (first gen) with USB input to the main controller to handle the actual AI piece, leaving only functionality and error handling to the other parts.

So, I suppose the primary focus should be on (2) unless there are any other ideas for (1). Any input really would be appreciated.



mas3773
Well, no responses yet. So, I've been doing a bit of looking around...

The Freeduino project looks to be right up my alley. Further, from what I have found the Sanguino variation should be able to handle the bulk of the functionality I'm looking for, that would leave pretty much only motor controllers in addition. So, for the base, I could be using one Sanguino as the 'nervous system' reading in all of my sensors, sending all the movement signals, and handling all of the error conditions, while running a serial connection to my Eee laptop were the core AI will be running.

I think I'll go ahead and get the WES51 and a Sanguino kit ordered up to start testing a bit with that to see if that will handle everything I can think of to throw at it.
seaner
QUOTE (mas3773 @ Aug 12 2008, 11:58 AM) *
(2) Microcontrollers


Some of the best micros I've worked with are the C8051Fxxx family from Silicon Labs. I've used them for arcade control IO interfaces, wine cellar controllers, weather stations, robotics, and of course used on a smattering of telecoms boards at my day job smile.gif
Available from digikey for around $10. They have ADCs, DACs, I2C, SPI, lots of IO, temp sensors, etc. Different variants do CAN and USB as well.
The nice thing about these micros is that you can get a full dev kit for about $75 or $100 including software, programming dongle, and an eval board (which you can then just use directly in your designs if you don't want to spin a PCB).
Most of them are surface mount, and I have made many home-fabbed boards using the LQFP-pitched packages, but there are a few available in a DIP form factor.

Cheers,
Sean
seaner
QUOTE (mas3773 @ Aug 12 2008, 11:58 AM) *
I was thinking with a tank like robot to have one controller for each track. One for movement in general (forward, reverse, left, right), so I can unit test everything easily and replace each modular. Then have one for the main controller, and one for the turret rotation. Then have modules that swap out on the turret (arm, camera, etc.), and probably another for sensors.


Just re-read your post, and as an addendum to my previous post about the SiLabs micros, I've done control for 2 "track" motors (with PWM speed control and a tach feedback), a pair of sonar transducers salvaged from Polaroid cameras, and a pair of steppers to aim the sonar fore and aft in a sweeping pattern. Had no problem doing all of this control in a single micro. I was also going to add some sensors to detect the presence of full or empty beer bottles, but haven't got back to finishing the beerbot just yet smile.gif
There is really no need to throw a ton of micros at something like that. Consider going with a CPU "brain" as you say, which can do your AI and planning, and then interface it via RS232 or similar to a "platform" micro which just runs the base hardware.

Cheers,
Sean
DaveAK
I was just about to start a thread on this very topic, so if you don't mind I'll just add a couple of things here. If it detracts from your thread too much then tell me to take a hike. tongue.gif

@ seaner: I'm looking for a control system for a couple of motors, a load sensor, an optical level sensor, and maybe a couple of other inputs/outputs. These eval kits you talk about sound like they could do this, but what would I need to know about extra electronics? For example, if I have a load sensor with two leads it would interface with an analog input on the controller, right? But what about components in between the sensor and the chip? I can build circuits from schematics, but designing my own electronics is beyond me. Is there enough information in these kits or out on the web to help me build something like this with out real electronics design knowledge?
DAZZZLA
QUOTE (DaveAK @ Aug 14 2008, 09:01 PM) *
I was just about to start a thread on this very topic, so if you don't mind I'll just add a couple of things here. If it detracts from your thread too much then tell me to take a hike. tongue.gif

@ seaner: I'm looking for a control system for a couple of motors, a load sensor, an optical level sensor, and maybe a couple of other inputs/outputs. These eval kits you talk about sound like they could do this, but what would I need to know about extra electronics? For example, if I have a load sensor with two leads it would interface with an analog input on the controller, right? But what about components in between the sensor and the chip? I can build circuits from schematics, but designing my own electronics is beyond me. Is there enough information in these kits or out on the web to help me build something like this with out real electronics design knowledge?

Depends on what your load sensor is measuring. If it is simply measuring voltage of a motor and the voltage is not too high for the input then a direct connection is all that is needed. If the motor is noisy and has the possibility of injecting high voltage into the chip then you値l need to add a voltage clamp of some type, a simple zener maybe. If the voltage is much higher than the acceptable input voltage then a resistive divider may be called for. If you are measuring current then a load resister will need to be used. Maybe a bit more specific info would help.

As to chip choices I prefer to use Microchip micros, just because I知 familiar with their instruction set. There is also the PICAXE (high level language version of the microchip) for those who don稚 want or need to go down to machine coding levels.

DJ
DaveAK
QUOTE (DAZZZLA @ Aug 14 2008, 06:50 AM) *
Depends on what your load sensor is measuring. If it is simply measuring voltage of a motor and the voltage is not too high for the input then a direct connection is all that is needed. If the motor is noisy and has the possibility of injecting high voltage into the chip then you値l need to add a voltage clamp of some type, a simple zener maybe. If the voltage is much higher than the acceptable input voltage then a resistive divider may be called for. If you are measuring current then a load resister will need to be used. Maybe a bit more specific info would help.

As to chip choices I prefer to use Microchip micros, just because I知 familiar with their instruction set. There is also the PICAXE (high level language version of the microchip) for those who don稚 want or need to go down to machine coding levels.

DJ

The load sensor would be measuring weight. I haven't got any more specific than that, so all I was really interested in finding out with my question is what I will need to be considering when I finally get to the design. The programming side will be easy enough for me, but designing a circuit is beyond my capability. I can understand basic electronics and put together something from a schematic, but that's as far as I can go. When I get something roughed out though I'm sure I can find someone on here to help fill in the blanks. smile.gif
DAZZZLA
Measure weight is going to be an interesting sensor. My first thought is to cannibalize a set of electronic scales. If that was the coarse you were to take then I知 guessing that the sensor inside is some type of AD converter. Simply tapping into this data would be accomplished wire to wire with no intermediate components, just power the circuit from the same voltage source. Using the digital outputs of the AD converter will tie up allot of inputs on the micro so it may be better to tap into the sensor a little closer to the actual mechanical to electric conversion parts. Again I知 guessing here that there is some type of resistive ladder or potentiometer. If there is it would only require you to apply a voltage across it and then send the voltage directly to the appropriate micro input.

DJ
DaveAK
QUOTE (DAZZZLA @ Aug 15 2008, 01:52 AM) *
Measure weight is going to be an interesting sensor. My first thought is to cannibalize a set of electronic scales. If that was the coarse you were to take then I知 guessing that the sensor inside is some type of AD converter. Simply tapping into this data would be accomplished wire to wire with no intermediate components, just power the circuit from the same voltage source. Using the digital outputs of the AD converter will tie up allot of inputs on the micro so it may be better to tap into the sensor a little closer to the actual mechanical to electric conversion parts. Again I知 guessing here that there is some type of resistive ladder or potentiometer. If there is it would only require you to apply a voltage across it and then send the voltage directly to the appropriate micro input.

DJ

I was thinking a simple load cell, although a quick search at just one site hasn't brought up an affordable sensor yet. I'm sure one must exist though. Cannibalizing a set of scales though might be the way to go.

My project list just grew again. blink.gif
DaveAK
Hey mas! Just to let you know that I got my Sanguino a couple of days ago. Soldered it all together and I'm in the middle of testing it out. It seems pretty good, although I'm experiencing a problem with external interrupts that I'm trying to iron out. Let me know if you have any questions.
jeremyvnc
Well, for simple devices where nothing else is needed, I use the Arduino platform programmed in C. This is a very simple and efficient way to get into microcontrollers. It is a bit limiting in that it only has 14 digital IO and 6 Analog Inputs but with multiplexing you can achieve huge IO numbers. The best part about the arduino is that you can get one for about $18 bucks from Sparkfun.com.

If Robotics is your end goal, you might want to look at the Handyboard. I have used it extensively in small autonomous robots and it is really geared towards that. It comes equiped with about 15 DIO, 10 analog inputs, 4 PWM motor outputs (up to 1 amp each, if I remember right), a built in IR modulator, an LCD screen and a potentiometer. If you get the expansion board: your IO jumps up to around 25 DIO and 15 analog, as well as a servo controller to control 6 servos. It is controlled by a Motorola HC11 microcontroller running at 8Mhz. The Handyboard operates on anything from 5V-15V.

Best part of both is that the dev software is free and programmed in C. Huzzah!

-Jeremyvnc
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.