Différences entre versions de « RASP-FT232H-MPSSE-Usage-GPIO »
Ligne 3 : | Ligne 3 : | ||
{{traduction}} | {{traduction}} | ||
− | + | 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: | |
− | * FT232H | + | * La broche '''C0''' du FT232H vers l'anode de la LED (broche '''+''', la patte {{underline|la '''plus''' longue}}) |
− | * LED | + | * La cathode de la LED (broche '''-''', la patte {{underline|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.<br />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: | ||
{{ADFImage|RASP-FT232H-MPSSE-Usage-GPIO.jpg}} | {{ADFImage|RASP-FT232H-MPSSE-Usage-GPIO.jpg}} |
Version du 16 mars 2017 à 11:57
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:
Crédit: AdaFruit Industries www.adafruit.com
With this configuration pin C0 will be a digital output that controls if the LED is on or off, depending on the level of the C0 output. Pin D7 will be a digital input that reads if it's at a high level (3-5 volts) or low level (ground).
Now create a file named gpio_test.py in a text editor and fill it with the following Python code:
# Import standard Python time library.
import time
# Import GPIO and FT232H modules.
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.FT232H as FT232H
# Temporarily disable the built-in FTDI serial driver on Mac & Linux platforms.
FT232H.use_FT232H()
# Create an FT232H object that grabs the first available FT232H device found.
ft232h = FT232H.FT232H()
# Configure digital inputs and outputs using the setup function.
# Note that pin numbers 0 to 15 map to pins D0 to D7 then C0 to C7 on the board.
ft232h.setup(7, GPIO.IN) # Make pin D7 a digital input.
ft232h.setup(8, GPIO.OUT) # Make pin C0 a digital output.
# Loop turning the LED on and off and reading the input state.
print 'Press Ctrl-C to quit.'
while True:
# Set pin C0 to a high level so the LED turns on.
ft232h.output(8, GPIO.HIGH)
# Sleep for 1 second.
time.sleep(1)
# Set pin C0 to a low level so the LED turns off.
ft232h.output(8, GPIO.LOW)
# Sleep for 1 second.
time.sleep(1)
# Read the input on pin D7 and print out if it's high or low.
level = ft232h.input(7)
if level == GPIO.LOW:
print 'Pin D7 is LOW!'
else:
print 'Pin D7 is HIGH!'
Save the file and then open a command line terminal and navigate to the folder with gpio_test.py. Run the script by executing on Windows:
python gpio_test.py
Or on Mac OSX or Linux run the script as root by executing:
sudo python gpio_test.py
You should see the LED start to blink once a second, and the state of the D7 input is also printed. For example if D7 is connected to ground you'll see:
Press Ctrl-C to quit.
Pin D7 is LOW!
Pin D7 is LOW!
Pin D7 is LOW!
Try moving the jumper wire for D7 from ground to 5 volts. You should see the input start to read a high value:
Pin D7 is HIGH!
Pin D7 is HIGH!
Pin D7 is HIGH!
Swap the jumper wire between ground and 5 volts to see the input value change.
Let's look a little more closely at the code to understand how reading and writing digital GPIO works.
# Import standard Python time library.
import time
# Import GPIO and FT232H modules.
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.FT232H as FT232H
First the required modules are loaded for this script. The time module will be used to delay for a short period of time.
The Adafruit_GPIO and Adafruit_GPIO.FT232H modules will be imported with shorter names using the 'as' keyword. These modules have all the logic for reading and writing GPIO on the FT232H.
# Temporarily disable the built-in FTDI serial driver on Mac & Linux platforms.
FT232H.use_FT232H()
Next the use_FT232H() function is called to temporarily disable any FTDI serial drivers. This command is necessary on Mac or Linux platforms because the libftdi library will interfere with the built-in FTDI serial drivers.
You don't really need to run this command on Windows because the FTDI serial driver was disabled using the Zadig tool, however it can't hurt to call the function as it will do nothing on Windows.
# Create an FT232H object that grabs the first available FT232H device found.
ft232h = FT232H.FT232H()
Now an FT232H object is created and assigned to the ft232h variable. This will detect the first available FT232H device connected to the computer and initialize its MPSSE for use with GPIO.
Make sure the use_FT232H() function was previously called or else this function will fail!
# Configure digital inputs and outputs using the setup function.
# Note that pin numbers 0 to 15 map to pins D0 to D7 then C0 to C7 on the board.
ft232h.setup(7, GPIO.IN) # Make pin D7 a digital input.
ft232h.setup(8, GPIO.OUT) # Make pin C0 a digital output.
Next the setup() function is called on the FT232H object. This function takes two parameters, the first is the pin number and the second is either GPIO.IN or GPIO.OUT to set the pin as a digital input or output.
Remember the pin numbers are 0 to 7 for D0 to D7, and 8 to 15 for C0 to C7.
# Loop turning the LED on and off and reading the input state.
print 'Press Ctrl-C to quit.'
while True:
# Set pin C0 to a high level so the LED turns on.
ft232h.output(8, GPIO.HIGH)
# Sleep for 1 second.
time.sleep(1)
# Set pin C0 to a low level so the LED turns off.
ft232h.output(8, GPIO.LOW)
# Sleep for 1 second.
time.sleep(1)
Now an infinite loop is entered and the LED is turned on and off using the output() function on the FT232H object. This function takes two parameters, the first is the pin number and the second is GPIO.HIGH/True to set the pin to a high level (3.3 volts), or GPIO.LOW/False to set the pin to a low level (ground).
# Read the input on pin D7 and print out if it's high or low.
level = ft232h.input(7)
if level == GPIO.LOW:
print 'Pin D7 is LOW!'
else:
print 'Pin D7 is HIGH!'
Finally the digital input is read using the input() function on the FT232H object. This function takes one parameter, the pin number to read. The function will return GPIO.LOW/False if the input is at a low level (below about 0.8 volts), and GPIO.HIGH/True if the input is at a high level (above about 0.8 volts, up to 5V max).
That's all there is to use GPIO on the FT232H board! You can use these GPIO pins to turn on and off devices or LEDs, or read switches or pins from other chips.
Be aware that the output pins on the FT232H are only designed to source a few milliamps of current (up to about 16mA per pin). If you need to drive devices that take a lot of current, look into using transistors to switch higher amounts of current.
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