FRC - Hackathon
/
TestPixy
Pixy (cmucam5) Library HelloWorld Program
Fork of TestPixy by
main.cpp@0:ff2018f6c7cd, 2018-05-31 (annotated)
- Committer:
- haarkon
- Date:
- Thu May 31 17:37:26 2018 +0000
- Revision:
- 0:ff2018f6c7cd
- Child:
- 1:b3e8acec058f
Tested Pixy Library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
haarkon | 0:ff2018f6c7cd | 1 | #include "mbed.h" |
haarkon | 0:ff2018f6c7cd | 2 | #include "Pixy.h" |
haarkon | 0:ff2018f6c7cd | 3 | |
haarkon | 0:ff2018f6c7cd | 4 | Serial pc (PA_2, PA_3, 921600); |
haarkon | 0:ff2018f6c7cd | 5 | PIXY Pixy (PA_0, PA_1, 230400); |
haarkon | 0:ff2018f6c7cd | 6 | |
haarkon | 0:ff2018f6c7cd | 7 | DigitalOut led1 (PA_5); |
haarkon | 0:ff2018f6c7cd | 8 | DigitalOut led2 (PD_2); |
haarkon | 0:ff2018f6c7cd | 9 | DigitalOut disquette (PA_12); |
haarkon | 0:ff2018f6c7cd | 10 | |
haarkon | 0:ff2018f6c7cd | 11 | int main() |
haarkon | 0:ff2018f6c7cd | 12 | { |
haarkon | 0:ff2018f6c7cd | 13 | int nbCC, nbNM, cr; |
haarkon | 0:ff2018f6c7cd | 14 | Byte msg, brightness = 50; |
haarkon | 0:ff2018f6c7cd | 15 | T_pixyCCBloc CCBuf; |
haarkon | 0:ff2018f6c7cd | 16 | T_pixyNMBloc NMBuf; |
haarkon | 0:ff2018f6c7cd | 17 | |
haarkon | 0:ff2018f6c7cd | 18 | pc.printf ("\r\nHelloWorld\r\n"); |
haarkon | 0:ff2018f6c7cd | 19 | led1 = 1; |
haarkon | 0:ff2018f6c7cd | 20 | led2 = 0; |
haarkon | 0:ff2018f6c7cd | 21 | disquette = 0; |
haarkon | 0:ff2018f6c7cd | 22 | |
haarkon | 0:ff2018f6c7cd | 23 | wait (5); |
haarkon | 0:ff2018f6c7cd | 24 | if (Pixy.checkPixy() == -1) { |
haarkon | 0:ff2018f6c7cd | 25 | pc.printf ("\rNo Pixy\n\r"); |
haarkon | 0:ff2018f6c7cd | 26 | while(1); |
haarkon | 0:ff2018f6c7cd | 27 | } else { |
haarkon | 0:ff2018f6c7cd | 28 | pc.printf ("\rLet's go\n\r"); |
haarkon | 0:ff2018f6c7cd | 29 | } |
haarkon | 0:ff2018f6c7cd | 30 | |
haarkon | 0:ff2018f6c7cd | 31 | do { |
haarkon | 0:ff2018f6c7cd | 32 | Pixy.setBrightness (brightness); |
haarkon | 0:ff2018f6c7cd | 33 | wait (0.2); |
haarkon | 0:ff2018f6c7cd | 34 | cr = Pixy.detectedObject (&nbNM, &nbCC); |
haarkon | 0:ff2018f6c7cd | 35 | pc.printf ("\r\nBrightness = %3d => nbCC = %2d - nbNM = %2d : cr = %2d ? ", brightness, nbCC, nbNM, cr); |
haarkon | 0:ff2018f6c7cd | 36 | msg = pc.getc(); |
haarkon | 0:ff2018f6c7cd | 37 | pc.printf("%c\r\n", msg); |
haarkon | 0:ff2018f6c7cd | 38 | if (msg=='a') brightness += 5; |
haarkon | 0:ff2018f6c7cd | 39 | if (msg=='q') brightness -= 5; |
haarkon | 0:ff2018f6c7cd | 40 | if (msg=='z') brightness += 1; |
haarkon | 0:ff2018f6c7cd | 41 | if (msg=='s') brightness -= 1; |
haarkon | 0:ff2018f6c7cd | 42 | } while (msg != 'X'); |
haarkon | 0:ff2018f6c7cd | 43 | |
haarkon | 0:ff2018f6c7cd | 44 | while (1) { |
haarkon | 0:ff2018f6c7cd | 45 | if (Pixy.checkNewImage()) { |
haarkon | 0:ff2018f6c7cd | 46 | cr = Pixy.detectedObject (&nbNM, &nbCC); |
haarkon | 0:ff2018f6c7cd | 47 | pc.printf ("\r\tnbCC = %2d - nbNM = %2d : cr = %2d\n", nbCC, nbNM, cr); |
haarkon | 0:ff2018f6c7cd | 48 | while (nbCC > 0) { |
haarkon | 0:ff2018f6c7cd | 49 | CCBuf = Pixy.getCCBloc (); |
haarkon | 0:ff2018f6c7cd | 50 | nbCC--; |
haarkon | 0:ff2018f6c7cd | 51 | pc.printf ("\rCC %5d : x=%5d, y=%5d - w=%5d, h=%5d, a=%5d\n", CCBuf.signature, CCBuf.x, CCBuf.y, CCBuf.width, CCBuf.height, (short)CCBuf.angle); |
haarkon | 0:ff2018f6c7cd | 52 | } |
haarkon | 0:ff2018f6c7cd | 53 | while (nbNM > 0) { |
haarkon | 0:ff2018f6c7cd | 54 | NMBuf = Pixy.getNMBloc (); |
haarkon | 0:ff2018f6c7cd | 55 | nbNM--; |
haarkon | 0:ff2018f6c7cd | 56 | pc.printf ("\rNM %4x : x=%5d, y=%5d - w=%5d, h=%5d\n", NMBuf.signature, NMBuf.x, NMBuf.y, NMBuf.width, NMBuf.height); |
haarkon | 0:ff2018f6c7cd | 57 | } |
haarkon | 0:ff2018f6c7cd | 58 | led1 = !led1; |
haarkon | 0:ff2018f6c7cd | 59 | led2 = !led2; |
haarkon | 0:ff2018f6c7cd | 60 | } |
haarkon | 0:ff2018f6c7cd | 61 | } |
haarkon | 0:ff2018f6c7cd | 62 | } |