This class interface the MDSMC (Micro Dual Serial Motor Controller) by Pololu with our mbed module

Committer:
fangoman91
Date:
Fri Nov 16 20:26:54 2012 +0000
Revision:
0:e869912db757
this class interface the MDSMC (Micro Dual Serial Motor Controller) by pololu

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fangoman91 0:e869912db757 1 /*THIS CLASS INTERFACE THE MDSMC by pololu (Micro Dual Serial Motor Controller)
fangoman91 0:e869912db757 2 WITH OUR MBED MODULE. THE MDSMC MUST BE USED WITH UART MODULE*/
fangoman91 0:e869912db757 3
fangoman91 0:e869912db757 4 #ifndef MBED_MDSMC_H
fangoman91 0:e869912db757 5 #define MBED_MDSMC_H
fangoman91 0:e869912db757 6
fangoman91 0:e869912db757 7 #include "mbed.h"
fangoman91 0:e869912db757 8
fangoman91 0:e869912db757 9 #define Start 0x80
fangoman91 0:e869912db757 10 #define ChangeConfig 0x02
fangoman91 0:e869912db757 11 #define Setting1 0x7F
fangoman91 0:e869912db757 12 #define Setting2 0x13
fangoman91 0:e869912db757 13 #define Device 0x00
fangoman91 0:e869912db757 14 #define Forward1 0x7F
fangoman91 0:e869912db757 15 #define Reverse1 0x7E
fangoman91 0:e869912db757 16 #define Forward2 0x27
fangoman91 0:e869912db757 17 #define Reverse2 0x26
fangoman91 0:e869912db757 18 #define Right 0x21
fangoman91 0:e869912db757 19 #define Left 0x05
fangoman91 0:e869912db757 20
fangoman91 0:e869912db757 21 class MDSMC
fangoman91 0:e869912db757 22 {
fangoman91 0:e869912db757 23 public:
fangoman91 0:e869912db757 24 /* - Declare Mbed connections
fangoman91 0:e869912db757 25 ** - Select serial pin with "PinName data" parameter;
fangoman91 0:e869912db757 26 ** - select reset pin with "PinName CLR" parameter;
fangoman91 0:e869912db757 27 ** - select motor mode with "nM" parameter if you set nM = 1 the MDSMC drive one motor,
fangoman91 0:e869912db757 28 ** if you set nM = 2 the MDSMC drive two motors;
fangoman91 0:e869912db757 29 ** - select the baud rate with "bps" parameter you can select a bps value between 2000
fangoman91 0:e869912db757 30 ** and 19200.*/
fangoman91 0:e869912db757 31 MDSMC(PinName TX, PinName RX, PinName CLR, int bps, int nM);
fangoman91 0:e869912db757 32
fangoman91 0:e869912db757 33 /* - Give direction and speed*/
fangoman91 0:e869912db757 34 void use(char direction, char speed);
fangoman91 0:e869912db757 35
fangoman91 0:e869912db757 36 protected:
fangoman91 0:e869912db757 37 Serial _serialMDSMC;
fangoman91 0:e869912db757 38 DigitalOut _CLR;
fangoman91 0:e869912db757 39 void reset();
fangoman91 0:e869912db757 40 };
fangoman91 0:e869912db757 41 typedef unsigned char BYTE;
fangoman91 0:e869912db757 42
fangoman91 0:e869912db757 43 #endif
fangoman91 0:e869912db757 44
fangoman91 0:e869912db757 45 /*example used to test the class
fangoman91 0:e869912db757 46
fangoman91 0:e869912db757 47 #include "mbed.h"
fangoman91 0:e869912db757 48 #include "MDSMC.h"
fangoman91 0:e869912db757 49
fangoman91 0:e869912db757 50 MDSMC(USBTX,USBRX,p5);
fangoman91 0:e869912db757 51
fangoman91 0:e869912db757 52 int main()
fangoman91 0:e869912db757 53 {
fangoman91 0:e869912db757 54 MDSMC.init(1,9600);
fangoman91 0:e869912db757 55 wait(1);
fangoman91 0:e869912db757 56 MDSMC.use(Forward1, 80);
fangoman91 0:e869912db757 57 wait(1);
fangoman91 0:e869912db757 58 MDSMC.use(Reverse1, 80);
fangoman91 0:e869912db757 59 wait(2);
fangoman91 0:e869912db757 60 MDSMC.init(2,9600);
fangoman91 0:e869912db757 61 wait(1);
fangoman91 0:e869912db757 62 MDSMC.use(Forward2, 80);
fangoman91 0:e869912db757 63 wait(1);
fangoman91 0:e869912db757 64 MDSMC.use(Reverse2, 80);
fangoman91 0:e869912db757 65 wait(1);
fangoman91 0:e869912db757 66 MDSMC.use(Right, 50);
fangoman91 0:e869912db757 67 wait(1);
fangoman91 0:e869912db757 68 MDSMC.use(Left, 50);
fangoman91 0:e869912db757 69 }
fangoman91 0:e869912db757 70 */