Robot magazines/publishers looking for writers?

JGCASEY wrote: [...]

[...]

Ok. I will just have to see if I can find an easy way to get up to speed on C++ for Linux in the small amount of free time I have available.

What editor/compiler do you suggest?

- John Casey

Reply to
JGCASEY
Loading thread data ...

I have to disagree with this.

A PC is *much* bigger than a microcontroller. It is a CPU and a well defined (more or less) set of buses. In addition, just about every PC motherboard I've seen now comes with built-in audio and video hardware. This makes the PC fairly complex.

A microcontroller, on the other hand, can usually be put together with a few passive components to make an embedded controller.

Is a microcontroller as powerful as a PC? Well, yes and now.

Yes, because a microcontroller can be dedicated to a single task.

No, because a microcontroller isn't as good at general purpose computing and is generally slower than the microprocessor at the heart of a PC.

I think that most hobby robotics uses microcontrollers is mainly because of cost. A microcontroller can easily run off of small batteries. Therefore you need a much smaller base than you would for a PC-based robot. And a bigger base is typically heavier than a smaller base. The more mass, the bigger the motors need to be. The bigger the motors, the bigger the batteries to power them. And of course the PC needs a fairly respectable battery to run that.

Now, my plans for my next robot are still a bit up in the air, but I'm thinking fairly big. I'll probably use

12 volt SLAs to run the robot: 2 70 amp-hour ones for the motors and 4 35 amp-hour ones for the electronics (there are a lot of cheap 48->12 volt DC-DC converters out there). I'll be using wheel-chair motors, which is good because the batteries alone will weigh in at over 200 lbs. However, I'll get a really decent run-time. This robot's controller will be a Linux board of some type. I may use my VIA M10000 on it for testing because I have this, but who knows? I like Groucho's Pentium M.

However, I'm will also be building a smaller robot, Zeppo, to be a mobile sensor platform for the larger Groucho. There are advantages to being able to fit under the dining room table. :)

Zeppo will be controlled by a microcontroller. Which one I haven't decided yet. Or I may just use my Gumstix board (a *really* small Linux machine). But I think it would be easier if I just used a microcontroller of some ilk.

YMMV.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

I'm a purist. I use vi, but if you are familiar with Visual Studio, try kdevelop.

Compiler, gcc and g++.

Reply to
mlw

OK.

OK.

OK.

Are you saying component count is a measure? Is a number of data busses a measure. Is the number of built-in peripherals a measure?

Most motherboards have a flash ROM for the BIOS, you can easily replace the BIOS with embedded code.

I guess I don't understand your argument. What about "micro-controller" boards with lots of peripherals? What about "micro-controller" boards that have USB, ethernet, and so on? At what point does a "micro-controller" stop being a "micro-controller?"

One can program a PC just as one would program a micro-controller. Personally, I don't see any utility in this, but it can be done.

So can a PC.

Exactly.

Well, obviously, a low power basic stamp will use less power than a PC, but that does not mean the PC is totally wasteful. A low-power mini-ITX board can be pretty power efficient.

Also, a PC need not be as big as you suggest. Take a look at

formatting link
they have some small systems there. If you use a PC, you are automatically sized out of the micro-mouse class of robot, but that does not mean you can't make a "small" robot.

Sounds cool.

True

I find it hard to think of any micro-controller development as easy.

Reply to
mlw

Yes to all. A microcontroller is *not* a replacement for a general-purpose PC. It can do some tasks better, some tasks worse. However, I think you get better bang per buck with a microcontroller.

If you're willing to do that, you might as well just design your own board, or run DOS.

I can't answer that. For me, it's a single-board computer as soon as it gets bigger than a few components. It might be microcontroller-based, but those things you are talking about are SBCs.

I suppose you *can*, but why would you? The PC and the microcontroller fill totally different niches.

True, but then why not use a microcontroller if the task is that simple? Why drag along all the bagage of a PC when you just want a single motor controlled? Or a toaster controlled?

Yes, but general purpose computers are not always the best things for robotics.

A low-power mini-ITX board might use 20-25 watts. A fairly powerful microcontroller-based SBC might use less than one watt. That's a *big* difference.

I have two Mini-ITX boards. At 7" by 7" they are my largest robot controllers.

I think you might be using the wrong development environments if you think this.

Yes, there is a learning curve on most microcontrollers. There is one for Linux also. I program both and use them for different purposes.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

Depends on the bang you are looking for.

I can get PC motherboards in volume for $80 and they work of standards.

It sort of ambiguous when you think about it, true?

Only in as much as they are programed so.

Why not an opamp, or a discrete logic?

Because a strawman is not what we are talking about, we are talking about a robot. I never said a micro-controller is never to be used. I said I don't enjoy developing for them.

I really have problems with statements like this without any supporting argument.

This discussion is about a robot with a PC on it. If you have a PC there is little point in doing micro-controller development. Also, micro-controllers, you have to admit, are limited.

[snip]

I'm sorry for not seeing that this argument was twisting away earlier.

