I'm thinking of creating a robot with a Raspberry.
This Raspberry should then communicate with different Arduino's.
One arduino fro driving the motors.
Another arduino on which I connect the sensors.
...
I'm also thinking of using 2 OLEDs through SPI. (probably also via an Arduino).
What would be the best way to communicate with the different Arduino's?
We have : I2C, SPI, USB, Bluetooth...
I've read somewhere that if speed is an issue, USB is not an option.
Connecting the Arduino(s) using USB will be the simplest. What do you think you need to do where that won't be fast enough? How many bytes per second do you need to send? What is the data for?
Connecting to an Arduinos using serial over USB will be the easiest. True USB support is not as simple.
Bluetooth requires additional hardware not included in most Arduinos.
I2C, SPI or UART (serial port) are the easiest to use. I2C and UART use 2 wires. I2C is the slowest, but if you are only sending a little data any of the solutions would work. SPI is the fasted but needs 4 wires. None of the solutions except serial over USB is good for very long distance, but if it is all located on a robot that shouldn't be a problem.
It doesn't sound like there is much IO needed. The RPi might be able to control everything directly. If not as said, one Arduino should be able to do everything.