Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2631 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  262  263  264  265  266  267  268  269
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°422894
froggycorp
Posté le 17-12-2023 à 00:08:57  profilanswer
 

Reprise du message précédent :

rat de combat a écrit :

Y'avais pas des AVR avec un PGA intégré devant le ADC? :??:


 
kékidi ?  :D

mood
Publicité
Posté le 17-12-2023 à 00:08:57  profilanswer
 

n°422900
rat de com​bat
attention rongeur méchant!
Posté le 17-12-2023 à 01:02:33  profilanswer
 

Roger01 a écrit :

J'ai besoin de 8 afficheurs de 5 caractères (avec point/dot) au total.

Ah oui, quand même. Déjà pour info, les MAX7219 coûtent une fortune, autrement dit ceux qu'on trouve sur les modules Ali et Cie c'est des faux. :o (mais qui fonctionnent sauf pas de chance :o )
 
Fais gaffe au CI utilisé en tout cas, perso j'avais un module avec un TM1637 et ceux la sont bien chiants, de mémoire c'est une espèce de I2C mais sans adresse, autrement dit pas compatible I2C... Le MAX7219 je sais plus, SPI?


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°422901
rat de com​bat
attention rongeur méchant!
Posté le 17-12-2023 à 01:04:03  profilanswer
 

De mémoire il y a des AVR (le microcontrôleur sur les Arduino, du moins les Arduino "classiques" ) qui ont un amplificateur à gain programmable (PGA) intégré au module ADC (convertisseur analogique numérique).


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°422905
froggycorp
Posté le 17-12-2023 à 07:47:14  profilanswer
 

rat de combat a écrit :

De mémoire il y a des AVR (le microcontrôleur sur les Arduino, du moins les Arduino "classiques" ) qui ont un amplificateur à gain programmable (PGA) intégré au module ADC (convertisseur analogique numérique).


 
Pas sur les attiny à priori ;)

n°423084
Roger01
Posté le 18-12-2023 à 16:27:56  profilanswer
 

Holla!

 

J'ai un problème de branchement sur un encodeur à 4 fils et MMjoy2.
Sur un encodeur 3 fils pas de soucis, je suis ça :

 

https://media.discordapp.net/attachments/349553308949544964/1186327533797511179/image.png?ex=6592d89c&is=6580639c&hm=046bd32d39394c711f6ee34a62d43cd979586aac88bf7bebdbb90593330cd1e9&=&format=webp&quality=lossless

 

Sur ça (MMJoy2) joystick à seulement 2 boutons (encodeur donc):

 

https://media.discordapp.net/attachments/349553308949544964/1186327173750063174/image.png?ex=6592d847&is=65806347&hm=7ae24aa226f5d504d7e4b824b30777ddf9fec886f8a020d98266ce1db0bf834a&=&format=webp&quality=lossless

 

Et ça fonctionne.

 

J'ai recup un encodeur à roue libre à 4 fils (+/-/A/B)
Hmm ça semble être même 5 fils? Je vois sur l'étiquette : A/B/+VCC/+0/GND:

 

https://fr.aliexpress.com/item/1005006042043816.html?

 

https://media.discordapp.net/attachments/349553308949544964/1186328026506596392/image.png?ex=6592d912&is=65806412&hm=4c8b78685e07535df8513181bdf55b955ad303fb710cfb1bb9670debfa647b22&=&format=webp&quality=lossless

 

J'ai beau tester plein de branchements différents, ça ne fonctionne pas.
L'arduino sort 4.9V (proche des 5V) je ne sais pas si ça peut déjà être à cause de ça, de plus si c'est le cas, je branche comment tout ça? :o

 

A défaut je peux me passer de MMJoy2 si c'est ça qui bloque bien sur, mais aucune idée de comment je pourrais faire autrement.

 

Merci d'avance :jap:


Message édité par Roger01 le 18-12-2023 à 16:35:36
n°423085
crazytiti
http://crazytiti.free.fr/
Posté le 18-12-2023 à 16:35:16  profilanswer
 

Euh, c'est prévus pour marcher avec MMJOY2, tu as un schéma de branchement ?
J'ai peur que ça ne puisse pas fonctionner car (je fais des hypothèses j'ai peut etre tout faux) j'ai l'impression que MMJOY2 fait du matriçage de connexion, et l'encodeur lui est prévu pour fonctionner avec 5V et fourni 2 signaux tout le temps actifs.
 
Nb : 4.9 au lieu de 5V ce n'est pas un prob.
90% du matos 5V fonctionne très bien de 4.5 à 5.5V


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°423090
Roger01
Posté le 18-12-2023 à 16:46:36  profilanswer
 

