2017ロボコンはやとブーメランプログラム

Dependencies:   PID QEI ikarashiMDC recieveController omni

main.cpp

Committer:
WAT34
Date:
2017-09-01
Revision:
7:baf16d0c14e7
Parent:
6:0bee4b2bb400
Child:
8:c47cf4e0230c
Child:
11:68defd561031

File content as of revision 7:baf16d0c14e7:

#include "mbed.h"
#include "hayatoBoomerang.h"
#include "recieveController.h"
#include "omni.h"


Serial rs485(PC_10,PC_11,38400);
Serial serial(USBTX,USBRX);
PwmOut led(LED1);
DigitalIn button(BUTTON1);
boomerang boom(&rs485);
Thread commThread;
recieveController con(PA_0,PA_1,198);
// Serial con(PA_0,PA_1,115200);


void init()
{
  button.mode(PullUp);

 serial.baud(115200);
  //boom.calibrateArm();
  boom.setTargetMotorSpeed(0);
  boom.setTargetArmAngle(40);
}
void comm()
{
  wait_ms(10);
}

void updater()
{
  boom.update();
}

int main() {
  init();
  int angle = 5;
  bool prevAnglechange = false;
  char data[20],*data2,*data3;
  // commThread.start(&comm);
  // ticker.attach(&updater,0.01);
  while(true)
  {
    if(con.buttons[0] == 0x1000 )
      boom.fire();

    if(con.buttons[0] == 0x1800 )
    {
      boom.fire();
      boom.setTargetMotorSpeed(8000);
    }else if(con.buttons[0] == 0x800)
      boom.setTargetMotorSpeed(8000);
    else
      boom.setTargetMotorSpeed(0);

    if(con.buttons[0] == 0x80 )
    {
      if(!prevAnglechange)
        angle += 10;
      prevAnglechange =true;
    }else{
      prevAnglechange = false;
    }


    if(con.buttons[0] == 0x100)
    {
      if(!prevAnglechange)
        angle -= 10;
      prevAnglechange =true;
    }else{
      prevAnglechange =false;
    }
    if(angle < 5){
      angle = 5;
    }
    if(angle > 80 ){
      angle = 80;
    }

    boom.setTargetArmAngle(angle);
    led = boom.beltSpeed;
    boom.move(con.buttons[1],con.buttons[2],con.buttons[3]);
    boom.update();
    printf("SPPED:%f\n",boom.armAngle);
    wait_ms(20);
      /* code */
     con.update();
    // printf("whats up\n" );

  }

}