Utiliser un Pont-H L293D avec MicroPython PyBoard

Nous avons pour ambitions de rendre notre plateforme 2 Roue mobile à l'aide d'un Pont-H L293D et MicroPython PyBoard
Plateforme robotique 2 roues

Les premières étapes étant de brancher le tout... puis de pouvoir commander un moteur avec le pont-h

Le montage
Commençons donc par le montage du pont-H pour commander les moteurs :-)
Commander des moteurs avec un Pont-H et PyBoard (source: wiki.mchobby.be)
Notre tutoriel L293D reprend de nombreuses autres informations pratiques sur le fonctionnement du Pont-H, le câblage et du code pour le faire fonctionner.

Classe HBridge 
Nous avons également produit une classe HBridge permettant de prendre facilement le contrôle du Pont-H.

Grâce à cette classe, la commande d'un moteur devient relativement aisé.

# Pont-H broches de commande Input 1 et Input 2,
# La broche ENABLE du pont H doit être au niveau HAUT!
MOT1_PINS = ( pyb.Pin.board.X6, pyb.Pin.board.X5 )

def test_bridge1_simple():
    """ Test élémentaire d'un pnt-H sans contrôle de vitesse """
    h1 = HBridge( MOT1_PINS )
    print( "Avant" )
    h1.forward()
    delay( 3000 )
    print( "Halte" )
    h1.halt()
    delay( 3000 )
    print( "Arriere" )
    h1.backward()
    delay( 3000 )
    print( "Halte" )
    h1.halt()
    print( "end." )

Mais surtout, la classe HBridge prend également en charge le contrôle de la vitesse du moteur en utilisant un signal PWM.
C'est pour cela que nous avons utiliser les broches X3 et X4 de la Pyboard.

Voici un exemple pratique
# Pont-H broches de commande Input 1 et Input 2
MOT1_PINS = ( pyb.Pin.board.X6, pyb.Pin.board.X5 )
# Commande PWM pont-H
MOT1_PWM = {'pin' : pyb.Pin.board.X3, 'timer' : 2, 'channel' : 3 }

def test_bridge1_speed():
    """ Test the HBridge with speed control """
    h1 = HBridge( MOT1_PINS, MOT1_PWM )
    print( "Forward full speed" )
    h1.forward()
    delay( 3000 ) 
    print( "Forward half speed 50%" )
    h1.forward( 50 )
    delay( 3000 )
    print( "Forward 30% speed" )
    h1.forward( 30 )
    delay( 3000 )
    for the_speed in range( 10, 70, 10 ):
        print( "Backward at speed %i" % (100-the_speed) )
        h1.backward( 100-the_speed )
        delay( 1500 )
    h1.halt()

Tutoriel
A ce stade, le plus intéressant reste encore de compulser notre tutoriel le le L293D avec MicroPython.
La classe HBridge s'y trouve... et fera bientôt l'objet d'une extension dans une suite du tutoriel consacré à la plateforme robotique. 

Où acheter

Aucun commentaire