Project Paint / Mbed 2 deprecated arm_control

Dependencies:   mbed QEI biquadFilter

controller.h

Committer:
ronvbree
Date:
2016-11-02
Revision:
7:a80cb6b06320
Parent:
0:494acf21d3bc
Child:
12:8295c02d740f

File content as of revision 7:a80cb6b06320:

#include "robot.h"

class RobotController {
    private:
        // Robot
        Robot robot;
        // Serial communication for debugging purposes
        Serial debug;
        // Ticker
        Ticker ticker;
        // Controllers
        PIDController upperArmController;
        PIDController lowerArmController;
        // Reference arm lengths
        volatile float upperArmLengthReference;
        volatile float lowerArmLengthReference;
        
        // Control state flags
        volatile bool MOVE_BY_REFERENCE;
        volatile bool PAINT_MOVE_UP;
        volatile bool PAINT_MOVE_DOWN;
        
        void doTick();
        
    public:
        // Constructor
        RobotController();
        // Move the roller to a x,y coordinate
        void moveTo(float x, float y);
        // Move the arms to the indicates arm lengths
        void setArmLengths(float upper, float lower);
        // Move to max y
        void goToTop();
        // Move to min y
        void goToBottom();
        // Make a straight painting movement upwards
        void paintUp();
        // Make a straight painting movement downwards
        void paintDown();
        
        // Robot queries
        bool isKilled();
        float getUpperArmLength();
        float getLowerArmLength();
        
        // Get the robot object
        Robot* getRobot();
    
};