Modifications

Sauter à la navigation Sauter à la recherche
1 030 octets ajoutés ,  31 mars 2014 à 04:43
Ligne 18 : Ligne 18 :  
Si vous ne disposez de WebIDE, vous pouvez [https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code télécharger toute la bibliothèque directement depuis le dépôt GitHub d'AdaFruit]  
 
Si vous ne disposez de WebIDE, vous pouvez [https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code télécharger toute la bibliothèque directement depuis le dépôt GitHub d'AdaFruit]  
   −
{{ambox-stop|text='''Lisez les 4 premières lignes du code ci-dessous AVANT d'exécuter''' le programme... il faut activer la ligne adéquate pour faire fonctionner ce code sur un '''Raspberry Pi MODELE B 512Mb'''!!!}}
+
Le fichier Adafruit_MCP230xx.py contient à la fois:
 +
* La définition de classes "wrapper" permettant de communiquer facilement avec le MCP23008 et MCP23017
 +
* Le programme de test
   −
<nowiki># Utiliser busnum = 0 pour les Raspberry plus ancien (256MB)
+
De sorte que si vous exécutez la commande...
mcp = Adafruit_MCP230XX(busnum = 0, address = 0x20, num_gpios = 16)
  −
# Activer la ligne suivante pour utiliser busnum = 1 pour les Raspberry Pi (512MB avec trou de montage)
  −
# mcp = Adafruit_MCP230XX(busnum = 1, address = 0x20, num_gpios = 16)
     −
# Activer les broches 0, 1 et 2 en sortie (vous pouvez initialiser les broches de 0 à 15 de cette façon)
+
sudo ./Adafruit_MCP230xx.py
mcp.config(0, OUTPUT)
  −
mcp.config(1, OUTPUT)
  −
mcp.config(2, OUTPUT)
     −
# initialiser la broche 3 en entrée en activant la résistance pullup sur l'entrée
+
Vous exécuter aussi le programme de test.
 +
 
 +
Si cette approche est coule de source pour les codeurs Python expérimentés, ce n'est pas forcement une approche aisé pour les nouveaux venus... ainsi, je vous propose de créer le programme mcp23017_test.py pour faciliter votre expérimentation.
 +
 
 +
== mcp23017_test.py ==
 +
 
 +
=== Créer mcp23017_test.py ===
 +
Après avoir téléchargé la bibliothèque python depuis GitHub, ouvrez un terminal (ou session XTerm) et rendez vous dans le répertoire ''Adafruit-Raspberry-Pi-Python-Code/Adafruit_MCP230xx''.
 +
 
 +
Vous devez y voir le fichier ''Adafruit_MCP230xx.py''.
 +
 
 +
Depuis cet emplacement, taper la commande suivante pour commencer l'édition du fichier mcp23017_test.py
 +
 
 +
nano mcp23017_test.py
 +
 
 +
==== Le code ===
 +
Une fois dans l'éditeur nano, encodez le code suivant:
 +
 
 +
<nowiki>#!/usr/bin/python
 +
# -*- encoding: utf8 -*-
 +
from Adafruit_MCP230xx import *
 +
 
 +
# ***************************************************
 +
# Utiliser num_gpios=8 pour un MCP23008
 +
# ou  num_gpios=16 pour un MCP23017!
 +
# ***************************************************
 +
# mcp = Adafruit_MCP230XX(address = 0x20, num_gpios = 8) # MCP23008
 +
mcp = Adafruit_MCP230XX(address = 0x20, num_gpios = 16) # MCP23017
 +
 
 +
# Déclarer les broches 0, 1 et 2 comme sortie (vous pouvez faire de même pour les broches de 0 à 15)
 +
mcp.config(0, mcp.OUTPUT)
 +
mcp.config(1, mcp.OUTPUT)
 +
mcp.config(2, mcp.OUTPUT)
 +
 
 +
# Déclarer la broche 3 comme entrée (input) et activer la résistance pullup
 +
mcp.config(3, mcp.INPUT)
 
mcp.pullup(3, 1)
 
mcp.pullup(3, 1)
 +
 
# Lire l'état de la broche 3 et afficher le résultat
 
# Lire l'état de la broche 3 et afficher le résultat
print "%d: %x" % (3, mcp.input(3) >> 3)
+
print "Pin 3 = %d" % (mcp.input(3) >> 3)
   −
# Vitesse d'exécution en Python... changer
+
# Changer l'état de la broche 0  
# l'état de la sortie 0 à la vitesse maximale
+
print "Clignoter la broche 0 (CTRL+C pour quitter)"
 
while (True):
 
while (True):
   mcp.output(0, 1) # Broche 0 a l'état Haut/High
+
   mcp.output(0, 1) # Mettre la broche 0 à l'état HAUT/High
   mcp.output(0, 0) # Broche 0 a l'état Bas/Low</nowiki>
+
  time.sleep(1);
 +
   mcp.output(0, 0) # Mettre la broche 0 à l'état BAS/Low
 +
  time.sleep(1);</nowiki>  
 +
 
 +
Sauvez le code et quitter nano
 +
 
 +
=== Exécuter ===
 +
Avant d'exécuter le programme de test, il faut rendre le fichier exécutable
 +
 
 +
sudo chmod +x mcp23017_test.py
 +
 
 +
Vous pouvez finalement exécuter le programme à l'aide de la commande
 +
 +
sudo ./mcp23017_test.py
   −
Ce fichier contient à la fois la classe de base MCP230xx pour utiliser facilement les GPIO Extender, avec un démo très simple qui change l'état des broches aussi vite que possible. Le code d'exemple (commenté ci-dessous) montre comment assigner des broches en entrée ("''input''" en anglais) et en sortie ("''output''" en anglais).
+
{{ambox|text=Il faut utiliser un sudo pour permettre au programme d'accéder au GPIO}}
    
== Créer une instance de Adafruit_MCP230xx ==
 
== Créer une instance de Adafruit_MCP230xx ==
29 917

modifications

Menu de navigation