- Gestion des leds du robot MPRi1 version arduino.
- Utilisation de l’IDE Arduino
http://fr.macerobotics.com/developpeur/tutoriels/gestion-des-leds-version-arduino/
http://fr.macerobotics.com/developpeur/tutoriels/gestion-des-leds-version-arduino/
New video of MRPi1 robot :
The python program :
from mrpi1_lib import *
import time
ir = 0;
state = 0
controlEnable()
while 1:
# read the infrared receiver
ir = irReceiver()
time.sleep(0.2)
if(ir == 1) and (state == 0):
forwardC(10,400)
state = 1
if(ir == 2) and (state == 0):
forwardC(10,800)
state = 2
if(ir == 3) and (state == 0):
forwardC(10,1600)
state = 3
if(ir == 3) and (state == 1):
forwardC(10,1200)
state = 3
if(ir == 3) and (state == 2):
forwardC(10,800)
state = 3
if(ir == 2) and (state == 1):
forwardC(10,400)
state = 2
if(ir == 1) and (state == 2):
backC(10,400)
state = 1
if(ir == 1) and (state == 3):
backC(10,1200)
state = 1
if(ir == 2) and (state == 3):
backC(10,800)
state = 2
if(ir == 0) and (state == 3):
backC(10,1600)
state = 0
if(ir == 0) and (state == 2):
backC(10,800)
state = 0
if(ir == 0) and (state == 1):
backC(10,400)
state = 0
La plateforme MRPi1 avec une carte Arduino Uno :
Voici une petite vidéo du robot contrôlé par l’Arduino :
Le programme réalise sous l’IDE arduino :
// initialisation des variables
int prox_1;
int prox_2;
int prox_3;
int prox_4;
int prox_5;
int prox_6;
int speed = 60;
void setup()
{
// initialisation du port série
Serial.begin(115200);
// Allumer les 3 leds du robot
led(1,1);
led(2,1);
led(3,1);
}
void loop()
{
// Lectures des capteurs de proximité
prox_1 = proxSensor(1);
prox_2 = proxSensor(2);
prox_3 = proxSensor(3);
prox_4 = proxSensor(4);
prox_5 = proxSensor(5);
prox_6 = proxSensor(6);
// Si obstacle à gauche
if(( prox_1 > 500) or (prox_2 > 500))
{
// tourner à droite
turnRight(speed);
}
// Si obstacle à droite
if(( prox_6 > 500) or ( prox_5 > 500))
{
// tourner à gauche
turnLeft(speed);
}
// Si obstacle devant
if(( prox_3 > 500) or ( prox_4 > 500))
{
// tourner à gauche
turnLeft(speed);
}
// si pas d'obstacle
if((prox_1 < 500) and (prox_2 < 500) and (prox_3 < 500) and (prox_4 < 500) and (prox_5 < 500) and (prox_6 < 500))
{
// avancer
forward(speed);
}
}
The python program :
from mrpi1_lib import * import time #main program state = 1 try: # infinite loop while 1: if state == 2: play("Thank you bye")# speech synthetis state = 3 # read sensors p3 = proxSensor(3) p4 = proxSensor(4) forward(30) print "%d %d" %(p3, p4) if (p3 > 900 or p4 > 900): stop() # stop robot state = 2 playWav("BeCarefull.wav") # play wav file except: stop() exit()
Voici, l’architecture logicielle du microcontrôleur STM32F407 du robot MRPi1 :
The python program :
from mrpi1_lib import *
import time
# activer le controle
controlEnable()
# avancer de 30 cm
forwardC(15, 1200)
# boucle infini
while 1:
# lecture capteur de proximité 3
p = proxSensor(3)
# pause de 0.5 seconde
time.sleep(0.5)
# si capteur > 300
if p > 300:
backC(15,1200) #reculer de 30 cm
exit()
La campagne participative est en ligne : http://campaign.macerobotics.com/
Cette campagne va permettre de pouvoir lancer la première production de série du robot MRPi1.
On this video the MRPi1 robot follows a black line autonomously. The 3 ground sensors are used.
Voici une vidéo de présentation du robot MRPi1 :
Dans cette vidéo le robot est entièrement autonome, il est programmé en langage python.