Page 1 of 1

How to send coordinate to arduino nano?

Posted: Thu Nov 14, 2019 6:48 am
by Sam891
Hi, i'm new here. I want to connect via I2C the CAM to my Arduino nano. I need to send only the coordinate of the object that my openmv cam detect, to my arduino, to command a robot. It is possible?

Re: How to send coordinate to arduino nano?

Posted: Sat Nov 16, 2019 1:37 pm
by kwagyeman
Please use the UART on the OpenMV Cam and software serial on your nano to receive data. The OpenMV Cam can only be a decent I2C master and Arduino's aren't good at being I2C slaves.

Re: How to send coordinate to arduino nano?

Posted: Sat Nov 16, 2019 3:44 pm
by doodah
I was going to use I2C and an I2C mux to communicate with multiple cameras and an arduino. Is that a bad idea? Can the OpenMV be a good I2C slave?

Re: How to send coordinate to arduino nano?

Posted: Sat Nov 16, 2019 5:23 pm
by kwagyeman
It can be an I2C slave but it's quite hard to use it this way. This is because it will generally miss I2C transactions unless you have it do nothing but wait for a transaction to do something. You can only get it to process video and compute stuff and send results to a master device if you use the UART. Otherwise, you must program the camera to wait for a transaction before it captures a video frame to do something.

Note that the MicroPython library throws a lot of exceptions with vague error codes in slave mode if anything goes wrong. We have some examples on how to write this type of code if you see the CMUcam5 Pixy emulation examples. However, I wouldn't recommend doing this. Note that I cannot provide help support more than pointing to some examples we have if you want to go the I2C slave route.

Personally, I found trying to make the camera a slave I2C or SPI device a waste of time.

Re: How to send coordinate to arduino nano?

Posted: Thu Dec 05, 2019 7:24 am
by Sam891
The resoult won't be very good, but is possible to use the arduino with i2c... but i think i'll use the UART. I would do a turret that look at the color's object and track it, with servos