![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
UMO
Dependencies: mbed pixy pixy_cam
main.cpp@0:640a85b62ac6, 2015-12-10 (annotated)
- Committer:
- srijani987
- Date:
- Thu Dec 10 02:25:58 2015 +0000
- Revision:
- 0:640a85b62ac6
UMO
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
srijani987 | 0:640a85b62ac6 | 1 | #include "mbed.h" |
srijani987 | 0:640a85b62ac6 | 2 | #include "Pixy.h" |
srijani987 | 0:640a85b62ac6 | 3 | |
srijani987 | 0:640a85b62ac6 | 4 | // init board |
srijani987 | 0:640a85b62ac6 | 5 | Pixy pixy(Pixy::SPI, p11, p12, p13); |
srijani987 | 0:640a85b62ac6 | 6 | Serial pc(USBTX, USBRX); |
srijani987 | 0:640a85b62ac6 | 7 | DigitalOut pin1(p24); |
srijani987 | 0:640a85b62ac6 | 8 | DigitalOut pin2(p25); |
srijani987 | 0:640a85b62ac6 | 9 | DigitalOut led1(LED1); |
srijani987 | 0:640a85b62ac6 | 10 | |
srijani987 | 0:640a85b62ac6 | 11 | #if defined(TARGET_LPC1768) |
srijani987 | 0:640a85b62ac6 | 12 | Serial blue(p9, p10); // TX, RX |
srijani987 | 0:640a85b62ac6 | 13 | //Serial blue(p13, p14); // TX, RX |
srijani987 | 0:640a85b62ac6 | 14 | #elif defined(TARGET_LPC4330_M4) |
srijani987 | 0:640a85b62ac6 | 15 | Serial blue(P6_4, P6_5); // UART0_TX, UART0_RX |
srijani987 | 0:640a85b62ac6 | 16 | //Serial blue(P2_3, P2_4); // UART3_TX, UART3_RX |
srijani987 | 0:640a85b62ac6 | 17 | #endif |
srijani987 | 0:640a85b62ac6 | 18 | |
srijani987 | 0:640a85b62ac6 | 19 | // global vars |
srijani987 | 0:640a85b62ac6 | 20 | int num_readings = 0; |
srijani987 | 0:640a85b62ac6 | 21 | int total_y = 0; |
srijani987 | 0:640a85b62ac6 | 22 | float result = 0; |
srijani987 | 0:640a85b62ac6 | 23 | |
srijani987 | 0:640a85b62ac6 | 24 | // funcs |
srijani987 | 0:640a85b62ac6 | 25 | void get_volume(int i); |
srijani987 | 0:640a85b62ac6 | 26 | |
srijani987 | 0:640a85b62ac6 | 27 | int main() { |
srijani987 | 0:640a85b62ac6 | 28 | |
srijani987 | 0:640a85b62ac6 | 29 | pin1 = 1; |
srijani987 | 0:640a85b62ac6 | 30 | pin2 = 0; |
srijani987 | 0:640a85b62ac6 | 31 | |
srijani987 | 0:640a85b62ac6 | 32 | // init pixy |
srijani987 | 0:640a85b62ac6 | 33 | pc.printf("ready\n\r"); |
srijani987 | 0:640a85b62ac6 | 34 | pixy.setSerialOutput(&pc); |
srijani987 | 0:640a85b62ac6 | 35 | |
srijani987 | 0:640a85b62ac6 | 36 | while (1) { |
srijani987 | 0:640a85b62ac6 | 37 | |
srijani987 | 0:640a85b62ac6 | 38 | // get pixy data |
srijani987 | 0:640a85b62ac6 | 39 | uint16_t blocks; |
srijani987 | 0:640a85b62ac6 | 40 | blocks = pixy.getBlocks(); |
srijani987 | 0:640a85b62ac6 | 41 | |
srijani987 | 0:640a85b62ac6 | 42 | // store data |
srijani987 | 0:640a85b62ac6 | 43 | if (blocks) { |
srijani987 | 0:640a85b62ac6 | 44 | //led1 = 1; |
srijani987 | 0:640a85b62ac6 | 45 | for (int j = 0; j < blocks; j++) { |
srijani987 | 0:640a85b62ac6 | 46 | get_volume(pixy.blocks[j].y); |
srijani987 | 0:640a85b62ac6 | 47 | //led1 = 1; |
srijani987 | 0:640a85b62ac6 | 48 | if(result >= 30.0) |
srijani987 | 0:640a85b62ac6 | 49 | {//led1 = 1; |
srijani987 | 0:640a85b62ac6 | 50 | pin1 = 0; |
srijani987 | 0:640a85b62ac6 | 51 | pin2 = 1;} |
srijani987 | 0:640a85b62ac6 | 52 | if(result < 2.0){ |
srijani987 | 0:640a85b62ac6 | 53 | pin2 = 0; |
srijani987 | 0:640a85b62ac6 | 54 | pin1 = 1; } |
srijani987 | 0:640a85b62ac6 | 55 | |
srijani987 | 0:640a85b62ac6 | 56 | |
srijani987 | 0:640a85b62ac6 | 57 | } |
srijani987 | 0:640a85b62ac6 | 58 | } |
srijani987 | 0:640a85b62ac6 | 59 | } |
srijani987 | 0:640a85b62ac6 | 60 | } |
srijani987 | 0:640a85b62ac6 | 61 | |
srijani987 | 0:640a85b62ac6 | 62 | |
srijani987 | 0:640a85b62ac6 | 63 | void get_volume(int y) { |
srijani987 | 0:640a85b62ac6 | 64 | |
srijani987 | 0:640a85b62ac6 | 65 | // led1 = 1; |
srijani987 | 0:640a85b62ac6 | 66 | |
srijani987 | 0:640a85b62ac6 | 67 | // update data |
srijani987 | 0:640a85b62ac6 | 68 | total_y += y; |
srijani987 | 0:640a85b62ac6 | 69 | num_readings++; |
srijani987 | 0:640a85b62ac6 | 70 | |
srijani987 | 0:640a85b62ac6 | 71 | // output results |
srijani987 | 0:640a85b62ac6 | 72 | if (num_readings > 30) { |
srijani987 | 0:640a85b62ac6 | 73 | float average_y = (float)total_y/num_readings; |
srijani987 | 0:640a85b62ac6 | 74 | result = -0.2642*average_y + 38.453; |
srijani987 | 0:640a85b62ac6 | 75 | pc.printf("Volume is : %.2f mL\r\n", result); |
srijani987 | 0:640a85b62ac6 | 76 | blue.printf("Volume is : %.2f mL\r\n", result); |
srijani987 | 0:640a85b62ac6 | 77 | |
srijani987 | 0:640a85b62ac6 | 78 | |
srijani987 | 0:640a85b62ac6 | 79 | // reset vars |
srijani987 | 0:640a85b62ac6 | 80 | num_readings = 0; |
srijani987 | 0:640a85b62ac6 | 81 | total_y = 0; |
srijani987 | 0:640a85b62ac6 | 82 | } |
srijani987 | 0:640a85b62ac6 | 83 | } |