![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
タイマ割り込みを用いたライントレース。 割り込み処理内でI2Cを使用することができないので、 LCD,ジャイロ関連のプログラムは省略。
Dependencies: mbed i2c_gyro_mpu_6050 AQM0802 TB6612FNG
main.cpp@0:7767f80cd27b, 2019-07-20 (annotated)
- Committer:
- yusaku0125
- Date:
- Sat Jul 20 13:54:51 2019 +0000
- Revision:
- 0:7767f80cd27b
- Child:
- 1:b71b5722e3a1
make a change in micromouse
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yusaku0125 | 0:7767f80cd27b | 1 | //モータドライバTB6612動作検証用のサンプルプログラム |
yusaku0125 | 0:7767f80cd27b | 2 | //TB6612クラスを使用して、モータA,モータBのオブジェクトを生成する。 |
yusaku0125 | 0:7767f80cd27b | 3 | //生成時のピン割当はマイコンピン割当通りに配置すること。(サンプルは適当に割りつけている。) |
yusaku0125 | 0:7767f80cd27b | 4 | #include "mbed.h" |
yusaku0125 | 0:7767f80cd27b | 5 | #include "TB6612.h" |
yusaku0125 | 0:7767f80cd27b | 6 | AnalogIn ain(A0); //モータ速度制御用アナログピン |
yusaku0125 | 0:7767f80cd27b | 7 | TB6612 motor_a(D2,D3,D4); //モータA制御用(pwma,ain1,ain2) |
yusaku0125 | 0:7767f80cd27b | 8 | TB6612 motor_b(D5,D6,D7); //モータB制御用(pwmb,bin1,bin2) |
yusaku0125 | 0:7767f80cd27b | 9 | Serial pc(USBTX,USBRX); //USBシリアル通信用 |
yusaku0125 | 0:7767f80cd27b | 10 | |
yusaku0125 | 0:7767f80cd27b | 11 | int main() { |
yusaku0125 | 0:7767f80cd27b | 12 | float motor_speed; //モータスピード情報格納用 |
yusaku0125 | 0:7767f80cd27b | 13 | char input_data; //キーボード入力情報格納用 |
yusaku0125 | 0:7767f80cd27b | 14 | while(1) { |
yusaku0125 | 0:7767f80cd27b | 15 | input_data=pc.getc(); //キーボード入力情報取得 |
yusaku0125 | 0:7767f80cd27b | 16 | motor_speed=ain.read(); //モータスピード情報取得 |
yusaku0125 | 0:7767f80cd27b | 17 | switch(input_data){ |
yusaku0125 | 0:7767f80cd27b | 18 | case '1': motor_a=motor_speed; //モータA正転 |
yusaku0125 | 0:7767f80cd27b | 19 | break; |
yusaku0125 | 0:7767f80cd27b | 20 | case '2': motor_a=0; //モータAブレーキ |
yusaku0125 | 0:7767f80cd27b | 21 | break; |
yusaku0125 | 0:7767f80cd27b | 22 | case '3': motor_a=-motor_speed; //モータA逆転 |
yusaku0125 | 0:7767f80cd27b | 23 | break; |
yusaku0125 | 0:7767f80cd27b | 24 | case '7': motor_b=motor_speed; //モータB正転 |
yusaku0125 | 0:7767f80cd27b | 25 | break; |
yusaku0125 | 0:7767f80cd27b | 26 | case '8': motor_b=0; //モータBブレーキ |
yusaku0125 | 0:7767f80cd27b | 27 | break; |
yusaku0125 | 0:7767f80cd27b | 28 | case '9': motor_b=-motor_speed; //モータB正転 |
yusaku0125 | 0:7767f80cd27b | 29 | break; |
yusaku0125 | 0:7767f80cd27b | 30 | default : motor_a=0; |
yusaku0125 | 0:7767f80cd27b | 31 | motor_b=0; //両方モータブレーキ |
yusaku0125 | 0:7767f80cd27b | 32 | break; |
yusaku0125 | 0:7767f80cd27b | 33 | } |
yusaku0125 | 0:7767f80cd27b | 34 | } |
yusaku0125 | 0:7767f80cd27b | 35 | } |