Shield grove et pololu drv 8835

Démarré par périambre, Février 16, 2018, 05:38:05 pm

« précédent - suivant »

périambre

Bonjour,

me revoila. j'ai fait quelques tests avec un petit robot arduino. ça à bien fonctionné.

je voudrais, à présent faire des essais avec un shield grove. j'ai fait des recherches sur internet mais je n'ai pas trouvé de réponse.

donc voila ma première question : faut-il faire une manipulation particulière pour que ma carte arduino détecte le shield grove ou est-elle détectée d'office?

j'ai également une carte moteur pololu drv 8835 (le bloc existe sur blockly). Il semblerait que je puisse monté cette carte sur le shield grove mais je ne trouve rien. savez vous comment faire? et faut-il faire une manip pur qu'elle soit egalement repéré?

Merci d'avance pour votre aide.

Bzhtitude

Bonjour,

Peux-tu donner plus de détail sur le "shield grove" que tu souhaites essayer. un lien peut -être ?
Une fois que nous saurons de quoi il s'agit , on pourra t'aider pour la suite avec le driver drv8835 et ses connexions.
J'avoue ne pas comprendre ton histoire de détection et de repérage ???






périambre

re,
merci pour ta réponse.
En faite, c'est la base shield. voici un lien :
https://www.gotronic.fr/art-module-grove-base-shield-103030000-19068.htm

pour ce qui est de la "détection ou du repérage", je voulais savoir si la carte arduino detectait automatiquement la base shield ou si il fallait faire quelque chose de particulier.
et idem entre la carte pololu et la base shield grove.




Bzhtitude

Pour le shield de connexion, il n'y a rien à faire , à par faire attention à l'alimentation (inverseur 3.3V/5V) Cette carte est juste faite pour simplifier les connections avec les modules de chez grove, Je m'en sert également et c'est très pratique et rapide.

Pour le driver de chez pololu, il y a 2 modèles :

le 1 : https://www.pololu.com/product/2135
le 2 : https://www.pololu.com/product/2511

Si c'est le 2 ... aucun soucis pour le relier directement sur un arduino,  à travers le shied de connexion ou pas vu que ça n'utilise pas les connecteurs grove
Si c'est le 1 ça va être plus problématique car il va falloir passer par une breadboard ou souder des connecteurs grove en choisissant "judicieusement" les broches.

Pour ce driver , il n'y aura pas non plus de détection automatique ... d'ailleurs , à moins que je me trompe, mais je n'ai jamais croisé de shields ou de modules à connecter sur un Arduino qui se faisait détecter. 

a+


périambre

Merci pour ta réponse.

j'ai la seconde carte pololu. je la place comment sur la base shield grove?

Bzhtitude

bah comme sur la photo ... ils n'ont pas mis la carte grove ( et pour cause)  mais ça se place exactement comme ils le montrent , bien faire attention aux bornes 6,7,8,9,10 mais la sérigraphie est bonne , il ne doit y avoir aucun soucis.

Tu n'es pas OBLIGÉ de mettre le shield de connexion ... mais ce n'est pas interdit.

Bon test.

périambre

Merci pour tes réponses.
je sais que je  ne suis pas obligé d'utiliser une base grove mais je dispose aussi de capteurs grove.

J'ai fait des tests. ça ne marche pas. la compilation et le televersement se passe sans problème.
je voulais juste faire fonctionner 2 moteurs et verifier que mon cablage n'etait pas inversé.

je joins 2 photos, l'une de mon montage et l'autre des blocks.





si vous pouviez me dire ce que j'oublie, ...

merci d'avance

Bzhtitude

Février 20, 2018, 09:11:31 pm #7 Dernière édition: Février 20, 2018, 09:15:01 pm par Bzhtitude
extrait "  if the motor power supply is suitable, it is possible to power the Arduino from the shield. This can be accomplished by placing a jumper between the shield pins in the lower-left corner labeled VOUT and AVIN, "

Je ne vois que ça sur la photo.

Tu peux essayer sans le shield grove, j'ai un petit doute car je ne vois pas bien la position de l'inverseur 3.3V/5V...

Ensuite évidemment , les soudures sèches, court-circuits... et tous les problèmes classiques d'électronique sont à tester et éventuellement éliminer.

Bon courage

fontaine.jp

