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

Dependencies:   ACM1602NI Ping mbed-rtos mbed

Revision:
0:27bf77b6ec71
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Mar 10 07:56:41 2014 +0000
@@ -0,0 +1,60 @@
+// Master側プログラム
+
+#include <math.h>
+#include "mbed.h"
+#include "rtos.h"
+#include "ACM1602NI.h"
+#include "Ping.h"
+
+#define PI 3.14159265358979 // 円周率πの定義
+
+#include "PinMode.h"
+#include "GlobalVariable.h"
+#include "Prototype.h"
+
+#include "I2C_Master.h"
+#include "HMC6352.h"
+#include "Moter.h"
+#include "RotarySW.h"
+
+
+void SW_Start(void) {
+    sw_flag = !sw_flag;
+}
+
+
+int main() {
+    /*---- 初期化処理 ----*/
+    SW1.rise(&SW_Start);
+    MoterReset(0, 0, 0);
+    COMPASS_RESET();
+    wait(0.7);
+
+
+    /*---- modeを確認 ----*/
+    
+    MBED_MODE(); wait(1.0);
+
+    /*---- 各モードに移行 ----*/
+    lcd.locate(0, 0);
+    switch(Mode[0]) {
+        case 0: lcd.printf("FW");              while(1) FW();         
+        case 1: lcd.printf("DF");              while(1) DF();         
+        case 2: lcd.printf("DEBUG_IR");        while(1) DEBUG_IR();   
+        case 3: lcd.printf("DEBUG_PING");      while(1) DEBUG_PING(); 
+        case 4: lcd.printf("DEBUG_ANGLE");     while(1) DEBUG_ANGLE();
+        case 5: lcd.printf("DEBUG_KICKER");    while(1) DEBUG_KICKER();
+        case 6: lcd.printf("DEBUG_MOTER");     while(1) DEBUG_MOTER();
+        case 7: lcd.printf("DEBUG_LINE");      while(1) DEBUG_LINE(); 
+        case 8: lcd.printf("FW");              while(1) FW();         
+        case 9: lcd.printf("FW");              while(1) FW();         
+        default: return 0;
+    }
+}
+
+
+
+
+
+
+