Hi,
davenull wrote:I'm looking for a robotics multi-IO shield providing plugs for external L298 H bridges (or even more powerful ones which I already have, on proprietary backpanes)
- to control 8 motors feat. rotary encoders
- plus extra digital (at least extra 16x) and analog pins (ADC 10-bit, at least 10x)
- plus at least one extra free i2c and UART for external devices (GPS, IMU, ...)
1) 8 motors require 16 to 24 digital I/O's (DIRA/DIRB or EN/DIRA/DIRB, I recommend the latter)
2) 16 extra digital I/O and 10x 10 bit ADC inputs
3) 1 extra I2C, 1 extra UART
You can do it with RoboPi, and a PiDroidAlpha, which would give you:
RoboPi:
http://www.mikronauts.com/raspberry-pi/robopi/
(see link above for RoboPi Build Manual and RoboPi User Manual)
8x 12 bit ADC (5V)
24x FlexIO (each I/O can be servo, pwm, digital in, digital out, ultrasonic distance sensor, 5V safe))
PiDroidAlpha:
http://www.mikronauts.com/raspberry-pi/pi-droid-alpha/
(see link above for PiDroidAlpha Build Manual and PiDroidAlpha User Manual)
8x 10 bit ADC 5V (you could order it with 12 bit ADC instead)
8x Pi I/O with voltage dividers (5V safe) (can be servo, pwm, digital in, digital out)
16x additional (5V) I/O
This gives you a total of 16 analog inputs and 48 digital I/O, with an 8 core 32 bit RISC co-processor (on RoboPi)
- 16x ADC inputs
- 24x FlexIO (each I/O can be servo, pwm, digital in, digital out, ultrasonic distance sensor, 5V safe))
- 8x Pi I/O with voltage dividers (5V safe) (can be servo, pwm, digital in, digital out)
- 16x additional (5V) I/O
More than you asked for
For this configuration:
- do not populate the L293D section on PiDroidAlpha (it uses 2 Pi I/O's and four of the other I/O's)
- Stack PiDroidAlpha on the Pi
- connect RoboPi to PiDroidAlpha with 4 pin hcom cable and 1 wire for logic 5V
This would give you:
Configuration:
- use EN/DIRA/DIRB style motor drivers
- use 8x Pi FlexIO for the PWM signals to the motors
- use 16x Pi FlexIO for quadrature input (you would have to extend the firmware for quadrature input)
- or use the 16x digital I/O on PiDroidAlpha and read the quadrature inputs over SPI (may work, depends on pulses/sec)
- you would have the Pi's I2C port available for additional I2C peripherals
- you could extend the RoboPi firmware to provide additional serial ports
If you need even more I/O, you could add up to 4x PiRtcDio boards, each of which provides 32x 3v3 digital I/O, and one could have its RTC section populated.
PiRtcDio:
http://www.mikronauts.com/raspberry-pi/
All of the above products are in stock, and can be ordered direct from me, from my Tindie store, or Ebay.
davenull wrote:
It's for an autonomous robot with 1 6DOF arm, all motors PID-controlled, 2 motors for odometry, so quick pin reading is required (all pins in polling cycles of about 100µs).
I am programming in C/C++ (g++, Raspbian Jessie, Geany IDE), no Python.
Is there such a thing available? Perhaps even hooking up several different shields or backpanes?
Yes, see above.
I designed RoboPi specifically for advanced robotics (and DAQ applications), and I make sure my products inter-operate - thus you can have a RoboPi, a PiDroidAlpha and four PiRtcDio's attached to one Pi
I even have my own support forums for my products
I have a C/C++ API for RoboPi
for C/C++ programming of PiDroidAlpha and PiRtcDio you need to use standard pigpio or WiringPi libraries.
davenull wrote:
(p.s.,
I already tried hooking up 1 Arduino Mega or Arduino Due to 1 Raspi, but that'ts a very complicated thing to do for setting up a real-time communication between both boards, both by UART and by i2c, or by SPI - nevertheless, the Arduino part is not so hard to do for me to do as I've got already a little basic experience in programming Arduinos. And actually when finally being interfaced by highspeed, a Due or Mega would fit by it's pins perfectly - or something similar...)