Salut, et je rajouterai puissance de la pile ?
car j'ai déjà testé une pile en direct sur le moteur qui fonctionne et en passant par le driver ça ne fonctinne plus
;)

périambre

Bonsoir,
merci pour vos propositions.

@Bhz : je n'ai pas trop compris la phrase en anglais. Je dois placer un cavalier sur le vout? c'est ça?si oui c'est quoi le vout?
sinon, j'ai effectivement essayer sans la base shield, rien ne change. j'ai 2 cartes pololu identique. ça n'a pas fonctionné avec les deux. j'ai aussi testé avec les 2 positions de l'inverseur
par ailleurs quand je branche la pile sur la pololu aucune led ne s'allume, par contre quand je mets la pile direct sur l'arduino les leds s'allument. c'est normal?


@jp : normalement ce bloc roues fonctionne avec 4,5v et j'ai essayé avec un autre modèle composé d'un seul moteur ça n'a pas fonctionné non plus.



sinon, vous ne m'avez pas parlé de mon programme, il est bon? c'est aussi simple que ça?



Bzhtitude

salut

extrait "  if the motor power supply is suitable, it is possible to power the Arduino from the shield. This can be accomplished by placing a jumper between the shield pins in the lower-left corner labeled VOUT and AVIN, "

En gros  : si tu fournis l'alim pour les moteurs, tu peux aussi alimenter l'arduino en mettant un cavalier sur le jumper situé "près de" Vout et Avin.

Sur le schéma de la carte, Vout est la sortie de l'étage de régulation qui doit donner une tension stabilisée autour de 6.8V ( environ, j'ai pas fait l'étude du montage) et tu relies ça sur l'Arduino Vin : Avin

Si tu as un voltmètre à disposition, une petite lecture de cette tension serait intéressante pour voir si la pile n'est pas à genoux, car les moteurs peuvent tirer pas mal du courant au démarrage. Perso je mettrais une alim de labo si tu as ça sous la main...

Pour le programme, je ne connais pas du tout les blocs dont je ne peux pas dire, mais je ne vois pas de problème à priori , par contre si tu peux donner le code génèré , ça permettrait de vérifier les broches et les configs... une petite tempo avant d'alimenter les moteurs permettrait de faire la lecture au voltmètre plus facilement.



périambre

ok, merci. faut que je reouve une pile pour mon multimetre.
sinon en attendant voici le code :

void forward()
{
  analogWrite(9,175);//Motor A speed
  analogWrite(10,175);//Motor B speed
  digitalWrite(7,LOW);//turn DC Motor B (right) move clockwise
  digitalWrite(8,LOW);//turn DC Motor A (left) move clockwise
}

void right()
{
  analogWrite(9,175);//Motor A speed
  analogWrite(10,175);//Motor B speed
  digitalWrite(7,HIGH);//turn DC Motor B (right) move clockwise
  digitalWrite(8,LOW);//turn DC Motor A (left) move anti-clockwise
}


void left()
{
  analogWrite(9,175);//Motor A speed
  analogWrite(10,175);//Motor B speed
  digitalWrite(7,LOW);//turn DC Motor B (right) move anticlockwise
  digitalWrite(8,HIGH);//turn DC Motor A (left) move clockwise
}



void setup() {
  pinMode(7,OUTPUT);//directionPinA
  pinMode(8,OUTPUT);//directionPinB
  pinMode(9,OUTPUT);//speedPinA
  pinMode(10,OUTPUT);//speedPinB

}

void loop() {
  forward();
  delay(2000);
  right();
  delay(2000);
  left();
  delay(2000);

}

j'ai deja vérifié pour moi les pins sont bons.

Bzhtitude

Citation de: périambre le Février 21, 2018, 09:09:50 pm
j'ai deja vérifié pour moi les pins sont bons.


Je ne vois aucun soucis dans ce code,... les broches sont corrects et les signaux aussi.  Il reste le hard à vérifier , l'alim en 1er.

Je mettrais par habitude un delay de 250ms dans le setup ... mais c'est anecdotique.

Tu as bien mis le jumper ?

périambre

Bonsoir,

ça y est!
ça fonctionne. le jumper a été determinant. je me suis pris la tête pour en trouver un (sur un vieux dd ide).
merci pour ton aide.

par contre, il faut que je connecte la carte au pc pour que cela fonctionne. la pile n'est pas assez puissante (j'en ai testé 3).

merci pour ton aide.