Bonjour à tous,
Ceci n'est pas forcement un problème lié typiquement à matlab mais comme j'ai l'habitude de m'en servir, j'essaye de le résoudre avec celui ci. Cela dit, je suis ouvert à d'autres solutions.
Nous essayons de "hacker' un dispositif motorisé commandé par une télécommande radio (type modelisme) pour que l'on puisse directement commander la vitesse du moteur depuis un pc et ce, de manière précise.
Pour cela, nous avons enregistré les signaux avec un oscillo directement à la sortir du récepteur en fonction de l'ordre sur la télécommande. Ces signaux sont carrés et égales à 0 ou 5V ce qui nous a fait penser à un codage binaire du control moteur, chaque bit durant 2ms.
Nous avons fait 15 enregistrements correspondant à des ordres de vitesses differentes. En les sommant, on obtient le graphe 1 en pièce jointe. On constate un pattern qui se répète sur une periode de 81ms dont 29ms à 0.
La seule partie de ce signal qui change correspond aux 2 parties de 8 bits sachant que les 2 sont liés, l'une étant l'inverse de l'autre (ie 10000100/01111011 par exemple).
Bref, on s'est dit, super c'est simple, on a juste à renvoyer directement ces signaux en reprenant le pattern mesuré et ça va marcher.
Le problème se situe dans la manière de générer ce pattern. On pensait que ça correspondait à de la communication type RS232 mais en fait faut croire que non, pour 3 raisons:
- Le baudrate est de 500 chaque bit durant 2ms (apparemment ça existe pas)
- on ne retrouve pas le schéma classique bit de début bit de fin parité etc ...
- c'est entre 0 et 5V alors que le RS232 est en -12 +12.
Néanmoins, on se demande s'il n'est pas possible de générer ce genre de signaux avec du rs232 + comparateur pour rétablir le 0/5V.
Il nous faudrait donc être capable de générer un singal identique à la 2ème capture (sauf pour le voltage). C'est à dire des créneaux quand on veut de 2ms.
Pour l'instant j'arrive à envoyer des signaux en RS232 avec fwrite. Mais de ce que j'en vois sur l'oscillo, c'est pas très clair et surtout ça semble suivre une norme qui génère des créneaux supplémentaire dont je ne veux pas.
Donc, est ce que vous auriez une idée sur la manière de controller le port rs232 pour obtenir le signal désiré ?
Merci
Matthieu
Partager