Search Code
About m3pi

First published 29 Oct 2010, with 9 revisions since.
Last update: 12 May 2011.
View history

Last change message: N/A

Related to
m3pi_POV
Making POV public for LVC Robot Club
tag m3pi, POV

m3pi_logo
Look for a LOGO (.LGO) file on the mbed and run the commands in it. Only supports a small subset of the LOGO commands.
tag logo, m3pi

m3pi_LineFollower
A simple line following program
tag 3pi, following, line, m3pi, pololu

m3pi_LineFollower_PID
An example PID line following program
tag 3pi, following, line, m3pi, PID, pololu

m3pi_object-avoider
Line follower and object avoider

m3pi_USBSerialRPC
Program to show how to drive the m3pi using RPC commands over the serial port
tag 3pi, m3pi, pololu, rpc

m3pi_BluetoothRPC
Accepts RPC commands over bluetooth (RN42)
tag 3pi, m3pi, pololu

m3pi_HelloWorld
Hello world program that just gets the m3pi moving
tag 3pi, m3pi, pololu

m3pi_WiiRacing
Simons Wii controlled m3pi program
tag bluetooth, m3pi, pololu, Wii

m3pi_Logo_HelloWorld
This simple program will test the functionality of the m3pi\'s usb port by reading a file on a usb flash drive (called YourText.txt) and printing it to the m3pi\'s inbuilt ...
tag m3pi, m3pi LCD, m3pi USB

M3pi_logo_principle
M3pi logo character recognition principle
tag character recognition, m3pi, m3pi character, principle

m3pi
tag m3pi, robot


m3pi_ledpsd
m3piに距離センサーを接続したときのテストプログラム
tag m3pi

WixelTest
Simple wireless serial test using a pair of Pololu Wixels. Uses m3pi as a convenient dev board, since it is prewired for a Wixel.
tag m3pi, Wixel

m3pi_RFIDReader
Basic example showing how to use an m3pi with the RFID Reader attached
tag m3pi

Import this library into a program

m3pi

Published 12 May 2011, by   user Chris Styles   tag 3pi, m3pi, robot
Embed: (wiki syntax)

« Back to documentation index

m3pi Class Reference

m3pi Class Reference

m3pi control class More...

#include <m3pi.h>

Public Member Functions

 m3pi ()
 Create the m3pi object connected to the default pins.
 m3pi (PinName nrst, PinName tx, PinName rx)
 Create the m3pi object connected to specific pins.
void reset (void)
 Force a hardware reset of the 3pi.
void left_motor (float speed)
 Directly control the speed and direction of the left motor.
void right_motor (float speed)
 Directly control the speed and direction of the right motor.
void forward (float speed)
 Drive both motors forward as the same speed.
void backward (float speed)
 Drive both motors backward as the same speed.
void left (float speed)
 Drive left motor backwards and right motor forwards at the same speed to turn on the spot.
void right (float speed)
 Drive left motor forward and right motor backwards at the same speed to turn on the spot.
void stop (void)
 Stop both motors.
float pot_voltage (void)
 Read the voltage of the potentiometer on the 3pi.
float battery (void)
 Read the battery voltage on the 3pi.
float line_position (void)
 Read the position of the detected line.
char sensor_auto_calibrate (void)
 Calibrate the sensors.
void calibrate (void)
 Set calibration manually to the current settings.
void reset_calibration (void)
 Clear the current calibration settings.
void leds (int val)
 Write to the 8 LEDs.
void locate (int x, int y)
 Locate the cursor on the 8x2 LCD.
void cls (void)
 Clear the LCD.
int putc (int c)
 Send a character directly to the 3pi serial interface.
int getc ()
 Receive a character directly to the 3pi serial interface.
int print (char *text, int length)
 Send a string buffer to the 3pi serial interface.

Detailed Description

m3pi control class

Example:

 // Drive the m3pi forward, turn left, back, turn right, at half speed for half a second

   #include "mbed.h"
   #include "m3pi.h"

   m3pi pi;

   int main() {

     wait(0.5);

     pi.forward(0.5);
     wait (0.5);
     pi.left(0.5);
     wait (0.5);
     pi.backward(0.5);
     wait (0.5);
     pi.right(0.5);
     wait (0.5);

     pi.stop();

 }

