Difference between revisions of "FR:RPi Tutorial Easy GPIO Hardware & Software"

From eLinux.org
Jump to: navigation, search
(Contribuer à ce tutoriel)
(Plateformes de tests alternatives)
 
(17 intermediate revisions by one other user not shown)
Line 3: Line 3:
  
 
==Avertissement==
 
==Avertissement==
While most of these circuits may interface directly to the RPi, the use of a buffered interface (such as the one supplied by the [[RPi Gertboard | Gertboard]]) is recommended which will help protect against damage. Alternatively, experiment with one of the [[#Alternative Test Platforms]].
+
Bien que la plupart de ces circuits puisse être interfacée directement avec le RPi, l'usage d'une interface tampon (comme celle fournie par la [[RPi Gertboard | Gertboard]]) est conseillée car elle contribuera à la protection contre tout dommage. Autrement, il est possible de faire les expérimentations avec l'une des [[#Plateformes_de_tests_alternatives]].
  
The GPIO pins connect directly into the core of the ARM processer, and are static-sensitive, so you should avoid touching the pins wherever possible. If you are carrying a static charge, for example by taking off an acrylic pullover, or walking across a nylon carpet, touching the GPIO pins could destroy your R-Pi, so always earth yourself before touching the pins or anything connected to them.  
+
Les broches GPIO sont reliées directement au cœur du proccesseur ARM, et sont sensibles à l'électricité statique. Par conséquent, il est préférable d'éviter de les toucher autant que possible. Si vous portez une charge électrostatique, par exemple en ayant sur vous un pull en acrylique, ou en marchant sur un tapis en nylon, le fait de toucher les broches GPIO peut détruire votre R-Pi. Il faut donc toucher une masse soi-même avant de toucher aux broches ou à quoi que ce soit qui y est connecté.  
  
'''Extreme caution should be exercised when interfacing hardware at a low level, you may damage your RPi, your equipment and potentially yourself and others. Doing so is at your own risk!'''
+
'''Il faut faire preuve d'une précaution extrême lors de l'interfaçage d'un matériel à bas niveau, vous pouvez endommager votre RPi, votre équipement et éventuellement vous blesser vous-même ou d'autres. Le faire est à vos propres risques et périls !'''
  
 
==Objectifs==
 
==Objectifs==
This tutorial is based on [http://www.raspberrypi.org/forum/features-and-requests/easy-gpio-hardware-software this thread] and aims to introduce basic circuits which can be used with the RPi's [[RPi Low-level peripherals#General Purpose Input/Output (GPIO) | General Purpose Input/Output (GPIO)]].
+
Ce tutoriel est basé sur [http://www.raspberrypi.org/forum/features-and-requests/easy-gpio-hardware-software ce fil de discussion] et a pour but de présenter des circuits électriques sommaires à utiliser avec les [[RPi Low-level peripherals#General Purpose Input/Output (GPIO) | entrées/sorties à usage générique (GPIO)]] du RPi.
Basic electronics knowledge will be required (i.e. familiarity with typical discrete components such as transistors, diodes and resistors).
+
Des connaissances de base en électronique seront nécessaires (i.e. connaître les composants classiques comme les transistors, diodes et résistances).
  
It is highly recommended that additional [[RPi Tutorial EGHS:GPIO Protection Circuits|GPIO Protection Circuits]] are used to protect the delicate GPIO pins if interfacing to RPi hardware.
+
Il est grandement conseillé d'utiliser des [[RPi Tutorial EGHS:GPIO Protection Circuits|circuits de protection GPIO]] supplémentaires pour protéger les fragiles broches GPIO si elles sont employées comme interface avec le RPi.
  
 
==Liens utiles/Ressources==
 
==Liens utiles/Ressources==
*[http://log.liminastudio.com/writing/tutorials/tutorial-how-to-use-your-raspberry-pi-like-an-arduino Tutorial: How to use your RPi like an Arduino] - Thorough guide to utilizing the GPIO pins in Python, Bash and C.
+
*[http://log.liminastudio.com/writing/tutorials/tutorial-how-to-use-your-raspberry-pi-like-an-arduino Tutorial: How to use your RPi like an Arduino] - Guide approfondi pour utiliser les broches GPIO en Python, Bash et C.
  
*[http://www.circuitlab.com Online Circuit Lab - Circuit Design and Simulation] - Excellent tool for experimenting with circuits (also used for the circuit diagrams used here)
+
*[http://www.circuitlab.com Circuit Lab en ligne - Conception et simulation de circuits] - Excellent outil pour expérimenter des circuits (également utilisé pour les schémas des circuits utilisés ici)
  
*[http://www.scriptoriumdesigns.com/embedded/index.php Introduction To Embedded Programming - GPIO] - In particular there is lots of detailed information about GPIO inputs and outputs for beginners to understand the principles behind the circuits.
+
*[http://www.scriptoriumdesigns.com/embedded/index.php Introduction To Embedded Programming - GPIO] - Beaucoup d'informations détaillées sur les entrées et sorties GPIO pour que les débutants comprennent les principes sous-jacents aux circuits.
  
*[http://ww1.microchip.com/downloads/en/devicedoc/40040b.pdf Microchip's PIC Tips and Tricks PDF]<ref> http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35307 </ref> - Contains lots of useful example circuits for use with PIC micro-controllers, can be adapted for use with the RPi (3.3V GPIO).
+
*[http://ww1.microchip.com/downloads/en/devicedoc/40040b.pdf PDF PIC Tips and Tricks de Microchip]<ref> http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35307 </ref> - Contient des tas d'exemples de circuits utiles à employer avec des micro-contrôleurs PIC, peut être adapté pour une utilisation avec le RPi (GPIO 3.3V).
  
*[http://www.kpsec.freeuk.com/ The Electronics Club] - An excellent resource for beginner electronics, explains many basic circuits.
+
*[http://www.kpsec.freeuk.com/ The Electronics Club] - D'excellentes ressources pour les débutants en électronique, expliquant de nombreux circuits de base.
  
 
==Circuits de protection==
 
==Circuits de protection==
Line 34: Line 34:
  
 
==Plateformes de tests alternatives==
 
==Plateformes de tests alternatives==
Until you have a RPi to test with, there are many alternative platforms available which will allow the testing of basic circuits. In addition, they may be interfaced with directly using the RPi in the future.
+
Jusqu'à ce que vous ayez un RPi pour faire les tests avec, vous pouvez essayez les circuits de base grâce aux nombreuses plateformes alternatives qui sont disponibles. De plus, ils pourront être interfacés directement en utilisant le RPi à l'avenir.
  
* [http://www.ti.com/tool/msp-exp430g2 TI LaunchPad] - A low cost development platform ($4.30 including free world shipping). Includes programmer/debug board, two processors (with 16 GPIO including I2C/SPI/UART, 8ch 10bit ADC etc).
+
* [http://www.ti.com/tool/msp-exp430g2 TI LaunchPad] - Plateforme de développement à bas coût (les microprocesseurs  coûtent seulement quelques USD et les frais de port sont gratuits à l'international). Comporte une carte de débogage/programmation, deux processeurs (avec 16 GPIO, dont I2C/SPI/UART, CAN 10 bits 8 canaux, etc).
  
*[http://arduino.cc/en/ Arduino] - Common hobbyist development platform. Excellent community support and additional hardware.
+
*[http://arduino.cc/en/ Arduino] - Plateforme de développement répandue chez les passionnés. Excellent support de la communauté et matériel additionnel.
  
 
*[http://www.picaxe.com/ PICAXE]<ref> http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35309 </ref>
 
*[http://www.picaxe.com/ PICAXE]<ref> http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35309 </ref>
  
*[http://www.stm32circle.com/hom/index.php STM32 Primer/EvoPrimer] - Self-contained development platform. Mentioned since I may use one at some point (I bought the original Primer a long time ago). It includes a battery, acceleration sensors and built in display screen.
+
*[http://www.stm32circle.com/hom/index.php STM32 Primer/EvoPrimer] - Plateforme de développement tout-compris. Mentionnée car j'en ai utilisé une jusqu'à un certain point (j'avais acheté le Primer original il y a longtemps). Elle contient une batterie, des accéléromètres et un écran d'affichage intégré.
  
 
=Tutoriels terminés=
 
=Tutoriels terminés=
  Note:
+
  Remarque :
  Until RPi devices are available, I can not confirm this will work on a real RPi.
+
  En attendant la disponibilité des RPi, je ne peux pas garantir le bon fonctionnement sur un RPi réel.
  For now, I shall be using the TI LaunchPad (see [[RPi Tutorial Easy GPIO Hardware & Software#Alternative Test Platforms | Alternative Test Platforms]]
+
  Pour l'instant, j'utilise le TI LaunchPad (voir [[FR:RPi Tutorial Easy GPIO Hardware & Software#Plateformes_de_tests_alternatives | plateformes de test alternatives]]
  for details) to test the hardware on (as it is cheap and the logic levels similar).
+
  pour les détails) afin de tester le matériel dessus (car il n'est pas cher et les niveaux logiques sont semblables).
  
 
===Circuits de base===
 
===Circuits de base===
1. [[RPi Tutorial EGHS:LED output | LED output]]
+
1. [[RPi Tutorial EGHS:LED output | Sortie sur DEL]]
  
Directly driven (will need very low powered LED) or driven via transistor (allowing higher current). Includes example 8xLED Test Module.
+
Contrôlée directement (une DEL à très faible alimentation sera requise) ou par l'intermédiaire d'un transistor (ce qui permet l'emploi d'un courant plus élevé). Inclut comme exemple un module de test 8xDEL.
  
3. [[RPi Tutorial EGHS:Switch Input| Simple on/off switch input]]
+
3. [[RPi Tutorial EGHS:Switch Input| Simple entrée interrupteur marche/arrêt]]
  
With or without de-bouncing, protection resistors etc. Includes example 8xSwitch Test Module.
+
Avec ou sans anti-rebond, résistances de protection etc. Contient comme exemple un module de test Interrupteursx8.
  
4. [[RPi Tutorial EGHS:12V relay driver| 12V relay driver circuit]]
+
4. [[RPi Tutorial EGHS:12V relay driver| Circuit de commande de relais 12V]]
  
12V relay driver circiut with opto-decoupler. Includes schema.
+
Circuit de commande de relais 12V avec opto-coupleur. Avec schéma.
  
 
=Tutoriels prévus=
 
=Tutoriels prévus=
 
===Circuits de base===
 
===Circuits de base===
1. LED output
+
1. Sortie sur DEL
  
''Completed see above.''
+
''Terminé, voir plus haut.''
  
  
2. [[RPi Tutorial EGHS:DC Motor | Small DC motor drive]]
+
2. [[RPi Tutorial EGHS:DC Motor | Contrôle d'un petit moteur CC]]
  
MOSFET or Darlington Pair to provide high power drive and reverse bias diode to protect from motor coils.
+
Transistor Darlington ou MOSFET pour fournir un gain en courant élevé et diode bloquée comme protection contre les bobines du moteur.
  
  
3. [[RPi Tutorial EGHS:Switch Input| Simple on/off switch input]]
+
3. [[RPi Tutorial EGHS:Switch Input| Simple interrupteur marche/arrêt]]
  
''Completed see above.''
+
''Terminé, voir plus haut.''
  
  
4. [[RPi Tutorial EGHS:Analogue Sensor| Analogue resistive sensor sampled as a digital input]]
+
4. [[RPi Tutorial EGHS:Analogue Sensor| Capteur résistif analogique échantillonné en tant qu'entrée numérique]]
  
Using a basic transistor switch circuit.
+
Utilisation d'un circuit basique avec un transistor comme interrupteur.
  
 
===Circuits intermédiaires===
 
===Circuits intermédiaires===
1. [[RPi Tutorial EGHS:Shift Registers| Shift Registers - Multiplexing Data]]
+
1. [[RPi Tutorial EGHS:Shift Registers| Registres à décalage - Multiplexage de données]]
  
An introduction to using additional ICs. In this case, using a parallel to serial 8-bit shift register to read 8 digital inputs using two GPIO pins.
+
Une introduction à l'utilisation de CI supplémentaires. Dans le cas présent, utilisation d'un registre à décalage parallèle vers série 8 bits pour lire 8 entrées numériques depuis deux broches GPIO.
  
  
2. [[RPi Tutorial EGHS:Analogue to Digital| Analogue to Digital Circuit]]
+
2. [[RPi Tutorial EGHS:Analogue to Digital| Circuit analogique vers numérique]]
  
Use of a ADC chip to sample inputs.
+
Utilisation d'une puce CAN pour échantillonner des entrées.
  
  
3. [[RPi Tutorial EGHS:Driving Circuit| PWM Driving Circuit]]
+
3. [[RPi Tutorial EGHS:Driving Circuit| Circuit de commande PWM]]
  
For example motor speed control.
+
Contrôle de la vitesse du moteur par exemple.
  
  
4. [[RPi Tutorial EGHS:Alpha-Numeric Display| Alpha-numeric 2x16 LCD Display]]
+
4. [[RPi Tutorial EGHS:Alpha-Numeric Display| Affichage ACL 2x16 alpha-numérique]]
  
'''(IN-PROGRESS)''' Control via 4-wire data (total 6 GPIO) and also alternative 2-wire interface circuit.
+
'''(EN-COURS)''' Contrôle via 4 fils de données (6 GPIO au total) et également un autre circuit d'interface à 2 fils.
  
  
5. [[RPi Tutorial EGHS:I2C Interfacing| Interfacing to I2C Devices]]
+
5. [[RPi Tutorial EGHS:I2C Interfacing| Interfaçage avec des périphériques I2C]]
  
Interfacing to an I2C device connected to one of the Pi's I2C buses.
+
Interfaçage d'un périphérique I2C connecté à l'un des bus I2C du Pi.
  
 
===Circuits avancés===
 
===Circuits avancés===
1. [[RPi Tutorial EGHS:Control Hardware Over Internet| Control Hardware Over The Internet]]
+
1. [[RPi Tutorial EGHS:Control Hardware Over Internet| Contrôle matériel via Internet]]
  
Implement web control and monitoring of GPIO connected components.
+
Implémenter un contrôle via le web et une surveillance des composants branchés sur les GPIO.
  
2. [[RPi Tutorial EGHS:Communicating With Other Micro-controllers | Communicating With Other Micro-controllers ]]
+
2. [[RPi Tutorial EGHS:Communicating With Other Micro-controllers | Communication avec d'autres micro-contrôleurs ]]
  
Communicate with other micro-controllers so that features such as ADCs can be used.
+
Communiquer avec d'autres micro-contrôleurs pour que des fonctionnalités comme des CAN puissent être utilisées.
  
 
==Contribuer à ce tutoriel==
 
==Contribuer à ce tutoriel==

Latest revision as of 09:58, 5 March 2014

Retour vers le Hub, ou vers la page Tutoriels.


Tutoriels logiciels et matériels GPIO :


Avertissement

Bien que la plupart de ces circuits puisse être interfacée directement avec le RPi, l'usage d'une interface tampon (comme celle fournie par la Gertboard) est conseillée car elle contribuera à la protection contre tout dommage. Autrement, il est possible de faire les expérimentations avec l'une des #Plateformes_de_tests_alternatives.

Les broches GPIO sont reliées directement au cœur du proccesseur ARM, et sont sensibles à l'électricité statique. Par conséquent, il est préférable d'éviter de les toucher autant que possible. Si vous portez une charge électrostatique, par exemple en ayant sur vous un pull en acrylique, ou en marchant sur un tapis en nylon, le fait de toucher les broches GPIO peut détruire votre R-Pi. Il faut donc toucher une masse soi-même avant de toucher aux broches ou à quoi que ce soit qui y est connecté.

Il faut faire preuve d'une précaution extrême lors de l'interfaçage d'un matériel à bas niveau, vous pouvez endommager votre RPi, votre équipement et éventuellement vous blesser vous-même ou d'autres. Le faire est à vos propres risques et périls !

Objectifs

Ce tutoriel est basé sur ce fil de discussion et a pour but de présenter des circuits électriques sommaires à utiliser avec les entrées/sorties à usage générique (GPIO) du RPi. Des connaissances de base en électronique seront nécessaires (i.e. connaître les composants classiques comme les transistors, diodes et résistances).

Il est grandement conseillé d'utiliser des circuits de protection GPIO supplémentaires pour protéger les fragiles broches GPIO si elles sont employées comme interface avec le RPi.

Liens utiles/Ressources

  • PDF PIC Tips and Tricks de Microchip[1] - Contient des tas d'exemples de circuits utiles à employer avec des micro-contrôleurs PIC, peut être adapté pour une utilisation avec le RPi (GPIO 3.3V).
  • The Electronics Club - D'excellentes ressources pour les débutants en électronique, expliquant de nombreux circuits de base.

Circuits de protection

Afin de protéger l'électronique du Raspberry Pi, il est vivement recommandé d'assurer la protection des broches GPIO d'une façon ou d'une autre pour éviter tout dommage.

Le lien suivant présente quelques manières de le faire :

Circuits de protection GPIO

Plateformes de tests alternatives

Jusqu'à ce que vous ayez un RPi pour faire les tests avec, vous pouvez essayez les circuits de base grâce aux nombreuses plateformes alternatives qui sont disponibles. De plus, ils pourront être interfacés directement en utilisant le RPi à l'avenir.

  • TI LaunchPad - Plateforme de développement à bas coût (les microprocesseurs coûtent seulement quelques USD et les frais de port sont gratuits à l'international). Comporte une carte de débogage/programmation, deux processeurs (avec 16 GPIO, dont I2C/SPI/UART, CAN 10 bits 8 canaux, etc).
  • Arduino - Plateforme de développement répandue chez les passionnés. Excellent support de la communauté et matériel additionnel.
  • STM32 Primer/EvoPrimer - Plateforme de développement tout-compris. Mentionnée car j'en ai utilisé une jusqu'à un certain point (j'avais acheté le Primer original il y a longtemps). Elle contient une batterie, des accéléromètres et un écran d'affichage intégré.

Tutoriels terminés

Remarque :
En attendant la disponibilité des RPi, je ne peux pas garantir le bon fonctionnement sur un RPi réel.
Pour l'instant, j'utilise le TI LaunchPad (voir  plateformes de test alternatives
pour les détails) afin de tester le matériel dessus (car il n'est pas cher et les niveaux logiques sont semblables).

Circuits de base

1. Sortie sur DEL

Contrôlée directement (une DEL à très faible alimentation sera requise) ou par l'intermédiaire d'un transistor (ce qui permet l'emploi d'un courant plus élevé). Inclut comme exemple un module de test 8xDEL.

3. Simple entrée interrupteur marche/arrêt

Avec ou sans anti-rebond, résistances de protection etc. Contient comme exemple un module de test Interrupteursx8.

4. Circuit de commande de relais 12V

Circuit de commande de relais 12V avec opto-coupleur. Avec schéma.

Tutoriels prévus

Circuits de base

1. Sortie sur DEL

Terminé, voir plus haut.


2. Contrôle d'un petit moteur CC

Transistor Darlington ou MOSFET pour fournir un gain en courant élevé et diode bloquée comme protection contre les bobines du moteur.


3. Simple interrupteur marche/arrêt

Terminé, voir plus haut.


4. Capteur résistif analogique échantillonné en tant qu'entrée numérique

Utilisation d'un circuit basique avec un transistor comme interrupteur.

Circuits intermédiaires

1. Registres à décalage - Multiplexage de données

Une introduction à l'utilisation de CI supplémentaires. Dans le cas présent, utilisation d'un registre à décalage parallèle vers série 8 bits pour lire 8 entrées numériques depuis deux broches GPIO.


2. Circuit analogique vers numérique

Utilisation d'une puce CAN pour échantillonner des entrées.


3. Circuit de commande PWM

Contrôle de la vitesse du moteur par exemple.


4. Affichage ACL 2x16 alpha-numérique

(EN-COURS) Contrôle via 4 fils de données (6 GPIO au total) et également un autre circuit d'interface à 2 fils.


5. Interfaçage avec des périphériques I2C

Interfaçage d'un périphérique I2C connecté à l'un des bus I2C du Pi.

Circuits avancés

1. Contrôle matériel via Internet

Implémenter un contrôle via le web et une surveillance des composants branchés sur les GPIO.

2. Communication avec d'autres micro-contrôleurs

Communiquer avec d'autres micro-contrôleurs pour que des fonctionnalités comme des CAN puissent être utilisées.

Contribuer à ce tutoriel

Il s'agit d'un projet ouvert, aussi n'hésitez pas à ajouter vos propres sections et à améliorer son contenu.

Allez sur la page Talk:RPi Tutorial Easy GPIO Hardware & Software pour discuter de son contenu.

  1. http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35307
  2. http://www.raspberrypi.org/forum/projects-and-collaboration-general/gpios-suitable-for-microswitches-joysticks/#p35309