RASP-FT232H-MPSSE-Usage-GPIO

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Il est facile de contrôler les broches GPIO de la carte FT232H en utilisant la bibliothèque "Python GPIO d'Adafruit". Maintenant que cette bibliothèque est installée, nous allons en démontrer l'usage avec des exemples simples. Nous allons faire clignoter une LED et lire une entrée digitale.

Nous allons commencer avec les composants suivants:

  • Une carte FT232H avec connecteur assemblé.
  • Une LED (couleur de votre choix).
  • Une résistance avec une valeur située entre 330 Omhs et 1000 Ohms (elle limitera le courant à travers la LED).
  • Des fils de prototypage et un breadboard.

Connectez les éléments comme suit:

  • La broche C0 du FT232H vers l'anode de la LED (broche +, la patte la plus longue)
  • La cathode de la LED (broche -, la patte la moins longue sur une des pattes de la résistance.
  • L'autre patte de la résistance sur la broche GND (la masse) du FT232H.

Ensuite, nous allons utiliser un fil pour simuler un bouton (enfoncé ou non)

  • La broche D7 du FT232H vers ma broche GND du FT232H.
    Ce pontage permettra de passer de créer:
    • Une valeur LOW (niveau bas) lorsque D7 est branché à la masse
    • Une valeur HIGH (niveau haut) lorsque D7 est branché sur +5V.

Vous pouvez voir ce montage sur la photo suivante:

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Dans la configuration ci-dessus, la broche C0 sera une broche de sortie qui allumera/eteindra la LED (en fonction du niveau logique de la sortie C0. La broche D7 sera une entrée digitale utilisée pour savoir si nous sommes au niveau haut (HIGH, une tension entre 3 et 5V) ou au niveau bas (la masse/GND).

Nous allons maintenant créer un fichier nommé gpio_test.py avec un éditeur de texte et nous allons remplir ce fichier avec le code suivant:

# import de la bibliothèque standard python time.
import time

# Import des modules GPIO et FT232H.
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.FT232H as FT232H

# Désactivation temporaire du pilote FTDI série sur les plateformes Mac et Linux.
FT232H.use_FT232H()

# Créer un objet FT232H (qui capture le premier périphérique FT232H disponible).
ft232h = FT232H.FT232H()

# Configurer les entrée et sortie digitales en utilisant ma méthode setup()
# Note: les broches de 0 a 15 correspondent au broches D0 à D7 puis C0 à C7 de la carte.
ft232h.setup(7, GPIO.IN)   # Make pin D7 a digital input.
ft232h.setup(8, GPIO.OUT)  # Make pin C0 a digital output.

# Bouche infinie qui change l'état de la LED (allumé/éteind) et lit l'état de l'entrée.
# Presser Ctrl-C pour quitter le programme
print 'Press Ctrl-C to quit.'
while True:
	# Mettre la broche C0 au niveau haut (HIGH) pour allumer la LED.
	ft232h.output(8, GPIO.HIGH)
	# Attendre 1 seconde.
	time.sleep(1)
	# Mettre la broche C0 au niveau base (LOW) pour eteindre la LED.
	ft232h.output(8, GPIO.LOW)
	# Attendre 1 seconde.
	time.sleep(1)
	# Lire l'etat de la broche D7 et afficher si le niveau est haut (HIGH) ou bas (LOW).
	level = ft232h.input(7)
	if level == GPIO.LOW:
		print 'Pin D7 is LOW!'
	else:
		print 'Pin D7 is HIGH!'

Sauvez le fichier puis ouvrez un terminal de commande.

Utilisez la commande cd pour vous rendre dans le répertoire où le fichier gpio_test.py est stocké.

Exécutez le script en exécutant la commande suivante sous Windows:

python gpio_test.py

Ou la commande suivante sous Mac OSX ou Linux (nous utilisons sudo pour avoir les droits administrateurs):

sudo python gpio_test.py

Vous devriez voir la LED commencer à clignoter une fois par seconde et afficher régulièrement l'état de la broche D7.

Par exemple, si la broche D7 est connectés sur la masse, vous devriez voir:

Press Ctrl-C to quit.
Pin D7 is LOW!
Pin D7 is LOW!
Pin D7 is LOW!

Essayez de déplacer le fil que vous avez branché sur D7 de la masse (GND) à 5 Volts. Vous devriez voir les lectures de la valeur d'entrée passer à 'HIGH' (niveau haut):

Pin D7 is HIGH!
Pin D7 is HIGH!
Pin D7 is HIGH!

Basculez de nouveau le fil de +5Volts vers la masse (GND) et la valeur lue repassera de nouveau vers 'LOW' (niveau bas).

Jetons un petit coup d'oeil sous le capot pour voir comment le programme fonctionne pour effectuer les lectures et écritures sur les GPIOs.

# Importer la bibliothèque standard "time".
import time

# Importer les modules GPIO et FT232H
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.FT232H as FT232H

Pour commencer, le programme charge les modules nécessaire pour le fonctionnement du script. Le module time est utilisé pour insérer des délais de pause dans le programme.

Les modules Adafruit_GPIO et Adafruit_GPIO.FT232H sont importés et un alias (nom raccourcis) est associé aux modules à l'aide du mot clée as. Ces modules dispose de toute la logique nécessaire pour lire les écrire des valeurs sur les GPIO du FT232H.

# Désactiver temporairement le pilote FTDI série sur les plateformes Mac et Linux.
FT232H.use_FT232H()

Ensuite, l'utilisation de la fonction use_FT232H() est pour temporairement désactiver le le pilote série FTDI. Cette commande est nécessaire sur les plateformes Mac ou Linux parce que la bibliothèque libftdi interfère avec la pilote FTDI série.

Vous n'avez pas vraiment besoin d'exécuter cette commande sur Windows parce que le pilote FTDI série a été désactivé avec l'outil Zadig. Cet appel ne perturbera pas le fonctionnement de du script sous Windows.

# Créer un objet FT232H qui récupère le premier périphérique FT232H disponible.
ft232h = FT232H.FT232H()

Maintenant que l'objet FT232H est créé et assigné à la variable ft232h. Cette opération détecte le premier périphérique FT232H disponible sur l'ordinateur et l'initialise en mode MPSSE pour utiliser son GPIO.

Assurez vous d'avoir appelé la fonction use_FT232H() avant la création de l'objet sinon la création échouera!

# Configure les entrées et sorties digitales en utilisant la fonction setup.
# Note: les broches 0 à 15 correspondent aux broches D0 à D7 puis à C0 à C7 de la carte.
ft232h.setup(7, GPIO.IN)   # Déclare la broche D7 comme un entrée digitale.
ft232h.setup(8, GPIO.OUT)  # Déclare la broche C0 comme une sortie digitale.

Ensuite, la fonction setup() de l'objet FT232H est appelé. Cette fonction prend deux paramètres: le premier est le numéro de broche et le second soit GPIO.IN ou GPIO.OUT pour déclarer la broche en entrée ou en sortie.

Rappelez vous que les numeros de broche sont de 0 à 7 pour les broches D0 à D7, et de 8 à 15 pour les broches C0 à C7.

# Boucle allumant et éteignant la LED -- et -- lisant l'état de l'entrée .
# Presser contrôle C pour quitter le programme.
print 'Press Ctrl-C to quit.'
while True:
	# Mettre la broche C0 au niveau haut (HIGH) pour allumer la LED.
	ft232h.output(8, GPIO.HIGH)
	# Attendre une seconde.
	time.sleep(1)
	# Mettre la broche C0 au niveau bas (LOW) pour eteindre la LED.
	ft232h.output(8, GPIO.LOW)
	# Attendre une seconde.
	time.sleep(1)

Maintenant que nous démarré une boucle infinie et la LED s'allume et s'éteind en utilisant la fonction output() de l'objet FT232H.

La fonction output() accepte deux paramètres:

  • Le premier est le numéro de broche
  • Le second est soit GPIO.HIGH/True pour un niveau logique haut (3.3 volts) --OU-- GPIO.LOW/False pour un niveau logique bas (la masse).
	# Lire l'entrée de sur la broche D7 et affiche l'état de la broche HIGH ou LOW (haut ou bas).
	level = ft232h.input(7)
	if level == GPIO.LOW:
		print 'Pin D7 is LOW!'
	else:
		print 'Pin D7 is HIGH!'

Pour finir l'entrée digitale du FT232H est lue avec la fonction input(). Cette fonction prend un paramètre, le numéro de broche à lire.

La fonction retournera GPIO.LOW/False si l'entrée est au niveau bas (en dessous de 0.8 volts), et GPIO.HIGH/True si l'entrée est au niveau haut (au dessus de 0.8 volts, jusqu'à 5V max).

Voilà, c'est tout ce que nous avons besoin de savoir pour utiliser le GPIO du breakout FT232H!

Vous pouvez maintenant utilise les broches du GPIO pour activer/désactiver des périphériques, des LEDs, etc. Vous pouvez également lire des entrées boutons ou l'état des broches d'autres composants.


Source: Adafruit FT232H Breakout Add a serial protocol 'swiss army knife' to your computer and talk directly to devices with SPI, I2C, serial UART, GPIO's, and more!
Créé par Toni DiCola pour AdaFruit Industries.

Traduction 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.

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