2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Revision 13:09e05e7cfca1, committed 2016-11-19
- Comitter:
- tsumagari
- Date:
- Sat Nov 19 10:50:35 2016 +0000
- Parent:
- 12:f01c1ba847ac
- Child:
- 14:60d335bfa878
- Commit message:
- Fusokukei.h?AIR_K???2017??????????
Changed in this revision
--- a/Fusokukei.h Sat Nov 12 12:03:02 2016 +0000 +++ b/Fusokukei.h Sat Nov 19 10:50:35 2016 +0000 @@ -4,7 +4,7 @@ #include "mbed.h" -#define AIR_K 0.14737 +#define AIR_K 4.70581884 //0.14737 #define AIR_N 1.12 #define AIR_A 1.4314 #define AIR_B 0.209 @@ -18,6 +18,7 @@ float air_sum[AIR_SUM_NUM] = {0.0}; class Fusokukei{ + double r; protected: public: @@ -34,7 +35,8 @@ } void calcAirSpeed(float x){ - air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow((double)x, 1 / AIR_N); + r = x/150; + air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow(r, 1 / AIR_N); if(air_counter % AIR_SUM_NUM == 0) air_counter = 0; airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM);
--- a/SoftwareSerial.lib Sat Nov 12 12:03:02 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/users/chag/code/SoftwareSerial/#d0cef2633383
--- a/main.cpp Sat Nov 12 12:03:02 2016 +0000 +++ b/main.cpp Sat Nov 19 10:50:35 2016 +0000 @@ -3,7 +3,6 @@ #include "Fusokukei.h" #include "MPU6050.h" #include "SDFileSystem.h" -#include "SoftwareSerial.h" #define KX_VALUE_MIN 0.4 #define KX_VALUE_MAX 0.8 @@ -19,13 +18,12 @@ #define INIT_SERVO_PERIOD_MS 20 Serial pc(USBTX,USBRX); +Serial soudaSerial(p13,p14); Serial twe(p9,p10); -Serial cadenceTwe(p13,p14); -SoftwareSerial soudaSerial(p24,p23); -//Ticker writeDatasTicker; +Ticker writeDatasTicker; Timer writeTimer; -InterruptIn FusokukeiPin(p30); +InterruptIn FusokukeiPin(p21); Ticker FusokukeiTicker; Fusokukei air; volatile int air_kaitensu= 0; @@ -49,10 +47,9 @@ SDFileSystem sd(p5, p6, p7, p8, "sd"); FILE* fp; -PwmOut kisokuServo(p26); -PwmOut geikakuServo(p22); +PwmOut kisokuServo(p22); +PwmOut geikakuServo(p26); -float cadence; char soudaDatas[SOUDA_DATAS_NUM]; float writeDatas[SD_WRITE_NUM][WRITE_DATAS_NUM]; volatile int write_datas_index = 0; @@ -63,8 +60,6 @@ void FusokukeiInit(); void MpuInit(); void mpuProcessing(); -void cadenceRead(); -void cadenceInit(); void SdInit(); void DataReceiveFromSouda(); void WriteDatas(); @@ -82,7 +77,6 @@ void init(){ twe.baud(115200); -// test.baud(300); //writeTimer.start(); kisokuServo.period_ms(INIT_SERVO_PERIOD_MS); geikakuServo.period_ms(INIT_SERVO_PERIOD_MS); @@ -163,34 +157,6 @@ } } -void cadenceInit(){ - cadenceTwe.baud(115200); - -} - -void cadenceRead(){ - if(twe.readable()){ - data[data_count]=twe.getc(); - - if(data[data_count]=='\r'){ - for(int i=0;i<73;i++) data[i]= NULL; - data_num=0; - data_count=0; - }else{ - if(data[data_count]==';'){ - data_num++; - } - if(data_num==15){ - z_int = (int)data[data_count-1] + (int)data[data_count-2]*10 + (int)data[data_count-3]*100 - offset*111; - if(data[data_count-4]!='0') z_int *= -1; - cadence = (double)z_int/6; //角度補正前ふつうに - } - data_count++; - }//else - - } //readable -} - void SdInit(){ mkdir("/sd/mydir", 0777); fp = fopen("/sd/mydir/sdtest2.csv", "w"); @@ -205,7 +171,7 @@ led2 = !led2; //pc.printf("received\n\r"); for(int i = 0; i < SOUDA_DATAS_NUM; i++){ - if(soudaSerial.readable()) soudaDatas[i] = (char)soudaSerial.getc(); + if(soudaSerial.readable()) soudaDatas[i] = soudaSerial.getc(); } } @@ -310,9 +276,7 @@ int main(){ init(); while(1){ -// pc.printf("test\n\r"); -// if(test.readable()) pc.printf("%d ",test.getc()); -// pc.printf("<-softserial\n\r"); + pc.printf("test\n\r"); mpuProcessing(); RollAlarm(); DataReceiveFromSouda();