Rasp-Hack-L298-Python
Le code
Voici le code au complet... que vous trouverez également dans ce fichier ZumoL298.py (à la base, ce code est développé pour utiliser un chassis Zumo avec un L298 et un Raspberry-Pi)
#!/usr/bin/env python # -*- coding: latin-1 -*- # ---------------------------------------------------------------------- # ZumoL298.py - Contrôle d'un Pont-H L298 avec Raspberry-Pi # # Tutoriel complet: # http://wiki.mchobby.be/index.php?title=Rasp-Hack-L298 # # Initialement conçu pour le chassis Zumo # http://shop.mchobby.be/product.php?id_product=447 # Mais fonctionne parfaitement avec de nombreuses plateformes(cfr tuto) # ---------------------------------------------------------------------- # Ecrit par Meurisse D. pour MCHobby.be ( shop.mchobby.be ) # Licence: CC-BY-SA - MCHobby.be vente de kit et composant # ---------------------------------------------------------------------- import RPi.GPIO as GPIO import time import sys GPIO.setmode(GPIO.BCM) #--- Cablage -------------------- MOTORA_IN1 = 25 # GPIO 25 MOTORA_IN2 = 24 # GPIO 24 MOTORA_ENABLE = 4 # GPIO 4 - Activation moteur A MOTORB_IN3 = 23 # GPIO 23 MOTORB_IN4 = 18 # GPIO 18 MOTORB_ENABLE = MOTORA_ENABLE # aussi utiliser GPIO 4 pour commander moteur B #--- Initialisation ------------- # GPIO.setwarnings(FALSE) GPIO.setmode(GPIO.BCM) GPIO.setup( MOTORA_IN1, GPIO.OUT ) GPIO.setup( MOTORA_IN2, GPIO.OUT ) GPIO.setup( MOTORB_IN3, GPIO.OUT ) GPIO.setup( MOTORB_IN4, GPIO.OUT ) GPIO.setup( MOTORA_ENABLE, GPIO.OUT ) if( MOTORB_ENABLE != MOTORA_ENABLE ): GPIO.setup( MOTORB_ENABLE, GPIO.OUT ) # Assure l'arret moteur GPIO.setup( MOTORA_ENABLE, GPIO.LOW ) if( MOTORB_ENABLE != MOTORA_ENABLE ): GPIO.setup( MOTORB_ENABLE, GPIO.LOW ) # --- Controle du L298 -------------------------- # Sens de rotation du moteur SENS_AVANT = 1 SENS_ARRIERE = 2 SENS_ARRET = 3 def Desactiver(): """ Désactivation des pont-H """ GPIO.output( MOTORA_ENABLE, GPIO.LOW ) if( MOTORB_ENABLE != MOTORA_ENABLE ): GPIO.output( MOTORB_ENABLE, GPIO.LOW ) def Activer(): """ Activation des pont-H """ GPIO.output( MOTORA_ENABLE, GPIO.HIGH ) if( MOTORB_ENABLE != MOTORA_ENABLE ): GPIO.output( MOTORB_ENABLE, GPIO.HIGH ) def MarcheMotorA( sens ): """ Controle le sens de Marche pour Moteur A """ if( sens == SENS_AVANT ): GPIO.output( MOTORA_IN1, GPIO.HIGH ) GPIO.output( MOTORA_IN2, GPIO.LOW ) elif( sens == SENS_ARRIERE ): GPIO.output( MOTORA_IN1, GPIO.LOW ) GPIO.output( MOTORA_IN2, GPIO.HIGH ) elif( sens == SENS_ARRET ): GPIO.output( MOTORA_IN1, GPIO.LOW ) GPIO.output( MOTORA_IN2, GPIO.LOW ) def MarcheMotorB( sens ): """Controle le sens de Marche pour Moteur B """ if( sens == SENS_AVANT ): GPIO.output( MOTORB_IN3, GPIO.HIGH ) GPIO.output( MOTORB_IN4, GPIO.LOW ) elif( sens == SENS_ARRIERE ): GPIO.output( MOTORB_IN3, GPIO.LOW ) GPIO.output( MOTORB_IN4, GPIO.HIGH ) elif( sens == SENS_ARRET ): GPIO.output( MOTORB_IN3, GPIO.LOW ) GPIO.output( MOTORB_IN4, GPIO.LOW ) def Avant(): """ Marche avant toute """ print( "Marche Avant" ) Desactiver() MarcheMotorA( SENS_AVANT ) MarcheMotorB( SENS_AVANT ) Activer() def Arriere(): """ Marche arrière toute """ print( "Marche Arrière" ) Desactiver() MarcheMotorA( SENS_ARRIERE ) MarcheMotorB( SENS_ARRIERE ) Activer() def TournerDroite(): """ Fait tourner à droite """ print( "Tourner à droite" ) Desactiver() MarcheMotorA( SENS_ARRIERE ) MarcheMotorB( SENS_AVANT ) Activer() def TournerGauche(): """ Fait tourner a gauche """ print( "Tourner à gauche" ) Desactiver() MarcheMotorA( SENS_AVANT ) MarcheMotorB( SENS_ARRIERE ) Activer() def Stop(): """ Arret """ print "Arret" Desactiver() MarcheMotorA( SENS_ARRET ) MarcheMotorB( SENS_ARRET ) Activer() if __name__ == '__main__': Avant() time.sleep( 5 ) TournerDroite() time.sleep( 3 ) Avant() time.sleep( 5 ) TournerGauche() time.sleep( 3 ) Arriere() time.sleep( 5 ) Stop()
Exécuter le programme
Pour exécuter le script python, n'oubliez pas d'activer le flag (drapeau) d'exécution sur le fichier
chmod +x ZumoL298.py
Vous pourrez ensuite l'exécuter à l'aide de la commande
sudo ./ZumoL298.py
Sudo étant nécessaire pour permettre au script d'accéder librement au GPIO du Pi.
Réalisée par Meurisse D pour MCHobby.be.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.