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

Dependencies:   PID QEI ikarashiMDC recieveController omni

hayatoBoomerang.h

Committer:
WAT34
Date:
2017-09-13
Revision:
12:9d21189a8eb0
Parent:
11:68defd561031
Child:
17:311aed3cad15

File content as of revision 12:9d21189a8eb0:

#ifndef HAYATOBOOMERANG_H
#define HAYATOBOOMERANG_H

#include "mbed.h"
#include "ikarashiMDC.h"
#include "PID.h"
#include "QEI.h"
#include "Spiral.h"
#include "pinConfig.h"
#include "omni.h"

#define DEG_TO_RAD 0.017453292519943295769236907684886
#define RAD_TO_DEG 57.295779513082320876798154814105

#define radians(deg) ((deg)*DEG_TO_RAD)
#define degrees(rad) ((rad)*RAD_TO_DEG)

class boomerang
{
public:
  boomerang(Serial *serail_); // Create boomerang instance
  bool fire(); // Fire boomerang
  void setTargetMotorSpeed(const int& targetRPM);
  void setTargetArmAngle(const int& targetArmAngle); // 0 to 90
  int calibrateArm();
  void update();
  double motorRPM;
  double armAngle;
  bool calibrating;
  double beltSpeed;
  void move(const uint8_t& x,const uint8_t& y,const uint8_t& moment);
private:
  QEI *armEncoder;
  ikarashiMDC* armMotor,*shootingMotor,*beltMotor,*spiralMotor;
  ikarashiMDC *omniMotor[5];
  InterruptIn *speedEncoder;
  InterruptIn* armLimit;
  DigitalOut *rscs;
  PID *speedPID,*armPID;
  Timer rpmCalc;
  Timeout beltTime;
  Spiral* spiral;
  Omni *omni;
  void endCalibration();
  void beltStop();
  bool firing;

  void shootingEncoderCount();


};


#endif /* end of include guard: HAYATOBOOMERANG_H */