https://media.discordapp.net/attachments/349553308949544964/1186333209701658694/image.png?ex=6592dde6&is=658068e6&hm=564066b3331a825ea4bc31fbcec96a044208334c89ae3b5001c92872f5eb6c0a&=&format=webp&quality=lossless

 

Alors j'ai branche le noir (0v) sur le D3 (row) le vert et blanc (avec diode dans le bon sens) sur le D0 et D4 (colums), le +VCC (rouge) sur le 5V et le ground (fil tressé) sur le ground.
J'ai testé d'autre truc mais idem ça ne fonctionne pas.
C'est possible que MMJoy2 ne prenne pas en compte ce type d'encodeur, mais de ce fait je ne sais pas comment faire pour en faire un joystick 2 boutons :D

Message cité 1 fois
Message édité par Roger01 le 18-12-2023 à 16:46:58
n°423099
crazytiti
http://crazytiti.free.fr/
Posté le 18-12-2023 à 17:57:13  profilanswer
 

Hem, un encodeur c'est pas vraiment un joystick 2 boutons.
Mais bon je vais partir sur l'idée d'avoir des appuis de boutons quand tu tourne l'encodeur en respectant un signal quadratique.
Alors il faut juste enfiler les 2 signaux dans un arduino compatible joystick.
Tu devrait essayer avec l'exemple joystick fournit dans arduino. (y'en a bien un ?)
Les boutons n'y sont pas matricé.

 

Ou essaye ça ça doit être la même chose :
https://github.com/MHeironimus/ArduinoJoystickLibrary

 

Edit : en faite ce que j'ai peur c'est que l'encodeur fasse des impulsions beaucoup plus rapides qu'un commutateur rotatif et que en conséquence dans un jeux ça ne fonctionne pas bien, loupe des crans.
C'est quoi ton projet ?


Message édité par crazytiti le 18-12-2023 à 17:58:54

---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°423115
Roger01
Posté le 18-12-2023 à 18:34:13  profilanswer
 

Merci pour le lien je regarde ce soir.

 

Le but étant d'avoir un "joystick" (ie. windows le trouve comme joystick d'où MMJoy2) qui me permet d'émuler 2 boutons dépendant de la direction de l'encodeur.
Ceci pour pouvoir utiliser le trim assez précisément sur les avions (qui permet de stabiliser l'avion à l'horizontal).
Pas grave si ça saute toute façon je trouverais bien un bon réglage.
Un "click" = X° dans le jeu mais avec joystick gremlin je peux diviser (ratio) ça et donc être assez précis et pouvoir tourner vite si jamais j'ai besoins d'un gros changement (quitte à faire une multiplication si ça fait X click à la seconde)

 

Y'a différent trim mais en général ça ressemble à une grosse roue :

 

https://media.discordapp.net/attachments/349553308949544964/1186360672976650371/image.png?ex=6592f779&is=65808279&hm=5a4822eb467c76f8be60d63558dc6da5c1aedcdf3851c1d4c4a7610e1ba8b9d4&=&format=webp&quality=lossless&width=460&height=561


Message édité par Roger01 le 18-12-2023 à 18:38:11
n°423154
Natopsi
☄️Just end it already!☄️
Posté le 18-12-2023 à 22:14:37  profilanswer
 

Roger01 a écrit :

https://media.discordapp.net/attach [...] y=lossless
 
Alors j'ai branche le noir (0v) sur le D3 (row) le vert et blanc (avec diode dans le bon sens) sur le D0 et D4 (colums), le +VCC (rouge) sur le 5V et le ground (fil tressé) sur le ground.
J'ai testé d'autre truc mais idem ça ne fonctionne pas.
C'est possible que MMJoy2 ne prenne pas en compte ce type d'encodeur, mais de ce fait je ne sais pas comment faire pour en faire un joystick 2 boutons :D


