Yannick Andreu / Mbed 2 deprecated Robot_Autonome_Proto

Dependencies:   SRF08 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers commande.cpp Source File

commande.cpp

00001 #include "mbed.h"
00002 #include "commande.h"
00003 
00004 #define adr 128
00005 using namespace std;
00006 
00007 
00008 DigitalOut S2(p11);
00009 Serial com_mot(p9,p10);
00010 
00011 void avancerG(char speed)
00012 {
00013     com_mot.putc(adr);
00014     com_mot.putc(1);
00015     com_mot.putc(speed);
00016     com_mot.putc((adr + 1 + speed) & 127); //checksum trame envoyée / reçue 
00017 }
00018 void avancerD(char speed)
00019 {
00020     com_mot.putc(adr);
00021     com_mot.putc(4);
00022     com_mot.putc(speed);
00023     com_mot.putc((adr + 4 + speed) & 127); //checksum trame envoyée / reçue 
00024 }
00025 void reculerG(char speed)
00026 {
00027     com_mot.putc(adr);
00028     com_mot.putc(0);
00029     com_mot.putc(speed);
00030     com_mot.putc((adr + 0 + speed) & 127); //checksum trame envoyée / reçue 
00031 }
00032 void reculerD(char speed)
00033 {
00034     com_mot.putc(adr);
00035     com_mot.putc(5);
00036     com_mot.putc(speed);
00037     com_mot.putc((adr + 5 + speed) & 127); //checksum trame envoyée / reçue 
00038 }
00039 //////////////Fonction Finale///////////////
00040 
00041 ///////Marche avant////////
00042 void dem(char speed)
00043 {
00044     int i;speed=speed*0.1;
00045     for(i=0;i<100;i++)
00046     {
00047     avancerG(speed);wait(0.001);
00048     avancerD(speed);speed++;
00049     wait(0.01);
00050     }
00051     avancerG(speed);wait(0.001);
00052     avancerD(speed);
00053 }
00054 void commande::avance(char speed)
00055 {
00056     avancerG(speed);wait(0.001);
00057     avancerD(speed);
00058 }
00059 
00060 //////Fonction avancer//////
00061 void commande::avancer(char speed)
00062 {
00063     dem(speed);avance(speed);
00064 }
00065 //////////Marche arriere//////////
00066 void demar(char speed)
00067 {
00068     int i;
00069     speed=speed*0.1;
00070     for(i=0;i<100;i++)
00071     {
00072     reculerG(speed);wait(0.001);
00073     reculerD(speed);speed=speed++;
00074     wait(0.01);
00075     }
00076 }
00077 void commande::recu(char speed)
00078 {
00079     reculerG(speed);wait(0.001);
00080     reculerD(speed);
00081 }
00082 //////Fonction reculer//////
00083 void commande::reculer(char speed)
00084 {
00085     demar(speed);recu(speed);
00086 }
00087 //////virage/////////////////
00088 void commande::tourner_droite(char speed)
00089 {
00090     avancerG(speed);wait(0.001);
00091     reculerD(speed);
00092 }
00093 void commande::tourner_gauche(char speed)
00094 {
00095     avancerD(speed);wait(0.001);
00096     reculerG(speed);
00097 }
00098 
00099 void commande::demi_tour(void)
00100 {
00101     avancerD(50);wait(0.001);
00102     reculerG(50);
00103     wait(1.3);
00104     avancerD(0);wait(0.001);
00105     reculerG(0);
00106 }
00107 
00108 void commande::stop(void)
00109 {
00110     avancerD(0);wait(0.001);
00111     reculerG(0);
00112 }
00113 //////Fonction arret//////
00114 //void arreter(void)