J’ai un instrument de musique qui utilise une gestion à distance. Cette télécommande communique de manière bidirectionnelle avec la plupart des appareils. Il communique via le protocole RS-422 (principalement pour la distance du câble, je crois).
J’ai acheté une paire d’adaptateurs RS422 vers USB dans le but de surveiller les informations dans chaque sens et d’utiliser un logiciel de surveillance des ports.
Je n’ai pas encore compris que cela fonctionnait correctement par lui-même; Je crois que c’est peut-être les paramètres de connexion que j’essaie, car les informations que je vois semblent foirées. D’après ce que je peux dire dans le manuel de maintenance, il pourrait s’agir de caractères de 8 bits sans parité et de 2 bits d’arrêt.
Quoi qu’il en soit, comme cet appareil est actuellement archaïque en termes de technologie (1982, je crois), je pense que ce serait un excellent candidat pour le clonage avec un Arduino.
La télécommande utilise elle-même un ancien microcontrôleur Intel 8749. Il s’agissait d’un dispositif basé sur le MCS-48 (je pense) qui comportait en outre une petite EEPROM conçue pour la mémoire programme. C’était 8 bits avec 3 ports d’E / S.
L’unité distante comprend principalement 12 anciens afficheurs à 4 chiffres du groupe de caractères Litronics DL-1414 (qui reçoivent un caractère ASCII et le conservent dans leur mémoire jusqu’à ce qu’ils soient rafraîchis), une banque de boutons et de faders (connectés via un CAN) et un niveau en dB mètre.
Je pensais peut-être que c’était une méthode incorrecte, mais mon plan était de détecter et de capturer les informations envoyées et reçues pour déterminer ce qui était envoyé, par exemple lorsqu’un fader est déplacé. J’imagine qu’il serait alors simple d’attacher un curseur à un potentiomètre coulissant dans Arduino, puis d’envoyer ce mouvement sur le bus série, avec vraisemblablement quelques bits de contrôle ajoutés, puis la valeur.
J’apprécierais énormément certaines réflexions et peut-être des recommandations sur la manière de traiter cette ingénierie inverse