Hi, the OpenMV Cam makes a very poor I2C slave or SPI slave. This is because it needs to generally do other things than wait for the Arduino to command it. UART is the only thing that works well. If possible, make your Arduino a UART slave I/O extender for the OpenMV Cam.

I am also working on a CAN shield that I will try to get out of the door ASAP which will make this all much easier. Connecting the OpenMV Cam by CAN with an Arduino with a CAN shield is the easiest way to have high bandwidth data interface between the two devices while not sacrificing the Arduino's ability to do serial write. It also meets the need of folks wanting long distance comms.