Aller au contenu


Photo
- - - - -

3BP pour 2pins (sur arduino)


26 réponses à ce sujet

#1 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 13 avril 2013 - 02:08

Salut,
Je souhaiterais une confirmation avant de faire une bêtise. ^^
je souhaite utiliser 3 boutons poussoirs pour le pare chocs de mon robot, ces boutons seront reliés à mon arduino mega (dans un premier temps, il sera ensuite remplacé par un ATtiny85).. vu que l'ATtiny85 est pauvre en I/O, j'aurais souhaité n'utiliser que deux pins du µC pour les trois BP.
BP1 = choc à gauche (pin11)
BP2 = choc à droite (pin12)
BP3 = choc central (pin11 et pin12)
je pense à un montage de ce genre :
Image IPB
https://sites.google...lua/mnm/3bp.PNG
mais j'ai peur qu'une pression simultanée sur le BP3 et un autre BP balance trop d''intensité dans mon fragile arduino... ^^
C'est pourquoi j'ai pris l'initiative de vous demander une confirmation avant de commettre une erreur.

Merci d'avance.


EDIT: je me rends compte soudainement qu'une pression sur n'importe quel BP va faire pulluper sur toutes les résistances.. ça va pas.

#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 13 avril 2013 - 02:25

à mon avis tu ne risque rien avec cela ! Pour tout te dire je ne vois même pas où est le danger du retour de courant ... ( à mois que je sois passer à côté de quelque chose x) )

Par contre ton montage est faux sur le principe ! Car avec ce montage ton arduino est incapable de distinguer quel bouton a été appuyé !

Tu l'as besoin que de deux pull up mais il faut mettre B3 en parrallele avec B1 et B2 avec deux paires de pattes "indépendantes "
C'est typique des boutons poussoir à 4 pattes !

Sinon tu peux aussi tout faire sur un seul fil et faire une lecture analogique !

Bonne continuation =)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 13 avril 2013 - 02:31

