Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- kolanery
- Date:
- 2017-05-19
- Revision:
- 14:a646667ac9ea
- Parent:
- 9:65a9aad9a5b5
- Child:
- 15:151e59899221
File content as of revision 14:a646667ac9ea:
#include "drivecontrol.h"
//#include "pin_assignment.h"
#include "io_modules.h"
#include "mbed.h"
// Battery Debugger Interface
AnalogIn battery(PA_3);
// Led Debugger Interface
DigitalOut led_1(PB_12);
DigitalOut led_2(PB_13);
DigitalOut led_3(PB_14);
DigitalOut led_4(PB_15);
// System io
Serial serial (PA_9, PA_10);
// Define states for debugging the mouse hardware
// const int DRIVE = 1, TURN = 2, DEBUG = 3, STOP = 4;
// Direction of which to turn
// const int LEFT = 0, RIGHT = 1;
// Start and End Pos
const int STRAIGHT = 0, LEFT = 1, RIGHT = 2;
const int START_POS = 0, END_POS = 0;
// Terminating condition for the main control loop
bool hasFoundCenter = false;
// Battery Consumption Indicator
void setup() {
// pc.baud(9600);
// using the serial functions will have an impact on timing.
// serial.printf("voltage value is: %3.3f%%\r\n", battery.read()*100.0f);
// serial.printf("normalized: 0x%04X \r\n", battery.read_u16());
if (battery.read() < 0.67f){
// flash led
led_1 = 1;
led_2 = 1;
led_3 = 1;
led_4 = 1;
}
}
// Performs the basic drive control of the mouse
int main() {
DriveControl * driver = new DriveControl (START_POS, END_POS);
driver->resetEncoders();
int state;
bool finished_traverse_one_cell = true;
while(1) {
setup();
led_2 = 0;
led_3 = 0;
driver->getEncoder();
wait(2);
/*
// switch state
if (finished_traverse_one_cell == true) {
if (!driver->has_front_wall()) {
state = STRAIGHT;
}
else if (!driver->has_right_wall()) {
state = RIGHT;
}
else {
state = LEFT;
}
finished_traverse_one_cell = false;
}
if (state == STRAIGHT) {
if (!driver->should_stop_drive_forward()) {
driver->drive_forward();
}
else {
driver->stop();
driver->resetEncoders();
led_2 = 1;
led_3 = 0;
finished_traverse_one_cell = true;
continue;
}
}
if (state == RIGHT) {
if (!driver->should_finish_turn_right()) {
driver->turn_right();
}
else {
driver->stop();
driver->resetEncoders();
led_2 = 0;
led_3 = 1;
finished_traverse_one_cell = true;
continue;
}
}
if (state == LEFT) {
if (!driver->should_finish_turn_left()) {
driver->turn_left();
}
else {
driver->stop();
driver->resetEncoders();
led_1 = 1;
led_4 = 1;
led_2 = 0;
led_3 = 0;
finished_traverse_one_cell = true;
continue;
}
}
wait_ms(1); */
}
}