ロボカップのブロック大会2014で使用したプログラムです。 ロボットには、mbedを2台使ってI2C通信しています。 これはMaster側です。 ※独自規格を使用しています。

Dependencies:   ACM1602NI Ping mbed-rtos mbed

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?

UserRevisionLine numberNew 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