Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: Arislan on October 24, 2006, 09:36:42 AM

Title: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 24, 2006, 09:36:42 AM
Was thinking about hooking up my iPaq to my robot instead of a PIC. Any idea how to interface it to the board?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Admin on October 24, 2006, 12:00:20 PM
Yeap, Ive seen it done many times. The commands are sent out through the serial interface. Do a search on 'serial' in this forum.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on October 24, 2006, 12:59:30 PM
here's an example:
http://ipod.hackaday.com/2005/03/03/make-a-palm-pilot-robot/

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Admin on October 24, 2006, 01:13:13 PM
i got to see that robot in action at my uni (CMU) where it was developed . . . it was soooo slow . . . he put a nice processor on it to drive just 3 servos and 2 sharp IR :-\

i believe they tried selling it as a kit at some point . . .

(call me mr negativity  :P)
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: polar bear6 on October 24, 2006, 03:20:44 PM
does anyone know if this will work with a HP95LX?
or in other words a Hewlett Packard 95 Lotus Exportable.
also known as the first handheld Pocket Pc that was on the marked (its from 1991, so yeh, its old)
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on October 25, 2006, 03:13:33 PM
you actually have more luck finding a standard rs232 serial port on older kit than on newer equipment.
so you probably can with the addition of some sort of serial to I/O controller.

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 25, 2006, 04:27:25 PM
or a microcontroller that you program to interpret serial comands.... :P


*edit* ....was that too mean?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on October 25, 2006, 07:41:25 PM
what did you think i meant by "some sort of serial to I/O controller"....?

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 26, 2006, 12:17:24 AM
http://www.pololu.com/products/pololu/0207/

and there is alot more out there too.....makes it easy but....well you have heard of software bloat?
I consider this hardware bloat..... :-\
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Admin on October 26, 2006, 06:42:26 AM
I dont believe that pololu board has any input capabilities . . .
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 26, 2006, 10:50:27 AM
that's kinda my point....

I'm a cs major and I have a cs adjuct professor who loves all the extra gadgets.
I swear he has seperate boars for Input output and analog measurments, all connected to his strong-arm running linux.
It makes for good prototyping but in the end you could reduce all your harware to a single avr or pic to do  a2d, digital i/o, and pwm. he just doesn't want to learn firmware programing. It's a casee of faster solution != best solution.

Just think of how much power he is wasting running 3 boards instead of 1.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Admin on October 26, 2006, 12:01:21 PM
I know many other cs profs just like yours . . . I think they are just sheltering themselves from embedded stuff cause it looks hard, and all they know are pc's . . .

unless im doing AI, or have a huge budget and a huge robot, i refuse to use anything but microcontrollers . . .
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 26, 2006, 10:21:28 PM
Yea, I'm sold on the gumstix/robostix combo for makeing robots. It seems to provide the most muscle with the least amount of fat if you know what I mean. It's not a PC but it's not just a micro either. For any one looking to do research into mobile robots it's a godsend.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 26, 2006, 11:42:39 PM
So the robostix is a more advanced microcontroller? It looks interesting for $49.

http://gumstix.com/store/catalog/product_info.php?products_id=139

Apparently can be programmed in C++, who to me would be very nice!

Should I get this thing for my robot?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 27, 2006, 04:55:40 AM
If you are sticking to smaller robots that don't do all that much thinking an AVR is really handy. Although I recoment you program in C and if you really want object orientation just use structures that way you won't take a hit in performance. But they are rather cheep and well engineered. And go perfectly well with a gumstix (were made for eachother) if your ai advances beyond what the atmega can handle. Only problem is that if you don't have a gumstix you have to use your own boot loader.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 27, 2006, 04:11:49 PM
How about using an actual pc motherboard, like something out of a 486, 66mhz? Can anything be done in robotics with that? In a way that is cheaper than a microcontroller.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on October 27, 2006, 05:23:24 PM
so i'm experimenting with 2 platforms for my next bot at the moment.
my requirements were that i wanted something with a USB host port so i could use a standard USB webcam for machine vision.

approach 1 uses a EPIA mini ITX motherboard and DC-DC converter. http://www.mini-itx.com/store/?c=2#p1641
with this sort of motherboard on the bot i would be able to get real time stereo vision working. (no more messy IR sensors for me....)
the main problem with using a PC motherboard is power draw.
using a less powerfull PC would obviously use less power but will still be hugely inefficient. PCs just aren't built with low power draw in mind.
using a 10Ah battery pack i was only able to power my MiniATX motherboard for about 4 hours, despite the motherboard only drawing around 1 Amp. (in theory it should have run for around 10 hours.)
i put this down to the battery pack only being able to supply that sort of high load near the top of it's charge cycle.
using a laptop motherboard would probably be a far more power efficient way of getting lots of on board processing power.

