Alex Pirciu
/
BFMC
a
Embed:
(wiki syntax)
Show/hide line numbers
move.cpp
00001 /** 00002 ****************************************************************************** 00003 * @file Move.cpp 00004 * @author RBRO/PJ-IU 00005 * @version V1.0.0 00006 * @date day-month-year 00007 * @brief This file contains the class definition for the moving 00008 * functionality. 00009 ****************************************************************************** 00010 */ 00011 00012 #include "mbed.h" 00013 #include <Move/move.hpp> 00014 //#include <array.h> 00015 00016 /** \brief Move Class constructor 00017 * 00018 * Constructor method 00019 * 00020 * @param _pwm_servo 00021 * @param _pwm_driver 00022 * @param _ina_driver 00023 * @param _inb_driver 00024 * @param _current_driver 00025 */ 00026 Move::Move( 00027 PinName _pwm_servo, 00028 PinName _pwm_driver, 00029 PinName _ina_driver, 00030 PinName _inb_driver, 00031 PinName _current_driver) 00032 :servo(_pwm_servo), 00033 vnh(_pwm_driver,_ina_driver,_inb_driver,_current_driver) 00034 { 00035 }; 00036 00037 /** \brief Move Class destructor 00038 * 00039 * Destructor method 00040 * 00041 * 00042 */ 00043 Move::~Move() 00044 { 00045 }; 00046 00047 /** \brief Steer method 00048 * 00049 * @param angle 00050 * 00051 */ 00052 void Move::Steer(float angle) 00053 { 00054 if ((angle <= 23) && (angle >= -23)) 00055 servo.SetAngle(angle); 00056 }; 00057 00058 /** \brief Move method 00059 * 00060 * @param speed The Pwm value, must belong to [0,100]. 00061 * 00062 */ 00063 void Move::Speed(float speed) 00064 { 00065 speed /=100; 00066 vnh.Run(speed); 00067 }; 00068 00069 /** \brief Brake method 00070 * 00071 * 00072 * 00073 */ 00074 void Move::Brake() 00075 { 00076 vnh.Brake(); 00077 } 00078 00079 /** \brief Hard brake method 00080 * 00081 * @param f_speed The Pwm value, must belong to [0,100]. 00082 * 00083 */ 00084 void Move::Inverse(float f_speed) 00085 { 00086 f_speed /=100; 00087 vnh.Inverse(f_speed); 00088 } 00089 00090 /** \brief Car testing method 00091 * 00092 * 00093 * 00094 */ 00095 void Move::TestCar() 00096 { 00097 Steer(20); 00098 wait(1); 00099 Steer(0); 00100 wait(1); 00101 Steer(-20); 00102 wait(1); 00103 ResetCar(); 00104 wait(1); 00105 Speed(25); 00106 wait(1); 00107 Speed(0); 00108 wait(1); 00109 Speed(-25); 00110 wait(1); 00111 ResetCar(); 00112 wait(1); 00113 }; 00114 00115 /** \brief Reset speed and steer method 00116 * 00117 * 00118 * 00119 */ 00120 void Move::ResetCar() 00121 { 00122 Steer(0); 00123 Speed(0); 00124 }; 00125 00126 /** \brief Get bridge (driver) object reference method 00127 * 00128 * 00129 * @return reference to VNH object 00130 */ 00131 drivers::VNH& Move::getVNH() 00132 { 00133 return vnh; 00134 }
Generated on Tue Jul 12 2022 22:40:50 by 1.7.2