10/25/2015
Dependencies: PID mbed MaxSonar eeprom iSerial Fork_Boss_Communication_Robot
main.cpp@4:e6ab360e7de6, 2015-10-23 (annotated)
- Committer:
- palmdotax
- Date:
- Fri Oct 23 18:40:26 2015 +0000
- Revision:
- 4:e6ab360e7de6
- Parent:
- 3:365615fa646e
- Child:
- 5:68b740d113e6
V4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
palmdotax | 0:f02641e3fb91 | 1 | #include"mbed.h" |
palmdotax | 1:7c3dbf140bfc | 2 | #include "move.h" |
palmdotax | 0:f02641e3fb91 | 3 | #include "PID.h" |
palmdotax | 1:7c3dbf140bfc | 4 | |
palmdotax | 3:365615fa646e | 5 | DigitalOut led1(LED1); |
palmdotax | 4:e6ab360e7de6 | 6 | InterruptIn encoderA(D10); |
palmdotax | 4:e6ab360e7de6 | 7 | InterruptIn encoderB(D11); |
palmdotax | 2:933d3edf38da | 8 | Timer timerStart; |
palmdotax | 3:365615fa646e | 9 | Timeout timecount; |
palmdotax | 1:7c3dbf140bfc | 10 | move m1; |
palmdotax | 4:e6ab360e7de6 | 11 | PID P1(0.005,0.005,0,0.1); |
palmdotax | 0:f02641e3fb91 | 12 | |
palmdotax | 0:f02641e3fb91 | 13 | //DigitalIn encoderB(D5); |
palmdotax | 0:f02641e3fb91 | 14 | |
palmdotax | 0:f02641e3fb91 | 15 | |
palmdotax | 0:f02641e3fb91 | 16 | Serial pc(SERIAL_TX,SERIAL_RX); |
palmdotax | 0:f02641e3fb91 | 17 | int Encoderpos = 0; |
palmdotax | 3:365615fa646e | 18 | float valocity =0,pulse=0,count=0; |
palmdotax | 3:365615fa646e | 19 | float outPID =0; |
palmdotax | 3:365615fa646e | 20 | //double Input,Output,setp,Kp=0.005,Ki=0.005,Kd=0; |
palmdotax | 3:365615fa646e | 21 | |
palmdotax | 0:f02641e3fb91 | 22 | |
palmdotax | 0:f02641e3fb91 | 23 | void EncoderA() |
palmdotax | 0:f02641e3fb91 | 24 | { if(encoderB==0) |
palmdotax | 0:f02641e3fb91 | 25 | { Encoderpos = Encoderpos + 1;} |
palmdotax | 0:f02641e3fb91 | 26 | else |
palmdotax | 0:f02641e3fb91 | 27 | { Encoderpos = Encoderpos -1;} |
palmdotax | 1:7c3dbf140bfc | 28 | |
palmdotax | 0:f02641e3fb91 | 29 | //Encoderpos = Encoderpos + 1; |
palmdotax | 3:365615fa646e | 30 | // valocity+=1; |
palmdotax | 1:7c3dbf140bfc | 31 | // pc.printf("%d \n",Encoderpos); |
palmdotax | 3:365615fa646e | 32 | pulse+=1; |
palmdotax | 3:365615fa646e | 33 | if(pulse>=128) |
palmdotax | 3:365615fa646e | 34 | {count+=1;pulse=0;} |
palmdotax | 0:f02641e3fb91 | 35 | } |
palmdotax | 0:f02641e3fb91 | 36 | |
palmdotax | 0:f02641e3fb91 | 37 | |
palmdotax | 3:365615fa646e | 38 | /*void EncoderB() |
palmdotax | 0:f02641e3fb91 | 39 | { |
palmdotax | 0:f02641e3fb91 | 40 | if(encoderA==1) |
palmdotax | 0:f02641e3fb91 | 41 | { Encoderpos = Encoderpos + 1;} |
palmdotax | 0:f02641e3fb91 | 42 | else |
palmdotax | 0:f02641e3fb91 | 43 | { Encoderpos = Encoderpos -1;} |
palmdotax | 0:f02641e3fb91 | 44 | pc.printf("%d",Encoderpos); |
palmdotax | 3:365615fa646e | 45 | }*/ |
palmdotax | 3:365615fa646e | 46 | void getRPM() |
palmdotax | 3:365615fa646e | 47 | { |
palmdotax | 3:365615fa646e | 48 | valocity=count; |
palmdotax | 4:e6ab360e7de6 | 49 | pc.printf("%f \n",valocity); |
palmdotax | 3:365615fa646e | 50 | count=0; |
palmdotax | 4:e6ab360e7de6 | 51 | timerStart.reset(); |
palmdotax | 0:f02641e3fb91 | 52 | } |
palmdotax | 0:f02641e3fb91 | 53 | |
palmdotax | 0:f02641e3fb91 | 54 | int main() |
palmdotax | 0:f02641e3fb91 | 55 | { |
palmdotax | 4:e6ab360e7de6 | 56 | |
palmdotax | 0:f02641e3fb91 | 57 | pc.baud(115200); |
palmdotax | 0:f02641e3fb91 | 58 | encoderA.rise(&EncoderA); |
palmdotax | 2:933d3edf38da | 59 | timerStart.start(); |
palmdotax | 2:933d3edf38da | 60 | |
palmdotax | 2:933d3edf38da | 61 | |
palmdotax | 2:933d3edf38da | 62 | P1.setMode(1); |
palmdotax | 4:e6ab360e7de6 | 63 | |
palmdotax | 4:e6ab360e7de6 | 64 | P1.setSetPoint(20); |
palmdotax | 2:933d3edf38da | 65 | P1.setBias(0); |
palmdotax | 3:365615fa646e | 66 | pc.printf("READY \n"); |
palmdotax | 4:e6ab360e7de6 | 67 | led1=1; |
palmdotax | 0:f02641e3fb91 | 68 | while(1) |
palmdotax | 3:365615fa646e | 69 | |
palmdotax | 2:933d3edf38da | 70 | { |
palmdotax | 3:365615fa646e | 71 | |
palmdotax | 4:e6ab360e7de6 | 72 | if(timerStart.read()==60) |
palmdotax | 4:e6ab360e7de6 | 73 | { |
palmdotax | 4:e6ab360e7de6 | 74 | getRPM(); |
palmdotax | 4:e6ab360e7de6 | 75 | } |
palmdotax | 4:e6ab360e7de6 | 76 | //timecount.attach(&getRPM, 60); |
palmdotax | 4:e6ab360e7de6 | 77 | P1.setProcessValue(valocity); |
palmdotax | 3:365615fa646e | 78 | // m1.movespeed(1,1.0); |
palmdotax | 4:e6ab360e7de6 | 79 | outPID=P1.compute(); |
palmdotax | 4:e6ab360e7de6 | 80 | m1.movespeed(1,outPID); |
palmdotax | 4:e6ab360e7de6 | 81 | |
palmdotax | 2:933d3edf38da | 82 | wait(0.1); |
palmdotax | 1:7c3dbf140bfc | 83 | |
palmdotax | 0:f02641e3fb91 | 84 | // pc.printf("%d \n",Encoderpos); |
palmdotax | 0:f02641e3fb91 | 85 | |
palmdotax | 0:f02641e3fb91 | 86 | } |
palmdotax | 0:f02641e3fb91 | 87 | } |