You guys are always twisting the argument to mean I am saying that micro-controllers are never better than PCs. As a blanket statement, this is clearly not what I have *ever* intended to say.

My quotes that started this thread branch:

"As I worked in the more generic software industry, I discovered what I knew, but never fully realized. Off-loading something to a micro-controller is a step you do when you have defined the functionality. It is easier to develop your functionality on a bigger system and then downsize appropriately for productization. If you are never going to "reduce" the functionality, why bother with a micro-controller? IMHO is isn't any easier and it is arguable that it is any cheaper."

and

"If you want to do micro-controller development, more power to you, but I don't think it is a pleasent experience anymore, and I don't see any real utility in it unless your application requires it."

Reply to
mlw

There is a lot of stuff in the gaming community that really needs to sit on a PC, that has a lot of bearing on the robotics community. Conversely, PID and PWM are pretty well documented.

Come up with an article that is novel and educational, or come up with a step by step tutorial.

like I said, cover things that are really PC-centric, if PC based robotics is something you want to concentrate on.

Mike

Reply to
blueeyedpop

Sorry, but I happen to strongly disagree with you here.

I am finishing up a book on Linux Robotics and most of my perhipherals are controlled by microcontrollers. This allows the real-time tasks to be run by something closer to the metal than a PC motherboard running Linux.

This is usenet. Threads tend to go in strange directions.

This seems to be true. However, your pure-PC argument seems to be silly to me. Perhaps I'm misunderstanding things.

I can sort-of agree with this. However, motor control is a fairly well visited task. Multiple companies have or are coming out with powerful motor controllers than have PID and other means of control. These are off-the-shelf products.

I grant you that you have proven that you *can* use a PC for motor control. However, now that you understand the problem, why don't you put it one a microcontroller or use one of the many off-the-shelf solutions?

"Requires" is a slippery term. You have proven that a PC with a bunch of extra hardware (including two DACs plus an external unit that converts the DAC voltage into PWM for the motor) *can* work. Therefore motor control doesn't *reequire* microcontrollers.

My statement is that motor control is *easier* with microcontrollers.

If you want students to be able to play around with the PID parameters, find or make or (if this is open source) ask somebody to make such a unit. I think it would be a useful device.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

Isn't it wonderful that people can disagree?

Um, well? why do you need to do it "closer to the metal?" And why is coding in assembler on a micro any closer to coding in assembler on a PC? In a device driver or privilaged code, I can go as low as I want.

Sadly, yes.

My feeling is that you guys are sort of afraid of operating systems, if not afraid, very uncomfortable. You'd be very surprised at what a PC can do, especially running a system like Linux or FreeBSD.

Yup, and it is a simple module to write on the PC as well.

I have "understood" the problem for a long time, that isn't the point. Why add something that isn't needed?

Yup.

And here's where we disagree again.

Why? I've got code that does this and it works? Why would I need to add a micro?

Reply to
mlw

Actually it's because I can either buy the needed functionality or build it myself quickly. I am familiar with a few types of microcontrollers and not so familar with discrete circuitry.

Why? There have been some fairly interesting discussions once one ignores the noise. They weren't always the discussions that you wanted, but things have been discussed that wouldn't have been discussed.

Also these discussions have increased the traffic on this newsgroup.

Why? Many of us are using Linux as their operating system. Like you, I'm using a Mini-ITX board.

Well, if I remember one of your statements, you said that once something had been understood it could be moved to a microcontroller.

Of course. That happens.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

We all tend to use wat is familiar.

It is just frustrating sometimes because I usually end up defending a poistion I o't really hold.

Sure, you use them, but you all seem reluctant to use the system for important things, opting rather to use a microcontroller.

If you are developing something for a microcontroller. I am not.

Reply to
mlw

Jay,

How many microcontrollers do you have and how many subsystems do you have? In my last design I found that relying on a central chip to do everything was really tedious...any error and you have to go back and check everything.

In my next iteration I am going to modularize everything, and I'm wondering what kind of communication to use between chips. How do you communicate between the linux mobo and the microcontrollers?

Reply to
Mark Haase

  1. I use an AVRCam connected to /dev/tts/0
  2. I am using at least one of Brian Dean's MAVRIC-IIB boards as the sensor controller
  3. Both motor controllers have an AVR in them; the communication to the computer is via RS485

There will be others later.

RS485.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

what is advantage of rs485 over rs232? Do you need extra hardware to do rs485 coms?

Rich

Reply to
aiiadict

RS485 like RS422 is a differential voltage drive. It provides a very high level of noise immunity and is generally much more reliable. RS232 and RS422 are "point to point" communications, i.e. two units. RS485 allows for more than two units and is more of a serial bus.

Reply to
mlw

Since RS485 uses a differential driver rather than the absolute voltages in RS232, RS485 is more immune to electrical noise.

Also RS485 defines a multidrop bus, so one port can communicate with multiple devices.

Theoretically my motherboard does RS485, but I haven't been able to get it working right.

I'm using a USB device (USB-COMi) in order to use RS485. This seems to work fine.

If you're using a microcontroller you need to use a tranceiver to convert to either RS232 or RS485.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.