Modifications

Sauter à la navigation Sauter à la recherche
2 451 octets ajoutés ,  16 février 2013 à 16:54
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{Rasp-Hack-L293-NAV}}
 
{{Rasp-Hack-L293-NAV}}
 +
 +
{{bloc-etroit
 +
|text = 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 :
 +
<nowiki>
 +
nano motor.py </nowiki>
 +
 +
et introduisez le code suivant, avant la sauvegarde du fichier avec CTRL-x.
 +
}}
 +
 +
[[Fichier:Rasp-Hack-L293-software-1.png]]
 +
 +
Voici le code :
 +
 +
<nowiki>
 +
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))
 +
</nowiki>
 +
 +
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.
    
{{Rasp-Hack-L293-TRAILER}}
 
{{Rasp-Hack-L293-TRAILER}}
29 917

modifications

Menu de navigation