Interface Library for Madpulse RC Car

Dependents:   Madpulse_Speed_Control_temp Madpulse_Speed_Control_Students

Revision:
0:5e55308aa7a6
Child:
1:6bba42f337e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/madpulse.h	Tue Nov 14 13:50:19 2017 +0000
@@ -0,0 +1,80 @@
+#ifndef MADPULSE_H
+#define MADPULSE_H
+#include "utilityFunctions.h"
+#include "mbed.h"
+#include "ServoIn.h"
+#include "ServoOut.h"
+#include "NeoStrip.h"
+#include "BNO055.h"
+#include "mavlink.h"
+
+static DigitalOut imu_LED(LED1);
+static DigitalOut wheel_LED(LED2);
+static DigitalOut dwm_LED(LED3);
+static DigitalOut auto_LED(LED4);
+static DigitalOut auto_mode(p26);
+
+
+typedef struct vector3{
+    float x,y,z;
+    }vector3;
+    
+    
+class MadPulse {
+        
+    public:
+    MadPulse(uint8_t id,Serial *port, BNO055 *imu, ServoIn *CH1,ServoIn *CH2, InterruptIn *irq, ServoOut *Steer, ServoOut *Throttle);
+    
+    uint8_t id;
+    vector3 pos;
+    vector3 vel;
+    vector3 accel;
+    vector3 gyro;
+    vector3 mag;    
+    angles euler;
+    int counts;
+    bool auto_flag;
+    
+    void getRCIn();
+    void getAccel();
+    void getGyro();
+    void getMag();
+    void getEuler();
+    void getSpeed();
+    void getPos();
+    int getCounts(){return counts;}
+    float getFreq(){return wheel_freq;}    
+    void resetEnc();
+    uint8_t sendMessage(Serial *obj,char* msg,uint8_t len);    
+    
+    void setSteer(float ang);
+    void setThrottle(float thr);
+    float wheel_freq,wheel_freq_old;
+    ServoIn *_CH1;
+    ServoIn *_CH2;
+    
+    private:
+    PinName _sdaPin, _sclPin, _ch1Pin, _ch2Pin,_encPin, _strPin, _thrPin;
+    BNO055 *_imu;
+    Serial *_port;
+
+    InterruptIn *_wheel_irq;
+    ServoOut *_Steer;
+    ServoOut *_Throttle;
+    Ticker *_ticker;         //pointer to ticker object
+    char buf[64];
+    
+    mavlink_local_position_ned_t pose;
+    
+    void sampleData();
+    void wheelCallback();
+    void rxCallback();
+    int parseMessage(char  * msg);
+    void sendDWMessage(uint8_t* msg,uint16_t len);
+    bool rc_conn;
+    float t_ws,dt_ws,dt,dt_old;
+    float wheel_spd;
+    Timer ti;
+    };
+    
+    #endif
\ No newline at end of file