C'est un peu plus futé qu'un encodeur de base (parce-que c'est optique notamment).
 
Faut l'alimenter en 5V entre le VCC et le GND. La tresse tu peux la laisser en l'air. Et après ça te sort un signal sur A et B (peut être en collecteur ouvert, nécessitant de rajouter des pull-up). Pour intégrer le machin dans les matrices de MMJoy2 faut que tu mette des portes ET pour n'activer les signaux A et B que quand le "C" de la matrice est à l'état haut (A' = A&C, B' = B&C). Suivies des diodes.


Message édité par Natopsi le 18-12-2023 à 22:17:14

---------------
ACH/VDSHFRCoin◈1435mm⚡
mood
Publicité
Posté le 18-12-2023 à 22:14:37  profilanswer
 

n°423165
Roger01
Posté le 18-12-2023 à 22:50:32  profilanswer
 

Hmm, et ça serait quoi C?

 

Sinon j'ai testé la librairie Joystick plus haut, et même sans Delay, plus je tourne vite et moins ça va vite :(
J'ai testé avec un Arduino DUE vu que ça fonctionne avec ça. Environ 150 "ticks" par seconde alors que l'encodeur fait 600ppr (et donc même si je fais 3 tours à la seconde ça va pas plus vite).

Message cité 1 fois
Message édité par Roger01 le 18-12-2023 à 22:54:35
n°423166
crazytiti
http://crazytiti.free.fr/
Posté le 18-12-2023 à 22:50:53  profilanswer
 

A oui je comprends maintenant.
Donc effectivement c'est faisable moyennant un peut d'elec.
Mais si on dépasse la vitesse d’échantillonnage ça va faire nimp.
C'est pas que ça saute des crans c'est que ça va faire vraiment nimp : retour en arrière vitesse erratique qui varie brusquement...
En faite pour avoir un bon rendu il faut le traiter comme un codeur optique (ce que c'est) avec les interruptions de l'arduino et 2 pin dédiées à ça.
Il y a pleins de librairies toutes prêtes, cherche avec quadratic encoder.
Ensuite tu en fait une valeur 16 bits (-32768 à 32767) que tu enverra comme valeur d'axe.
Là tu devrait avoir un truc vachement précis qui accepte d'etre secoué très rapidement sans perdre son latin.

 

Et si ton jeux prévoit uniquement des boutons pour le trim, à ce moment là faut réfléchir à un petit algo pour convertir le déplacement de l'encodeur en un nombre d'impulsion de bouton.


Message édité par crazytiti le 18-12-2023 à 22:52:04

---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°423167
Roger01
Posté le 18-12-2023 à 22:55:35  profilanswer
 

Le mieux étant un axe, c'est plus précis que les boutons qui vont avancer ou reculer le trim trop loin...

n°423170
Roger01
Posté le 18-12-2023 à 23:25:30  profilanswer
 

Bon, je suis un peu perdu, j'avais un code qui lisait l'état en incrémentant et ça fonctionnait rapidement (mais forcément c'était pas un joystick/axe) et j'ai voulu le refaire mais ça ne fonctionne plus (pas un soucis de branchement, car le code du joystick lent fonctionne).
Bref j'ai regardé un peu quadrature encoder mais je ne trouve pas vraiment. Je regarderais ça demain ça fait 3h que je suis dessus [:tinostar]

 

J'avais pris en vidéo le code "rapide" que je ne retrouve plus : https://photos.app.goo.gl/bnowQfUfdd1KbV4y6 mais c'est peut être parce ce que c'était un Mega et non un DUE? Je ne sais pas si le Mega est plus rapide pour ça (mais impossible d'en faire un joystick...)

 

Ce que j'aurais aimé c'est :
- Avoir un axe X reconnu par windows en tant que joystick (pour les jeux).
- Faire +/- 10 rotations pour parcourir l'axe entièrement (600ppr = ~6000 ticks environ).

 

J'utilise également Air Manager : https://www.siminnovations.com/ mais on doit mettre à jour le micrologiciel pour que l'arduino puisse communiquer avec le logiciel donc pas de modification possible. (faut brancher directement l'encodeur OU l'axe)

 

PAR CONTRE [:hide] je viens de penser, je peux utiliser un arduino pour transformer l'encodeur en axe, et utiliser cet arduino pour le brancher (en utilisant des sortie analogique) sur un autre arduino qui lui communique avec Air Manager?  [:canaille]

 

[Edit] Quoi que air manager utilisant le LUA, on peut ptet l'utiliser aussi pour faire un encodeur en axe? : https://siminnovations.com/wiki/ind [...] _Logic_API

Message cité 1 fois
Message édité par Roger01 le 18-12-2023 à 23:50:13
n°423176
jimbofarra​r
Poreux de la cafetière
Posté le 19-12-2023 à 00:13:11  profilanswer
 

Roger01 a écrit :

Hmm, et ça serait quoi C?
 
Sinon j'ai testé la librairie Joystick plus haut, et même sans Delay, plus je tourne vite et moins ça va vite :(
J'ai testé avec un Arduino DUE vu que ça fonctionne avec ça. Environ 150 "ticks" par seconde alors que l'encodeur fait 600ppr (et donc même si je fais 3 tours à la seconde ça va pas plus vite).


Attention avec le due les entrées et sorties ne sont qu’en 3,3V
 

Citation :

Warning: Unlike most Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Applying voltages higher than 3.3V to any I/O pin could damage the board.


---------------
Bien des Shubs et des Zouls furent calcinés dans les profondeurs de l'énorme Sloar, en vérité, je vous le dis !
n°423179
crazytiti
http://crazytiti.free.fr/
Posté le 19-12-2023 à 00:37:35  profilanswer
 

Roger01 a écrit :

...
PAR CONTRE [:hide] je viens de penser, je peux utiliser un arduino pour transformer l'encodeur en axe, et utiliser cet arduino pour le brancher (en utilisant des sortie analogique) sur un autre arduino qui lui communique avec Air Manager?  [:canaille]


 
Tout à fait, mais là ça me fendrait le cœur comme ceux qui utilisent des ESP32 juste pour ajouter du wifi à un arduino pré-existant alors que l'ESP32 est carrément plus puissant et peut totalement le remplacer.
Ca demande plus de travail sur le code, mais c'est le prix à payer pour la beauté de l'art.
 
Techniquement parlant faire un joystick USB avec 1 axe avec l'encodeur optique en interruption c'est l'équivalent de 2 TP au niveau IUT (un TP encodeur et un TP joystick USB).
Allez on vas dire 3 TPs parceque mixer les 2 premiers ensembles peut causer des soucis.
 
Bon courage, choisi la voie de la force, ne te laisse pas attirer par le côté sombre de la facilité et de la multiplicité des µc.
 
De toute façon avec la décroissance à venir il vas falloir apprendre à être rationnel même dans nos bidouilles.
Les µc à gogo pour 3$ sur ali c'est fini  [:sisicaivrai]  


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°423180
Roger01
Posté le 19-12-2023 à 00:45:28  profilanswer
 

Disons que je ne connais pas spécialement le code arduino et autre, je copie colle, je regarde comment ça fonctionne, je cherche un peu partout et en général ça passe.
Mais là je bloque un peu  :(  
M'enfin je vais quand même regarder et au pire, 2 arduino et zou :pt1cable:
J'ai encore une radio à faire entre autre :o  
 

jimbofarrar a écrit :


Attention avec le due les entrées et sorties ne sont qu’en 3,3V
 

Citation :

Warning: Unlike most Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Applying voltages higher than 3.3V to any I/O pin could damage the board.



 
 :whistle:

n°423284
Roger01
Posté le 19-12-2023 à 19:03:49  profilanswer
 

Bon je n'arrive pas à trouver un truc stable qu'importe la méthode, soit ça va pas assez vite, soit, ça prend pas quand je vais trop vite, soit ça fait de la merde.
Pourtant c'est tout bête sur le principe, j'ai une roue encodeuse de 600ppr
l'axe doit avoir comme valeur entre -16383 et 16384.
Si je divise le tout 32 726 par 5 ça donne 6445.2 donc un "tick" d'encodeur donne 5 de valeur de l'axe et ça donne ~11 tours pour avoir l'axe entier.

 

A partir de là j'ai testé plein de truc, même un arduino mega branché sur un nano et rien à faire. [:halp]

 

Et ce n'est pas un problème "hardware" de l'arduino car quand je teste en local l'encodeur avec un "print" j'ai des bonnes valeurs même si je vais très vite.


Message édité par Roger01 le 19-12-2023 à 19:15:54
n°423292
rat de com​bat
attention rongeur méchant!
Posté le 19-12-2023 à 20:19:38  profilanswer
 

Difficile de t'aider la... Tu peux résumer? :o
-Tu as quoi comme signal en entrée?
-Tu veux quoi en sortie?
-Branchements? Schéma?
-Ton code actuel?

 

EDIT: Scope ou analyseur logique dispo?


Message édité par rat de combat le 19-12-2023 à 20:20:01

---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423300
Natopsi
☄️Just end it already!☄️
Posté le 19-12-2023 à 20:57:37  profilanswer
 

La faut commencer à faire du sérieux. MMJoy2 n'arrivera pas à tenir la cadence. Et vu que c'est du closed source, bon courrage...
Sinon je suis con, vu que c'est du collecteur ouvert suffirait juste de raccorder le potentiel "Row" (le fil rouge du schéma) aux deux pull up, pas besoin de porte ET.
 
La solution du flemmard c'est d'aller chercher une STM32 black pill (à confirmer, un truc en STM32F401), voir s'il traine pas un exemple de joystick HID pour STM32Duino, et utiliser les timer en mode encodeur pour interfacer tes encodeurs haute résolution.  
 
Sinon du Arduino de base en allant choper un exemple joystick HID, je sais que je l'avais fait il y a longtemps.


Message édité par Natopsi le 19-12-2023 à 20:57:53

---------------
ACH/VDSHFRCoin◈1435mm⚡
n°423302
Roger01
Posté le 19-12-2023 à 21:15:50  profilanswer
 

Hmm
En signal d'entrée j'ai je sais pas, un truc d'encodeur :o donc +5v constant et +0v quand ça "pulse" si j'ai bien compris.
Ensuite je veux en sortie, si possible, un signal analogique style potentiomètre de  valeur -16383 à + 16384 ce qui va me permettre de brancher l'arduino sur un autre arduino qui est lui codé pour fonctionner avec Air Manager et qui accepte un potar sans broncher (testé avec un simple potar c'est fluide et rapide).
OU le transformer en axe joystick, mais pour ça il faut un arduino compatible comme le DUE qui n'accepte que le 3.3v et le pro micro ça marchait pas.
J'ai fait plusieurs codes et j'ai rien gardé hormis des trucs de test donc pas exploitable.
Le plus compliqué c'est de reussir à ce que ça soit rapide, si je tourne l'encodeur rapidement.
Ca fonctionne bien en local avec un code qui va lire chaque pulsation et incrémenter. Mais une fois en joystick ou multi test que j'ai fait, ça ne va pas vite, au mieux, au pire ça fait rien ou ça part en couille.

 

Le branchement :

 

https://media.discordapp.net/attachments/349553308949544964/1186764357183483964/image.png?ex=65946f6f&is=6581fa6f&hm=0f4fad12aeb84d2eda874e37d97e1b8e5543d37dcbb604fed8f344784281b39a&=&format=webp&quality=lossless&width=898&height=560

 

Ou alors on peut supprimer l'arduino Air Manager si j'arrive à en faire un joystick 1 axe.

 

Je n'ai pas de scope ni analyseur, juste un multimètre :o

  


Message édité par Roger01 le 19-12-2023 à 21:18:01
n°423304
Natopsi
☄️Just end it already!☄️
Posté le 19-12-2023 à 21:29:56  profilanswer
 

Tu peux tenter ça sur le "pro micro" déjà, voir si la couche USB fonctionne, ça te ferait une bonne base.
https://www.instructables.com/Creat [...] ick-Libra/
 
Après faut activer la pull-up (ou en rajouter) sur les entrées utilisées pour l'encodeur, ça tombe peut être en marche sur le Mega et non le "pro micro" à cause de ça.
Il peut aussi être de bon goût de filtrer sommairement le signal de l'encodeur même s'il ne doit pas y avoir trop de rebond vu que c'est un encodeur optique.
 
Enfin le mieux c'est d'aller utiliser les interruptions pour gérer l'encodeur histoire de ne jamais rater un pas : https://www.arduino.cc/reference/en [...] interrupt/
 
Peut être qu'il y a des exemples. Je donne les grandes lignes.


Message édité par Natopsi le 19-12-2023 à 21:30:33

---------------
ACH/VDSHFRCoin◈1435mm⚡
n°423309
Roger01
Posté le 19-12-2023 à 21:49:37  profilanswer
 

J'avais déjà utilisé cette librairie et c'est lent (ie. des que je tourne vite, ça reste lent). Peut être que j'ai mal fait? Je ne sais pas.
Pas de soucis pour le filtre, ça réagis bien de base et ça ne bouge pas si je ne bouge pas. J'ai démonté l'encodeur et c'est bien un optique.
Pour les interruptions je ne sais pas ce que c'est mais ça parle de LOW et de souvenir j'avais noté en if blabla LOW.

n°423310
rat de com​bat
attention rongeur méchant!
Posté le 19-12-2023 à 21:58:23  profilanswer
 

Les INT (interruptions) c'est un concept important, renseigne toi! Après perso les encodeurs rotatifs et les interruptions j'ai appris que c'est HB car il peut y avoir du rebond justement. Perso je partirais sur un timer rapide, une INT *timer* et une machine d'état. Y'a une AN (application note) de Xilinx de mémoire qu'on peut encore trouver sur internet et qui n'est pas trop mal foutue.
 
Sinon

Citation :

un signal analogique style potentiomètre de  valeur -16383 à + 16384

ça n'a pas trop de sens. :o Un signal analogique c'est une tension en Volt, mais pas 168383V. :o Tu dois vouloir dire un signal 0-5V ou 0-3,3V qui va représenter une plage de -16xxx à +16xxx après conversion. Petit soucis, faut un ADC avec assez de résolution et sortir un signal analogique *rapide* sur un µC sans DAC c'est pas gagné non plus. Donc à mon avis c'est pas une bonne piste. Ah et dans tout les cas il faudrait brancher une masse sur ce deuxième Arduino aussi. :o


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423311
Roger01
Posté le 19-12-2023 à 22:02:20  profilanswer
 

Hmm, ça devient trop compliqué pour moi je comprends rien.
-16383 à + 16384 parce que le jeu demande une valeur de -16383 à + 16384 et qu'un potar classique semble fonctionner comme ça.
Donc après je sais pas, peut être qu'il faut modifier la tension à la place?
 
Est-ce plus simple de sortir une tension entre 0 et 5v en sortie d'arduino?

n°423314
rat de com​bat
attention rongeur méchant!
Posté le 19-12-2023 à 22:20:25  profilanswer
 

Roger01 a écrit :

-16383 à + 16384 parce que le jeu demande une valeur de -16383 à + 16384 et qu'un potar classique semble fonctionner comme ça.

Oui mais non, pas du tout. :o Un potentiomètre peut se brancher en pont diviseur de tension, en "sortie" on aura donc une tension entre la tension d'alimentation (5V) et 0V. Après cette tension l'Arduino va l'échantillonner avec un ADC/CAN (convertisseur analogique->numérique) pour - p.ex. - en faire une valeur entre 0 et 1023. Après on peut faire des maths avec cette valeur, p.ex. rajouter des offsets, du "gain" (soit multiplier par une valeur constante), ...

Citation :

Est-ce plus simple de sortir une tension entre 0 et 5v en sortie d'arduino?

C'est même la seule possibilité. :o Le soucis c'est qu'il faut passer par de la PWM/MLI et un filtre passe-bas car les Arduino n'ont pas l'inverse des ADC/CAN, autrement dit DAC/CNA (numérique -> analogique) et ça c'est pas aussi simple si on veut un signal "rapide". Bref, ça devient compliqué...
 
Tu peux indiquer clairement quel Arduino(s) tu as, sur lequel tu veux pouvoir brancher ton bidule rotatif, quels autres boutons etc sont branchés sur cet Arduino, quel logiciel (avec lien vers la source) tourne sur cet Arduino, ...? Si c'est open source y'a peut-être moyen de bricoler ça.


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423315
Roger01
Posté le 19-12-2023 à 22:33:47  profilanswer
 

Hmm je vois le principe même si ça reste un peu obscure :jap:

 

J'ai de souvenir du Mega, DUE, Pro micro, Nano.
J'ai un TEENSY atmega32u4 aussi.
Il n'y aura que ça de brancher et le logiciel soit c'est en pur joystick 1 axe soit c'est avec (LUA) :

 

https://siminnovations.com/wiki/ind [...] =Main_Page

 

En gros le logiciel va mettre son code (que je n'ai pas trouvé) dans l'arduino, on branche ce qu'on veut dessus et on place des modules (codes) dans le logiciel qui va faire le reste. Exemple pour brancher un encodeur :

 
Code :
  1. -- Trim with rotary encoder
  2. prop_accel = user_prop_add_integer("Acceleration", 1, 10, 1, "Optional acceleration factor for rotary encoder" )
  3. hw_dial_add("Pitch trim encoder", user_prop_get(prop_accel), function(direction, state)
  4.     if direction == -1 then
  5.         fs2020_event("ELEV_TRIM_DN" )
  6.     else
  7.         fs2020_event("ELEV_TRIM_UP" )
  8.     end
  9. end)
 

On précise qu'on a un encodeur (avec une option d'accélération prise en compte par le logiciel, mais qui ne fonctionne pas toute façon avec mon encodeur) et ce qu'il va faire.
La c'est trim up/down.
Mais si je passe par là, c'est trop lent. Ie ça va prendre que quelques impulsion par seconde. C'est bien pour un encodeur qu'on trouve partout (20ppr) mais pas pour le mien sachant qu'en plus on ne peut pas moduler le niveau de trim.
Dans le jeu c'est de 1 à -1 à coup de 0.005 codé en dur dans le jeu... sauf forcément si on passe par un potar.
Mais le potar n'est pas en roue libre (débrayable en gros) et j'aimerais parfois passer mon trim super rapidement et pas attendre X secondes que ça réagisse à coup de boutons (et que ça soit pas précis non plus :o )

Message cité 1 fois
Message édité par Roger01 le 19-12-2023 à 22:37:07
n°423318
rat de com​bat
attention rongeur méchant!
Posté le 19-12-2023 à 22:52:53  profilanswer
 

Donc tu veux utiliser un Arduino juste pour la fonction trim, c'est bien ça? Tes 74'165 avec pleins de boutons ils seront sur un autre Arduino, exact?


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423320
rat de com​bat
attention rongeur méchant!
Posté le 19-12-2023 à 22:58:44  profilanswer
 

Roger01 a écrit :

https://siminnovations.com/wiki/ind [...] =Main_Page
 
En gros le logiciel va mettre son code (que je n'ai pas trouvé)

Ce code ne semble pas public, par contre ça parle d'une lib' pour passer des messages: https://siminnovations.com/wiki/index.php?title=Arduino Éventuellement on pourrait utiliser ça avec un Nano ou du genre (petit) qui va s'occuper de "lire" l'encodeur et transmettre des messages par UART ou SPI au Arduino "principal" relié à ton soft. Sauf que faut développer ça... Perso je veux bien regarder, mais j'ai rien de tout ce matos donc c'est limite impossible (il faut toujours le matos réel pour tester et débugger...). :( En plus tu n'as pas de scope (à enregistrement) pour pouvoir visualiser les signaux qui sortent du bidule rotatif ou débugger une liaison UART ou ...
 
J'ai du mal à croire qu'il n'y a pas une autre solution toute prête, des gens qui utilisent des simulateurs de vol il y en a pas mal quand même?


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423321
Roger01
Posté le 19-12-2023 à 23:10:18  profilanswer
 

rat de combat a écrit :

Donc tu veux utiliser un Arduino juste pour la fonction trim, c'est bien ça? Tes 74'165 avec pleins de boutons ils seront sur un autre Arduino, exact?


 
Effectivement ça c'est encore autre chose. :o
 

rat de combat a écrit :

Ce code ne semble pas public, par contre ça parle d'une lib' pour passer des messages: https://siminnovations.com/wiki/index.php?title=Arduino Éventuellement on pourrait utiliser ça avec un Nano ou du genre (petit) qui va s'occuper de "lire" l'encodeur et transmettre des messages par UART ou SPI au Arduino "principal" relié à ton soft. Sauf que faut développer ça... Perso je veux bien regarder, mais j'ai rien de tout ce matos donc c'est limite impossible (il faut toujours le matos réel pour tester et débugger...). :( En plus tu n'as pas de scope (à enregistrement) pour pouvoir visualiser les signaux qui sortent du bidule rotatif ou débugger une liaison UART ou ...
 
J'ai du mal à croire qu'il n'y a pas une autre solution toute prête, des gens qui utilisent des simulateurs de vol il y en a pas mal quand même?


 
Alors j'ai vu énormément de choses mais à base de boutons, potar ou encodeur 20ppr mais je n'arrive pas à trouver pour mon encodeur.
Aussi si c'est plus simple en faisant un joystick 1 axe ça peut le faire aussi. Mais pour le peu que j'ai testé, j'ai pas réussi. Pourtant j'en ai déjà fait des joysticks et autre projet par Arduino, mais là je sèche vraiment :(

n°423324
rat de com​bat
attention rongeur méchant!
Posté le 20-12-2023 à 00:13:44  profilanswer
 

File des liens :o , pour l'encodeur 20ppr et un joystick basique. Je vais voir si je peux modifier (si j'ai le temps).


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423340
crazytiti
http://crazytiti.free.fr/
Posté le 20-12-2023 à 01:36:51  profilanswer
 

Vous êtes à fond les mecs je peux pas tout lire là.
Je tiens juste à dire que passer le signal en analogique entre les 2 arduino c'est pas bon du tout pour la précision, or il me semble que c'était justement l’intérêt de la roue codeuse.
Sinon avec un rapide calcul :
La roue codeuse fait 600 impulsions/tour si j'ai bien suivi.
Quand tu fait le bourrin avec ta main ont peut considérer que tu fait du 2tour seconde (je suis bon ?)
soit 1200Hz.
Et ceci sur les 2 signaux.
Donc un arduino à 16mhz est normalement tout à fait capable de gérer ça avec des interruptions (et franchement si tu trouve pas une bonne lib c'est pas le truc le plus compliqué à coder).
Par contre c'est possible que la gestion du HID USB prenne le dessus à certains moment (polling par le PC) et que ça bute les interruptions.
Enfin bon dans le pire des cas ça fait louper des crans ça ne devra pas non plus faire nimp.
Il faut que tu procède par étape :
1) un arduino qui simule un axe qui varie tout seul de -16000 à +16000
2) un arduino qui lit l'encodeur et affiche la valeur sur l'affichage de debug
3) tu fiche les 2 ensemble.
 
Nb : je ne sais plus comment marche l'USB sur arduino, j'en avais surtout fait avec des PIC et au début fallait presque coder sa pile USB tout seul.
Mais peut etre qu'il te sera nécessaire de désactiver les interruptions pendant le traitement de l'USB et de reprendre après.
 
Nb2 : sur la carte mega 2560 l'USB est géré par le petit arduino donc potentiellement moins de problèmes ?


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°423344
rat de com​bat
attention rongeur méchant!
Posté le 20-12-2023 à 01:44:22  profilanswer
 

Oui, l'histoire du stack USB qui occupe bien le AVR c'est un truc auquel j'avais pensé. A vérifier, surtout avec la surcouche Arduino...


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
n°423387
froggycorp
Posté le 20-12-2023 à 11:35:33  profilanswer
 

Quelqu'un peut me faire un résumé  :o

 

De ce que je comprends, le schéma c'est ça :

 

https://media.discordapp.net/attach [...] height=560

 

Et quand cela tourne trop vite, il capte pas tous les pics de voltage des fils verts & oranges ?
Il y a du code dégueulasse quelque part à relire ? :D
Sur le mega, le code n'utilise pas d'interruptions ?


Message édité par froggycorp le 20-12-2023 à 11:47:09
n°423484
Roger01
Posté le 20-12-2023 à 19:47:04  profilanswer
 

Holla!  
 
Alors, je n'ai plus de sketch sur ce que j'ai fait hormis 2/3 trucs mais spécifique (comme dcs bios). Et là j'ai tout effacé vu que rien ne fonctionnait :o
Si je lance l'encodeur et que j'affiche en debug, ça fonctionne super bien même en tournant super vite.  
J'avais testé plusieurs codes différents et ça a toujours bien fonctionné en Serial.print
 
Mais c'est de pouvoir transformer ça en "axe" où je n'arrive pas...
 
Faudrait que je reprenne ça depuis le début mais au bout de 72H sans comprendre j'ai mal à la tête :D

n°423506
Natopsi
☄️Just end it already!☄️
Posté le 20-12-2023 à 21:50:41  profilanswer
 

Regarde ça:
https://siminnovations.com/wiki/ind [...] e_port_add
https://siminnovations.com/wiki/index.php?title=Arduino
 
Plus qu'à faire un truc qui marche correctement à ton goût avec du Serial.Write() et quand t'es content tu rajoute la couche AirManager et remplace le Serial.Write() par messagePort->SendMessage()  ;)
 
