てすと

Dependencies:   BOARDC_BNO055 mbed BOARDC_BME280

Committer:
Yamanobe
Date:
Wed Nov 28 05:04:30 2018 +0000
Revision:
0:8c0d8dc9eeac
???1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yamanobe 0:8c0d8dc9eeac 1 #include "mbed.h"
Yamanobe 0:8c0d8dc9eeac 2 #include "BNO055.h"
Yamanobe 0:8c0d8dc9eeac 3 #include "BME280.h"
Yamanobe 0:8c0d8dc9eeac 4
Yamanobe 0:8c0d8dc9eeac 5 DigitalOut m1_dir(p23);
Yamanobe 0:8c0d8dc9eeac 6 PwmOut m1_duty(p24);
Yamanobe 0:8c0d8dc9eeac 7 DigitalOut m2_dir(p21);
Yamanobe 0:8c0d8dc9eeac 8 PwmOut m2_duty(p22);
Yamanobe 0:8c0d8dc9eeac 9
Yamanobe 0:8c0d8dc9eeac 10 DigitalOut led1(LED1);
Yamanobe 0:8c0d8dc9eeac 11 DigitalOut led2(LED2);
Yamanobe 0:8c0d8dc9eeac 12
Yamanobe 0:8c0d8dc9eeac 13 Serial pc(USBTX, USBRX);
Yamanobe 0:8c0d8dc9eeac 14 I2C ifaceI2C(I2C_SDA, I2C_SCL); //センサー用のI2C
Yamanobe 0:8c0d8dc9eeac 15 BOARDC_BNO055 sensor1(&ifaceI2C);//センサーで使うI2Cの定義
Yamanobe 0:8c0d8dc9eeac 16
Yamanobe 0:8c0d8dc9eeac 17 float pitch, roll;
Yamanobe 0:8c0d8dc9eeac 18 int i = 1.0;
Yamanobe 0:8c0d8dc9eeac 19 int k = 0.0;
Yamanobe 0:8c0d8dc9eeac 20 float p;
Yamanobe 0:8c0d8dc9eeac 21
Yamanobe 0:8c0d8dc9eeac 22 int main()
Yamanobe 0:8c0d8dc9eeac 23 {
Yamanobe 0:8c0d8dc9eeac 24 char co;
Yamanobe 0:8c0d8dc9eeac 25 ifaceI2C.frequency(200000);
Yamanobe 0:8c0d8dc9eeac 26 sensor1.initialize(false);
Yamanobe 0:8c0d8dc9eeac 27 short dataBox[12];
Yamanobe 0:8c0d8dc9eeac 28 float scEUL;
Yamanobe 0:8c0d8dc9eeac 29 scEUL = sensor1.getEulerScale();
Yamanobe 0:8c0d8dc9eeac 30
Yamanobe 0:8c0d8dc9eeac 31 pc.printf("Chaek Driver.\n");
Yamanobe 0:8c0d8dc9eeac 32
Yamanobe 0:8c0d8dc9eeac 33 while(1)
Yamanobe 0:8c0d8dc9eeac 34 {
Yamanobe 0:8c0d8dc9eeac 35 wait(0.1);
Yamanobe 0:8c0d8dc9eeac 36 co=pc.getc();
Yamanobe 0:8c0d8dc9eeac 37 pc.putc(co);
Yamanobe 0:8c0d8dc9eeac 38 sensor1.get9AxisAndEUL(dataBox);
Yamanobe 0:8c0d8dc9eeac 39 roll = (float)dataBox[10] * scEUL;
Yamanobe 0:8c0d8dc9eeac 40 pitch = (float)dataBox[11] * scEUL;
Yamanobe 0:8c0d8dc9eeac 41
Yamanobe 0:8c0d8dc9eeac 42 m1_duty.write(p);
Yamanobe 0:8c0d8dc9eeac 43 m2_duty.write(p);
Yamanobe 0:8c0d8dc9eeac 44
Yamanobe 0:8c0d8dc9eeac 45 switch(co)
Yamanobe 0:8c0d8dc9eeac 46 {
Yamanobe 0:8c0d8dc9eeac 47 case'w':
Yamanobe 0:8c0d8dc9eeac 48 m1_dir = i;
Yamanobe 0:8c0d8dc9eeac 49 m2_dir =1.0 - i ;
Yamanobe 0:8c0d8dc9eeac 50 p = 0.95;
Yamanobe 0:8c0d8dc9eeac 51 break;
Yamanobe 0:8c0d8dc9eeac 52
Yamanobe 0:8c0d8dc9eeac 53 case'd':
Yamanobe 0:8c0d8dc9eeac 54 m1_dir = i;
Yamanobe 0:8c0d8dc9eeac 55 m2_dir = i;
Yamanobe 0:8c0d8dc9eeac 56 p = 0.95;
Yamanobe 0:8c0d8dc9eeac 57 break;
Yamanobe 0:8c0d8dc9eeac 58
Yamanobe 0:8c0d8dc9eeac 59 case's':
Yamanobe 0:8c0d8dc9eeac 60 m1_dir = 1.0 - i;
Yamanobe 0:8c0d8dc9eeac 61 m2_dir = i;
Yamanobe 0:8c0d8dc9eeac 62 p = 0.95;
Yamanobe 0:8c0d8dc9eeac 63 break;
Yamanobe 0:8c0d8dc9eeac 64
Yamanobe 0:8c0d8dc9eeac 65 case'a':
Yamanobe 0:8c0d8dc9eeac 66 m1_dir = 1.0 - i;
Yamanobe 0:8c0d8dc9eeac 67 m2_dir = 1.0 - i;
Yamanobe 0:8c0d8dc9eeac 68 p = 0.95;
Yamanobe 0:8c0d8dc9eeac 69 break;
Yamanobe 0:8c0d8dc9eeac 70
Yamanobe 0:8c0d8dc9eeac 71 case'e':
Yamanobe 0:8c0d8dc9eeac 72 p = 0.0;
Yamanobe 0:8c0d8dc9eeac 73 break;
Yamanobe 0:8c0d8dc9eeac 74
Yamanobe 0:8c0d8dc9eeac 75 case'c':
Yamanobe 0:8c0d8dc9eeac 76 pc.printf("%05.4f,%05.4f\n", pitch,roll);
Yamanobe 0:8c0d8dc9eeac 77 break;
Yamanobe 0:8c0d8dc9eeac 78 }
Yamanobe 0:8c0d8dc9eeac 79 }
Yamanobe 0:8c0d8dc9eeac 80 }