Robotics And The Gp2x, Is It Possible?


I would like to build a really pro robot too, with nice brackets instead of my hacked body out of old computer parts. They sell professional servo brackets but they are like $15us each and when you have like 15 to 20 servos that gets expensive. You can get hardware audio chips that can store pre-recorded audio fairly cheap these days that would be perfect for a talking robot. You can also get voice recognition chips cheap that are desined to integrate with a microcontroller. I think the only other sensor to go on my robot will be a sensor to detect light levels so my bot knows when to turn on its light. As far as getting the bot to run in standby that is definalty possible as long as all the servos are powered down, and the BX-24 has a low power cpu sleep function. With my robot it will come out of sleep mode when motion is detected within 80cm via the proximity sensor but if I decide to go with voice recognition I could get it to wake up on voice command too, which I think would be a little cooler.

What do you guys think I should do with this robot? Build legs and get it walking or start on voice recognition and speech because the cost would be about the same either way.

I know this is getting off topic and not about the gp2x so let me know if this is frowned upon.

Walking is *very* hard to do, very power hungry and not too good at moving over different surfaces unless done with alot of sensors, gyros etc.

It is much more cost effective, power efficient, less CPU intensive, and simpler to just use wheels or treads for movement.
 
Last edited by a moderator:
You can't just connect the BX-24 serial port to the GP2X serial port, because the BX-24 is 5V and the GP2X is 3.3V. You may well damage the GP2X by connecting them directly.

Unfortunately, level shifting 5V - 3.3V is a pain! You either need to clamp the 5V signal (see my GP32 JTAG page for an example) or else you need a level-shifting buffer. The 74LVC family is pretty good for this, as it runs on 3.3V but has 5V-tolerant inputs and outputs. I've used the 74LVC541 buffer, it works well.

If he gets ahold of the Samsung e810 cable won't that level-shifter do?

It is working fine for the 12volt to 3 volt level-shifting now. It also happens to be one of the cheapest sources for a EXT connector with all the pins :D.

@gsx82, for speech won't the thing that reads you text files in the archive work fine?

Also, since we are using the GP2X, and it is all set for audio input, couldn't you just hack the software and see if you could make the EXT or Headphone jack a Mic input??

Look at it the same way as the 6-channel sound cards where the input and output are switchable, like mic-in becomes Rear-out in software.

I haven't investigated what audio chip they are using, but even if it is incompatible a simple hardware hack might allow a mic, it would be nice if GPH had put a mic in, or at least if the option to use the EXT or Headphone audio as an input is a workable idea.

@DaveC, just CAD up the bot, and have it display on the screen, CAD your desk too, then just use a 3D engine to display the bot, from a programming aspect it is entirely the same, just inputs and outputs, if they wind up rendered on the GP2X in 3d is no concern to your program.

The cost would be time and not money that way, and the speech and recognition features you desire might be possible.

Or to simplify it starting out it could be an animated smiley face to talk to you (or the MCP face from Tron, watch the extra features on how they animated the talking on the 20th anniversary DVD, it would be awesom to have an MCP talking face on the screen!!)

@gsx82, it might be really cool to use the GP2X as the head, it should be really light if you take the batteries out and power it off the robot battery pack :).

An Idea for walking and a battery pack might be to steal the legs from that lame robosapien that dances around.

Get a broken one on ebay and investigate the legs, pare them down until they are unrecognizable (just remove the ugly plastic to suit), or design your own around the idea, the batteries are in the soles of the feet.

Even new at $80-$100 it isn't such a bad price for legs with a power supply.

For brackets, once your design is finalized have your own brackets made from CNC bent and laser-cut stock, if they are all pretty much the same design and there are 20 of them the price will be quite low, something like $70 set-up fee and then a low price apiece for a high-yield if it is as simple as 1 bend the price would be like $10 apiece(including set-up) when you build it, or you could set-up a group buy and get the prices even lower.

see http://www.protocase.com/, they even throw in a free CAD program to design and calculate the price of what you want, and they could laser cut a neat logo into each one to personalize your bot :).
 
