部ロボ受信機のプログラムです。

Dependencies:   mbed HCSR04

main.cpp

Committer:
WAT34
Date:
2015-01-12
Revision:
3:43e85adf8768
Parent:
2:5c47df2771ec

File content as of revision 3:43e85adf8768:

#include "mbed.h"

DigitalOut trig(p19);
DigitalOut echo(p20);
Serial pc(USBTX,USBRX);
Serial trans(p9,p10);
DigitalOut myled(LED1);
DigitalOut led2(LED2);
BusOut mc(p23,p24,p25,p26);
PwmOut m1(p21);
PwmOut m2(p22);
BusOut updown(p27,p28);
BusOut slidem(p17,p18);
void move(int a,int b,int c,int d)
{
    int width = 5.0;
    int seiten = 10;
    int gyaku = 5;
    int l = 6;
    int r = 9;
    int stop = 0;
    double mp1,mp2,mp3;
    mp1 = (c-1)/100.0;
    mp2 = 1.0-((d-1)/100.0);
    mp3 = (d/100.0);
    //pc.printf("mp1*mp2--->%f\n\r",mp1*mp2);
    //pc.printf("mp1--->%f",mp1);
    if(d>b+width)
    {
        if(c>b+width)
        {
            mc = seiten;
            m1 = mp1;
            m2 = mp1*mp2;
        }else if(c<b-width)
        {
           mc = gyaku;
           m2 = 1-mp1;
           m1 = (1-mp1)*mp2;
        }else{
            mc = l;
            m1 = 1-mp2;
            m2 = 1-mp2;
        }
    }else if(d < b -width){
        if(c>b+width)
        {
            mc = seiten;
            m1 = mp1*mp3;
            m2 = mp1;
        }else if(c<b-width)
        {
           mc = gyaku;
           m2 = (1-mp1)*mp3;
           m1 = 1-mp1;
        }else{
            mc = r;
            m1 = mp2;
            m2 = mp2;
        }
    }else
    {
        if(c>b+width)
        {
            mc = seiten;
            m1 = mp1;
            m2 = mp1;
        }else if(c<b-width)
        {
           mc = gyaku;
           m1 = 1-mp1;
           m2 = 1-mp1;
        }else{
            mc = stop;
            m1 = 0;
            m2 = 0;
        }
    }
}
void up_down(int a,int b)
{
    if (a == 0)
    {
        updown = 1;
    }else
    if (b == 0){
        updown = 2;
    }else{
        updown = 0;
    }
}

void slide(int a,int b)
{
    if(a == 0)
    {
        slidem = 1;
    }else
    if(b == 0)
    {
        slidem = 2;
    }else{
        slidem = 0;
    }
}

int main() 
{
    int8_t nx,ny,x,y,down_val,up_val,slidel,slider;
    while(1) {
        if (trans.getc()== 255){
            nx =trans.getc();
            ny =trans.getc();
            x = trans.getc();
            y = trans.getc();
            up_val = trans.getc();
            down_val = trans.getc();
            slidel = trans.getc();
            slider = trans.getc();
            move(nx,ny,x,y);
            up_down(up_val,down_val);
            slide(slidel,slider);                    
        }
    }      
}