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.
Dependents: 3pi_Example_2 3pi_Lab1_Task2_Example1 3pi_Lab2_Task1_Example1 3pi_Line_Follow ... more
Diff: m3pi.h
- Revision:
- 0:56320ef879a6
- Child:
- 1:5523d6d1feec
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/m3pi.h Tue Apr 04 08:08:16 2017 +0000
@@ -0,0 +1,119 @@
+#ifndef M3PI_H
+#define M3PI_H
+
+#include "mbed.h"
+
+/** m3pi Class
+@brief Library to control m3pi robot from Polulu running the serial slave code
+@brief Revision 1.0
+@author Craig A. Evans <C.A.Evans@leeds.ac.uk>
+@date April 2017
+
+*/
+class m3pi
+{
+
+public:
+
+ /** m3pi constructor
+ */
+ m3pi();
+ /** m3pi destructor
+ */
+ ~m3pi();
+
+ /** Write value to LEDs
+ * @param val - value to display in binary on LEDs (0 to 255)
+ */
+ void write_leds(int val);
+
+ /** Initialisation function
+ * @details should be called at the start of the program
+ */
+ void init();
+
+ /** Get signature of slave firmware
+ * @param signature - array of size 7 to store signature
+ */
+ void get_signature(char *signature);
+
+ /** Read raw sensor values from IR sensors (0 - 2000)
+ * @param values - array of size 5 to store values
+ */
+ void get_raw_values(unsigned int *values);
+
+ /** Read calibrated sensor values from IR sensors (0 - 1000)
+ * @param values - array of size 5 to store values
+ */
+ void get_calibrated_values(unsigned int *values);
+
+ /** Read user potentiometer values
+ * @returns float in range 0.0 to 1.0
+ */
+ float get_trimpot_value();
+
+ /** Read battery voltage
+ * @returns battery voltage in volts
+ */
+ float get_battery_voltage();
+
+ /** Play music
+ * @param notes - const array containing Pololu notes
+ */
+ void play_music(const char notes[],int length);
+
+ void calibrate();
+
+ void reset_calibration();
+
+ int get_line_position();
+
+ float get_normalised_line_position();
+
+ void lcd_clear();
+
+ void lcd_print(char text[],int length);
+
+ void lcd_goto_xy(int x, int y);
+
+ void auto_calibrate();
+
+ void left_motor(float speed);
+
+ void right_motor(float speed);
+
+ //////
+
+ void motors(float left_speed,float right_speed);
+
+ void stop();
+
+ void forward(float speed);
+
+ void reverse(float speed);
+
+ void spin_right(float speed);
+
+ void spin_left(float speed);
+
+ int read_button();
+
+ void display_battery_voltage(int x,int y);
+
+ void display_signature(int x,int y);
+
+
+private:
+
+ Serial* _serial;
+ DigitalOut* _reset;
+ DigitalIn* _button;
+ BusOut* _leds;
+
+ void reset();
+
+};
+
+
+
+#endif
\ No newline at end of file