Group 9 BioRobotics
/
motor_calibration
V0.1
Fork of motor_calibration by
main.cpp@1:53bb5928adcf, 2018-10-26 (annotated)
- Committer:
- kweisbeek
- Date:
- Fri Oct 26 07:36:28 2018 +0000
- Revision:
- 1:53bb5928adcf
- Parent:
- 0:1045216da12e
- Child:
- 2:ea985bb173f6
V0.2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kweisbeek | 0:1045216da12e | 1 | #include "mbed.h" |
kweisbeek | 0:1045216da12e | 2 | |
kweisbeek | 0:1045216da12e | 3 | |
kweisbeek | 0:1045216da12e | 4 | //initial allocations |
kweisbeek | 0:1045216da12e | 5 | DigitalOut dirpin(D4); |
kweisbeek | 0:1045216da12e | 6 | PwmOut pwmpin(D5); |
kweisbeek | 0:1045216da12e | 7 | QEI Encoder(D12,D13,NC,64,QEI::X4_ENCODING); |
kweisbeek | 0:1045216da12e | 8 | |
kweisbeek | 1:53bb5928adcf | 9 | |
kweisbeek | 1:53bb5928adcf | 10 | |
kweisbeek | 0:1045216da12e | 11 | //volatiles |
kweisbeek | 0:1045216da12e | 12 | volatile counts_prev=0; |
kweisbeek | 0:1045216da12e | 13 | |
kweisbeek | 1:53bb5928adcf | 14 | |
kweisbeek | 1:53bb5928adcf | 15 | |
kweisbeek | 1:53bb5928adcf | 16 | //functions (4 functions not finished) |
kweisbeek | 0:1045216da12e | 17 | int counts(){ |
kweisbeek | 0:1045216da12e | 18 | int counts=Encoder.getPulses(); //MAAK NOG AF MET PREVIOUS COUNTS ONTHOUDEN. |
kweisbeek | 1:53bb5928adcf | 19 | return counts; |
kweisbeek | 1:53bb5928adcf | 20 | |
kweisbeek | 1:53bb5928adcf | 21 | int pos_store(a){} //store position in counts to know count location of the ends of bridge |
kweisbeek | 1:53bb5928adcf | 22 | |
kweisbeek | 1:53bb5928adcf | 23 | void rotate_start(){} //start rotation of disk |
kweisbeek | 1:53bb5928adcf | 24 | |
kweisbeek | 1:53bb5928adcf | 25 | void rotate_stop(){} //stop rotation of disk |
kweisbeek | 0:1045216da12e | 26 | |
kweisbeek | 0:1045216da12e | 27 | |
kweisbeek | 1:53bb5928adcf | 28 | |
kweisbeek | 1:53bb5928adcf | 29 | //main function |
kweisbeek | 0:1045216da12e | 30 | int main(){ |
kweisbeek | 0:1045216da12e | 31 | pwmpin.period_us(60); |
kweisbeek | 0:1045216da12e | 32 | |
kweisbeek | 0:1045216da12e | 33 | //parameters |
kweisbeek | 0:1045216da12e | 34 | int caltime=30; //calibration time until condition has been met, caltime=(time/0.1) |
kweisbeek | 0:1045216da12e | 35 | float speed=0.50f; |
kweisbeek | 1:53bb5928adcf | 36 | int dir=0; |
kweisbeek | 1:53bb5928adcf | 37 | int counts_end=; //amount of counts for 360 degrees rotation of main disk --> many revolutions of motor |
kweisbeek | 0:1045216da12e | 38 | |
kweisbeek | 0:1045216da12e | 39 | //move towards end |
kweisbeek | 0:1045216da12e | 40 | for (m=1;2;m++){ |
kweisbeek | 0:1045216da12e | 41 | dirpin.write(dir); |
kweisbeek | 0:1045216da12e | 42 | pwmpin = speed; |
kweisbeek | 0:1045216da12e | 43 | //when motor counts do not change anymore, change direction |
kweisbeek | 1:53bb5928adcf | 44 | int n=1; |
kweisbeek | 1:53bb5928adcf | 45 | while(n=1){ |
kweisbeek | 0:1045216da12e | 46 | for (n=1;caltime;n++){ |
kweisbeek | 0:1045216da12e | 47 | if (counts()!=counts_prev){ |
kweisbeek | 0:1045216da12e | 48 | n=0;} |
kweisbeek | 0:1045216da12e | 49 | else {} |
kweisbeek | 1:53bb5928adcf | 50 | wait(0.1);} |
kweisbeek | 1:53bb5928adcf | 51 | int position=counts();} |
kweisbeek | 1:53bb5928adcf | 52 | dir=dir+1; |
kweisbeek | 1:53bb5928adcf | 53 | pos_store(position);} //stores position integer |
kweisbeek | 1:53bb5928adcf | 54 | |
kweisbeek | 1:53bb5928adcf | 55 | //Check if a full circle can be made without obstruction |
kweisbeek | 1:53bb5928adcf | 56 | //Try adding a timer as well, you know how long it should take, how long does it actually take? Does that matter? |
kweisbeek | 1:53bb5928adcf | 57 | rotate_start(); |
kweisbeek | 1:53bb5928adcf | 58 | while(1){ |
kweisbeek | 1:53bb5928adcf | 59 | if counts2_zero()>=counts2_end{ |
kweisbeek | 1:53bb5928adcf | 60 | break;} |
kweisbeek | 1:53bb5928adcf | 61 | else {} |
kweisbeek | 1:53bb5928adcf | 62 | wait(0.01);} |
kweisbeek | 1:53bb5928adcf | 63 | rotate_stop(); |
kweisbeek | 1:53bb5928adcf | 64 | pos_store(counts2()); |
kweisbeek | 1:53bb5928adcf | 65 | //End sequence? |
kweisbeek | 1:53bb5928adcf | 66 | } |
kweisbeek | 0:1045216da12e | 67 | |
kweisbeek | 0:1045216da12e | 68 | |
kweisbeek | 0:1045216da12e | 69 |