a

Dependencies:   mbed mbed-rtos

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers move.cpp Source File

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 }