Tatsuya Yamamoto / Mbed 2 deprecated UV_Robot_Nucleo

Dependencies:   mbed X_NUCLEO_PLC01A1 ros_lib_melodic

Committer:
yamadola
Date:
Sun Aug 30 06:39:43 2020 +0000
Revision:
3:ea5cfd721b53
Parent:
0:43eb9ccc1583
This code includes all functions for Amabie.; However, I have never debugged it with the real body.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamadola 0:43eb9ccc1583 1 #include "wheel.h"
yamadola 0:43eb9ccc1583 2
yamadola 0:43eb9ccc1583 3 /**
yamadola 0:43eb9ccc1583 4 * @brief Constractor of Wheel class
yamadola 0:43eb9ccc1583 5 * @param pCanController: Address of CAN controller
yamadola 0:43eb9ccc1583 6 * @param pPlcController: Address of PLC controller
yamadola 0:43eb9ccc1583 7 */
yamadola 0:43eb9ccc1583 8 Wheel::Wheel(CANController *pCanController, PLCController *pPlcController )
yamadola 0:43eb9ccc1583 9 :_leftWheel( lWheelID, pCanController ), _rightWheel( rWheelID, pCanController ),
yamadola 0:43eb9ccc1583 10 _brake(brakePin, pPlcController),
yamadola 0:43eb9ccc1583 11 _brakeState(0)
yamadola 0:43eb9ccc1583 12 {}
yamadola 0:43eb9ccc1583 13
yamadola 0:43eb9ccc1583 14 /**
yamadola 0:43eb9ccc1583 15 * @brief Initialize wheels
yamadola 0:43eb9ccc1583 16 * @param None
yamadola 0:43eb9ccc1583 17 * @retval None
yamadola 0:43eb9ccc1583 18 */
yamadola 0:43eb9ccc1583 19 void Wheel::init(){
yamadola 0:43eb9ccc1583 20 _leftWheel.motorInit();
yamadola 0:43eb9ccc1583 21 _rightWheel.motorInit();
yamadola 0:43eb9ccc1583 22 }
yamadola 0:43eb9ccc1583 23
yamadola 0:43eb9ccc1583 24 /**
yamadola 0:43eb9ccc1583 25 * @brief Drive wheels
yamadola 0:43eb9ccc1583 26 * @param None
yamadola 0:43eb9ccc1583 27 * @retval None
yamadola 0:43eb9ccc1583 28 */
yamadola 0:43eb9ccc1583 29 void Wheel::drive(){
yamadola 0:43eb9ccc1583 30 if( _brakeState == 1 ){
yamadola 0:43eb9ccc1583 31 _brake = 0;
yamadola 0:43eb9ccc1583 32 _brakeState = 0;
yamadola 0:43eb9ccc1583 33 wait(0.5);
yamadola 0:43eb9ccc1583 34 }
yamadola 0:43eb9ccc1583 35 _leftWheel.drive();
yamadola 0:43eb9ccc1583 36 _rightWheel.drive();
yamadola 0:43eb9ccc1583 37 }
yamadola 0:43eb9ccc1583 38
yamadola 0:43eb9ccc1583 39 /**
yamadola 0:43eb9ccc1583 40 * @brief Stop wheels
yamadola 0:43eb9ccc1583 41 * @param None
yamadola 0:43eb9ccc1583 42 * @retval None
yamadola 0:43eb9ccc1583 43 */
yamadola 0:43eb9ccc1583 44 void Wheel::stop(){
yamadola 0:43eb9ccc1583 45 _leftWheel.stop();
yamadola 0:43eb9ccc1583 46 _rightWheel.stop();
yamadola 0:43eb9ccc1583 47 }
yamadola 0:43eb9ccc1583 48
yamadola 0:43eb9ccc1583 49 /**
yamadola 0:43eb9ccc1583 50 * @brief Sets angular velocities of wheels
yamadola 0:43eb9ccc1583 51 * @param lVelocity: Anguglar velocity of the left wheel [rpm]
yamadola 0:43eb9ccc1583 52 * @param rVelocity: Anguglar velocity of the right wheel [rpm]
yamadola 0:43eb9ccc1583 53 * @retval None
yamadola 0:43eb9ccc1583 54 */
yamadola 0:43eb9ccc1583 55 void Wheel::setVelocity( float lVelocity, float rVelocity ){
yamadola 0:43eb9ccc1583 56 _leftWheel.setAngularVelocity( lVelocity );
yamadola 0:43eb9ccc1583 57 _rightWheel.setAngularVelocity( rVelocity );
yamadola 0:43eb9ccc1583 58 }
yamadola 0:43eb9ccc1583 59
yamadola 0:43eb9ccc1583 60 /**
yamadola 0:43eb9ccc1583 61 * @brief Stop wheels and Turn on the wheels' brake
yamadola 0:43eb9ccc1583 62 * @param None
yamadola 0:43eb9ccc1583 63 * @retval None
yamadola 0:43eb9ccc1583 64 */
yamadola 0:43eb9ccc1583 65 void Wheel::brake(){
yamadola 0:43eb9ccc1583 66 Wheel::stop();
yamadola 0:43eb9ccc1583 67 wait(0.1);
yamadola 0:43eb9ccc1583 68 _brake = 1;
yamadola 0:43eb9ccc1583 69 _brakeState = 1;
yamadola 3:ea5cfd721b53 70 }
yamadola 3:ea5cfd721b53 71
yamadola 3:ea5cfd721b53 72 float Wheel::getBatteryVoltage(){
yamadola 3:ea5cfd721b53 73 return _leftWheel.getInputVoltage()*0.1;
yamadola 0:43eb9ccc1583 74 }