Home » BLOG

Détection des chocs avec le robot MRPi1

Le robot MRPi1 est équipé d’un accéléromètre 3 axes permettant de détecter les chocs.

Voici une petite vidéo :

Ce programme lit les 3 axes de l’accéléromètre et suivant un seuil d’accélération de 0.1 g une led est allumé ou éteinte.

  • led n°1 : axe X
  • led n°2 : axe Y
  • led n°3 : axe Z

Le programme python :

from mrpi1_lib import *
import time

while 1:

  axeX = acceleroX();
  axeY = acceleroY();
  axeZ = acceleroZ();

  time.sleep(0.01)

  if(axeX > 0.1):
    led(1,1)
  else:
    led(1,0)   

  if(axeY > 0.1):
    led(2,1)
  else:
    led(2,0) 

  if(axeZ > 0.1):
    led(3,1)
  else:
    led(3,0)

 

Contrôle de MRduino avec une télécommande

Programme de contrôle du robot MRduino avec une télécommande :

#include <mrduino.h>

int reception;

void setup() 
{
  // init serial communication
  Serial.begin(115200);
}

void loop()
{
  // read IR reception sensor
  reception = irReceiver();

  // read command
  switch(reception)
  {
    case 2:
      forward(30);// Forward
    break;

    case 6:
      turnRight(30);// turn right
    break;

    case 4:
      turnLeft(30);// turn left
    break;

    case 8:
      back(30);// back
    break;

    case 5:
      stop();// stop
    break;
  }
  
}

Programmer MRduino avec Blockly

MRduino_blockly

Il est maintenant possible de programmer le robot MRduino en Blockly.

Mais c’est quoi Blockly ?

logo_blockly

Blockly est un langage de programmation visuelle Open source sous forme de puzzle. Les pièces du puzzle représente une fonction.

Exemple de programme Blockly  pour le robot MRduino :

Blockly

Ce programme permet de faire avancer le robot MRduino tant qu’il n’y a pas d’obstacle présent sur le capteur de proximité n°4.

Guide de démarrage du robot MRduino avec Blockly.

Site officiel de Blockly  

Obstacle avoidance with MRduino

Exemple of obstacle avoidance with MRduino robot. This program use the six proximity sensors.

MRduinoThe obstacle avoidance program :

#include <mrduino.h>

int prox1;
int prox2;
int prox3;
int prox4;
int prox5;
int prox6;
int speed = 50

// obstacle limit
int limit_obs = 300;

void setup() 
{
  // init serial interface
  Serial.begin(115200);         
  
}

void loop()
{
  // read sensors
  prox1 = proxSensor(1); 
  prox2 = proxSensor(2); 
  prox3 = proxSensor(3); 
  prox4 = proxSensor(4); 
  prox5 = proxSensor(5); 
  prox6 = proxSensor(6); 

  delay(100);

  if((prox1 > limit_obs) and (prox2 > limit_obs)and (prox3 > limit_obs) and (prox4 > limit_obs) and (prox5 > limit_obs)  and (prox6 > limit_obs))
  {
    back(speed);
  }
  else
  {
    if((prox1 > limit_obs) and (prox2 > limit_obs))
    {
      turnRight(speed);
    }
    else
    {
       if((prox6 > limit_obs) or (prox5 > limit_obs) or (prox4 > limit_obs))
       {
         turnLeft(speed);
       }
       else
       {
          if((prox1 > limit_obs) or (prox2 > limit_obs) or (prox3 > limit_obs))
          {
           turnRight(speed);
          }
          else
          {
            forward(speed);
          }
        
       }
    }
  }
}

// end of file

Guide de démarrage pour le robot MRduino

 

Qu’est-ce que vous avez besoin ?

  • Le robot MRduino,
  • Le logiciel IDE Arduino : ici.
  • Un câble usb de type AB & mini

Les différentes étapes :

  1. Recharger la batterie du robot,
  2. Mise en marche du robot MRduino,
  3. Téléchargement de la librairie,
  4. Programmer le robot MRduino.

2.Recharger la batterie du robot

Pour recharger la batterie du robot MRduino vous avez besoin :

  • un câble mini-USB,
  • un PC ou un adaptateur secteur-USB

