Modifications

Sauter à la navigation Sauter à la recherche
3 223 octets ajoutés ,  26 avril 2017 à 20:07
Ligne 1 : Ligne 1 : −
{{tmbox | text = En cours de traduction}}
  −
   
== Introduction ==
 
== Introduction ==
 
Voici un contrôleur PWM/Servo 16 canaux (12 bits) utilisant une interface de communication I2C interface.
 
Voici un contrôleur PWM/Servo 16 canaux (12 bits) utilisant une interface de communication I2C interface.
Ligne 6 : Ligne 4 :  
Si vous avez un jour rêver de créer un robot qui marche à l'aide d'un Arduino (ou autre micro contrôleur), ce breakout sera la solution de mise en oeuvre idéale.
 
Si vous avez un jour rêver de créer un robot qui marche à l'aide d'un Arduino (ou autre micro contrôleur), ce breakout sera la solution de mise en oeuvre idéale.
    +
{{ADFImage|ADF-PWM-DRIVER.jpg|350px}}
 +
 +
Vous voulez réaliser des robot vraiment cool, peut-être un hexapode voire un oeuvre d'art contenant beaucoup d'éléments mobiles. Peut-être voulez vous piloter des LEDs avec une sortie PWM de précision?
 +
 +
Vous réaliserez vite que votre microcontroleur dispose d'un nombre limité de sorties PWM. Que faire alors? Vous pouvez soit abandonner votre projet ou opter pour ce breakout board vraiment pratique permettant de piloter des sorties PWM et Servo.
    +
{{ADFImage|ADF-PWM-DRIVER-2.jpg|350px}}
    
Note: ce produit est aussi connu sous son appellation d'origine "''Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685''"
 
Note: ce produit est aussi connu sous son appellation d'origine "''Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685''"
 +
 +
== C'est quoi PWM? ==
 +
PWM est l'acronyme anglais de "pulse width modulation" que l'on traduit par "modulation par largeur d'impulsions".
 +
 +
PWM est un terme fort répandu sur le net, Arduino et en hacking électronique... raison de laquelle nous allons le préserver tel quel.
 +
 +
La modulation par largeur d'impulsion (MLI en français) est une technique utilisée pour contrôler la puissance envoyée à un périphérique. Nous l'utiliserons dans [[Rasp-Hack-L293|ce tutoriel pour contrôler]] la quantité d'énergie alimentant le moteur et par conséquent sa vitesse de rotation.
 +
 +
Le graphique ci-dessous montre le signal PWM tel qu'il est envoyé par la broche PWM du Raspberry Pi
 +
 +
{{ADFImage|Rasp-Hack-L293-PWM-01.jpg|450px}}
 +
 +
Chaque 1/500 ième de seconde, la sortie PWM produit une impulsion. La longueur de cette impulsion (dans le temps) contrôle la quantité d'énergie qui alimente le moteur. Comme vous pouvez le constater sur le graphique la longueur de l'impulsion peut varier de 0 à 100%.
 +
 +
Sans impulsion, le moteur ne fonctionne pas, une courte impulsion le fera tourner lentement. Si l'impulsion est active pendant cinquante pour cent du cycle, le moteur recevra la moitié de la puissance qu'il recevrait avec des impulsions maximales (constante dans le temps).
    
== Détail du Breakout ==
 
== Détail du Breakout ==
   −
  TODO - Image détaillée
+
[[Fichier:ADF-PWM-DRIVER-Detail.jpg|600px]]
    
=== Connecteur de commande ===
 
=== Connecteur de commande ===
Ligne 18 : Ligne 37 :  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
| align="center" width="400" | Breakout
+
| align="center" width="80" | '''Breakout'''
| align="center" width="400" | Arduino
+
| align="center" width="400" | '''Arduino'''
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | GND
 
| align="left" | GND
Ligne 26 : Ligne 45 :  
| align="left" | OE  
 
| align="left" | OE  
 
| align="left" | '''Output Enable'''. Permet de désactiver toutes les sorties PWM à l'aide d'un seul signal.  
 
| align="left" | '''Output Enable'''. Permet de désactiver toutes les sorties PWM à l'aide d'un seul signal.  
 +
|- style="font-size: 90%"
 +
| align="left" | SDA
 +
| align="left" | S'utilise avec SDA pour établir une communication I2C avec le micro-controleur.
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | SCL
 
| align="left" | SCL
| align="left" | S'utilise avec SDA pour établir une communication IC2 avec le micro-controleur.
+
| align="left" | S'utilise avec SCL pour établir une communication I2C avec le micro-controleur.  
|- style="font-size: 90%"
  −
| align="left" | SDA
  −
| align="left" | S'utilise avec SCL pour établir une communication IC2 avec le micro-controleur.  
   
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | V+  
 
| align="left" | V+  
Ligne 43 : Ligne 62 :  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
| align="center" width="400" | Breakout
+
| align="center" width="80" | '''Breakout'''
| align="center" width="400" | Arduino
+
| align="center" width="400" | '''Arduino'''
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | GND
 
| align="left" | GND
Ligne 58 : Ligne 77 :  
| align="left" | Analogique 4 (A4)
 
| align="left" | Analogique 4 (A4)
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | OE (Output Enabled)
+
| align="left" | OE  
| align="left" | ''Non utilisé''  
+
| align="left" | (Output Enabled) ''Non utilisé''  
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | V+ (le "+" du bornier d'alimentation)
+
| align="left" | V+  
| align="left" | ''Non utilisé''  
+
| align="left" | (le "+" du bornier d'alimentation externe) ''Non utilisé''  
 
|}
 
|}
 
   
 
   
Le montage présenté plus bas présente ce raccordement en image :-)
+
Le montage présenté plus bas montre ce raccordement en image :-)
    
