Modifications

Sauter à la navigation Sauter à la recherche
2 428 octets supprimés ,  19 juin 2018 à 21:16
Ligne 85 : Ligne 85 :     
Le manuel de l'utilisateur contient des informations permettant de choisir une alimentation appropriée. Veuillez vous reporter à la bonne section de ce tutoriel.
 
Le manuel de l'utilisateur contient des informations permettant de choisir une alimentation appropriée. Veuillez vous reporter à la bonne section de ce tutoriel.
      
== J'ai une bonne alimentation mais mes moteurs tressautent ou se "coupent" ==
 
== J'ai une bonne alimentation mais mes moteurs tressautent ou se "coupent" ==
Ligne 94 : Ligne 93 :  
Les moteurs utilisé sur les plateformes 4WD robot de certains distributeurs produisent beaucoup de bruit/parasite. Ces parasites sont renvoyés dans la circuiterie Arduino et provoque des exécutions de commande erronée et des instabilités. Ce problèmme peut être résolu en soudant 3 capacités de réduction de bruit. 1 entre les bornes du moteur et une depuis chaque borne vers l'armature du moteur.
 
Les moteurs utilisé sur les plateformes 4WD robot de certains distributeurs produisent beaucoup de bruit/parasite. Ces parasites sont renvoyés dans la circuiterie Arduino et provoque des exécutions de commande erronée et des instabilités. Ce problèmme peut être résolu en soudant 3 capacités de réduction de bruit. 1 entre les bornes du moteur et une depuis chaque borne vers l'armature du moteur.
   −
{{ADFImage|Adafruit Motor Shield V2-FAQ-01.jpg}}
+
{{ADFImage|Adafruit Motor Shield V2-FAQ-01.jpg|250px}}
 
  −
{{traduction}}
  −
 
  −
== Que faire si j'ai besoin de plus de 600mA par moteur? ==
  −
 
  −
