MEC-B / Mbed 2 deprecated MastarNode_AR

Dependencies:   DriveConroller IMU MDD Mycan Odometer PID RotaryEncoder UART USS mbed

Committer:
soyooo
Date:
Mon Aug 06 03:04:47 2018 +0000
Revision:
1:d7ceb38da3d8
Parent:
0:6db16ad02a1b
auto;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TanakaTarou 0:6db16ad02a1b 1 //オンボードLEDの使用宣言
TanakaTarou 0:6db16ad02a1b 2 DigitalOut LED[] = {DigitalOut(LED1),
TanakaTarou 0:6db16ad02a1b 3 DigitalOut(LED2),
TanakaTarou 0:6db16ad02a1b 4 DigitalOut(LED3),
TanakaTarou 0:6db16ad02a1b 5 DigitalOut(LED4),
TanakaTarou 0:6db16ad02a1b 6 };
TanakaTarou 0:6db16ad02a1b 7
TanakaTarou 0:6db16ad02a1b 8 //デバック用シリアル
TanakaTarou 0:6db16ad02a1b 9 Serial pc(USBTX, USBRX);
TanakaTarou 0:6db16ad02a1b 10 Serial XBEE(p28, p27);
TanakaTarou 0:6db16ad02a1b 11
TanakaTarou 0:6db16ad02a1b 12 //CAN用 (rd, td)
TanakaTarou 0:6db16ad02a1b 13 Mycan can(p30, p29);
TanakaTarou 0:6db16ad02a1b 14
TanakaTarou 0:6db16ad02a1b 15 //sbus用 (tx, rx)
TanakaTarou 0:6db16ad02a1b 16 SBUS sbus(p13, p14);
TanakaTarou 0:6db16ad02a1b 17
TanakaTarou 0:6db16ad02a1b 18 //メカナム逆運動学モデルのヤコビアン
TanakaTarou 0:6db16ad02a1b 19 float jacobian[4][3] = {{ 1, -1, -1},
TanakaTarou 0:6db16ad02a1b 20 { 1, 1, -1},
TanakaTarou 0:6db16ad02a1b 21 {-1, 1, -1},
TanakaTarou 0:6db16ad02a1b 22 {-1, -1, -1}
TanakaTarou 0:6db16ad02a1b 23 };
TanakaTarou 0:6db16ad02a1b 24
TanakaTarou 0:6db16ad02a1b 25 //(逆運動学モデル, ホイールの計算100%定義)
TanakaTarou 0:6db16ad02a1b 26 DriveController mecanum(jacobian, 0.95);
TanakaTarou 0:6db16ad02a1b 27
TanakaTarou 0:6db16ad02a1b 28 //(計算周期時間[s], sla, sld)
TanakaTarou 0:6db16ad02a1b 29 IMU imu(0.005, p9, p10);
TanakaTarou 0:6db16ad02a1b 30
TanakaTarou 0:6db16ad02a1b 31 //(pwmPin, direPin)
TanakaTarou 0:6db16ad02a1b 32 MDD Motor[4] = { MDD(p22, p21),
TanakaTarou 0:6db16ad02a1b 33 MDD(p24, p23),
TanakaTarou 0:6db16ad02a1b 34 MDD(p25, p20),
TanakaTarou 0:6db16ad02a1b 35 MDD(p26, p19)
TanakaTarou 0:6db16ad02a1b 36 };
TanakaTarou 0:6db16ad02a1b 37
TanakaTarou 0:6db16ad02a1b 38 Timer timer;
TanakaTarou 0:6db16ad02a1b 39
TanakaTarou 0:6db16ad02a1b 40 //(A相, B相)
TanakaTarou 0:6db16ad02a1b 41 RotaryEncoder enc[3] = {RotaryEncoder(p5 , p6 , &timer, 100),
TanakaTarou 0:6db16ad02a1b 42 RotaryEncoder(p18, p17, &timer, 100),
TanakaTarou 0:6db16ad02a1b 43 RotaryEncoder(p16, p15, &timer, 100),
TanakaTarou 0:6db16ad02a1b 44 };
TanakaTarou 0:6db16ad02a1b 45
TanakaTarou 0:6db16ad02a1b 46 //(trig, echo)
TanakaTarou 0:6db16ad02a1b 47 USS uss(p11, p12);
TanakaTarou 0:6db16ad02a1b 48
TanakaTarou 0:6db16ad02a1b 49 //コントローラー入力のための構造体
TanakaTarou 0:6db16ad02a1b 50 typedef struct controller {
TanakaTarou 0:6db16ad02a1b 51 float LX, LY, RX, RY;
TanakaTarou 0:6db16ad02a1b 52 int A,B,C,D,E,F,G,H;
TanakaTarou 0:6db16ad02a1b 53 int fail_safe;
TanakaTarou 0:6db16ad02a1b 54 } controller;