merci beaucoup.
je vais voir ce que je peux faire.. (malheureusement, le BP3 n'a que deux broches)

#4 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 13 avril 2013 - 02:38

mais j'ai peur qu'une pression simultanée sur le BP3 et un autre BP balance trop d''intensité dans mon fragile arduino... ^^
C'est pourquoi j'ai pris l'initiative de vous demander une confirmation avant de commettre une erreur.


Tu dois juste bien dimensionner les résistances.
Pour connaitre la consommation, une simple loi d'ohm suffit :)

Par contre ton schéma ne marchera pas : si tu appuis sur BP1, le Ard11 est à la masse, mais aussi Ard12 ! (tu as une liaison directe entre Ard11 et Ard12 ! R3 ne sert à rien)

Si tu regarde ça d'un point de vue logique :
  • Ard11 = non(BP1 ou BP2) = non(BP1) et non(BP2)
  • Ard12 = non(BP3 ou BP2) = non(BP2) et non(BP3)
Tu dois donc utiliser des portes logiques. Le plus simple, c'est de rajouter de simples diodes (ou des schottky)

  • http://etronics.free.fr/dossiers/num/num04.htm
  • http://etronics.free.fr/dossiers/num/num03.htm
bp.png


Les diodes D1 et D2 sont facultatives. C'est juste pour avoir un niveau bas à 0.6V (0.3V avec schottky) tout le temps.

Si tu retires D1 et D2, tu auras un niveau bas à 0V lorsque BP1 ou BP2 est activé et un niveau bas à 0.6V lorsque BP3 s'active.



Mon site internet : http://ferdinandpiette.com/


#5 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 13 avril 2013 - 02:58

merci beaucoup !
ça tombe bien, je dois avoir quelques diodes en stock.

PS : tu utilises quel logiciel pour tes schémas ? (de mon côté, tu as pu remarquer que j'utilise un bloc notes papier et un stylo pour le moment.. faudrait que je me mette à la page ^^ )

edit : merci aussi pour les liens.. je ne connaissais pas ce site

#6 Melmet

Melmet

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 526 messages
  • Gender:Male

Posté 13 avril 2013 - 05:11

Le plus simple serais quand même les BPs en série sur une entrée analogique.

#7 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 13 avril 2013 - 05:27

Le plus simple serais quand même les BPs en série sur une entrée analogique.

ça ne me permettrait pas de savoir de quel côté a eut lieu le choc.
ensuite, au niveau programmation je veux que ça fasse un truc du style :
SI choc à droite => tourne de 40° à gauche
SI choc à gauche => tourne de 40° à droite
SI choc central => fait demi tour (90°)

#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 13 avril 2013 - 06:33

ça ne me permettrait pas de savoir de quel côté a eut lieu le choc.
ensuite, au niveau programmation je veux que ça fasse un truc du style :
SI choc à droite => tourne de 40° à gauche
SI choc à gauche => tourne de 40° à droite
SI choc central => fait demi tour (90°)


La deuxième solution que je t'ais proposé ne te va pas ?

Tout sur un seul fil ... ça nécessite d'ajouter entre 3 à 6 résistances en fonction de ce que tu veux, et ça peut permettre de gérer des priorités en "Hard " c'est à dire que si tu as es le bouton du milieu d'activé et celui de droite en même temps tu ne reçoit que la réponse que tu auras déterminé prioritaire !

Vu que tu as la drop box mais que tu n'utilises pas d'éditeur des shémas je te fais un truc sur paint. Avec 3 configurations possible... ( l'une avec arboréscence de priorité, une avec une seul priorité ( donc plus de configrations de détections disponibles ) une sans aucune priorité ( encore plus de configuration détectable ) Il ne te reste plus que à choisir les bonne valeurs de résistanca pour obtenir des tension analogique facilement différenciable !
Pour cela note les résistance R1 R2 R3 etc... et en fonction des bouton sur lesquel tu appuis ( Bp1, Bp1+Bp2 etc... ) calcul la tension analogique présente sur la patte de ta arduino ;)/> Il suffit de choisir ensuite les valeur de manière à ce que pour les différents cas tu puisse aisément distinguer les niveaux de tension !

Je cré un dossier " autre " dans la drop ;)

Publie ici le schémas que tu auras choisis avec les valeur de résistance ! =)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#9 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 13 avril 2013 - 07:49

Ha oui ! Merci !
en effet, je ne voyais pas ça comme ça, mais c'est très intéressant (et économique ^^).

voici la réponse que je propose :
Image IPB

edit : j'ai répondu trop vite... il faudrait doubler la valeur de toutes les resistances.
(je corrige ça dans la nuit ;)/> )

re-edit : ha ben nan ! j'ai corrigé trop vite.. ça devrait aller comme ça. ^^

#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 13 avril 2013 - 08:46

Je vois que tu as choisis le 3 ème sans aucune priorité avec les 6 résistances ^^ Par contre :as tu penser à faire tous les cas ?

Exemple : Si le bouton de droite et le bouton de gauche sont activé mais pas celui du milieu le résultat interprété par l'arduino sera la même que si uniquement les bouton du milieu ou même les 3 avaient été appuyé... c'est bien ce que tu souhaite ?? Du coup tu perds quelques info ...

d'ailleur regarde ce qu'il se passe quand tu appuis sur droit et milieu et sur gauche et milieu et voit si c'est pas trop proche des autre valeurs ! ;)

Bon grâce à cette solution tu n'es pas obliger de te cantonner à 3 boutons tu peux en mettre beaucoup plus !
Inconvénient par contre, il faut bien choisir les valeur des résistance !

Ps : pourquoi avoir choisi celui là et pas un avec "priorité " ? genre le deuxième que je proposais avec le bouton du milieu tout en haut ? en plus ça te fait deux résistance de moins ^^

Ps bis: je te conseille quand même de multiplier par 10 la valeur de tes résistance ! ( non pas pour protéger ta arduino mais pour limiter la conso ^^ )

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#11 Melmet

