ロボカップのブロック大会2014で使用したプログラムです。 ロボットには、mbedを2台使ってI2C通信しています。 これはMaster側です。 ※独自規格を使用しています。
Dependencies: ACM1602NI Ping mbed-rtos mbed
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
Generated on Mon Jul 18 2022 12:28:24 by 1.7.2