Code petit robot
Dependencies: X_NUCLEO_COMMON X_NUCLEO_IHM01A1 mbed
Diff: main.cpp
- Revision:
- 0:1cb50d31c3b5
diff -r 000000000000 -r 1cb50d31c3b5 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 25 21:27:03 2016 +0000 @@ -0,0 +1,123 @@ +/** + ****************************************************************************** + * @file main.cpp + * @author Julien Tiron, FIP Télécom Bretagne + * @version V1.0.0 + * @date March 23th, 2016 + * @brief DoorCloser robot main code + ****************************************************************************** + **/ + +/* Includes ------------------------------------------------------------------*/ + +#include "mbed.h" +#include "DevSPI.h" +#include "l6474_class.h" +#include "DevI2C.h" +#include "vl6180x_class.h" + +/* Definitions ---------------------------------------------------------------*/ + +#define VL6180X_ADDRESS 0x29 + +/* Variables -----------------------------------------------------------------*/ + +/* Start and Stop Component */ +InterruptIn startup(PC_1); +Ticker game_length; +volatile bool start = 1; +volatile bool end = 1; + +/* Motor Control Component */ +L6474 *motor1; +L6474 *motor2; + +/* Distance Sensors Component */ +DevI2C *i2c =new DevI2C(D14, D15); +VL6180X sensor1(i2c); +VL6180X sensor2(i2c); +VL6180X sensor3(i2c); + +/* Functions -----------------------------------------------------------------*/ + +void go() +{ + start = 0; +} + +void stop() +{ + end = 0; +} + +void init_sensor(){ + +} + +void switch_sensor(int number){ + +} + +/* Main ----------------------------------------------------------------------*/ + +int main() +{ + /*----- Initialization. -----*/ + + /* Initializing SPI bus. */ + DevSPI dev_spi(D11, D12, D13); + + /* Initializing Motor Control Components. */ + motor1 = new L6474(D2, D8, D7, D9, D10, dev_spi); + motor2 = new L6474(D2, D8, D4, D3, D10, dev_spi); + if (motor1->Init() != COMPONENT_OK) + exit(EXIT_FAILURE); + if (motor2->Init() != COMPONENT_OK) + exit(EXIT_FAILURE); + + /* Interrupt to start the robot */ + startup.fall(&go); + + /* Interrupt to stop the robot */ + game_length.attach(&stop, 90); //1 minutes 30 secondes pour la Coupe + + while(start) { + /* Waiting code */ + } + + while(end) { + /* In-game code */ + + /* Requesting to run backward. */ + motor1->Run(StepperMotor::BWD); + motor2->Run(StepperMotor::FWD); + + /* Waiting until delay has expired. */ + wait_ms(3000); + + motor1->HardStop(); + motor2->HardStop(); + + motor1->WaitWhileActive(); + motor2->WaitWhileActive(); + + /* Requesting to run backward. */ + motor1->Run(StepperMotor::FWD); + motor2->Run(StepperMotor::BWD); + + /* Waiting until delay has expired. */ + wait_ms(3000); + + motor1->HardStop(); + motor2->HardStop(); + + motor1->WaitWhileActive(); + motor2->WaitWhileActive(); + } + + motor1->HardStop(); + motor2->HardStop(); + + motor1->WaitWhileActive(); + motor2->WaitWhileActive(); +}