• Usinages logo

    Rejoignez notre communauté d'amateurs et de professionnels – C'EST GRATUIT !

    L'inscription ne prend que 30 secondes. En tant que membre, vous pourrez :

    • Obtenir des conseils d'experts sur vos défis d'usinage, vos anciennes machines.
    • Rester dans la conversation grâce aux notifications instantanées.
    • Des réductions exclusives de la part de nos partenaires.
    Continuer avec l'Email

Conception manette de contrôle pour CNC ..

  • Auteur de la discussion Auteur de la discussion esloch
  • Date de début Date de début
salutatous

je viens de tester ESP-NOW , se que j'ai fait sur mon code actuel (une copie) :
- supprimer la partie wifi qui transférais les DRO XYZA et modifier le fichier recup_DRO.cpp
- supprimer le serveur UDP sur le port 5000 qui envoyais les DRO sur le TFT, maintenant c'est le XIAO qui s'en charge

- j'ai rajouté un petit fichier tlc_protocol.h sur la partie ESP32-WROVER et sur le XIAO-S3 qui gere que la HW et les boutons de base


sur la partie 1 j'ai juste gérer les DRO et le TFT

sur la partie 2 je m'occuperais des boutons STOP/PAUSE/START le reste des commandes (appel de fonctions: palpage, flood, mist, etc..) le Bluetooth sans charge

à se moment là, le Bluetooth est totalement indépendant plus de partage avec le wifi

sur mach3, la fluidité de l'affichage avec la HandWheel en mode "continu" est au rendez-vous si je passe en mode "pas" bonne fluidité à condition de ne pas tourner la handWheel comme une brute la HW est à l'arrêt que les DRO continu de défiler

au boot les DRO sur le TFT sont a 0 , il suffit de toucher la HW pour que l'affichage des DRO de mach3 soit immédiat

p10l.jpg
 
bonjour

moi qui croyais la modif pas trop compliquée, je m'arrache les cheveux :smt021 il faut mieux repartir de zero que de modifier de l'existant

j'ai bien avance sur la V3 alors que la V2 est pas encore en boite :smt003 pour la com, je passe par ESP-NOW, sur la TLC, le WIFI sert uniquement pour la mise à jour du sketch du WROVER, le serveur UDP a aussi été supprimé il me reste le clavier 4x4 à implanter et gérer le COM4 qui est partagé avec le XIAO et le script

j'ai pu supprimer tout le BLE sur le WROVER , tout passe par ESP-NOW, et le SERIAL

se qui est sympa, avec le XIAO, c'est qu'il peux gérer un clavier virtuel HDI pour faire communiquer les 2 il faut faire un pont sur mach3 pour convertir les commande des touches reçu sur le XIAO -> MACH3 il faut installer une lib python (pyautogui ) sur le PC

tout se qui est DRO est géré par un BRAIN et la macropump de MACH3 La macro MacroPump.m1s écrit dans le fichier dro.txt à chaque changement de DRO. C'est elle qui alimente le script Python

TLC WRover
├── HW encoder → ESP-NOW → XIAO → Serial → bridge.py → pyautogui → Mach3
├── Clavier 4x4 → ESP-NOW → XIAO → Serial → bridge.py → pyautogui → Mach3
├── STOP/PAUSE/START→ ESP-NOW → XIAO → Serial → bridge.py → pyautogui → Mach3
└── TFT ← ESP-NOW ← XIAO ← Serial ← bridge.py ← dro.txt ← Mach3
 
bonjour

j'ai trouvé une solution encore plus simple, le pire j'ai marqué la solution dans le post d'avant avec en prime un énorme gain de temps de gagné
le XIAO, c'est qu'il peux gérer un clavier virtuel HDI
voici l'architecture finale plus facile à coder
WRover -> ESP-NOW -> XIAO -> USB HID -> PC/Mach3
Mach3/dro.txt -> MacroPump -> DRO_poll WRover -> TFT

la keymap reste sur le XIAO dans keymap_mach3.cpp on traduit les commandes directement en Keyboard.press(). Plus besoin de bridge.py ni de la lib pyautogui.
le gros avantage je pense faire tenir keymap_mach3.cpp et keymap_ uccnc.cpp dans le xiao-s3 au pire j'imprime 2 boitiers format dongle usb
ca va alléger trés fortement le code du wrover de la TLC

ce qui disparait
bridge.py supprimé --- XIAO gère le HID directement
pyautogui
CDC Serial COM4
plus de conflits de port

