Tutoriel FT232H : USB vers GPIO - Ajouter des GPIO, bus I2C, bus SPI a votre Pi, Linux, Windows ou Mac

Nous avons terminé un chouette tutoriel permettant d'ajouter des ports GPIO/I2C/SPI sur une machine Windows, Linux ou Mac pour faire du hacking électronique

C'est également l'opportunité de dépasser les limitations matériel d'un environnement. Initialement développé par Adafruit pour Raspberry-Pi, nous avons testé cet notre tutoriel sur une plateforme Windows avec succès.

Découvrir le FT323H
Le breakout USB-vers-GPIO - disponible chez MCHobby

Ce serait vraiment cool de pouvoir commander un petit afficheur OLED, activer un relais, ou lire un senseur de couleur, ou faire clignoter une LED depuis son ordinateur!
Il serait nettement plus intéressant si votre ordinateur pouvait dialoguer directement avec ces périphériques/senseurs. Et bien, grâce au Breakout FT232H, votre ordinateur/Raspberry-Pi peut dialoguer directement avec des périphériques SPI/I2C/Série ou commander des GPIO.
Utilisation des GPIO depuis un script python


Que peut donc faire une puce FT232H? Cette puce du fabriquant FTDI est similaire au convertisseur USB vers série mais avec l'ajout d'un 'moteur série multi-protocole synchrone' lui permettant de supporter de nombreux protocoles standards comme SPI, I2C, UART série, JTAG, et plus! Il y a même des broches GPIO bien pratiques qui peuvent être lue et modifiée pour réaliser des choses comme faire clignoter des LEDs, lire des interrupteurs ou boutons, etc. Le breakout FT232H c'est un peut comme ajouter un couteau suisse des protocoles séries sur votre ordinateur :-).
Ce composant est particulièrement utile et puissant lorsque vous voulez utiliser Python (par exemple) pour rapidement itérer et tester des périphériques utilisant I2C, SPI ou des entrées sorties I/O. Vous êtes en communication directe avec votre matériel, Il n'y a pas de firmware Arduino intermédiaire auquel votre programme doit communiquer (firmware Arduino qui devra lui-meme communiquer avec les senseurs).
Le breakout est équipé d'une puce FT232H et d'une EEPROM de configuration. Vous pourrez en apprendre beaucoup plus sur le FT232H depuis la page de FTDI. voyez également la section tutoriel de cette fiche savoir comment démarrer et utilise le FT232H avec Mac/Win/Linux en Python.

# 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!'
Commander des NéoPixels sur le Bus SPI
un des exemples du tutoriel concerne l'utilisation du bus SPI (en sur-échantillonnage) pour commander des LEDs Néopixels directement depuis votre PC à l'aide d'un script Python.
Contrôler des NeoPixels depuis le FT232H

Whoaarr!

C'est aussi l'occasion d'amener du hacking électronique dans des environnements qui n'avait pas prévu ce type de fonctionnalité. 

Le tutoriel
Où acheter

1 commentaire:

  1. Bonjour

    Comment faire pour arrêter la boucle while ?
    Y a t'il une solution ?
    Objectif : Depuis python 2.7.6 sous Tkinter, créer un bouton pour faire clignoter la led et sur un deuxième bouton faire arrêter la led qui clignote.
    PS je n'ai pas trouvé la solution ?
    Merci d'avance.

    RépondreSupprimer