Melmet

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 526 messages
  • Gender:Male

Posté 13 avril 2013 - 09:10

Moi je serais rester sur mon idée première: cas numéro 1.

C'est celui qui est le plus utilisé en milieu industriel. Le plus simple a mettre en oeuvre.

#12 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 14 avril 2013 - 12:54

as tu penser à faire tous les cas ?

Exemple : Si le bouton de droite et le bouton de gauche sont activé mais pas celui du milieu le résultat interprété par l'arduino sera la même que si uniquement les bouton du milieu ou même les 3 avaient été appuyé... c'est bien ce que tu souhaite ?? Du coup tu perds quelques info ...

En effet, dans le cas présent c'est bien le comportement que j'attendais, par contre il est préférable que je trouve une solution retournant plus d'infos en prévision des futures évolutions.

pourquoi avoir choisi celui là et pas un avec "priorité " ? genre le deuxième que je proposais avec le bouton du milieu tout en haut ? en plus ça te fait deux résistance de moins ^^

le troisième schéma me semblait plus simple et équivalent. (la question de priorité pourra être traitée au niveau software)

Moi je serais rester sur mon idée première: cas numéro 1.

C'est celui qui est le plus utilisé en milieu industriel. Le plus simple a mettre en oeuvre.

En effet, je crois que je vais finalement me tourner vers cette solution. Je pensais qu'il me serait impossible de savoir quel bouton est pressé, mais j'avais jugé hâtivement : en choisissant bien les résistances je devrais pouvoir déduire ce qui est actionné.

Merci pour vos conseils, je propose très bientôt une solution à partir du schéma 1.

#13 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 avril 2013 - 03:01

En effet, dans le cas présent c'est bien le comportement que j'attendais, par contre il est préférable que je trouve une solution retournant plus d'infos en prévision des futures évolutions.

le troisième schéma me semblait plus simple et équivalent. (la question de priorité pourra être traitée au niveau software)

En effet, je crois que je vais finalement me tourner vers cette solution. Je pensais qu'il me serait impossible de savoir quel bouton est pressé, mais j'avais jugé hâtivement : en choisissant bien les résistances je devrais pouvoir déduire ce qui est actionné.

Merci pour vos conseils, je propose très bientôt une solution à partir du schéma 1.


Par contre avec le schémas un si tu as les boutons ainsi placé :
milieu
droite
gauche

et que celui du milieu n'est pas activé et que les deux autres sont activés , le signal que tu vas recevoir t'indiquera uniquement que tu as un contact à droite !

C'est pour cela que j'avais quelque peu écarté ce schémas ^^

Pour moi le schémas 2 semble le meilleur compromis !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#14 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 14 avril 2013 - 04:21

c'est juste.
Je suit donc ton conseil et voici les valeurs de résistance que j'ai choisi :
Image IPB
Cette fois je pense que c'est exploitable et je ne crois pas m'être trompé... il est tard, je teste ça demain. ^^

#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 avril 2013 - 05:11

Je suit donc ton conseil et voici les valeurs de résistance que j'ai choisi :
Image IPB
Cette fois je pense que c'est exploitable et je ne crois pas m'être trompé...


C'est joliment bien documenté, très claire et juste ;)/>
En plus tu as bien vérifié tous les cas !
Rien à redire !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 14 avril 2013 - 05:32

Si tu remplace tes résistantes de 1.8 par 2.7KOhm, alors les tensions seront linéaires ^^

gauche : 1.25V
gau/dr : 2.5V
droit : 3.75V
central : 5V

Il y a un écart de 1.25V à chaque fois :P

Mon site internet : http://ferdinandpiette.com/


#17 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 avril 2013 - 06:17

Si tu remplace tes résistantes de 1.8 par 2.7KOhm, alors les tensions seront linéaires ^^

gauche : 1.25V
gau/dr : 2.5V
droit : 3.75V
central : 5V

Il y a un écart de 1.25V à chaque fois :P/>/>


