Différences entre versions de « Rasp-Hack-L293-Logiciel »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 15 : Ligne 15 :
 
Voici le code :
 
Voici le code :
  
<nowiki>
+
<nowiki>import RPi.GPIO as io
import RPi.GPIO as io
 
 
io.setmode(io.BCM)
 
io.setmode(io.BCM)
  

Version du 16 février 2013 à 16:56

Depuis que nous devons contrôler des broches (connectées aux sorties 4 et 17 du GPIO) nous devons utiliser la bibliothèque GPIO. Pour les détails, voyez la leçon 4.

Il existe beaucoup de façons pour obtenir le sketch dont le listing suit sur votre Raspberry Pi. Peut-être est-il plus aisé de se connecter au Pi en utilisant SSH (Secure Shell) (voir leçon 6) ouvrez un éditeur à l'aide de la commande suivante : nano motor.py

et introduisez le code suivant, avant la sauvegarde du fichier avec CTRL-x.

Rasp-Hack-L293-software-1.png

Voici le code :

import RPi.GPIO as io
io.setmode(io.BCM)

in1_pin = 4
in2_pin = 17

io.setup(in1_pin, io.OUT)
io.setup(in2_pin, io.OUT)

def set(property, value):
    try:        
        f = open("/sys/class/rpi-pwm/pwm0/" + property, 'w')
        f.write(value)
        f.close()     
    except:        
        print("Error writing to: " + property + " value: " + value) 

set("delayed", "0")
set("mode", "pwm")
set("frequency", "500")
set("active", "1")

def clockwise():
    io.output(in1_pin, True)
    io.output(in2_pin, False)

def counter_clockwise():
    io.output(in1_pin, False)
    io.output(in2_pin, True)

clockwise()

while True:
    cmd = raw_input("Command, f/r 0..9, E.g. f5 :")
    direction = cmd[0]
    if direction == "f":
        clockwise()
    else:
         counter_clockwise()
    speed = int(cmd[1]) * 11
    set("duty", str(speed))

Dans l'entête du programme en Python sont définies les broches en sortie. La fonction («set») que nous avons utilisé dans la leçon 8, nous permet d'écrire dans le module kernel PWM. Cette fonction définit les paramètres pour PWM.

Il existe deux autres fonctions personnelles, “clockwise” et “counter_clockwise”, elles contrôlent la direction du moteur en changeant les deux broches d'entrée.

Si les deux broches de contrôle sont HIGH, ou LOW, le moteur est à l'arrêt. Mais si IN1 is HIGH et IN2 LOW il tournera dans une direction, mais dans le sens inverse si les valeurs de IN1 et IN2 sont inversées.

La boucle principale du programme attend vos commandes sous la forme d'une lettre (“f” or “r”) et un chiffre entre 0 et 9 inclus. La lettre indique la direction du moteur et le chiffre sa vitesse, nous multiplions ce chiffre par 11 pour obtenir une valeur située entre 0 et 99 inclus comme demandé par la bibliothèque PWM.


Source: Adafruit's Raspberry Pi Lesson 9. Controlling a DC Motor

Réalisé avec l'aide de Mr Carette J. à qui nous remettons tous nos remerciements.

Tutoriel créé par Simon Monk pour AdaFruit Industries. Tutorial created by Simon Monk for AdaFruit Industries

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

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.