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.