Choix plus judicieux en effet ;)/>
Après il a peut être fais le choix des résistance en fonction de celle qu'il avait ^^ Et même si ce qu'il a proposé n'est pas aussi optimisé que ce que tu proposes cela à le mérite d'être opérationnel !

par contre en proposant ce schémas je n'ai pas pris en compte l'achitecture de la arduino ! En répondant à Stryk ici

il met en évidence qu'il y a certainement une résistance interne de pull down dans la arduino au niveau des ports analogique ! Ce qui pourrais influencer sur les valeurs qu'on voulait obtenir ! Donc il faudra bien vérifier que les valeurs mesuré avec le montage sur la arduino sont bien conforme à ce qui a été calculé !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#18 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 14 avril 2013 - 06:54

cool ! merci beaucoup !
je cherchais bien à espacer les paliers le plus régulièrement possible (je vais donc remplacer les 1.8 par des 2.7Kohm comme me l'a conseillé Black Templar), par contre les essais devront attendre demain car je n'ai ni résistances de 1.8, ni de 2.7 sous la main. :(
dès que ce sera branché je vous ferai parvenir les valeurs retournées par l'Arduino. (comme ça on pourra s'amuser à retrouver la valeur du pulldown de l'Arduino ^^ )
merci encore ! Le résultat dépasse mes espérances car j'étais parti sur l'idée de 2 pins pour 3 BP et j'arrive maintenant (grâce à vous) à 1 pin pour 3BP (ou plus ;) ). C'est génial et ça va être super utile avec l'ATtiny85.
:dance2: :kez_05: :dance2:

#19 thermo_nono

thermo_nono

    Membre passionné

  • Membres
  • PipPipPip
  • 825 messages

Posté 18 avril 2013 - 01:46

salut, c'est encore moi.

J'ai réalisé ce montage sur une plaque à essais histoire de voir ce que ça donne sur un "arduinoscilloscope de fortune", lorsque j'appuie sur un ou plusieurs boutons, tout se passe merveilleusement bien. ^^ ... malheureusement, lorsqu'aucun BP n'est pressé, j'ai droit à une sinusoïde.. je pense qu'il se crée une résonance entre les résistances :
Image IPB
Avez-vous une solution pour éliminer cette incommodante perturbation ?
Merci d'avance.

edit : bon ! apparemment ce n'est pas dû au montage, même quand tout est débranché (sauf l'USB évidemment ^^ ), j'ai droit à cette satanée sinusoïde (avec une amplitude accrue)... bizarre autant qu'étrange...

#20 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 221 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 18 avril 2013 - 02:49

salut, c'est encore moi.

J'ai réalisé ce montage sur une plaque à essais histoire de voir ce que ça donne sur un "arduinoscilloscope de fortune", lorsque j'appuie sur un ou plusieurs boutons, tout se passe merveilleusement bien. ^^ ... malheureusement, lorsqu'aucun BP n'est pressé, j'ai droit à une sinusoïde.. je pense qu'il se crée une résonance entre les résistances :
Image IPB
Avez-vous une solution pour éliminer cette incommodante perturbation ?
Merci d'avance.


vu le signal ta patte est en haute impédance et se fait influencer par ce qui est autour. Mettre une résistance de pull down est une solution ! =) Visiblement c'est ça qui manque après ça risque de changer un peu les valeurs ...
C'est bizarre quand même ... Il me semblait d'après l'autre discussion que j'avais pointé la derniere fois que les pattes analogiques avaient une résistance de pull down intégré ...

Hum ... à moins que cela soit la fonction d'acquisition utilisée qui intégrait la résistance de pull down ... Comment fais tu pour obtenir ce signal ? peux tu donner le code ? Histoire qu'on le compare au code de Stryk ?

( Il va falloire que j'épluche sérieusement la datasheet de l'arduino ^^ )

PS : Je rappel que je n'ai pas d'arduino donc c'est typiquement le genre de comportement que je ne peux pas prévoir car je ne connais pas le matériel mais que je peux expliquer électroniquement après l'avoir observé =)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  


1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users