[http://www.ladyada.net/make/mshield/use.html Vous pouvez substituer un SN754410 (à vos propres risques) ou souder un autre L293D au dessus du premier] (cette opération s'appelle "''piggyback''" en anglais.
  −
 
  −
== Quels sont les broches utilisées sur le shield moteur? ==
  −
 
  −
'''Les 6 broches analogiques restent disponibles.''' elle peuvent aussi être utilisé comme broches digitales (pins de 14 à 19)
  −
 
  −
'''Les broches digitales 2 et 13 ne sont pas utilisées.'''
  −
 
  −
'''Les broches suivantes sont utilisées par le shield seulement si le moteur continu(DC)/pas-à-pas annoté est utilisé''':<br />
  −
<nowiki>Broche digitale 11: Motor DC #1 / Moteur Pas-à-pas #1 (activation/contrôle de vitesse)
  −
Broche digitale 3: Motor DC #2 / Moteur Pas-à-pas #1 (activation/contrôle de vitesse)
  −
Broche digitale 5: Motor DC #3 / Moteur Pas-à-pas #2 (activation/contrôle de vitesse)
  −
Broche digitale 6: Motor DC #4 / Moteur Pas-à-pas #2 (activation/contrôle de vitesse)</nowiki>
  −
'''
  −
Les broches suivantes sont utilisée sur n'importe quel moteur continu (DC) ou pas-à-pas est utilisé'''<br />
  −
Broches digitales 4, 7, 8 et 12 sont utilisés pour contrôler les moteurs continu (DC)/pas-à-pas via le 74HC595 convertisseur série vers parallèle (serial-to-parallel latch)
  −
 
  −
'''Les broches suivantes sont seulement utilisé si un ou deux servos sont raccordés:'''<br />
  −
Broches digitales 9: Contrôle du Servo Moteur #1
  −
Broches digitales 10: Contrôle du Servo Moteur #2
  −
 
  −
== Quels sont les broches connectées au moteur continu (DC)/pas-à-pas? ==
  −
 
  −
Les moteurs continu (DC)/pas-à-pas NE SONT PAS connectés directement sur votre Arduino. Ils sont connectés sur le 74HC595 qui est piloté par votre Arduino. Vous ne pouvez pas piloter directement les moteurs, vous devez utiliser la librairies du "motor shield"
  −
 
  −
== Je n'y comprends rien... ==
  −
 
  −
[http://docs.google.com/View?docid=dgwf6cmm_2fznx7qgr Michael K à écrit une chouette revue de ce shield] (''en anglais'')
     −
== Comment puis-je raccorder les broches inutilisées? ==
+
== Mon moteur à déjà une capacité et cela ne fonctionne pas. ==
 +
Ces moteurs génèrent beaucoup de parasites (brush noise) et nécessite généralement l'usage de 3 capacités pour un traitement et suppression adéquate des parasites.
   −
Les broches analogiques 0-5 (aussi connu comme broches digitales 14-19) sont disponibles (broken out) dans le coin inférieur droit du shield.
+
== Pourquoi ne pas placer les capacités sur shield? ==
 +
Parce qu'elles ne seraient pas efficace à cet emplacement. Le bruit/parasite doit être éliminé à la source sinon les fils de raccordement du moteur vont agir comme des antennes et propager les parasites sur le reste du système!
   −
La broche 2 est également disponible mais représente un petit "breakout" car c'est la seule broche qui n'est vraiment pas utilisée.
+
== Pourquoi mes moteurs pas-à-pas ne vont pas plus vite? ==
 +
Puisque le moteur est contrôlé par I2C, le débit maximum des pas est limité par la vitesse du bus I2C. Par défaut, la vitesse du bus est de 100KHz et peut être augmenté à 400KHz en édtant un fichier de la bibliothèque/librairie d'Arduino. Le fichier se trouve à l'emplacement hardware/libraries/wire/utility/twi.h.
   −
Les autres broches ne sont pas "broken out" parce qu'elles peuvent être utilisées par le shield moteur. Si vous êtes certain des broches qui seront utilisés dans votre projet... vous pouvez vous y brancher/connecter en utilisant un [http://mchobby.be/PrestaShop/product.php?id_product=120 stacking header] lorsque vous assemblerez votre kit ou souder des fils sur la pastille du pinHeader, où utiliser un "[http://mchobby.be/PrestaShop/product.php?id_product=100 Wing Shield]"
+
Trouvez la ligne avec: "#define TWI_FREQ 100000L"
   −
== I get the following error trying to run the example code:
+
et modifié la comme suit "#define TWI_FREQ 400000L"
"error: AFMotor.h: No such file or directory...." ==
     −
Make sure you have installed the AFMotor library
+
{{underline|Note MCHobby:}}
   −
== Comment installer une librairie? ==
+
Il est également possible de modifier la vitesse du bus I2C avec
   −
Nous pouvons vous proposer notre article [[Installation d'un librairie Arduino]]<br />
+
Wire.setClock(400000)
[http://www.ladyada.net/library/arduino/libraries.html AdaFruit dispose également d'un tutoriel sur les librairies] (''AdaFruit'' en anglais).
     −
== J'ai deux moteurs pas-à-pas que je veux faire fonctionner en même temps! ==
+
== Limites de setSpeed() à base / haute vitesse ==
J'ai deux moteurs pas-à-pas que je veux faire fonctionner en même temps... mais le code d'exemple n'en fait fonctionner qu'un seul à la fois (l'un puis l'autre). Comment puis-je faire?
+
=== A basse vitesse ===
 +
Le délai entre les pas est réalisé par delayMicroseconds() qui ne fonctionne pas pour un argument >16283.
 +
=== A haute vitesse ===  
 +
A haute vitesse, le calcul du délai entre deux pas ne tient pas compte du délai d'exécution du pas (envoi de la commande par I2C+temps d'établissement du courant dans les bobinages). Or, dans un test de réalisé par Mr Pierre M., Ce délai à été étalonné à 1250µs.  
   −
La fonction step() de la libraire des moteurs pas-à-pas n'a pas la possibilité de faire fonctionner deux moteurs en même temps.  
+
La succession des pas ne peut donc pas dépasser 1/1250µs=800pas/s (donc 4tour/s sur un moteur 200 pas ou encore 240tour/min).
 +
Ce qui est honorable pour une application hobbyiste.  
   −
Vous devrez donc combiner et imbriquer vos appels de fonctions step() pour atteindre ce résultat ('''interleave' the calls'' en anglais).  
+
Cependant, pour cette même vitesse {{fname|setSpeed()}} calcule précisément 1250µs de délai entre deux pas... auquel vient s'ajouter les 1250µs de transfert et activation des bobines... donc la vitesse chute de moitié.
   −
Par exemple, si vous voulez que vos deux moteurs pas-à-pas avances de 100 fois, vous devez juste écrire votre code comme suit:
+
=== Corriger ces limitations ===
 +
Il est nécessaire de corriger la bibliothèque Adafruit. Voici 2 liens utiles
 +
* https://forums.adafruit.com/viewtopic.php?f=31&t=117341&sid=19678adc72726090cdff79e3674beb6c
 +
* https://forums.adafruit.com/viewtopic.php?f=31&t=57041&p=408072
   −
<nowiki>for (i=0; i<100; i++) {
+
== Bibliothèque I2C et Interruption ==
motor1.step(1, FORWARD, SINGLE);
+
Si vous ajoutez un interrupteur de fin de course activant une interruption en vue d'arrêter le moteur (avec myMotor->release() depuis la routine ISR)
motor2.step(1, FORWARD, SINGLE);
  −
}</nowiki>
     −
{{ambox | text = Il n'existe pas de pilotes de moteurs pas-à-pas capable d'imbriquer les pas de façon "intelligente". Vous aurez besoin d'écrire une boucle ou utiliser le contrôle des interruptions pour atteindre un tel niveau de contrôle de vos moteurs. }}
+
Alors SACHEZ QUE CELA NE FONCTIONNERA PAS!
   −
== Quel sont les moteurs suggérés? ==
+
car il n'est pas possible d'envoyer un ordre sur le bus I2C durant le traitement ISR.
Le shield Moteur (MotorShield) d'AdaFruit est capable de faire fonctionner de nombreux moteurs.
     −
Vous pouvez trouver des moteurs:
+
La seule solution est de modifier une variable globale depuis l'ISR... et d'attendre que la routine principale, lisant cette même variable globale, arrête le moteur.
# Dans la section [http://mchobby.be/PrestaShop/category.php?id_category=17 "moteur et Robotique" de MCHobby].<br />
  −
# Beaucoup de magasins d'électronique sont également capable de vous fournir du matériel satisfaisant.
  −
# Vous pouvez également acheter des moteurs de Pololu ([http://www.pololu.com/catalog/category/23 DC Servos], [http://www.pololu.com/catalog/category/51 DC motors]) ou Jameco ([http://www.jameco.com/webapp/wcs/stores/servlet/StoreCatalogDrillDownView?langId=-1&storeId=10001&catalogId=10001&categoryName=cat_35&subCategoryName=Motors&category=3515&refine=1&jameco_page=54 all sorts]!).
  −
# [http://www.ladyada.net/library/procure/hobbyist.html Cette page d'AdaFruit reprend également quelques WebShops].
      
{{Adafruit Motor Shield V2-TRAILER}}
 
{{Adafruit Motor Shield V2-TRAILER}}
29 917

modifications

Menu de navigation