the other processor i am considering is a Linksys "slug". http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLayout&cid=1118334819312&pagename=Linksys%2FCommon%2FVisitorWrapper
it's designed as a network storage device but it's got 2 USB host ports on there, (with the ability to solder on another 2, as well as a standard serial port) and only draws a few hundred milliamp.
all you have to do is put a more usefull operating system on there: http://www.nslu2-linux.org/ and you have a small, powerfull processor, running linux, with USB, i2c, serial port, ethernet, etc.
this processor won't be powerfull enough to do real time stereo vision but will definitely be powerfull enough to do video edge detection and shape recognition from a single camera.

using something other than a microcontroller on you bot will mean you will have to solve the I/O problem. how do you read sensors and switch motors on and off from a standard PC?
i'm using this project to build USB I/O controllers: http://www.obdev.at/products/avrusb/index.html so i'll still need microcontrollers on the bot even with my more advanced processor.
using a serial port or i2c I/O conroller is also an option.

i'm still undecided which processor i'm going to go with. (maybe i'll end up with 2 bots...)
while the PC motherboard is overkill, it lets you do lots of cool stuff with it's somewhat excessive processing power.
the linksys slug on the other hand is a nice compromise between power consumption, while still being able to use PC peripherals and operating system.
the advantage of using USB components and a standard operating system is i can develop the various pieces on my laptop and then plug them into the bot controller once they are working.
even the controller is changeable as they will both run the same linux operating system as my laptop.

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 27, 2006, 06:44:04 PM
the slug looks interesting....it's very much like a gumstix (same family of processors) on a smaller budget but you have the bonus of USB host. Gumstix don't have that yet. I bet you could probably use the buildroot from a gumstix on the slug infact but you would need to enable the USB host. You might consider looking at the gumstix buildroot because it is excellent for cross compiling different packages. People have been running python, player, uisp (to down load to avr micros), and all number of networking utilities, which are all "make menuconfig" easy with the buildroot.

Let me know how the slug goes.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 27, 2006, 07:03:38 PM
When I go to that link it shows me "Network Storage Link for USB 2.0 Disk Drives
Easily Add Storage Space to Your Network", nothing to do with slugs.

Anyway...back to the original topic...nowadays I can buy a used Palm Pilot for $35-50. Would it not be best to connect those to some board via the serial cable and use the Palm as the brain for my robot?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 27, 2006, 07:36:47 PM
"slug" = NSLU2

Quote
the other processor i am considering is a Linksys "slug".

 :P

As for your using the Palm...that depends on what you get for the price and what you want to get out of it.
Is it going to be hard to develop your code for the palm? What kind of OS does the palm run presently? Does it suport
user level threading?

The botom line for me is what are you gaining from using a Palm instead of a microC? If you end up paying 50 for a palm, 20 for a microC and still have to program the microC, in addition to fidling with the palm to get it to work, how does that save you time or money? Granted if it works out that you get a nice display and output for your robot with better memory capeablility I would say that might be worth it.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 27, 2006, 07:59:47 PM
I don't know for sure. But I did some digging and I found this product:

http://www.pontech.com/products/sv200/index.htm

And it costs $59. But the advantage is that it controls servos and receives input from Sharp IR finders. Then my research came full circle finding this page:

http://www.cs.cmu.edu/~pprk/  And THAT had a lot of good info. 

All I want my robot to do is follow programming, I am not trying to get a fully autonomous dancing robot that serves cocktails.
The thing is that you could use an older laptop for more programming power, or who knows, even a Dell Axim x51. This would just mean getting a different interface cable from Acroname.
However, this pontech controller can only give you access to 8 servos. Would be nice to be able to control a lot more.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 27, 2006, 08:06:35 PM
I need to look into this, because my project would require 12 servos and 2 motors. I think I need a larger board than the SV203.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 27, 2006, 08:14:13 PM
"follows programing" is a little vauge.

Why don't you out line your project a little bit and then every one would have a better feel for what you needed and could offer more accurate advice.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 27, 2006, 11:31:30 PM
Hi Jesse thanks for asking.

Original plan is a 20 inch tall robot with a 6 wheel base, a cylindrical body, two arms and a head with blinking lights. I think it will need about 8 IR sensors, like 2 for each side of the base.
So, 2 motors for moving around, plus 12 servos for arms, claws and head. I won't add torso rotation because that would cause the internal wiring to get tangled. I expect the robot would weigh about 27 pounds.  So I need to calculate what type of motors I need for that. But what is getting me is the microcontrollers, I have no idea what to get, or if using the Palm would be enough for me to build this thing. If anyone has any advice I am all ears, as I have never built a functional robot, only several replicas of tv robot puppets :P
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: polar bear6 on October 28, 2006, 07:40:35 AM
oh my god your making a DALEK!!!!!!
THE DALEKS HAVE RETURNED, FLEE FOR YOUR LIVES!!!!

http://en.wikipedia.org/wiki/Dalek
for those people that have lives a dalek is a robot in a british TV program.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 28, 2006, 04:07:20 PM
I am, how did you guess?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: polar bear6 on October 29, 2006, 05:10:39 AM
seriously? are u making a Dalek?
that would be so cool:P :) ;)
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 29, 2006, 11:35:22 AM
I sure can't make a Tardis, might as well make a Dalek!
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on October 30, 2006, 04:24:25 PM
hey Arislan,
so just to be clear on your requirements,
you need 14+ outputs for your various motors.

