Practical Robotics Modular Robot Library

Dependents:   ModularRobot

Revision:
0:8a2dd255c508
Child:
1:a6728adaf7e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/robot.h	Sat Nov 26 17:28:53 2016 +0000
@@ -0,0 +1,65 @@
+
+
+#ifndef ROBOT_H
+#define ROBOT_H
+
+#include "mbed.h"
+#include "led.h"
+#include "sensors.h"
+#include "motors.h"
+#include "calibration.h"
+
+#define LED_ADDRESS 0xC0
+#define ADC_ADDRESS 0x90
+
+// To update sensors 10 times a second (8 x 0.0125 = 0.1)
+#define SENSOR_TICKER_PERIOD 0.0125
+
+// H-Bridge should work at upto 100kHz (10uS) but note it seems to behave unusually at frequencies close to but above this
+// Slower speeds work a bit faster but noisier
+#define MOTOR_PWM_PERIOD_US 400
+
+#define USE_STALL_OFFSET 1
+#define STALL_OFFSET 0.22
+
+extern I2C primary_i2c;
+extern AnalogIn vin_battery;
+extern Serial pc;
+extern Led led;
+extern Sensors sensors;
+extern Motors motors;
+extern volatile char i2c_lock;
+
+class Robot
+{
+public:
+
+    /**
+     * Main initialisation routine: setup the robot, the I2C interfaces, start system timers etc.
+     *
+     */
+    void init(void);
+    
+    /**
+     * Get the uptime for the MBED
+     *
+     * @return The amount of time in seconds that the MBED has been active since last reset
+     */
+    float get_uptime(void);
+    
+    /**
+     * Get the battery voltage
+     * 
+     * The battery voltage is passed through a 7.5V Zener diode, then into a 1:1 potential divider.   This
+     * allows a voltage in the approximate range 7.5 to 13.8V to be measured.
+     *
+     * @return The current voltage reading for the battery
+     */
+    float get_battery_voltage(void);
+    
+    private:
+    void _update_minutes(void);
+};
+
+
+#endif
\ No newline at end of file