2018年度計器mbed用プログラム

Dependencies:   BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS

Fork of keiki2017 by albatross

Files at this revision

API Documentation at this revision

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

Fusokukei.h Show annotated file Show diff for this revision Revisions of this file
SoftwareSerial.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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();