what about inputs? what level of controll do you need?
will your bot just follow a set sequence of movements or would you like it to react to it's environment or user input (remote control etc)?

most of the alternatives to microcontrollers discussed here (ie. palm pilots, gumstix, PC motherboards, reprogrammed NSLU2) all have the same problem if you want to use them for this sort of application.
they all require some sort of external I/O controller.

most of the commercially available I/O controllers use microcontrollers as the interface between the I/O pins and the host PC/palm plot/whatever.
most of the commercially available I/O controllers have less than your required 14 outputs.
you may want to consider programing some sort of microcontroller yourself so you can build something with the required number of I/O pins to connect to your palm's serial port.

of course, this may be over kill. if you are going to be using microcontrollers anyway you may decide you don't need the palm, right?

the other option discussed in this thread is the gumstix robostix board.
this board is essentially a pre built ATmega128 board. so it's still a microcontroller. an AVR microcontroller form Atmel to be exact. (you spot a common microcontroller theme here right? i'm starting to sound like Admin....)
while it's designed to be used with the gumstix board it can be used on it's own.
you will still need to program it but if you don't mind the programming of a microcontroller but don't want to have to get your soldering iron out it looks like a good option.
AVRs can be programmed in C not C++ as far as i know (but i'm fairly new to AVRs so please someone correct me if i'm wrong).
most of the AVRs (this one inclused) have logic level RS232 ports built in hardware for easy interfacing to other hardware.

did you ever find out what sort of interface your choice of Palm Pilot has?

anyway, enough of my ranting.
yes, you could use the Palm Pilot as your robot brain but not without some hardware to add Input/Output functionality.

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 31, 2006, 05:09:40 AM
Quote
what about inputs? what level of controll do you need?
will your bot just follow a set sequence of movements or would you like it to react to it's environment or user input (remote control etc)?

Hi dunk!
I would like to pimp it up some, gradually adding more features. There is even a voice recognition chip capable of holding up to 40 words each (HM2007).  So some kind of transmitter would be useful.
I'm thinking of 8 IR sensors, sonar, and something like a Quickcam for vision, if i ever get to expand that much. I was reading up on a project for robot vision  that used CdS cells instead. It wasn't very descriptive but it said this:

"This [vision] suite contains 50 CdS cells, seven analog multiplexers, a sonar emitter circuit, a sonar
receiver circuit, and a Mekatronix TJ pro board with a Motorola 68HC11 microcontroller
operating in expanded multiplexed mode with 32k of SRAM. In addition to the electronics,
each eye contains a 50 mm lens, focusing images on each of the two CdS arrays"

Not sure how it would have worked.

I think what I should do is get some drawings started and post them here, so I can get suggestions. I'm fine with buying the gumstix/robostix combo if that will allow me to add all i want to my robot.  My PocketPc can use a serial cable but I noticed that the battery no longer holds a charge. In the long run I think getting the stix could be the better idea, these older cheap pdas seem to be too much trouble even for chaning the battery.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Arislan on October 31, 2006, 04:59:50 PM
By the way, it's not really a Dalek, that was a joke.  ;)
Here is an early 3d sketch of the robot, without arms. I have not yet designed any arms. This is just a general shape, there is no texture map...

