When my program starts my vision sensor does not detect any signatures until I plug it into my computer and start the vision utility.
At the beginning of opcontrol I have this code to set the sensitivity for each signature:
pros::vision_signature_s_t red = vis.get_signature(1);
pros::vision_signature_s_t green = vis.get_signature(2);
pros::vision_signature_s_t blue = vis.get_signature(3);
red.range = 3.0;
green.range = 2.0;
blue.range = 3.0;
vis.set_signature(1, &red);
vis.set_signature(2, &green);
vis.set_signature(3, &blue);
I print the number and location of signatures detected to the console; these stay at zero until I plug the camera into the vision utility then unplug it. The camera’s light also turns on when I remove the usb ccable if a signature is detected.
I don’t understand what get_auto_white_balance () and get_exposure () get.
Which one corresponds to Brightness.?
The get_exposure() I got was 19, but when I set Brightness to 75. get_auto_white_balance() it returned a long string of numbers.
vision_get_exposure and vision_set_exposure are wrappers for the VEX API, but PROS is missing some scaling so they probably don’t work yet. They should set and return brightness, but the scale used in the USB implementation is different to that used for serial control (rather unfortunate, but it’s too late to change).
I’m not seeing a “get_auto_white_balance” function. There is vision_get_white_balance and vision_set_white_balance, they manually set/get the white balance of the vision sensor. I would ignore these for now, they are not necessary to use the vision sensor.
Stick to setting signatures using the vision utility and reading objects.
I had some issues with PROS, my solution was first making sure the vision sensor shows up on the cortex device list, and don’t use the Vision utility standalone- it sucks. Use the one that is built-into Vex Coding Studio. Simply drag the sensor into the 3d field and then click the gear to open the utility. That worked for me.