ce qui reste
ESP-NOW WRover <-> XIAO
USB HID clavier natif XIAO -> Mach3
Keymap centralisée dans keymap_mach3.cpp directement sur le xiao
LED heartbeat TFT utilile pour la reconnexion auto

je vous tiens au courant de l'avancé
 
bonjour

Suite à un problème dans le codage du clavier dans le wrover, il y avais un melange de ASCII / Virtual-Key Windows / HID, et cela mettais le why avec le XIAO
donc je suis oblige de modifier tout le codage des touches du clavier avec les codes HID système employé par la lib USBHIDKeyboard.h
sur le xiao, avantage, cela rend le code sur le xiao plus light, car il ne fera plus la conversion des code de touches en HDI
et j'avais désactivé le server UDP du wrover qui renvoyais les DRO sur mon TFT :smt021 erreur , pas trop gênant à reactiver, car il y a plus de BLE

a+
 
Je conseille l’ajout d’un joystick pour simuler la souris .. puisque tu intègres déjà la gestion du HID .. toutes les fonctions ne seront pas forcément accessibles via les boutons .. et disposer d’une souris (avec au moins un clic gauche) peut être très pratique ..

Un joystick de type PS1000 serait discret et facile à intégrer ..

Bon .. cela ajoute un peu de câblage .. bien sûr ..

Sinon .. on veut voir des images .. des essais .. des photos ..

Courage !
 
Un joystick de type PS1000 serait discret et facile à intégrer ..
j'avais déjà pensé à cette solution, l'avantage, elle peut simuler plus facilement l'appui sur les touches fléches et pgSuiv et pgPrec pour faire defilé les DRO
je pense que la prochaine version sera equipé, d'un joystick, cela sera déjà plus facile à coder qu'une roue codeuse

toutes les fonctions ne seront pas forcément accessibles via les boutons
pour ca pas de probleme, les touches sont definies dans le mappage : ALT, SHITF, CTRL ainsi que les chiffres et lettres, donc le dispose de toutes les fonctions et raccourcis de mach3

on veut voir des images .. des essais .. des photos ..
pour l'instant il y pas grand chose à voir, dés que j'ai reactivé le serveur UDP je tacherais de faire une petite vidéo, j'ai déjà les 3 boutons STOP/PAUSE/START de fonctionnel ainsi que la molette
 
bonjour

le serveur UDP est de nouveau fonctionnel, les DRO sont de nouveaux renvoyer sur le TFT , la molette envoie bien ses commandes ainsi que le clavier PC à MACH3 avec le protocole ESP-NOW, via le XIAO-S3 déclare en tant que clavier HDI

on peux dire que je suis en version stable V3, maintenant, je suis passé à la "mécanique" j'ai attaque le ponçage du boitier, avant de lui donner un coup de bombe et de monter les éléments dedans
 
bonjour

petite modife en attendant les PCB qui sont en route, j'ai modifier le XIAO, en rajoutant un jump sur un GPIO qui reçoit le Vcc ou la GND se qui permet d'utiliser soit mach3 ou uccnc et le boitier va passer en peinture,
 
bonjour

quelques nouvelles de l'avancement de la TLC
1 - le clavier est paramètre avec toutes ses touches de fonctions et de lancement de macro de palpage
1 x touche avec 2 fonctions qui est paramétré pour définir l'angle sur X ou Y
1 x touche avec 2 fonctions pour choisir palpeur fixe ou nomade
etc.... au total le clavier de 16 touches peux envoyer 24 commandes sur 32

et pour ceux qui pense que le clavier c'est le bazard, :wink: j'ai récupéré des icones que je vais coller sur les touches voici la liste des fonctions
3qjr.jpg

je suis obligé de refaire le PCB du WROVER car un mauvais câblage, mettais le Bazard sur l'encodeur il y avais déjà un bug sur l'écartement de ESP de 2.54mm que j'ai pu corrigé, mais là, c'est un bug câblage et hard (problème avec le 74HC14)

en attendant que les composants pour finir le PCB arrivent, la maquette du boîter étant fini (merçi esloch), je me suis penché sur la façon de gérer le débit et la température de l'eau de la broche de 2k2W , que j'ai pas encore :smt003
j'utilise un XIAO-C3 et le XIAO-S3 du clavier
2lej.jpg