Si tu fait un truc en interruption faut que les routines soient courtes par contre (genre if condition then décompte+=1 return) et tu traite dans ta boucle le reste:
 
loop
{
blabla;
 
if(decompte!=0)
{
decompte_bis = decompte;
decompte =0;
SendMessage(decompte_bis );
}
 
blabla;
}
 
avec décompte en entier 8 bits pour essayer d'avoir des opérations atomiques dessus.

Message cité 1 fois
Message édité par Natopsi le 20-12-2023 à 21:56:06

---------------
ACH/VDSHFRCoin◈1435mm⚡
n°423507
rat de com​bat
attention rongeur méchant!
Posté le 20-12-2023 à 21:58:10  profilanswer
 

J'avais vu ça aussi, mais j'avais pas creusé. Ca semble pas compliqué, en tout cas côté Arduino. :o

n°423534
dkomputer
Posté le 21-12-2023 à 08:32:45  profilanswer
 

Dites, j'utilise Arduino IDE pour développer sur une board avec un Epaper. L'ide met facile 3 minutes à compiler un sketch pas bien grand.
Du coup 3 minutes pour un point virgule manquant ça me les  [:slogan:6]
Y'a pas mieux sur le marché ou des moyens d'améliorer les perfs ?

n°423540
Lt Ripley
Ils ont tout niqué
Posté le 21-12-2023 à 09:02:50  profilanswer
 