Ensuite pour recharger la batterie du robot :

  1. Placez l’interrupteur sur la position OFF pour mettre le robot hors tension.
  2. Branchez le câble mini-USB
  3. La led rouge ‘CH’ et la led ‘+5V’ doivent être allumées. Elles indiquent que la batterie est en cours de rechargement.
  4. Lorsque la led bleu ‘CHOK’ sera allumée, ceci indiquera que votre batterie est rechargée.

MRPi1_EnRechargement

3.Mise en marche du robot MRPduino

  1. Activez l’interrupteur ON/OFF sur la position ON.
  2. La led ON doit clignoter pour indiquer l’activité du robot. Si cette led ne clignote pas, alors vérifiez que le switch 1 est en position haute.

switch_positionHaute

4.Téléchargement de la librairie

Télécharger un dossier zip du répertoire du Github, à cette adresse :

https://github.com/macerobotics/MRduino
  • Cliquez sur le bouton à droite ‘Clone or Download’ :

git_1

Choisissez ‘Dowload ZIP” :

git_2

Dossier télécharger :

zip_mrduino

  • Décompressez le dossier, puis copiez le dossier LibArduino dans le dossier libraries de l’IDE Arduino.
  1. GNU/Linux dans le répertoire : /usr/share/arduino/libraries/
  2. Windows 32 bits dans le répertoire :  C :\Program Files\Arduino\libraries
  3. Windows 64 bits  dans le répertoire : C :\Program Files (x86)\Arduino\libraries

lib_arduino

5.Programmer le robot MRduino

Je considérè que vous avez installer l’IDE Arduino. Voici un lancement sous Windows :

Double-cliquez sur le logo de l’IDE Arduino :

logo_ar

L’IDE doit se charger :

image_IDE

Voici la fenêtre d’édition principale du logiciel Arduino :

editeur_ar

  •  Importez la librairie  :
#include <mrduino.h>

exemple_arduino

Exemple pour faire avancer le robot MRduino :

exemple_arduino1

  • Initialisation de la liaison série :
Serial.begin(115200);
  • Avancer le robot :
forward(40);
  • Un délai de 5 secondes :
delay(5000);
  • Arrêt du robot :
stop();

Une fois que vous avez éditer ce petit programme, vous pouvez le compiler.

  • Cliquez sur le bouton ‘Vérifier’ :

compile

Le programme Vérifier, vous pouvez relier la carte Arduino Uno à votre PC via un câble usb AB. Le robot doit être éteint, bouton en positon off.

usb_mrduino

  • Cliquez sur le bouton ‘Téléverser’ :

televerser

Une fois le programme Téléverser, vous pouvez :

  1. Débrancher le câble usb de la carte uno,
  2. Allumer le robot avec le bouton ON/OFF,
  3. Appuyez sur le bouton Reset de la carte Arduino Uno,
  4. Le robot MRduino doit avancer pendant 5 secondes.

Avancement de la production du robot MRPi1

Voici quelques photos de l’avancement de la production du robot MRPi1:

roues

Roues

visserie

Visserie

pi

Pi & support

Voici le détails sur la conception & fabrication du robot MRPi1 :

  • Conception du robot MRPi1 :  Bretagne,
  • Développement du robot : Bretagne,
  • Fabrication du PCB de la carte de contrôle : Allemagne,
  • Fabrication mécanique : Bretagne
  • Assemblage des composants CMS de la carte de contrôle : Allemagne,
  • Assemblage des composants trad de la carte de contrôle : Bretagne,
  • Assemblage du robot : Bretagne,

Un choix a été fait pour réaliser une production la plus local possible.

Utiliser Putty en communication série

Voici un petit tutoriel pour utiliser le logiciel Putty en mode série.

Putty est un logiciel client SSH, telnet et peut aussi servir de terminal de liaison série sous Windows. Je l’utilise pour débugger des cartes électroniques avec une liaison USB-série (FT232).

  • Démarrer le logiciel Putty :

img1

  • Sélectionner Serial comme type de connexion :
  1. img2

 

 

 

 

 

 

 

 

 

 

  1. Serial Line : le nom du port COM
  2. Speed : vitesse en baud

Configuration pour la saisie des commandes en entrée :

  • Sélectionner l’onglet Terminal :

img3

Dans la partie Line discipline options :

  1. Local echo : Force on
  2. Local line editing : Force on
  • Vous pouvez ensuite ouvrir la connexion :

img4

Fin du tuto !

 

Article sous licence : CC-BY-SA

by-sa