You certainly are the bold one! Iām glad I am not the only one who wants I2C. There are 8 channel ADC chips available, but the only ones I have found use SPI (Microchip MCP3208 and others). I like the way Acroname does their I2C connections - dual row connector (in and out) for daisy chaining to/from other I2C devices.
Thatās just for 8 legs with 3DOF. I could use all 32 channels of an SSC-32 if I were to build an octapod. I am sure others could also.
Analog Input shortage is definately an issue, especially for things like accelerometers and Sharp IR rangers. Even 8 is really not enough.
How about addon modules, like via I2C? I am in the process of programming some dsPICs (30F4011 and 30F4012) to do just that - be smart I/O processing modules.
This would be an excellent way to go. If we can also create our own add-on boards, either by breadboarding or making custom PCBs, it would be excellent.
Personally, I prefer the layout and configuration miked has now. Add to that the ability to add on expansion boards for additional I/O, etc, and I think that is the way to go. Of course, you could still bump the number of channels up to 32 to make it more of a servo controller. That is mostly just a matter of what firmware is programmed into the MCU.
Jim, if you do go the daughter board route, make sure you publish the interface so that we can make our own add on boards! (Maybe the servo connectors should be right angle types then?)
I imagine something like a PC104 stack in our future robots (And actually, the Mark III robots have a good stacking system as well)
LinuxGuy: Look at the Max127 for an 8 channel I2C.
I suggest that a jumper be put between the normal 5v supply and the analog voltage reference pin on the chip. This way the jumper could be removed and any voltage between 5v and 0v could be connected to the chip such that eight bit resolution for that voltage range could be obtained. As for many analog inputs, Iām tinkering with some CD4051 chips (below) to see how easy one could make an add on board to get 16 switchable analog inputs to the ssc-32. The 74HC4051 chips are $.36 each from Jameco, so the overall expense should be very low for DIY boards.
Time for an update. Mike is starting to work on the SSC-NG board again. Whatās in there?
o ATMega1281 Processor
128k Flash
4kb EEProm
8kb RAM
54 GP I/O pins
6 PWM channels
2 USART
8 ADC channels
o USB / TTL comms supported.
o 32 channels of I/O direct to the bus. All can be servos.
o 1 dedicated I2C bus.
o 1 dedicated 1mbps half duplex serial bus. (AX-12)
o Same footprint as SSC-32 / Bot Board II.
o Larger terminal blocks for power.
o VL/VS jumpers on banks of 8 I/O.
o Analog reference voltage brought to jumper.
o Some small LEDās on board for troubleshooting.
The goal is to integrate the AX-12ās operation into the SSC-32/NGās command set to work with standard servos with the coordinated moves system, and with any program that can talk to the SSC-32. Big goal, but thatās where it is.
I added this:
The SSC-NG will be able to function as an enhanced SSC-32, or with C programming it can be made into a complete robot controller.
Weāre using the FTDI chip. Itās got everything required built-in to the chip. The setup has more options than the Prolific chip. I believe it will be configured as a virtual serial port, but it will have unique addresses so more than one can be connected to a PC at the same time.
Mike is now considering the ATmega1280. The differences are.
16 A/D versus 8
4 serial ports versus 2
12 timers versus 6
Many additional I/O, not needed for functionality, but makes HW and SW designerās job easier
The benefits are.
More A/D = requested function from the people
More serial ports = greater communication potential; can support USB, TTL, and AX-12 simultaneously; no jumpers to select between USB and TTL comms
More timers = more high-precision time-based I/O; useful for high-speed PWM outputs, PWM measurement, optical encoders, etc.
More general I/O = easier routing for HW guy; easier coding for the SW guy (can use 1 8-bit I/O port per servo bank instead of mixing and matching); possibility of connecting multiple processor pins to a
single board pin for greater flexibility.
Iām in, but we will have to see what will fit. 8)