This program is for an autonomous robot for the competition at the Hochschule Luzern. http://cruisingcrepe.wordpress.com/ We are one of the 32 teams. http://cruisingcrepe.wordpress.com/ The postition control is based on this Documentation: Control of Wheeled Mobile Robots: An Experimental Overview from Alessandro De Luca, Giuseppe Oriolo, Marilena Vendittelli. For more information see here: http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf
Fork of autonomous Robot Android by
Diff: main.cpp
- Revision:
- 0:31f7be68e52d
- Child:
- 1:6cd533a712c6
diff -r 000000000000 -r 31f7be68e52d main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Feb 07 17:43:19 2013 +0000 @@ -0,0 +1,87 @@ +/* + * main.cpp + * Copyright (c) 2012, Pren Team1 HSLU T&A + * All rights reserved. + */ + +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// INCLUDES +/////////////////////////////////////////////////////////////////////////////////////////////////////// +#include "mbed.h" +#include "math.h" +#include "defines.h" +#include "State.h" +#include "HMC5883L.h" +#include "HMC6352.h" +#include "RobotControl.h" +#include "Ping.h" +#include "PowerControl/EthernetPowerControl.h" +#include "Android.h" + + +// LiPo Batterie +AnalogIn battery(p15); // Battery check + +// compass +//HMC5883L compass(p9, p10, PERIOD_COMPASS); // sda, sdl (I2C) +HMC6352 compass(p9, p10, PERIOD_COMPASS); // sda, sdl (I2C) + + +// ultrasonic sensor +//Ping ultrasonic(p30); + +//Hallsensor +//hall1, hall2, hall3 +Hallsensor hallLeft(p18, p17, p16); +//hall1, hall2, hall3 +Hallsensor hallRight(p27, p28, p29); + +// Motors +//enb, ready, pwm, actualSpeed, Hallsensor object +MaxonESCON leftMotor(p26, p25, p24, p19, &hallLeft); +//enb, ready, pwm, actualSpeed, Hallsensor object +MaxonESCON rightMotor(p23, p22, p21, p20, &hallRight); + +// Robot Control +RobotControl robotControl (&leftMotor, &rightMotor, &compass, PERIOD_ROBOTCONTROL); + +// Logging & State +state_t s; // stuct state +State state(&s, &robotControl, &leftMotor, &rightMotor, &compass, &battery, PERIOD_STATE); + +// Communication + +//Android android(&s, &robotControl, &leftMotor, &rightMotor, PERIOD_ANDROID); + +// PC USB communications +Serial pc(USBTX, USBRX); + +DigitalOut myled(LED1); + +float magout[3] = {0}; + +// LiPo Batterie +float batterie_voltage; + +int main() +{ + + /** Normal mbed power level for this setup is around 690mW + * assuming 5V used on Vin pin + * If you don't need networking... + * Power down Ethernet interface - saves around 175mW + * Also need to unplug network cable - just a cable sucks power + */ + PHY_PowerDown(); + + robotControl.start(); + compass.setOpMode(HMC6352_CONTINUOUS, 1, 20); + compass.start(); + + robotControl.setEnable(false); + wait(1); + robotControl.setEnable(true); + wait(1); + + +}