top of page

Les moteurs.

​

Pour faire tourner les moteurs pilotés par le L293D, nous avons créé notre programme en nous aidant de la revue "Micro portable Tests". 

​

​

sudo nano motor_pwm.py

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)

 

motor1A=16
motor1B=20
motor1E=21

motor2A=9
motor2B=10
motor2E=11


GPIO.setup(motor1A,GPIO.OUT)
GPIO.setup(motor1B,GPIO.OUT)
GPIO.setup(motor1E,GPIO.OUT)


GPIO.setup(motor2A,GPIO.OUT)
GPIO.setup(motor2B,GPIO.OUT)
GPIO.setup(motor2E,GPIO.OUT)

motor1 = GPIO.PWM(21,50)
motor1.start(0)
motor2 = GPIO.PWM(11,50)
motor2.start(0)


def avant(speed):
 print "Avant"
 GPIO.output(motor1A,GPIO.HIGH)
 GPIO.output(motor1B,GPIO.LOW)
 motor1.ChangeDutyCycle(speed)
 GPIO.output(motor2A,GPIO.HIGH)
 GPIO.output(motor2B,GPIO.LOW)
 motor2.ChangeDutyCycle(speed)

 
def arriere(speed):
 print "Arriere"
 GPIO.output(motor1A,GPIO.LOW)
 GPIO.output(motor1B,GPIO.HIGH)
 motor1.ChangeDutyCycle(speed)
 GPIO.output(motor2A,GPIO.LOW)
 GPIO.output(motor2B,GPIO.HIGH)
 motor2.ChangeDutyCycle(speed)

 

def pivot_droite(speed):
 print "Pivot Droite"
 GPIO.output(motor1A,GPIO.HIGH)
 GPIO.output(motor1B,GPIO.LOW)
 GPIO.output(motor2A,GPIO.LOW)
 GPIO.output(motor2B,GPIO.HIGH)
 motor1.ChangeDutyCycle(speed)
 motor2.ChangeDutyCycle(speed)

 

def pivot_gauche(speed):
 print "Pivot Gauche"
 GPIO.output(motor1A,GPIO.LOW)
 GPIO.output(motor1B,GPIO.HIGH)
 GPIO.output(motor2A,GPIO.HIGH)
 GPIO.output(motor2B,GPIO.LOW)
 motor1.ChangeDutyCycle(speed)
 motor2.ChangeDutyCycle(speed)

 

def stop():
 motor1.ChangeDutyCycle(0)
 motor2.ChangeDutyCycle(0)

 

# Utilisation des fonctions :

# Exemple ou la voiture avance pendant 4 secondes a la vitesse de 50 puis de 100

# Ensuite la voiture recule pendant 2 secondes a la vitesse de 50

# La voiture pivote a gauche puis pivote a droite 

# Pour finir la voiture s'arrete

​

#avant(50)
#sleep(2)
#avant(100)
#sleep(2)
#arriere(50)
#sleep(2)
#stop()
#pivot_gauche(75)
#sleep(2)
#stop()
#pivot_droite(75)
#sleep(2)
#stop()

 

GPIO.cleanup()
 

​

Avec ce programme, nous avons défini des fonctions permettant à la voiture d'avancer, de reculer et de pivoter à gauche ou à droite à l'allure souhaitée.

​

​

Sur la vidéo, notre voiture ne roule pas droit. Cela est la conséquence d'un mauvais équilibrage (notamment à cause de la lourde batterie externe) et du sol qui dévie la trajectoire du robot. Ce n'est pas un problème pour notre voiture car nous lui demanderons de suivre une ligne. Les moteurs corrigeront donc ce défaut.

bottom of page