DIY - RFR Active Pedal : électronique

  • ADC7192 ?

    mais tu es obligé de faire ton PCB, non ? j'ai pas vu de board complète...

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • bon, j'avance sur la prise de connaissance du driver AASD15 :
    je partais sur une communication RS232 ou 485... mais la prise CN1 n'est pas montée sur mon driver :(

    pasted-from-clipboard.png

    me voilà à la recherche d'une solution pour sortir de l'arduino un signal -10V/+10V...

    il me semble qu'on avait déjà abordé le sujet à propos des volants mais je ne retrouve pas l'info.

    Et le dieu des mots clefs n'est pas avec moi ce soir, je ne trouve rien avec les moteurs de recherche.

    Help ?! un shield, un montage avec un ampli OP ?

    merci :)

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Les MCU qui ont un DAC :

    - SamD21(Arduino Zero, QY Py, etc) : DAC 10 bits.

    - Teensy LC ou 3.2 : DAC 12 bits, mais encore faut-il en trouver

    - Sam3X (Arduino Due) : DAC 12 bits

    Ensuite le signal sera entre 0 et 3.3v, pour balayer +/- 10 V, il faut donc le balancer dans un montage à base d'ampli ops, en recréant une alim +/- 10 V à partir d'un 5V (il faut un booster de tension + un booster inverseur). ça se fait mais c'est pas trivial...

    Il y a une carte de Thanos qui fait ça aussi il me semble, s'il te reste un rein à vendre :D

  • merdum, je me disais bien que ce n'était pas trivial...
    merci Etienne :)

    je vais ouvrir le boîtier et voir si c'est juste la prise réseau qui n'est pas montée et s'il y a une platine derrière sur laquelle se repiquer :hihihi:

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Tu as ca : https://fr.aliexpress.com/item/1005004402191795.html

    Arduino-DAC-Expansion-Module-diy-kit-PWM-to-0-5V-0-10V-Voltage-Converter-for-NANO.jpg

    j'avais testé à l'époque de commander un AASD15 en série et en rs485 et j'ai un souvenir de perf pas folle... De mémoire, il montait pas super haut en bps (dans les 30kbps) et la communication requiert un truc comme 7/8 octets sur 11bits, ca faisait une commande un poil en dessous de 500hz. et ca c'est sans lire l'état du driver, en récupérant la position et/ou des data, ca descendait à 200hz.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 1 fois, dernière modification par RacingMat (7 juin 2023 à 09:34).

  • Oui j'avais regardé aussi, et de mémoire c'était pas fou. Ce port est plus prévu pour configurer le drive depuis un PC que pour faire de la commande en temps réel. Bon si la position est récupérée autrement, 500 Hz c'est suffisant pour un FFB.

    A voir si par l'entrée analogique, il y a moyen de régler un gain dans les paramètres.

  • merci pour les références ! :)

    ça a l'air pourri en terme de réactivité, ou j'ai pas bien compris... "F/V conversion module, response time is about 0.3-0.5 seconds. If the frequency is adjusted at one time, a certain response time is required."

    pasted-from-clipboard.png

    et toujours entre 0 et +10V, pas de voltage négatif...

    * PWM signal to analog voltage :

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Je viens de regarder la doc du AASD, en fait tu peux régler le gain et l'offset pour l'entrée analogique :

    Pn189 - Analog torque instruction gain : 1-300 %/V

    Pn190 - Analog torque instruction offset : -1500~1500 0 mv

    Donc logiquement en réglant un gain de 66%/V et un offset de -1500 mV tu peux piloter le bousin entre 0 et 3 V

  • bon, je peux me repiquer sur la platine pour avoir CN1 et la comm série :

    de toutes façons, il me faut à la fois envoyer les consignes mais aussi lire les infos du driver.

    edit :
    "Ce port est plus prévu pour configurer le drive depuis un PC que pour faire de la commande en temps réel."
    gloups... :(

    5 power GND
    2 power +5V
    4 RS485 A
    6 RS485 B
    1 RS232 TX
    3 RS232 RX

    AADS15 CN1 (2).jpg

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Yes, merci Etienne :+:

    The encoder feedback 2500p/r,
    15 line increment model,
    differential output

    Encoder signal output Encoder signal (ABZ) output port. Through the parameter setting, AB


    pasted-from-clipboard.png

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Etienne : est-ce que tu recommanderais la bibliothèque de Paul ?

    GitHub - PaulStoffregen/Encoder: Quadrature Encoder Library for Arduino
    Quadrature Encoder Library for Arduino. Contribute to PaulStoffregen/Encoder development by creating an account on GitHub.
    github.com

    ici avec le servo 80ST :

    2500 pulse/rotation

    3000 tr/min

    50 tr/sec

    => 125 000 pulse/sec, ça va être atteignable sans faire des trucs de gourou ?

    Avec le schéma ci-dessus, il faut juste que je sélectionne 2 signaux sur les 3 ? par exemple le signal de A et de B pour les injecter dans le compteur encodeur ?

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Tout dépend de ce que tu comptes utiliser comme MCU, mais 125KHz ça commence à faire beaucoup pour faire ça en soft (t'oublie tout de suite les AVR 16 bits). Il ne faut pas perdre de pulses. Cette librairie utilise les interruptions. Donc même si ça passe probablement sur un ESP32, ne pas oublier qu'il faut gérer des interruptions pour l'USB aussi (et éventuellement du wifi etc). Autant utiliser le décodage de quadrature HW disponible sur le Due ou Teensy 4.0. Et comme de toute façon on va faire un paquet de tours, le signal d'index n'est pas forcément nécessaire. Il faudra de toute façon des capteurs de fin de course.

  • Ah yes, merci Etienne : du décodage hardware c'est clairement mieux :)

    car il me faudra jongler avec les interruptions pour le PID !

    Et tu dis aussi des interruptions pour l'USB ?... Là, tu me fais peur. c'est juste une pédale : on doit uniquement renvoyer une position au jeu (rien de plus). En mode HID device on apparaît comme un joystick et basta, non ?

    Je ne crois pas que l'encodeur envoie un signal d'index de toute façon...

    Je vais regarder Teensy 4 (sur les modèles précédents quand j'avais regardés, les specs étaient déjà impressionnantes à l'époque) et Arduino DUE.

    Teensy® 4.0

    Arduino Due
    The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU. It is the first Arduino board based on a 32-bit ARM core…
    store.arduino.cc

    Mais s'il faut le Teensy, il faudra que je réapprovisionne un ADS1256 pour la load-cell sur platine de 3,3V ou bien level shifter 5V/3,3V :(

    Pour le DUE, ça court pas les rues les tuto sur le décodage hardware d'encodeur

    Using the Hardware Quadrature Encoder Channel on the DUE
    In this thread, some users have been successful using QDEC0 (first Arduino DUE Quadrature decoder). I tested QDEC1(second Arduino DUE Quadrature decoder) and…
    forum.arduino.cc

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

    Message modifié 1 fois, dernière modification par RacingMat (10 juin 2023 à 17:24).

  • N'importe quel MCU qui a de l'USB natif utilise les interruptions pour sa gestion, c'est parfaitement normal, il ne faut pas avoir peur :hihihi:

    Je ne vois pas ce que tu comptes faire avec un PID. Mais de toute façon même si tu le mets sur une interruption, ça ne posera pas de problèmes. Il y a des priorités sur les interruptions sur la plupart des MCU modernes.

    Que tu prennes un T4 ou un Due, je ne vois pas trop ce que ça change pour la gestion de la Load Cell.

    Les 2 gèrent des encodeurs en HW, mais comme d'habitude le support logiciel côté Teensy est beaucoup plus sérieux et consistant.

    Le Due je me demande pourquoi ils le produisent encore, il est hyper cher et ils n'ont jamais assuré le suivi du noyau sérieusement. J'avais il y a plusieurs années signalé des bugs dans le noyau, ils n'ont jamais été pris en compte ni corrigé.... C'est dommage car le Sam3X présente des caractéristiques intéressantes, notamment ses 2 DACS, qui vont te manquer sur le T4 si tu veux piloter le drive en analogique.

  • s'il avait fallu coder des trucs USB moi-même :etoiles: 
    mais si c'est en natif, c'est tranquille ! Vilain tu m'as fait peur :hihihi:

    PID : ben je veux gérer correctement le pilotage du moteur : être au plus près de la consigne, éviter les pbs d'oscillations, d'overshoot, etc... il me faut bien un PID, non ?!

    Pour la loadcell, c'est juste que la carte ADC 24bits que j'ai reçue est en 5V... d'où le level shifter à rajouter si je prends un T4

    (c'est juste pénible un truc en plus... je peux râler un peu ? :B )

    Oui le match DUE vs Teensy est vite vu : 2x plus cher et 10x moins bien...

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Ben si tu envoie une consigne de couple au Drive, c'est lui qui gère l'asservissement en courant. Côté FFB c'est pas du PID même si une combinaison d'effet ressort+damper+inertie ressemble de loin à un PID...

    Le DUE fonctionne aussi en 3.3V, et l'ADS1256 (si c'est ce que tu as), fonctionne de toute façon en 3.3V niveau signaux SPI. Evite les levels shifters au maximum, surtout sur des signaux SPI qui peuvent monter avec une horloge à 2 MHz. Les levels shifters c'est pour les loosers qui utilisent des Arduino UNO et qui veulent l'interfacer avec n'importe quel capteur qui fonctionnera en 3.3V dans 99% des cas...

    Le DUE n'est pas 10x moins bien, c'est sur que le T4 est un monstre, et il carbure sévère, et en plus il est moins cher. Mais pas de DACs pour lui.

  • Hello,

    pour le décodage des encodeurs ABZ sur esp32, la lib que j'utilise marche avec des interruptions.

    J'ai également mis en place 2 timers (sur les 4 de dispo) pour déclencher des traitements à 4khz (acquisition de data loadcell, etc.) et 1khz pour le calcul de FFB et les rapports HID.

    J'ai externalisé la communication avec le PC sur le core 1 de l'esp32 pour regrouper ensemble les échanges hardwares bloquants.

    Ca nous permet d'avoir des traitements aux fréquences que l'on souhaite et d'être tranquille pour l'acquisition et le FFB sans risque de blocage de thread sur la couche de comm. Je pourrais en rajouter d'autres pour le PID mais j'ai pour idée de le déléguer au max au contrôleur moteur. Si ce n'est pas faisable, je rajouterai une boucle de traitement qui va bien à 10, 20 ou 30khz en fonction de ce qu'on veut faire.

    La carte ADS en 5V marche : elle s'alimente en 5V, mais le level-signal est compatible 3.3V.

    le seul truc, c'est que nous n'avons pas accès au VREF c'est le 5V :-/ donc il va falloir un peut charger le loadcell en alim et prendre un 2mV/V pour être dans une plage d'utilisation confortable. Sur mon proto j'ai une lecture stabilisée de 10mNewton, c'est pas trop mal. J'ai quand même rajouté un filtre numérique passe bas pas trop aggressif (un biquad).

    Comme la fréquence d'acquisition est maitrisée, le filtre passe vraiment bien. Pour tester les limites, j'ai monté la freq d'acquisition à 30khz avec le filtre, ca passe encore large de chez large.

    J'ai pour idée de mettre le code à plat ce soir après l'openACC et de vous le partager dans l'état ;)

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)