ロボカップのブロック大会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
denden 0:27bf77b6ec71 2
denden 0:27bf77b6ec71 3
denden 0:27bf77b6ec71 4
denden 0:27bf77b6ec71 5 // 基準角度を求める
denden 0:27bf77b6ec71 6 void COMPASS_RESET(void) {
denden 0:27bf77b6ec71 7 Compass_mode[0] = 0x47;
denden 0:27bf77b6ec71 8 Compass_mode[1] = 0x74;
denden 0:27bf77b6ec71 9 Compass_mode[2] = 0x72;
denden 0:27bf77b6ec71 10 I2C_mbed.write(compass_addr, Compass_mode, 3);
denden 0:27bf77b6ec71 11
denden 0:27bf77b6ec71 12 float compass = 0.0;
denden 0:27bf77b6ec71 13 for (int i=0; i<10; i++) {
denden 0:27bf77b6ec71 14 val = I2C_mbed.read(compass_addr, Compass_mode, 2);
denden 0:27bf77b6ec71 15 if(!val) led4 = 1;
denden 0:27bf77b6ec71 16 compass += 0.1 * ((Compass_mode[0] << 8) + Compass_mode[1]);
denden 0:27bf77b6ec71 17 }
denden 0:27bf77b6ec71 18 Compass_Base = compass / 10.0;
denden 0:27bf77b6ec71 19 lcd.locate(0, 1); lcd.printf("%5.1f", Compass_Base);
denden 0:27bf77b6ec71 20 }
denden 0:27bf77b6ec71 21
denden 0:27bf77b6ec71 22
denden 0:27bf77b6ec71 23
denden 0:27bf77b6ec71 24
denden 0:27bf77b6ec71 25
denden 0:27bf77b6ec71 26 // 現在の向いている方向を求める
denden 0:27bf77b6ec71 27 void COMPASS(void) {
denden 0:27bf77b6ec71 28 Compass = 0.0;
denden 0:27bf77b6ec71 29 val = I2C_mbed.read(compass_addr, Compass_mode, 2);
denden 0:27bf77b6ec71 30 Compass = 0.1 * ((Compass_mode[0] << 8) + Compass_mode[1]);
denden 0:27bf77b6ec71 31 Compass -= Compass_Base;
denden 0:27bf77b6ec71 32
denden 0:27bf77b6ec71 33 if (Compass >= 180.0) Compass -= 360.0;
denden 0:27bf77b6ec71 34 if (Compass < -180.0) Compass += 360.0;
denden 0:27bf77b6ec71 35
denden 0:27bf77b6ec71 36 if(!val)led1 = 1; else led1 = 0;
denden 0:27bf77b6ec71 37 }
denden 0:27bf77b6ec71 38
denden 0:27bf77b6ec71 39
denden 0:27bf77b6ec71 40
denden 0:27bf77b6ec71 41
denden 0:27bf77b6ec71 42