J'utilise VScode + PlatformIO pour mes ESP32, sous Windows et Linux.  Je sais pas si les perfs sont meilleures mais c'est un vrai IDE quoi.

Message cité 1 fois
Message édité par Lt Ripley le 21-12-2023 à 09:03:01

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
n°423559
froggycorp
Posté le 21-12-2023 à 10:18:42  profilanswer
 

C'est bizarre que cela soit aussi lent. Tu as la derniere version 2.? et tu programmes pas sur un raspberry pi ?
Tu as beaucoup de librairies installées ? J'ai le souvenir qu'il recompile tout au moins une fois à la première utilisation de l'IDE. Ce qui fait qu'à minima, à la deuxième compilation c'est plus rapide

n°423568
dkomputer
Posté le 21-12-2023 à 11:18:18  profilanswer
 

J'ai l'impression qu'il recompile toutes les librairies à chaque fois....
J'ai bien la dernière version avec relativement peu de librairies
Et c'est un ESP32


Message édité par dkomputer le 21-12-2023 à 11:21:08
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  262  263  264  265  266  267  268  269

Aller à :
Ajouter une réponse
 

Sujets relatifs
* Réparations de vos appareils électroniques & electromenager * 
Plus de sujets relatifs à : [arduino] Topic Unique blabla @ Arduino


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR