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.
m3pi.h
- Committer:
- eencae
- Date:
- 2017-04-04
- Revision:
- 0:56320ef879a6
- Child:
- 1:5523d6d1feec
File content as of revision 0:56320ef879a6:
#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