(http://www.arislan.net/~robot/bot1.jpg) (http://www.arislan.net/~robot/bot1.jpg)
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on October 31, 2006, 05:12:25 PM
If you decide on getting a gumstix let me know. I've been working with them for the past 6 months and can help you out picking stuff you might want or need. To me the advantage of a gumstix is that you get a full fledged linux kernal (but no fpu  :'() that has some serious power for the ai side of the robot. 32k of sram is pip-squeak compared to the 64mb on the gumstix. Not to mention 400 mhrz compared to the 25mhrz of most motorola 16 bit mcu.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dunk on November 01, 2006, 04:59:26 PM
so i keep looking at the gumstix but the lack of a USB host port ruled it out for my current project.
that's why i went with the NSLU2 instead.
i'd imagine it's only a matter of time untill the gumstix adds a proper USB port.
(currently the gumstix only has a USB device port, meaning you can attach the gumstix to a computer's USB port but you cannot attach other USB devices to the gumstix.)

dunk.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: JesseWelling on November 01, 2006, 08:02:55 PM
The new gumstix is coming out this spring and will have usb host capability.
Another well engineered solution if you need to manage i/o and can't solder or design something yourself:
http://www.bdmicro.com/

Basically it's a robostix with more gadgets....and more ram (up to 128k external + 4k internal)
This seems like a good upgrade if you have been programing on small PICs and want to "Level Up" but don't want to go full on
into 16bit or 32bit MCU's
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: RoboHobby on December 16, 2006, 12:59:06 AM
Hi,

There is interesting team from Germany.
They use Pocket Pc as a brain for Robosapien.
AND they use Pocket PC camera for vision system.
Their robots play football (soccer).

I downloaded movie from them (file name is 'go05_robosapien.wmv'.
Sorry, don’t know the link to it).

It is really funny, when robots play soccer!
See their web page:
http://www.informatik.uni-freiburg.de/%7Eki/teaching/ws0405/robotik/

As you ask me, we at www.RoboHobby.com, use J2ME phone as a brain for small robots and embedded (standard) camera of cell phone as a vision system.

Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Brandon121233 on February 21, 2007, 04:59:18 PM
no one has posted anything here for a while, I'm curious as to how every thing is comming along?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: dcole07 on February 22, 2007, 04:30:57 PM
So if you have a computer that is the main processor and have a lot of motors and sensors. What do the motors, sensors, and computer connect to?

Since something like a Pocket PC only has 1 out put with something like 20 pins. Also, in programming you use port numbers but it's still going though the same wire. So is there some hardware that splits and combines the data being sent both ways?
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Nyx on February 22, 2007, 05:25:59 PM
approach 1 uses a EPIA mini ITX motherboard and DC-DC converter. http://www.mini-itx.com/store/?c=2#p1641 (http://www.mini-itx.com/store/?c=2#p1641)
with this sort of motherboard on the bot i would be able to get real time stereo vision working. (no more messy IR sensors for me....)
the main problem with using a PC motherboard is power draw.
using a less powerfull PC would obviously use less power but will still be hugely inefficient. PCs just aren't built with low power draw in mind.
using a 10Ah battery pack i was only able to power my MiniATX motherboard for about 4 hours, despite the motherboard only drawing around 1 Amp. (in theory it should have run for around 10 hours.)
i put this down to the battery pack only being able to supply that sort of high load near the top of it's charge cycle.
using a laptop motherboard would probably be a far more power efficient way of getting lots of on board processing power.

You can always check ebay. They have lots of old laptops for under $100. Some of them are also sold "for parts", and have broken LCDs. You may be able to get 800+ MHz for less than $50 from those defective laptops.

Quote
using something other than a microcontroller on you bot will mean you will have to solve the I/O problem. how do you read sensors and switch motors on and off from a standard PC?
i'm using this project to build USB I/O controllers: http://www.obdev.at/products/avrusb/index.html (http://www.obdev.at/products/avrusb/index.html) so i'll still need microcontrollers on the bot even with my more advanced processor.
using a serial port or i2c I/O conroller is also an option.

You can always check the Phidget devices (http://www.phidgets.com/). They have USB interface boards, motor/servo controllers, range finders, accelerometers, all sorts of things. Some of these things are on the expensive side, but it avoids the need for a microcontroller. Their devices are also linux compatible, which is a must for me.

Quote
i'm still undecided which processor i'm going to go with. (maybe i'll end up with 2 bots...)
while the PC motherboard is overkill, it lets you do lots of cool stuff with it's somewhat excessive processing power.
the linksys slug on the other hand is a nice compromise between power consumption, while still being able to use PC peripherals and operating system.
the advantage of using USB components and a standard operating system is i can develop the various pieces on my laptop and then plug them into the bot controller once they are working.
even the controller is changeable as they will both run the same linux operating system as my laptop.

I'm definitely going with a PC. My robot will be on the heavy side, but I want to have all the CPU power and all the RAM I can possibly get for visual processing, plus the high speed wireless connection.
Title: Re: Can a PocketPC be used instead of a microcontroller?
Post by: Brandon121233 on May 31, 2007, 09:05:17 PM
So I'm ganna bring this one back to life... I think I want to add some sort of Pocket PC to my new robot- Walbot.What kind of output would a Pocket PC have to have in order to communicate with say my Arduino board which is based on the Atmega168? Can a Pocket PC act as a USB host or would I have to adapt something so it could talk with the TX and RX pins? I was thinking of like the Dell Axim series.