ロボカップのブロック大会2014で使用したプログラムです。 ロボットには、mbedを2台使ってI2C通信しています。 これはMaster側です。 ※独自規格を使用しています。
Dependencies: ACM1602NI Ping mbed-rtos mbed
main.cpp@0:27bf77b6ec71, 2014-03-10 (annotated)
- Committer:
- denden
- Date:
- Mon Mar 10 07:56:41 2014 +0000
- Revision:
- 0:27bf77b6ec71
????????????2014?????????????; ???????mbed?2????I2C????????; ???Master????; ; ??????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
denden | 0:27bf77b6ec71 | 1 | // Master側プログラム |
denden | 0:27bf77b6ec71 | 2 | |
denden | 0:27bf77b6ec71 | 3 | #include <math.h> |
denden | 0:27bf77b6ec71 | 4 | #include "mbed.h" |
denden | 0:27bf77b6ec71 | 5 | #include "rtos.h" |
denden | 0:27bf77b6ec71 | 6 | #include "ACM1602NI.h" |
denden | 0:27bf77b6ec71 | 7 | #include "Ping.h" |
denden | 0:27bf77b6ec71 | 8 | |
denden | 0:27bf77b6ec71 | 9 | #define PI 3.14159265358979 // 円周率πの定義 |
denden | 0:27bf77b6ec71 | 10 | |
denden | 0:27bf77b6ec71 | 11 | #include "PinMode.h" |
denden | 0:27bf77b6ec71 | 12 | #include "GlobalVariable.h" |
denden | 0:27bf77b6ec71 | 13 | #include "Prototype.h" |
denden | 0:27bf77b6ec71 | 14 | |
denden | 0:27bf77b6ec71 | 15 | #include "I2C_Master.h" |
denden | 0:27bf77b6ec71 | 16 | #include "HMC6352.h" |
denden | 0:27bf77b6ec71 | 17 | #include "Moter.h" |
denden | 0:27bf77b6ec71 | 18 | #include "RotarySW.h" |
denden | 0:27bf77b6ec71 | 19 | |
denden | 0:27bf77b6ec71 | 20 | |
denden | 0:27bf77b6ec71 | 21 | void SW_Start(void) { |
denden | 0:27bf77b6ec71 | 22 | sw_flag = !sw_flag; |
denden | 0:27bf77b6ec71 | 23 | } |
denden | 0:27bf77b6ec71 | 24 | |
denden | 0:27bf77b6ec71 | 25 | |
denden | 0:27bf77b6ec71 | 26 | int main() { |
denden | 0:27bf77b6ec71 | 27 | /*---- 初期化処理 ----*/ |
denden | 0:27bf77b6ec71 | 28 | SW1.rise(&SW_Start); |
denden | 0:27bf77b6ec71 | 29 | MoterReset(0, 0, 0); |
denden | 0:27bf77b6ec71 | 30 | COMPASS_RESET(); |
denden | 0:27bf77b6ec71 | 31 | wait(0.7); |
denden | 0:27bf77b6ec71 | 32 | |
denden | 0:27bf77b6ec71 | 33 | |
denden | 0:27bf77b6ec71 | 34 | /*---- modeを確認 ----*/ |
denden | 0:27bf77b6ec71 | 35 | |
denden | 0:27bf77b6ec71 | 36 | MBED_MODE(); wait(1.0); |
denden | 0:27bf77b6ec71 | 37 | |
denden | 0:27bf77b6ec71 | 38 | /*---- 各モードに移行 ----*/ |
denden | 0:27bf77b6ec71 | 39 | lcd.locate(0, 0); |
denden | 0:27bf77b6ec71 | 40 | switch(Mode[0]) { |
denden | 0:27bf77b6ec71 | 41 | case 0: lcd.printf("FW"); while(1) FW(); |
denden | 0:27bf77b6ec71 | 42 | case 1: lcd.printf("DF"); while(1) DF(); |
denden | 0:27bf77b6ec71 | 43 | case 2: lcd.printf("DEBUG_IR"); while(1) DEBUG_IR(); |
denden | 0:27bf77b6ec71 | 44 | case 3: lcd.printf("DEBUG_PING"); while(1) DEBUG_PING(); |
denden | 0:27bf77b6ec71 | 45 | case 4: lcd.printf("DEBUG_ANGLE"); while(1) DEBUG_ANGLE(); |
denden | 0:27bf77b6ec71 | 46 | case 5: lcd.printf("DEBUG_KICKER"); while(1) DEBUG_KICKER(); |
denden | 0:27bf77b6ec71 | 47 | case 6: lcd.printf("DEBUG_MOTER"); while(1) DEBUG_MOTER(); |
denden | 0:27bf77b6ec71 | 48 | case 7: lcd.printf("DEBUG_LINE"); while(1) DEBUG_LINE(); |
denden | 0:27bf77b6ec71 | 49 | case 8: lcd.printf("FW"); while(1) FW(); |
denden | 0:27bf77b6ec71 | 50 | case 9: lcd.printf("FW"); while(1) FW(); |
denden | 0:27bf77b6ec71 | 51 | default: return 0; |
denden | 0:27bf77b6ec71 | 52 | } |
denden | 0:27bf77b6ec71 | 53 | } |
denden | 0:27bf77b6ec71 | 54 | |
denden | 0:27bf77b6ec71 | 55 | |
denden | 0:27bf77b6ec71 | 56 | |
denden | 0:27bf77b6ec71 | 57 | |
denden | 0:27bf77b6ec71 | 58 | |
denden | 0:27bf77b6ec71 | 59 | |
denden | 0:27bf77b6ec71 | 60 |