sur lequel est branché, Capteur, contrôle de débit YF-B7 (ca je l'est) :)

la led rouge indique que les 2 XIAO communique bien entre eux, le C3 est juste un émetteur, il envoie au S3 les infos qui les renvoient au WROVER pour pouvoir afficher les alertes sur le TFT (reste à faire) et faire clignoter les leds DEBIT ou TEMP présentes sur screenset mach3
 
retour avec la V2 de ma manette .. la principale évolution concerne le système de communication sans fils .. travail en cours ..
1783528204287.png
 
slt
pourquoi tu utilise un nano avec un lora ? tu as tout avec un esp32 avec plus de puissance
si tu a besoin d'un coup de main n'hésite pas
pour la manette tu met un joystick 4 ou 2 voies

bon courage
 
Bonjour,
Est-il possible d'utiliser la mécanique d'une télécommande d'engin pour avoir le même usage ?
1 joystick; haut/bas/droite gauche
1 manette avant/ arriere
x boutons poussoirs
 
Bonjour,
Est-il possible d'utiliser la mécanique d'une télécommande d'engin pour avoir le même usage ?
1 joystick; haut/bas/droite gauche
1 manette avant/ arriere
x boutons poussoirs
théoriquement oui .. en pratique c’est beaucoup plus compliqué .. je rencontre actuellement énormément de difficultés avec les modifications que j’effectue .. au point d’être à la limite d’abandonner ce projet ..
 
C'est une radiocommande dont je n'ai pas la partie réceptrice.
La fréquence marquée est de 151,9125 MHz, je ne suis pas sûr de trouver quelque chose qui puisse recevoir et décoder .
Déjà que c'est un peu volumineux par rapport à un clavier, je ne sais pas si ça aura un avenir.
 
Je fais des photos et je les joins à ce message en fin de journée.
IMG_20260710_173425.jpg

IMG_20260710_173439.jpg
 
Dernière édition:
bonjour
ouf... me revoila après mon crache disque, pour répondre à ta question,
OUI, il est possible de faire le récepteur à l'aide d'un ESP32 et d'un module radio externe, mais il manque des infos importantes

Avez-vous déjà des détails sur la marque de la télécommande ou le type de modulation (AM/FM) qu'elle utilise ?
 
Manette V2 terminée !

Les principaux changements par rapport à la V1 : la communication sans fil passe du NRF24L01 au SX1278 .. l'extension des E/S de la STM32 passe du 74HC595 à une MCP23017 (j'avais prévu d'ajouter d'autres fonctionnalités .. mais ce ne sera finalement pas pour cette version .. peut-être pour une V3) .. le joystick servant de souris a été remplacé .. fini le joystick Arduino classique .. place à un PSP1000 (il reste à lui imprimer un support pour le maintenir correctement en place) ..

Le codage des deux cartes m'a donné pas mal de fil à retordre .. mais on y arrive !

Les essais à vide sont IMPECCABLES .. :supz:
Il ne reste plus qu'à passer au vrai test : les essais en conditions réelles d'usinage.

1783761856299.png
1783761871587.png
 
Les photos sont postées depuis hier :wink:
A mon avis il est quasiment impossible d'utiliser directement le signal émis par cette manette et de le décoder avec un module DIY .. enfin .. je parle à mon niveau de bricoleur ..

A votre place je conserverais les composants déjà présents sur la manette .. j'en ajouterais d'autres si nécessaire .. puis je concevrais un nouveau module d'émission ainsi qu'un module de réception adaptés à mes besoins ..
 
pour pere-pendiculaire, sa sort de mon registre de connaissance d'aprés un ami radio amateur, et l'autre ingenieur en electronique
la méthode idéale consiste à utiliser un dongle RTL-SDR (une clé USB radio à moins de 30 €) branché sur votre PC avec un logiciel comme SDR# ou GQRX.
il faut recuperer le son emis par la telecommande et le logiciel gratuit Universal Radio Hacker (URH) vous donnera instantanément le codage exact (la longueur des bits, le type de trame),
si tu a un ami dans la radio, il pourra facilement te donner ses infos, sinon.......
 
La réponse de Catgpt :

Solution 1 : USB HID​

Remplacer l'électronique radio par une carte comme un Arduino Pro Micro ou un Teensy.
Le microcontrôleur :
  • lit les joysticks en analogique ;
  • lit les boutons ;
  • apparaît sous Linux comme une manette USB.
Sous LinuxCNC, vous récupérez les axes avec HAL (hal_input ou hal_input.py) et vous les reliez au mode Jog.

Solution 2 : cabler les sorties vers le port // de linuxcnc

Solution 3 : crée un interface.​

 
Dernière édition:

Sujets similaires

L
Réponses
19
Affichages
992
dh42
dh42
K
Réponses
6
Affichages
597
Kélian-adlt
K
M
Réponses
6
Affichages
1 986
MitchCanon
M
Retour
Haut