SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.

Dependencies:   TSI USBDevice mbed-dev

Fork of SmartWheels by haofan Zheng

Hardwares/Motor.h

Committer:
Bobymicjohn
Date:
2017-02-07
Revision:
11:676ea42afd56
Parent:
9:b72e18f80f49
Child:
44:15de535c4005

File content as of revision 11:676ea42afd56:

#pragma once

#include <mbed.h>

#define MotorDir unsigned char
#define MDIR_Forward  1
#define MDIR_Backward 0

namespace SW
{
    class Core;
}

class Motor{

public:
    Motor(SW::Core& core);
    
    ~Motor();
    
    void Update(float deltaTime);
    
    void setLeftSpeed(float speed);
    
    void setRightSpeed(float speed);
    
    void setSpeeds(float speedLeft, float speedRight);
    
    void setLeftDirection(MotorDir dir);
    
    void setRightDirection(MotorDir dir);
    
    void setDirections(MotorDir dirL, MotorDir dirR);

private:

    SW::Core& m_core;
    
    DigitalOut m_dirL;
    DigitalOut m_dirR;
    
    PwmOut m_pwmL;
    PwmOut m_pwmR;
    
    Motor();
};