toritsusinsi

Dependencies:   mbed

main.cpp

Committer:
syosyo
Date:
2019-09-19
Revision:
1:3befbf3f2f2b
Parent:
0:890eb2d5097f

File content as of revision 1:3befbf3f2f2b:

#include "mbed.h"

BusOut lmotor(PA_0,PA_1);
BusOut rmotor(PB_4,PB_5);

DigitalOut test_led(PA_7);

AnalogOut rvset(PA_5);
AnalogOut lvset(PA_4);

AnalogIn gyro(PB_1);

Ticker count_time;

float timec = 0;
const float Kp = 100;
const float Kd = 0;
uint16_t motor = 0;
double deg = 0;
double bdeg = 0;
double sensor;
float unti;
uint16_t vset = 0;


void isr(){
    timec += 0.1;
    //sensor = (double)((gyro.read() * 3.3)-1.35) / (0.67 * 1000.0);
    sensor = 180;
    bdeg = sensor; 
    deg += (double)(sensor * 0.1);

    motor = 10 * (0 - deg) - Kd * sensor;
    if(motor < 0){
        lmotor = 0b10;
        rmotor = 0b10;
    }
    else if(motor > 0){
        lmotor = 0b01;
        rmotor = 0b01;
    }
    else{
        lmotor = 0b00;
        rmotor = 0b00;
    }

}

void speed(void){
    uint16_t num = motor / 5000;
    rvset.write(num);
    lvset.write(num);
}

int main(){  
    wait(3);
    count_time.attach(&isr, 0.1);
    for(;;){
        unti = sensor;
        speed();
        wait(0.1);
        test_led = 1;
        printf("deg  :%lf\n",deg);
        printf("moter:%lf\n",motor);
        printf("deg/s:%f\n",((gyro.read()* 3.3)-1.42)/(0.67/1000));
        //printf("time:%f\n",timec);
    }
}