ROBOSTEP_5期 / Mbed 2 deprecated George_Master_Param

Dependencies:   mbed robot

sensors/sensors.cpp

Committer:
shimizuta
Date:
2019-05-03
Revision:
21:14133581387b
Child:
22:0ed9de464f40

File content as of revision 21:14133581387b:

#include "sensors.h"
//filter [0]:forward, [1]: back
const float kOldWeight = 0.5;
const float kOutVal = 500; //<0.1が返ってきたときに返す値
LowPassFilter lowpassfilter[2] = {LowPassFilter(kOldWeight),LowPassFilter(kOldWeight),};

HCSR04 sensor_forward(p11,p12);
HCSR04 sensor_back(p17, p18);

float GetFilteredDist_cm(HCSR04 & sensor, LowPassFilter & filter)
{
    sensor.start();
    float raw_data = sensor.get_dist_cm();
    if(raw_data < 0.1)//0.1以下なら前回の値を返す
        return kOutVal;
    filter.SetData(raw_data);
    float dist = filter.GetData();
//    DEBUG("raw %.3f, filter %.3f\r\n", raw_data,dist);
    return dist;
}

double get_dist_forward()
{
    return GetFilteredDist_cm(sensor_forward,lowpassfilter[0]);
}
double get_dist_back()
{
    return GetFilteredDist_cm(sensor_back,lowpassfilter[1]);
}