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

Dependencies:   ACM1602NI Ping mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // Master側プログラム
00002 
00003 #include <math.h>
00004 #include "mbed.h"
00005 #include "rtos.h"
00006 #include "ACM1602NI.h"
00007 #include "Ping.h"
00008 
00009 #define PI 3.14159265358979 // 円周率πの定義
00010 
00011 #include "PinMode.h"
00012 #include "GlobalVariable.h"
00013 #include "Prototype.h"
00014 
00015 #include "I2C_Master.h"
00016 #include "HMC6352.h"
00017 #include "Moter.h"
00018 #include "RotarySW.h"
00019 
00020 
00021 void SW_Start(void) {
00022     sw_flag = !sw_flag;
00023 }
00024 
00025 
00026 int main() {
00027     /*---- 初期化処理 ----*/
00028     SW1.rise(&SW_Start);
00029     MoterReset(0, 0, 0);
00030     COMPASS_RESET();
00031     wait(0.7);
00032 
00033 
00034     /*---- modeを確認 ----*/
00035     
00036     MBED_MODE(); wait(1.0);
00037 
00038     /*---- 各モードに移行 ----*/
00039     lcd.locate(0, 0);
00040     switch(Mode[0]) {
00041         case 0: lcd.printf("FW");              while(1) FW();         
00042         case 1: lcd.printf("DF");              while(1) DF();         
00043         case 2: lcd.printf("DEBUG_IR");        while(1) DEBUG_IR();   
00044         case 3: lcd.printf("DEBUG_PING");      while(1) DEBUG_PING(); 
00045         case 4: lcd.printf("DEBUG_ANGLE");     while(1) DEBUG_ANGLE();
00046         case 5: lcd.printf("DEBUG_KICKER");    while(1) DEBUG_KICKER();
00047         case 6: lcd.printf("DEBUG_MOTER");     while(1) DEBUG_MOTER();
00048         case 7: lcd.printf("DEBUG_LINE");      while(1) DEBUG_LINE(); 
00049         case 8: lcd.printf("FW");              while(1) FW();         
00050         case 9: lcd.printf("FW");              while(1) FW();         
00051         default: return 0;
00052     }
00053 }
00054 
00055 
00056 
00057 
00058 
00059 
00060