=== Alimentation externe ===
 
=== Alimentation externe ===
Ligne 76 : Ligne 95 :  
Il faut donc utiliser une source d'énergie externe... la raison de ce connecteur :-)
 
Il faut donc utiliser une source d'énergie externe... la raison de ce connecteur :-)
 
   
 
   
TODO Vous pouvez y raccorder une source de tension entre xxx et yyy.
+
Selon la fiche produite, '''vous pouvez y raccorder une source de tension allant jusqu'à 6 Volts''' (ce qui est le maximum en usage pour les Servo Moteur).
   −
TODO Image avec polarité
+
[[Fichier:ADF-PWM-DRIVER-ConnectPower.JPG]]
   −
Pour nos essais, nous avons utilisé une source d'alimentation de 4.5V.  
+
Pour nos essais, nous avons utilisé une source d'alimentation de 4.5V.
   −
=== Comment brancher mes Servo Moteur ===
+
=== Comment brancher les Servo-Moteurs ===
 
Les pinHeader (connecteurs) ne disposent pas de détrompeurs... il est donc possible de raccorder ses servo-moteur dans le mauvais sens par erreur.
 
Les pinHeader (connecteurs) ne disposent pas de détrompeurs... il est donc possible de raccorder ses servo-moteur dans le mauvais sens par erreur.
   Ligne 89 : Ligne 108 :  
Inverser le sens de raccordement du servo reviendrait à appliquer +5v sur la broche de commande du PCA9685 (par l'intermédiaire du moteur)... GLOUPS!
 
Inverser le sens de raccordement du servo reviendrait à appliquer +5v sur la broche de commande du PCA9685 (par l'intermédiaire du moteur)... GLOUPS!
   −
L'image ci-dessous montre comment brancher correctement un servo-moteur.
+
AdaFruit à cependant penser à sécurisé les sorties PWM, en effet une résistance de 220 Ohms est montée en série sur chaque sortie :-)
 +
 
 +
L'image ci-dessous montre comment brancher correctement un servo-moteur (couleurs Graupner).
   −
TODO - Montage servo moteur ... attention couleur Graupner
+
[[Fichier:ADF-PWM-DRIVER-ConnectServo.JPG|350px]]
    
=== Ne fonctionne pas et LED Power éteinte ===
 
=== Ne fonctionne pas et LED Power éteinte ===
Ligne 99 : Ligne 120 :     
Raccordez l'entrée VCC sur une source de tension (ex: +5V de votre Arduino). N'oubliez pas d'aussi raccorder '''la broche GND''' pour avoir une masse commune entre le breakoutboard et votre micro-controleur.
 
Raccordez l'entrée VCC sur une source de tension (ex: +5V de votre Arduino). N'oubliez pas d'aussi raccorder '''la broche GND''' pour avoir une masse commune entre le breakoutboard et votre micro-controleur.
 +
 +
== Librairie Adafruit_PWMServoDriver ==
 +
Vous pouvez [https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library télécharger la librairie Adafruit_PWMServoDriver] depuis le dépot GitHub.
 +
 +
Veillez à l'installer dans un répertoire '''Adafruit_PWMServoDriver''' de votre répertoire Library de votre environnement Arduino IDE.
 +
 +
Redemarrez votre environnement de développement et c'est prêt :-)
 +
 +
''Cette librairie à été testée avec succès sur Arduino 1.0-RC2.''
    
== Mise en Oeuvre ==
 
== Mise en Oeuvre ==
Ligne 107 : Ligne 137 :  
=== Montage ===
 
=== Montage ===
   −
TODO
+
Comme dans le point "[[#Branchement_sur_un_Arduino brachement|branchement sur un Arduino]]" voici notre montage de démonstration en image.
 +
 
 +
[[Fichier:ADF-PWM-DRIVER-Montage1.jpg|400px]]
 +
 
 +
[[Fichier:ADF-PWM-DRIVER-Montage2 (LowRes).JPG|400px]]
    
=== Résultat ===
 
=== Résultat ===
 
Voici un petit exemple du résultat en vidéo :-)
 
Voici un petit exemple du résultat en vidéo :-)
   −
TODO
+
{{#Widget:Iframe
 +
|url=https://www.youtube.com/embed/1PTceIXmXUE
 +
|width=420
 +
|height=315
 +
|border=0
 +
}}
    
=== Code ===
 
=== Code ===
Ligne 212 : Ligne 251 :  
</nowiki>
 
</nowiki>
   −
=== Où Acheter ===
+
=== Exemple Avancé ===
Ce produit est disponible chez [http://www.mchobby.be MCHobby].
+
La librairie fournie par AdaFruit contient un exemple incluant un code complet et documenté avec précision (il est cependant en anglais).
 +
 
 +
== Où Acheter ==
 +
* Le {{pl|89|AdaFruit PWM Driver}} est disponible chez MCHobby.
 +
* Vous trouverez également des {{cl|17|servo-moteur dans la gamme moteur et robotique}}.
 +
 
 +
<hr />
 +
<small> Créé par Meurisse D. pour [[http://www.mchobby.be MCHobby]]</small>
    
{{MCH-Accord}}
 
{{MCH-Accord}}
    
{{ADF-Accord}}
 
{{ADF-Accord}}
29 917

modifications

Menu de navigation