Author: macerobotics

Architecture logicielle du microcontrôleur

Voici, l’architecture logicielle du microcontrôleur STM32F407 du robot MRPi1 :

  • Un bloc de la gestion pour la communication série 8 bits vers la carte Raspberry Pi.
  • Un bloc scheduler pour la gestion des différentes taches de manière synchrone et en temps réel,
  • Un bloc d’acquisition et de traitement des capteurs du robot,
  • Un bloc de contrôle du niveau de la tension de la batterie lipo,
  • Un bloc d’asservissement du robot en position/orientation avec deux régulateurs numérique de type PID,
  • Un bloc de commande des moteurs en signaux PWM,
  • Un bloc d’acquisition des encodeurs en quadrature avec deux timers configuré sur les front des signaux,
  • Un bloc du calcul de la position du robot sur les axes X et Y puis sur l’orientation du robot.

 

archi_micro

 

 

MRPi1 – Wake up alarm

Wake up alarm with MRPi1 robot. The robot stops the alarm automaticly when the robot detects the light.

Python program :

# import mrpi1 lib
from mrpi1_lib import *
import time

try:

  while 1:
    al1 = ambiantLight(1) # read ambiant light,sensor 1
    al2 = ambiantLight(2)
    al3 = ambiantLight(3)
    al4 = ambiantLight(4)
    al5 = ambiantLight(5)
    al6 = ambiantLight(6)
    print "Ambiant light = %d %d %d %d %d %d" %(al1, al2, al3, al4, al5, al6)

    if (al1 < 4000 and al2 < 4000): # light detects
     print "end alarm"
     writeCommand("SPD")# disable speaker
     exit()
    else:
      playWav("alarmClock.wav") # play alarm wav file
    time.sleep(0.2)

except:
  writeCommand("SPD") # disable speaker
  exit()

 

MRPi1 robot – Wall-follower


New video of MRPi1 robot :

On this video the robot follow a wall. The robot is completely autonomous, used the 6 infrared proximity sensors. MRPi1 programmed with python language.

PID control

In this video MRPi1 robot is controled by two PID controller. The PID controller calculates an error values between motors encoders and desired value (orientation and distance).

  • Orientation control
  • Distance control

The speed profile :

  • Trapezoid profile with 3 parts : acceleration, constant speed and deceleration.

Encoders specification :

  • Magnetic encoder,
  • Resolution : 12 ticks/tr

Raspberry Pi robot – MRPi1 from macerobotics on Vimeo.