Last edited by a moderator:
[
@gsx82, for speech won't the thing that reads you text files in the archive work fine?

@DaveC, just CAD up the bot, and have it display on the screen, CAD your desk too, then just use a 3D engine to display the bot, from a programming aspect it is entirely the same, just inputs and outputs, if they wind up rendered on the GP2X in 3d is no concern to your program.

An Idea for walking and a battery pack might be to steal the legs from that lame robosapien that dances around.


There are many text-to speech programs/chips out there, I would bet it wouldn't be too hard to interface with the GP2X.

Not sure what you mean by CAD up the bot, desk, 3D engine etc. I was talking about CADing out the robot frame itself where components mount to etc. It would be entirely different that the one in the pics. I envision more of an R2D2, or HERO 2000 with arm type form factor.

Have you seen the robosapiens walk? It basically just shuffles around. Not very good and wouldn't be very mobile unless on a perfectly flat surface . Wheels/treads for the win. Legs are ok for toys but not practical. It depends what you are going for I guess. If you are going for the cool factor ok, but not as practical.

There are robot kits available based on PC architecture but are not practical due to power requirements. A bot running off of a pentium PC with windows and spinning HDDs etc are just too piggy and power hungry. Those can't run even in sleep mode for more than a 3-4 hours.

A bot based off of a GP2X with everything solid state (SD cards) is much more practiacal. Kounch already has a power saver sleep mode utility for the GP2X so that is already done.

Voice rec can be done well if you don't try too much. Don't expect it to understand long casual english sentences and act on it. Something more tree based is practical. For example:

You would say "robot" to activate. Robot says "yes" (indicating ready for input)

Then you would say "guard" (robot could be set to confirm "did you say guard?" you would give yes/no answer) Robot would go into the guard routeens etc. Then you could say "stop" robot would then abandon current routeen and go back to root.

Using simple one-word commands and tree structure to filter out word possibilities you could get real good performance without alot of CPU power. By the way this type of voice rec technique was used on a robot in the 80's that ran off of an 8-bit Z80 and it worked very well.
 
Last edited by a moderator:
Hi nubie,

No, the Samsung E810 level shifter won't do, because it's also an inverter. Logic-level serial comms has +5V (or +3.3V) for "1" and 0V for "0". RS-232 as used by the PC has -12V for "1" and +12V for "0" (actually, in general anything above +2V is taken as "0" and anything below about 1V is taken as "1"). As you can see, it's all screwed up :)
 
saboteur - Sure I will take the cable from you, just let me know what you want for it and what shipping to Canada would be, is it the samsung cable?

I am quite positive that the samsung cable hack that nubie created will work perfect for my project. Correct me if I'm wrong but what the samsung cable does is convert the serial 3.3v from the gp2x to standard RS-232 12v that can be connected to any PC. If thats the case, the BX-24 has a hex inverter that will isolate the BX-24's 5v serial levels from the 12v levels present on standard PC's. I have the BX-24 connected to my PC(+-12volt) right now and it communicates just fine.

DaveC - Check out this site, this is what I am going for but of course my bot will have a brain and not just do preprogrammed movements. I hear what you are saying about using wheels or treads, but legs are so cool. Using the gp2x as the main brain of my bot probebaly will not happen due to its size. It would be cool if I built a bigger bot and used the gp2x as the bots face like Cain off Robocop 2. That would also make a much smarter bot due to the power of the gp2x cuz I could have a much larger program, the BX-24 has only 400 bytes of RAM and the CPU runs @ 50MHZ. I would also be able to use C instead of the crippled version of basic that runs on the BX-24. I could use the BX-24 for low level motor movements and sensor reading and use the gp2x to do all the AI. Wow I just love this little handheld, the possibilities are limitless.

Yea, I think that the text to speech program for the gp2x would work well for a bot, I tried the program once but it only read back the filename to me.
 
Hi nubie,

No, the Samsung E810 level shifter won't do, because it's also an inverter. Logic-level serial comms has +5V (or +3.3V) for "1" and 0V for "0". RS-232 as used by the PC has -12V for "1" and +12V for "0" (actually, in general anything above +2V is taken as "0" and anything below about 1V is taken as "1"). As you can see, it's all screwed up :)

Oh, how odd.

What does the GP2X put out? I am going to assume +3 and -3 volts, what is the Logic-level serial for?

And is it possible the chip will understand it and work anyway? I.E. all it knows is high and low, low is translated to correct voltage and vice versa with high voltage, or does it only trigger when crossing 0 volts?

I guess I am a little foggy in this whole area, I have never had the money to build a bot myself :(, or play with electronics much.
 
Last edited by a moderator:
Just use two of the inverters in a chain. You don't need one for the output from the GP2X, just the input. 5V UARTs usually accept 3.3V fine.
 
DaveC - Check out this site, this is what I am going for but of course my bot will have a brain and not just do preprogrammed movements. I hear what you are saying about using wheels or treads, but legs are so cool. Using the gp2x as the main brain of my bot probebaly will not happen due to its size. It would be cool if I built a bigger bot and used the gp2x as the bots face like Cain off Robocop 2. That would also make a much smarter bot due to the power of the gp2x cuz I could have a much larger program, the BX-24 has only 400 bytes of RAM and the CPU runs @ 50MHZ. I would also be able to use C instead of the crippled version of basic that runs on the BX-24. I could use the BX-24 for low level motor movements and sensor reading and use the gp2x to do all the AI. Wow I just love this little handheld, the possibilities are limitless.

Yea, I think that the text to speech program for the gp2x would work well for a bot, I tried the program once but it only read back the filename to me.


Well yeah the Gp2X would be a bit large for a bot with legs because of the weights. I guess we have different visions for a bot that we would want. You seem to want a buffed up Robosapiens with the kewl factor, I seem to be going toward a more practical appliance with actual uses like these http://www.whiteboxrobotics.com/ . The only problem with those is they use power sucking inefficient windows PC architecture giving them abysmal battery life. With my model you could use the GP2X as with treads etc it would be larger and more power efficient. Maybe eventually you could make two types. One a more toylike humanoid type, the other a practical "utility droid" I would do it but since I can't program a byte, I am out..
 
Last edited by a moderator:
I'm new to the whole homebrew handheld scene so I hope I am not asking lame questions. Does the GP32 run linux too or a custom os from gph? I looked it up and I guess it does not run linux from the factory but it can run linux. Has anyone here tried linux on the gp32 and does anyone know if it can run a bash shell? The gp32 is probably less expensive than the gp2x and would be perfect for modding into a robot if it can run linux at a decent speed on it. There must also be a serial port on the gp32 as well right?

It looks like I am getting a samsung cable from saboteur, thanks alot dude.
 
If you are using the gp2x to do the controlling why not use it to do the speaking as well ? A dirty fudge would be to just use the headphone socket of the 2x as you are already connected to the robot by wire

One of the projects in my head (that may never get realised now seeing as the screen of my 2x is shattered) was a speech program to help people with aphasia/dyspraxia etc

Basically you could set up a simple menu system with nouns/verbs etc and use them to construct sentences etc

you don't even need to record them yourselves as you can use eg http://public.research.att.com/~ttsweb/tts/demo.php to do the words for you

Just a thought
 
I'm new to the whole homebrew handheld scene so I hope I am not asking lame questions. Does the GP32 run linux too or a custom os from gph? I looked it up and I guess it does not run linux from the factory but it can run linux. Has anyone here tried linux on the gp32 and does anyone know if it can run a bash shell? The gp32 is probably less expensive than the gp2x and would be perfect for modding into a robot if it can run linux at a decent speed on it. There must also be a serial port on the gp32 as well right?

It looks like I am getting a samsung cable from saboteur, thanks alot dude.
GP32 Linux was incomplete and horribly slow. I dont know if this still works.
 
Last edited by a moderator:
Back
Top