Contrôle en boucle ouverte d’un moteur brushless avec la carte MR4
Category: Arduino
Quadruped robot – orientation control
New video of the Borvo robot:
Using Inertial sensors for orientation control. The robot use CMPS12 IMU, teensys 3.5, MG91 hobby servos and 2S LiPo battery.
Robot borvo
Maker Faire Lille 2019
Dessin avec MRduino2 & Blockly
Tutoriel pour faire dessiner le robot MRduino2.
Matériel nécessaire:
- Un feutre de couleur
Dessiner un petit cercle
Un simple programme pour faire un cercle :
- Le robot tourne sur lui-même vers la droite à une vitesse de 25%.
Dessiner un grand cercle
Une autre manière de faire un cercle plus grand en utilisant un seul moteur :
Petit exercice,comment dessiner un très grand cercle ?
La réponse :
Dessiner des vagues
Un petit programme Blockly pour dessiner des vagues avec le robot MRduino2:
Dessiner un carré (un peu près !)
Un programme pour dessiner un carré :
Fin du tuto, à vous de réaliser vos propres dessins.
Tutoriel blockly pour le robot MRduino2
Une vidéo pour réaliser un programme de gestion des obstacles avec le langage graphique Blockly :
Capteur VL6180X avec la carte Esus
Voici un programme afin d’interfacer le capteur VL6180X avec la carte Esus. Le capteur est relié par bus I2C à la carte Esus. Le capteur VL6180X est capteur de distance “Time of Flight” de mesure laser de distance de 0 à 200 mm.
La carte Esus
- SDA : pin 2
- SCL : pin 13
- La librairie Pololu est nécessaire : https://github.com/pololu/vl6180x-arduino
#include <VL6180X.h> unsigned int data; VL6180X sensor; void setup() { Serial.begin(9600); // init I2C Wire.begin(2, 13);//SDA, SCL // init VL6180X sensor sensor.init(); sensor.configureDefault(); sensor.setTimeout(500); } void loop() { data = sensor.readRangeSingleMillimeters(); Serial.print("Distance mm ="); Serial.println(data); delay(500); }
Le résultat des mesures avec le capteur :
Fin du tuto.
Librairie Arduino Esus 0.9
Une nouvelle version de la librairie Arduino est disponible sur Github :
https://github.com/macerobotics/EsusBoard/tree/master/Software/Arduino
Lecture des capteurs de sols
Dans ce tutorial vous allez apprendre à utiliser les 3 capteurs de sols du robot MRduino afin de faire du suivi de ligne.
Les capteurs de sols
Le robot MRduino est équipé de 3 capteurs de sols, ils sont situés à l’avant.
Lire un capteur
La fonction pour lire le capteur de sol n°1 du robot :
value = groundSensor(1)
- La fonction renvoie une valeur entre 0 et 4095.
Exemple de programme pour lire les 3 capteurs :
#include <mrduino.h> void setup() { Serial.begin(115200); } void loop() { int capteur1, capteur2, capteur3; capteur1 = groundSensor(1); capteur2 = groundSensor(2); capteur3 = groundSensor(3); Serial.println(capteur1); Serial.println(capteur2); Serial.println(capteur3); delay(1000); }
Partie 2 : Contrôle du robot MRduino Wireless par UDP
Un tutoriel pour contrôler le robot MRduino Wireless par UDP avec un programme python.
UDP = User Datagram Protocol
Le contrôle du robot est réaliser par un programme en langage python.
Le programme pour le robot
Ce programme permet au robot MRduino Wireless de
Il faut modifier votre SSID et mot de passe de votre réseau Wifi :
const char* ssid = "YOUR_SSID"; const char* pass = "YOU_PASSWORD";
Le programme complet :
#include <ESP8266WiFi.h> #include <WiFiUDP.h> #include <mrduino.h> static void read_receptionCommande(String Commande); int status = WL_IDLE_STATUS; const char* ssid = "YOUR_SSID"; // your network SSID (name) const char* pass = "YOUR_PASS"; // your network password unsigned int localPort = 12345; WiFiUDP Udp; int tries=0; void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); // setting up Station AP WiFi.begin(ssid, pass); // Wait for connect to AP Serial.print("[Connecting]"); Serial.print(ssid); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); tries++; if (tries > 30) { break; } } Serial.println(); printWifiStatus(); Serial.println("Connected to wifi"); Serial.print("Udp server started at port "); Serial.println(localPort); Udp.begin(localPort); } void loop() { int noBytes = Udp.parsePacket(); String received_command = ""; byte packetBuffer[512]; if ( noBytes ) { Serial.print("received a packet"); // We've received a packet, read the data from it Udp.read(packetBuffer,noBytes); // read the packet into the buffer for (int i=1;i<=noBytes;i++) { received_command = received_command + char(packetBuffer[i - 1]); } // end for Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); Udp.endPacket(); // execution de la commande Serial.println(received_command); } // end if } void printWifiStatus() { // print the SSID of the network you're attached to: Serial.print("SSID: "); Serial.println(WiFi.SSID()); // print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); }
- Compiler et télécharger le programme dans le robot MRduino Wireless
Le programme de contrôle
- Lien pour télécharger le programme de contrôle (dossier Zip): MrduinoControler
Remarque : programme pour Windows
- Dézipper le dossier :
- Lancer le programme MRduinoControler.exe
Ce programme permet de contrôler les mouvements du robot et les trois leds. Ne pas oublier de saisir l’adresse IP correct du robot.