The subsystem design/basis for the final project
Dependencies: mbed-rtos mbed-src pixylib
global.cpp
- Committer:
- balsamfir
- Date:
- 2016-03-14
- Revision:
- 3:dfb6733ae397
- Parent:
- 2:2bc519e14bae
- Child:
- 5:f655435d0782
File content as of revision 3:dfb6733ae397:
#include "global.h" // IO Port DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalOut leftDir(p29); DigitalOut rightDir(p30); DigitalOut spiReset(p11); DigitalOut ioReset(p12); // Comunication SPI deSpi(p5, p6, p7); Pixy pixy(Pixy::SPI, p11, p12, p13); Serial pc(USBTX, USBRX); // PC serial channel Serial bt(p9, p10); // Bluetooth serial channel // Other PwmOut leftPwm(p21); PwmOut rightPwm(p22); InterruptIn bumper(p8); // Generic PI controller function used by the sensor control thread void PI(float error, float *output, float *integral, float kP, float kI, float bound) { // Avoid integrator wind up if((*output >= bound)||(*output <= -bound)); else { *integral = *integral + error; } *output = kI * (*integral) + kP * error; // Limit output to bounds if (*output > bound) { *output = bound; } else if (*output < -bound) { *output = -bound; } } // Converts measurements from the QE2 to rads/sec float QE2RadsPerSec(short counts, short time) { int cnt32; if (counts & 0x00008000) { cnt32 = counts | 0xFFFF0000; } else { cnt32 = counts; } return (cnt32*122.62)/time; }