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.
Dependencies: Encodeur Laser Moteur NetworkSocketAPI Robot X_NUCLEO_IDW01M1v2 mbed
Fork of Motor_HelloWorld by
main.cpp
00001 #include "mbed.h" 00002 #include "iostream" 00003 #include "Moteur.h" 00004 #include "Encodeur.h" 00005 #include "Robot.h" 00006 #include "VL53L0X.h" 00007 #include "SpwfInterface.h" 00008 #include "TCPSocket.h" 00009 00010 using namespace std; 00011 00012 Moteur moteurGauche(D3, D12, D4); // pwm, avancer, reculer 00013 Moteur moteurDroit(D11, D13, D5); 00014 00015 Encodeur encodeurGauche(A2); 00016 Encodeur encodeurDroit(A4); 00017 00018 PwmOut servoMoteur(PC_9); 00019 Serial pc(USBTX, USBRX); 00020 00021 Serial bluetooth(A0, A1); 00022 00023 DigitalOut shutdown1_pin(PC_6); /*range1_XSHUT*/ 00024 DevI2C devI2c(D14, D15); 00025 VL53L0X laser(&devI2c, &shutdown1_pin, NC); 00026 00027 SpwfSAInterface spwf(D8, D2, false); 00028 00029 TCPSocket socket(&spwf); 00030 00031 void envoie(char buffer[100]); 00032 00033 int main() { 00034 00035 int* tabPortee; 00036 tabPortee = new int[3]; 00037 00038 tabPortee[0] = 0; 00039 tabPortee[1] = 0; 00040 tabPortee[2] = 0; 00041 00042 Robot robot(moteurGauche, moteurDroit, &encodeurGauche, &encodeurDroit, servoMoteur, laser, tabPortee); 00043 00044 int err; 00045 //char * ssid = "Zte-Mobile"; 00046 //char * seckey = "Meximieux01800"; 00047 char * ssid = "Python"; 00048 char * seckey = "pythonserveur"; 00049 00050 pc.printf("\r\n\n\nPHASE D'INITIALISATION DU ROBOT\n"); 00051 pc.printf("\rConnection a AP...\n"); 00052 00053 if(spwf.connect(ssid, seckey, NSAPI_SECURITY_WPA2)) { 00054 pc.printf("\rConnecte\n\n"); 00055 } else { 00056 pc.printf("\rErreur de Connection\n\n"); 00057 return -1; 00058 } 00059 00060 const char *ip = spwf.get_ip_address(); 00061 const char *mac = spwf.get_mac_address(); 00062 00063 pc.printf("\rIP Addresse : %s\n", (ip) ? ip : "Pas d' IP"); 00064 pc.printf("\rMAC Addresse: %s\n", (mac) ? mac : "Pas de MAC"); 00065 00066 SocketAddress addr(&spwf, "st.com"); 00067 pc.printf("\rst.com: %s\n", addr.get_ip_address()); 00068 00069 pc.printf("\rConnecte au serveur\n"); 00070 00071 //err = socket.connect("192.168.43.68", 8080); 00072 err = socket.connect("192.168.1.101", 8080); 00073 //err = socket.connect("192.168.1.150", 8080); 00074 if(err!=0) { 00075 pc.printf("\rImpossible de se connecter au socket, erreur = %d!!\r\n", err); 00076 return -1; 00077 } else pc.printf("\rConnecte au serveur hote\r\n\n"); 00078 00079 int boucle(1); 00080 int fin(0); 00081 char commande; 00082 double distanced; 00083 double distanceg; 00084 int distg; 00085 int distd; 00086 int count = 0; 00087 00088 pc.baud(9600); 00089 bluetooth.baud(9600); 00090 laser.init_sensor(0x56); 00091 00092 robot.encodeurs_zero(); 00093 00094 while(fin == 0) { 00095 00096 cout << "\rEN ATTENTE D'UNE COMMANDE..." << endl; 00097 while (boucle) { 00098 if(bluetooth.readable()) { 00099 commande = bluetooth.getc(); 00100 boucle = 0; 00101 } 00102 } 00103 00104 boucle = 1; 00105 char buffer[100]; 00106 00107 switch(commande) { 00108 case '1': 00109 robot.roues_rouler(GO); 00110 cout << "\rGO" << endl; 00111 robot.encodeurs_afficher(); 00112 break; 00113 00114 case '2': 00115 robot.roues_rouler(BACK); 00116 cout << "\rBACK" << endl; 00117 robot.encodeurs_afficher(); 00118 break; 00119 00120 case '3': 00121 robot.roues_rouler(GO_GAUCHE); 00122 cout << "\rGO_GAUCHE" << endl; 00123 robot.encodeurs_afficher(); 00124 break; 00125 00126 case '4': 00127 robot.roues_rouler(GO_DROITE); 00128 cout << "\rGO_DROITE" << endl; 00129 robot.encodeurs_afficher(); 00130 break; 00131 00132 case '5': 00133 robot.roues_rouler(GAUCHE); 00134 cout << "\rGAUCHE" << endl; 00135 robot.encodeurs_afficher(); 00136 break; 00137 00138 case '6': 00139 robot.roues_rouler(DROITE); 00140 cout << "\rDROITE" << endl; 00141 robot.encodeurs_afficher(); 00142 break; 00143 00144 case '7': 00145 robot.roues_rouler(FULLBACK); 00146 cout << "\rFULLBACK" << endl; 00147 robot.encodeurs_afficher(); 00148 break; 00149 00150 case '8': 00151 cout << "\rBALAYER" << endl; 00152 robot.roues_rouler(BALAYER); 00153 00154 distanced = robot.distanceDroit(); 00155 distanceg = robot.distanceGauche(); 00156 distd = static_cast<int>(distanced); 00157 distg = static_cast<int>(distanceg); 00158 00159 sprintf(buffer, "%d", distg); 00160 cout << "\r\nEnvoie de la distance parcourue par la roue gauche" << endl; 00161 envoie(buffer); 00162 00163 sprintf(buffer, "%d", distd); 00164 cout << "\rEnvoie de la distance parcourue par la roue droite" << endl; 00165 envoie(buffer); 00166 00167 robot.encodeurs_zero(); 00168 00169 cout << "\rDISTANCE 1 =" << robot.getTabPortee(0) << endl; 00170 cout << "\rDISTANCE 2 = " << robot.getTabPortee(1) << endl; 00171 cout << "\rDISTANCE 3 = " << robot.getTabPortee(2) << endl; 00172 00173 sprintf(buffer, "%d", robot.getTabPortee(0)); 00174 cout << "\r\nEnvoie de la distance 1" << endl; 00175 envoie(buffer); 00176 00177 sprintf(buffer, "%d", robot.getTabPortee(1)); 00178 cout << "\rEnvoie de la distance 2" << endl; 00179 envoie(buffer); 00180 00181 sprintf(buffer, "%d", robot.getTabPortee(2)); 00182 cout << "\rEnvoie de la distance 3" << endl; 00183 envoie(buffer); 00184 break; 00185 00186 case '9': 00187 fin = 1; 00188 00189 pc.printf("\rFermeture du Socket\n"); 00190 socket.close(); 00191 pc.printf ("\rSocket ferme\n"); 00192 sprintf(buffer, "%d", 0); 00193 pc.printf("\rDonnee envoyee\n"); 00194 count = socket.send(buffer, sizeof buffer); 00195 spwf.disconnect(); 00196 printf ("\rWIFI deconnecte...\n\n\n"); 00197 00198 break; 00199 } 00200 robot.roues_stop(); 00201 } 00202 } 00203 00204 void envoie(char buffer[100]) { 00205 int count = 0; 00206 count = socket.send(buffer, sizeof buffer); 00207 00208 if(count > 0) { 00209 pc.printf("\rDonnee envoyee: "); 00210 buffer [count]='\0'; 00211 printf("%s\n\n", buffer); 00212 } 00213 00214 else pc.printf("\rImpossible d'envoyer la donnee\n\n"); 00215 } 00216 00217
Generated on Fri Jul 22 2022 22:54:46 by
1.7.2