Definition at line 83 of file m3pi.h.


Constructor & Destructor Documentation

m3pi (  )

Create the m3pi object connected to the default pins.

Parameters:
nrstGPIO pin used for reset. Default is p23
txSerial transmit pin. Default is p9
rxSerial receive pin. Default is p10

Definition at line 32 of file m3pi.cpp.

m3pi ( PinName  nrst,
PinName  tx,
PinName  rx 
)

Create the m3pi object connected to specific pins.

Definition at line 27 of file m3pi.cpp.


Member Function Documentation

void backward ( float  speed )

Drive both motors backward as the same speed.

Parameters:
speedA normalised number 0 - 1.0 represents the full range.

Definition at line 58 of file m3pi.cpp.

float battery ( void   )

Read the battery voltage on the 3pi.

Returns:
battery voltage as a float

Definition at line 97 of file m3pi.cpp.

void calibrate ( void   )

Set calibration manually to the current settings.

Definition at line 121 of file m3pi.cpp.

void cls ( void   )

Clear the LCD.

Definition at line 163 of file m3pi.cpp.

void forward ( float  speed )

Drive both motors forward as the same speed.

Parameters:
speedA normalised number 0 - 1.0 represents the full range.

Definition at line 53 of file m3pi.cpp.

int getc ( void   )

Receive a character directly to the 3pi serial interface.

Returns:
c The character received from the 3pi

Definition at line 193 of file m3pi.cpp.

void leds ( int  val )

Write to the 8 LEDs.

Parameters:
ledsAn 8 bit value to put on the LEDs

Definition at line 150 of file m3pi.cpp.

void left ( float  speed )

Drive left motor backwards and right motor forwards at the same speed to turn on the spot.

Parameters:
speedA normalised number 0 - 1.0 represents the full range.

Definition at line 63 of file m3pi.cpp.

void left_motor ( float  speed )

Directly control the speed and direction of the left motor.

Parameters:
speedA normalised number -1.0 - 1.0 represents the full range.

Definition at line 45 of file m3pi.cpp.

float line_position ( void   )

Read the position of the detected line.

Returns:
position as A normalised number -1.0 - 1.0 represents the full range. -1.0 means line is on the left, or the line has been lost 0.0 means the line is in the middle 1.0 means the line is on the right

Definition at line 105 of file m3pi.cpp.

void locate ( int  x,
int  y 
)

Locate the cursor on the 8x2 LCD.

Parameters:
xThe horizontal position, from 0 to 7
yThe vertical position, from 0 to 1

Definition at line 157 of file m3pi.cpp.

float pot_voltage ( void   )

Read the voltage of the potentiometer on the 3pi.

Returns:
voltage as a float

Definition at line 141 of file m3pi.cpp.

int print ( char *  text,
int  length 
)

Send a string buffer to the 3pi serial interface.

Parameters:
textA pointer to a char array
intThe character to send to the 3pi

Definition at line 167 of file m3pi.cpp.

int putc ( int  c )

Send a character directly to the 3pi serial interface.

Parameters:
cThe character to send to the 3pi

Definition at line 189 of file m3pi.cpp.

void reset ( void   )

Force a hardware reset of the 3pi.

Definition at line 38 of file m3pi.cpp.

void reset_calibration ( void   )

Clear the current calibration settings.

Definition at line 125 of file m3pi.cpp.

void right ( float  speed )

Drive left motor forward and right motor backwards at the same speed to turn on the spot.

Parameters:
speedA normalised number 0 - 1.0 represents the full range.

Definition at line 68 of file m3pi.cpp.

void right_motor ( float  speed )

Directly control the speed and direction of the right motor.

Parameters:
speedA normalised number -1.0 - 1.0 represents the full range.

Definition at line 49 of file m3pi.cpp.

char sensor_auto_calibrate ( void   )

Calibrate the sensors.

This turns the robot left then right, looking for a line

Definition at line 115 of file m3pi.cpp.

void stop ( void   )

Stop both motors.

Definition at line 73 of file m3pi.cpp.