Main repository for dump truck API development in Spring 2017
Dependencies: Tracker mbed MotorV2 SRF05 nRF24L01P
Fork of DUMP_TRUCK_TEST_V1 by
Activities
This Week
If needed, please contact Milo Pan at mpan9@gatech.edu for rights and access to this repository.
DumpTruck.h
- Committer:
- simplyellow
- Date:
- 2017-04-25
- Revision:
- 15:a4bbdde8ed69
- Parent:
- 14:fd6090cddc2e
- Child:
- 16:6530f62dd28b
File content as of revision 15:a4bbdde8ed69:
/** * @file DumpTruck.h * * @brief DumpTruck class integrates multiple sensors into one API. * * @author Terrabots Team * */ #ifndef MBED_DUMP_TRUCK_H #define MBED_DUMP_TRUCK_H #include "mbed.h" #include "Tracker.h" //#include "IMU.h" #include "Motor.h" #include "nRF24L01P.h" //Transceiver library #include "SRF05.h" #include "commands.h" #define TRANSFER_SIZE 8 // ADD SWITCHES & ULTRASONIC SENSOR implementation /** * @class DumpTruck * * @brief Interface for controlling a Dump truck. */ class DumpTruck { public: /** * Constructor for the Tracker object. * * @param[in] truckId The dump truck's identifier */ DumpTruck(int truckId); /* * Process command, parsing it and calling the associated function. */ void processCommand(); /* * Send not acknowledge to base station. */ void sendNack(); /* * Send acknowledge to base station. */ void sendAck(); /* * Initialize transceiver and other miscellaneous devices. */ void startComms(); /* * Receive a command from base station. */ void getCommand(); /* * Send important data back to the base station. */ void reportData(); // motor functions /* * Drive a certain distance at a desired speed. */ void driveDistance();// frontMotor /* * Drive at a desired speed. */ void drive(); /* * Turn the rear wheels a certain angle. */ void turn(); // turnMotor /* * Move the dump truck's bed up/down a certain angle. */ void moveBed(); // bedMotor /* * Stop driving. */ void stopDrive(); // all Motors /* * Stop turning. */ void stopTurn(); // all Motors /* * Stop all motors if an object comes within range of the * ultrasonic sensor */ void detectStop(); /* * Stop bed. */ void stopBed(); // all Motors // ultrasonic functions /* * Read from the ultrasonic sensor and determine the dump truck's * proximity from objects. */ bool detect(); // returns bool for object too close int txDataCnt; int rxDataCnt; char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; char acked[TRANSFER_SIZE]; char nacked[TRANSFER_SIZE]; bool received; int numCommands; int commandValue; typedef void (DumpTruck::*funcArray)(void); funcArray commArr[sizeof(commands)/sizeof(*commands)]; float zeroAngle; bool interrupted; protected: Tracker *track; //IMU *bed; Motor *frontMotor; Motor *turnMotor; Motor *bedMotor; nRF24L01P *nrf; //Transceiver *nrf; SRF05 *srf; AnalogIn *pot; // add direct control for motor, switch, and ultrasonic sensor. int truckNumber; // motor variables float speed; // drive float distance; // drive float potAngle; // turn float bedAngle; // bed // bed-specific variables bool switchState; // BusIn the two limit switches // ultrasonic-specific variables bool tooClose; float proximity; /*int txDataCnt; int rxDataCnt; char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; bool received;*/ }; #endif