mech / Mbed 2 deprecated line-trace3

Dependencies:   mbed line-trace2

Committer:
isshikiyuya
Date:
Fri Dec 07 09:34:18 2018 +0000
Revision:
1:a8fad3c66162
Parent:
0:764148148257
Child:
2:deefc81cf5a5
l

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isshikiyuya 1:a8fad3c66162 1 #include "function.h"
isshikiyuya 0:764148148257 2
isshikiyuya 0:764148148257 3 PwmOut pwm11(D5); //左正転
isshikiyuya 0:764148148257 4 PwmOut pwm12(D1); //左逆転
isshikiyuya 0:764148148257 5 PwmOut pwm21(D6); //右正転
isshikiyuya 0:764148148257 6 PwmOut pwm22(D9); //右逆転
isshikiyuya 0:764148148257 7 DigitalOut LED(D2);
isshikiyuya 0:764148148257 8 InterruptIn button1(A1); //フォトインタラプタ
isshikiyuya 0:764148148257 9 InterruptIn button2(A2); //フォトインタラプタ
isshikiyuya 0:764148148257 10 AnalogIn in1(A3); //フォトリフレクタ左
isshikiyuya 0:764148148257 11 AnalogIn in2(A4); //フォトリフレクタ真ん中
isshikiyuya 0:764148148257 12 AnalogIn in3(A6); //フォトリフレクタ右
isshikiyuya 0:764148148257 13
isshikiyuya 0:764148148257 14 float thr1 = 0.70f;
isshikiyuya 0:764148148257 15 float thr2 = 0.70f;
isshikiyuya 0:764148148257 16 float thr3 = 0.70f;
isshikiyuya 0:764148148257 17 int judge1 = 0;
isshikiyuya 0:764148148257 18 int judge2 = 0;
isshikiyuya 0:764148148257 19 int judge3 = 0;
isshikiyuya 0:764148148257 20
isshikiyuya 0:764148148257 21 int main() {
isshikiyuya 0:764148148257 22 pwm11.period(0.01f); //100Hz
isshikiyuya 0:764148148257 23 pwm12.period(0.01f); //100Hz
isshikiyuya 0:764148148257 24 pwm21.period(0.01f); //100Hz
isshikiyuya 0:764148148257 25 pwm22.period(0.01f); //100Hz
isshikiyuya 0:764148148257 26 button1.rise(&flip1);
isshikiyuya 0:764148148257 27 button2.rise(&flip2);
isshikiyuya 0:764148148257 28 int n;//3biteで状態を表現
isshikiyuya 0:764148148257 29
isshikiyuya 0:764148148257 30 while(1) {
isshikiyuya 0:764148148257 31
isshikiyuya 1:a8fad3c66162 32 if( count1 + count2 > 43*2*12){ //200mm毎にLEDを点滅
isshikiyuya 0:764148148257 33 LED = 1.0f;
isshikiyuya 0:764148148257 34 wait(0.5f);
isshikiyuya 0:764148148257 35 LED = 0;
isshikiyuya 0:764148148257 36 count1 = 0;
isshikiyuya 0:764148148257 37 count2 = 0;
isshikiyuya 0:764148148257 38 }
isshikiyuya 1:a8fad3c66162 39 //////////////////floatのinをintのjudgeに変換
isshikiyuya 0:764148148257 40 if(in1 > thr1){
isshikiyuya 0:764148148257 41 judge1 = 1;
isshikiyuya 0:764148148257 42 }
isshikiyuya 0:764148148257 43 else{
isshikiyuya 0:764148148257 44 judge1 = 0;
isshikiyuya 0:764148148257 45 }
isshikiyuya 0:764148148257 46 if(in2 > thr2){
isshikiyuya 0:764148148257 47 judge2 = 1;
isshikiyuya 0:764148148257 48 }
isshikiyuya 0:764148148257 49 else{
isshikiyuya 0:764148148257 50 judge2 = 0;
isshikiyuya 0:764148148257 51 }
isshikiyuya 0:764148148257 52 if(in3 > thr3){
isshikiyuya 0:764148148257 53 judge3 = 1;
isshikiyuya 0:764148148257 54 }
isshikiyuya 0:764148148257 55 else{
isshikiyuya 0:764148148257 56 judge3 = 0;
isshikiyuya 0:764148148257 57 }
isshikiyuya 0:764148148257 58 /////////////////
isshikiyuya 0:764148148257 59 n = judge1 + judge2*2 + judge3*4;
isshikiyuya 1:a8fad3c66162 60 /* distance = (distance1 + distance2) / 2;
isshikiyuya 1:a8fad3c66162 61 if(ditance < 43*12*){
isshikiyuya 1:a8fad3c66162 62 */
isshikiyuya 1:a8fad3c66162 63 switch(n){
isshikiyuya 1:a8fad3c66162 64 case(2)://白黒白進む
isshikiyuya 1:a8fad3c66162 65 pwm11.write(0.30f);
isshikiyuya 0:764148148257 66 pwm12.write(0.00f);
isshikiyuya 1:a8fad3c66162 67 pwm21.write(0.30f);
isshikiyuya 0:764148148257 68 pwm22.write(0.00f);
isshikiyuya 0:764148148257 69 break;
isshikiyuya 1:a8fad3c66162 70
isshikiyuya 1:a8fad3c66162 71 case(0)://白白白
isshikiyuya 0:764148148257 72 pwm11.write(0.10f);
isshikiyuya 0:764148148257 73 pwm12.write(0.10f);
isshikiyuya 0:764148148257 74 pwm21.write(0.10f);
isshikiyuya 0:764148148257 75 pwm22.write(0.10f);
isshikiyuya 0:764148148257 76 break;
isshikiyuya 0:764148148257 77
isshikiyuya 1:a8fad3c66162 78 case(1)://黒白白左回転
isshikiyuya 0:764148148257 79 pwm11.write(0.20f);
isshikiyuya 0:764148148257 80 pwm12.write(0.00f);
isshikiyuya 1:a8fad3c66162 81 pwm21.write(0.05f);
isshikiyuya 0:764148148257 82 pwm22.write(0.00f);
isshikiyuya 0:764148148257 83 break;
isshikiyuya 0:764148148257 84
isshikiyuya 1:a8fad3c66162 85 case(4)://白白黒右回転
isshikiyuya 1:a8fad3c66162 86 pwm11.write(0.05f);
isshikiyuya 0:764148148257 87 pwm12.write(0.00f);
isshikiyuya 0:764148148257 88 pwm21.write(0.20f);
isshikiyuya 0:764148148257 89 pwm22.write(0.00f);
isshikiyuya 0:764148148257 90 break;
isshikiyuya 0:764148148257 91
isshikiyuya 1:a8fad3c66162 92 default://それ以外
isshikiyuya 0:764148148257 93 pwm11.write(0.00f);
isshikiyuya 0:764148148257 94 pwm12.write(0.00f);
isshikiyuya 0:764148148257 95 pwm21.write(0.00f);
isshikiyuya 0:764148148257 96 pwm22.write(0.00f);
isshikiyuya 0:764148148257 97 break;
isshikiyuya 0:764148148257 98
isshikiyuya 0:764148148257 99 }
isshikiyuya 0:764148148257 100 }
isshikiyuya 0:764148148257 101 }