PDA

View Full Version : Dilemma- Need I/O board with 18 analog inputs for Telemetry Suit



DresnerRobotics
01-30-2008, 12:24 PM
So... I have this idea stuck in my head and I wanted to at least get a solid plan going as to how I could implement it.

The original Johnny 5 in the movies was operated from a Telemetry Suit, so that it could essentially be remotely puppeteered. Currently, my remote control is pretty basic, I can drive J5 around, move his head, but arm control is pretty limited with SEQ, aside from preprogrammed sequences.

I could use a PS2 controller to control the arms fairly easily... but that interface would be cumbersome to say the least, and would probably need two controllers.

There are essentially 18 channels on J5 that I would like to control. 6 DOF in each arm, pan/tilt head, track movement, and torso twist/shift. The best way to do this would probably be to build a telemetric suit similar to the movie version, as I could then have real time control of all of his motors and would be able to naturally control it.

Here is a perfect example of what I'm looking to build:


http://www.youtube.com/watch?v=X7l4YE2K-HI


So, this could likely be implemented with 18 analog potentiometers attached to a custom built frame that I could essentially wear like a backpack. The pots would have to be attached to some sort of I/O board... I was thinking about the phidgets I/O boards, but unfortunately I need more analog inputs (would need like 3 of the 8/8/8) and wouldnt use the digital inputs or any of the outputs...

Perhaps a basic stamp could provide a solid interface?

I'm just throwing the idea out there, to see if any of you have some suggestions to get the old think tank going.

JonHylands
01-30-2008, 12:46 PM
You can get I2C A/D converters that do 8 or 12 channels no problem... Plug 2 of the 12 channel guys into a PIC/AVR/whatever, and you've got 24 analog inputs...

- Jon

DresnerRobotics
01-30-2008, 01:15 PM
You can get I2C A/D converters that do 8 or 12 channels no problem... Plug 2 of the 12 channel guys into a PIC/AVR/whatever, and you've got 24 analog inputs...

- Jon


Excellent idea! I completely forgot about A/D converters... any suggestions on a specific product? Would need two 12 channels.

I was just going to plug in all the inputs directly to a stamp type micro... A/D would be a lot more efficient. My next big hurdle will be creating an interface on the robot's PC to read the micro controller's commands and translate them into servo movement. Probably going to need to crunch down on my C# skills

Alex
01-30-2008, 01:23 PM
Probably going to need to crunch down on my C# skills

As far as I'm aware, C is one of the only languages that are supported when you're further down at the microcontroller level. Some boards support Java such as the OOPIC, but I don't think any of them support C# because in order for C# to be used, you need a chip/board that can run the .NET framework (or even .NET micro framework) directly.

Unless of course I totally misunderstood you and you're planing on having a pico or some other type of computer strapped to your back and communicating to the board through serial commands. Then, you can use C# no problem:D

Jon?

kdwyer
01-30-2008, 01:40 PM
Have you looked at the SSC32? (Scott Edwards Serial Servo Controller) It can control 32 servos. It communicates via serial port. I have had success hooking this up to an Oopic - not the most capable uC but great for prototyping. The SSC32 is available from Lynxmotion, about 40 bucks.
Also, I think a (relatively) small number of pre-coded motions for the arm could be 'assembled' into longer larger motions.

Alex
01-30-2008, 01:44 PM
Can you use the SSC-32 as analog inputs though? I didn't think you could hook up analog sensors to it...

DresnerRobotics
01-30-2008, 01:49 PM
As far as I'm aware, C is one of the only languages that are supported when you're further down at the microcontroller level. Some boards support Java such as the OOPIC, but I don't think any of them support C# because in order for C# to be used, you need a chip/board that can run the .NET framework (or even .NET micro framework) directly.

Unless of course I totally misunderstood you and you're planing on having a pico or some other type of computer strapped to your back and communicating to the board through serial commands. Then, you can use C# no problem:D

Jon?


Well, ideally the micro on my back will just be sending out serial data via a bluetooth modem (I have an unused Bluesmirf to interface between the micro and the onboard pico-itx). Shouldn't an interface using C# be able to read that no problem, as it's just standard RS-232 serial data? Unfortunately my C# knowledge is pretty limited, I've only run through a couple of very basic tutorials.

DresnerRobotics
01-30-2008, 01:53 PM
Have you looked at the SSC32? (Scott Edwards Serial Servo Controller) It can control 32 servos. It communicates via serial port. I have had success hooking this up to an Oopic - not the most capable uC but great for prototyping. The SSC32 is available from Lynxmotion, about 40 bucks.
Also, I think a (relatively) small number of pre-coded motions for the arm could be 'assembled' into longer larger motions.


These only have 4 analog inputs, and aren't exactly built to use them. It's basically just a servo controller, but yes- I own two of them, one of which is currently installed on my J5.

I'm thinking my best bet is 2x 12 channel A/D converters hooked up to something like a Basic Atom Pro, which will communicate with my onboard PC via a bluetooth serial modem. C# interface can then read that comm port and translate the data from that into servo positions to the SSC-32. That's the concept, now implementing it with my mediocre at best programming skills is another story entirely.

JonHylands
01-30-2008, 02:06 PM
You may need to use 3 A/D chips, unless you're willing to put together a board with surface mount chips. All of the 12-channel A/D chips I've been able to find are surface mount.

I've found a few 8 channel DIP packages...

Given that they are I2C, it really shouldn't matter. If your microcontroller has 2 or more analog inputs, you could use those in addition to the two 8-channel chips to get your 18.

I would look at this for an 8-channel DIP version:

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1890

- Jon

Alex
01-30-2008, 02:32 PM
Well, ideally the micro on my back will just be sending out serial data via a bluetooth modem (I have an unused Bluesmirf to interface between the micro and the onboard pico-itx). Shouldn't an interface using C# be able to read that no problem, as it's just standard RS-232 serial data? Unfortunately my C# knowledge is pretty limited, I've only run through a couple of very basic tutorials.

If you're planning on using standard RS-232 communication, then C# will work just fine, provided of course that all of the serial commands are published of course. Look into the SerialPort Class (http://msdn2.microsoft.com/en-us/library/system.io.ports.serialport.aspx) in C#. Be sure to look at the Members (http://msdn2.microsoft.com/en-us/library/system.io.ports.serialport_members.aspx), Constructor (http://msdn2.microsoft.com/en-us/library/30z6zcfb.aspx), Fields (http://msdn2.microsoft.com/en-us/library/f119c7kd.aspx), Methods (http://msdn2.microsoft.com/en-us/library/bke5bt2e.aspx), Properties (http://msdn2.microsoft.com/en-us/library/s9yhswbz.aspx) & Events (http://msdn2.microsoft.com/en-us/library/ed55271k.aspx) on the left as well because those are all the nitty gritty details of using this Class.

Dave
02-11-2008, 03:27 PM
So, this could likely be implemented with 18 analog potentiometers attached to a custom built frame that I could essentially wear like a backpack. The pots would have to be attached to some sort of I/O board... I was thinking about the phidgets I/O boards, but unfortunately I need more analog inputs (would need like 3 of the 8/8/8) and wouldnt use the digital inputs or any of the outputs...

Analog multiplexers could also a good solution. Here's one example of multiplexing analog sensors using a 4051 IC:

http://www.arduino.cc/playground/Learning/4051