Programme pour piloter un géné via port USB?

Félicitations !!!

J’aurais pensé que le CLOSE # viderait le buffer avant de fermer le port. D’ailleurs je me demande si un port COM virtuel dispose de buffers. Ca vaudrait le coup de regarder et de les désactiver s’ils existent. Dans le panneau de config, gestionnaire des périphériques, Ports (COM et LPT), choisir le bon numéro de COM, onglet « paramètres du port », Bouton « Avancé », décocher la case « Utiliser les tampons FIFO… » ou ramener tout à gauche les 2 curseurs de longueur des buffers.

Bonjour tout le monde,

Oui JeffM, j’avais essayé… sans succès !
Mais je n’abandonne pas l’idée d’un programme en qb64.

TTL (Tera Term Language) : c’est carrément un basic complet !
Au fait, comment connaissais-tu Tera Term ?..

Dans une autre vie, j’ai longtemps utilisé TeraTerm comme client Telnet, c’était beaucoup plus agréable que le client Telnet de Windows de l’époque avec son écran noir non configurable. Je connaissais l’existence des macros mais je ne les ai jamais pratiquées.

Ah oui, OK !
Je comprends mieux.

Je dois maintenant continuer à nettoyer mon PC car il a dû prendre quelques cochonneries au passage !

La suite, ce sera la construction d’un étage MF (avec son transfo MF à couplage réglable mécaniquement) + détection, le tout avec une 6H8, et la réponse en fréquence à l’oscillo, cet étage étant attaqué par le géné wobulé…

Quel que soit le basic je verrai bien ça :

10 OPEN « COM2:9600,n,8,1 » FOR OUTPUT AS #4
20 PRINT #4, « :01,w210,000 »
25 A$ = INPUT$
30 CLOSE #4

Mais il faudrait alors ouvrir un autre port « for input » et utiliser INPUT #, et il n’y a qu’un port virtuel. Si on veut lire l’acknowledgment éventuel du device, s’il existe (la doc chinoise « traduite » demande un décodage par un expert ), il faut impérativement ouvrir l’unique port virtuel « for random ». Mais pourquoi la non lecture de l’éventuelle réponse empêcherait l’écriture qui est pratiquée antérieurement ?

Pouf, pouf, la journée pour « décontaminer » mon PC, dur, dur !

J’avais malencontreusement chargé hier Spy Hunter qui m’annonçait des catastrophes (plus de 300 virus ou logiciels malveillants détectés, soi-disant). Et à la fin de leur analyse : payez si vous voulez que l’on supprime ces virus…
Comme j’ai Bit Defender à jour, j’ai eu des doutes… Surtout que Spy Hunter m’annonçait en rouge violent qu’il
il avait un Trojan.generic, carrément.
Bon, faut pas être parano…

Bref, j’ai lancé plusieurs fois un scan anti-virus complet Bit Defender et il y avait 2 défauts…
Puis un coup de « Malware anti-Malware » puis une remise de Firefox à la case départ.


Revenons à nos moutons : je vais de ce pas essayer ce petit bout de programme !


Pour JeffM Il y a peut-être un truc dans le géné qui fait que la commande reçue n'est exécutée que si le PC vient vider la réponse du géné à cette commande... C'est chinois... Ah oui la doc, on arrive quand même à décoder certains passages mais il faut corriger d'abord la ponctuation. Et il y a des pièges avec certains mots anglais choisis par Google Translator. Bon exercice d'analyse logique (au sens propre comme au sens grammatical). Mais c'est quand même mieux que la doc en chinois... Effectivement, pas moyen de déclarer le port en INPUT ou en RANDOM... N'accepte que le OUTPUT.

S’il y avait un acquittement du générateur le spy l’aurait affiché.

Je vois la réponse du géné sur l’écran de Tera Term.

Mais Bruno et Jeff, vous aviez tous les 2 raison :

  • il faut du bin, du put et du get,
  • il faut lire la réponse du géné (get).

Et voilà le programme qui marche :
ON ERROR GOTO handler
DIM commande AS STRING * 13
commande = « :01,w211,000 » + CHR$(10)
OPEN « COM2:9600,n,8,1,bin » FOR RANDOM AS #4
PUT #4, , commande
GET #4, , reponse
PRINT « reponse : »; reponse
CLOSE 4

PRINT « Yeahhhh ! »
END

handler:
errnum = ERR
errline = _ERRORLINE
PRINT « erreur »; errnum; « ligne »; errline
RESUME NEXT

Par contre, la réponse est curieuse : 2.517998E-12 => ???
Avec Aspy, on lit cette réponse : « :01, »

Quand on lance la même commande avec Tera Term, on a une réponse complète :
:01,w21,051

a y'est ! Comme disait Jeff : "Colle à l'exemple 3 !"... DIM commande AS STRING * 13 [b]DIM reponse AS STRING * 11[/b] commande = ":01,w211,000" + CHR$(10) OPEN "COM2:9600,n,8,1,bin" FOR RANDOM AS #4 PUT #4, , commande GET #4, , reponse PRINT "reponse :"; reponse CLOSE 4 PRINT "Yeahhhh !" END

Et la réponse est OK : « :01,w21,051 », le « 051 » étant calculé comme le dit la notice… chinoise…

Il faut plutôt mettre la réponse du géné dans une variable de type chaîne.

yes Bruno, mon a croisé ton message !

Encore plus simple :
commande$ = « :01,w210,000 » + CHR$(10)
OPEN « COM2:9600,n,8,1,bin » FOR RANDOM AS #4
PUT #4, , commande$
GET #4, , reponse$20
PRINT « reponse : »; reponse$20
CLOSE 4

Le programme est super simple. Quand tu wobule, y a t’il une différence de vitesse de balayage importante entre qb64 (compilé) et Teraterm (interprété) ?
Je ne comprends toujours pas pourquoi GET #4 est indispensable mais quand ça marche il vaut mieux abandonner avant de devenir fou.

Passage à 115200 bps.
J’ai écrit « en dur » une liste de commande de fréquences dans une macro Tera Term et un programme qb64.
C’est plus rapide avec qb64 mais pas beaucoup !

Dans qb64, j’ai fait aussi un programme genre « f = f + incrément » dans une boucle avec le même nombre de pas et c’est beaucoup plus lent qu’avec la liste en dur dans qb64…

Et j’ai retiré le get et ça fonctionne encore !
Mais là j’écris des fréquences et avant je changeais la forme du signal. Mystère…

La wobulation intégrée au géné à une fréquence max. de 1 Hz : une wobulation par seconde.

Avec 11 fréquences en dur et qb64, ça me donne une fréquence de wobulation de l’ordre de 2,6 Hz.
La « réponse » du géné doit bien limiter.

Il faut que je mette la sortie du géné à l’entrée de l’ampli MF et le scope à la sortie.
Je dois aussi charger Tera Term et qb64 sur un portable.
Il faut que je vois aussi la synchro du scope!

Bonsoir à tous,

en débranchant tous les périphériques USB, clavier, souris et autres trucs, ça ramerait peut-être moins :question: :wink:

Patrick

Est ce que ça risque pas d’être trop lent pour visualiser une courbe de réponse MF ? Et surtout pour voir l’effet du réglage des noyaux sur la courbe « en temps réel ».

Ah oui, je vais éteindre le PC et allumer un bon vieux géné analogique : j’ai un ami qui a un PM5132 qui devrait faire l’affaire…

Et effectivement, 2.6 images par seconde, ça va clignoter !
D’un autre côté, il ne faut pas wobuler trop vite car il faut tenir compte du temps de réponse des L//C.
Autre point négatif : il n’y a que 11 fréquences entre 467 et 477 kHz au pas de 1 kHz (MF 472 kHz)…

Essai :

  • avec un ampli MF sans CAG suivi d’un étage de détection (tube 6H8),
  • sonde d’oscillo x10 laissée en place sur l’anode de la diode de détection.

Sonde à demeure, réglage du transfo MF sur 472 kHz :

  • primaire désaccordé par un 47 pF en //, réglage du secondaire,
  • secondaire désaccordé par un 47 pF en //, réglage du primaire.

Wobulation commandée par programme, 11 fréquences, sweep 2,6 Hz : comme « attendu » c’est trop lent et pas assez fin !

Wobulation interne du géné, pas de 10 Hz, sweep 1 Hz max par construction : finesse impeccable mais comme attendu, pas d’image « fixe » donnant le gabarit du transfo.
Par contre, en supprimant le balayage du scope, le trait vertical est quand même très parlant. Surtout en augmentant la période de wobulation : 4 s, c’est parfait.
On constate que le transfo est très légèrement surcouplé : c’est normal puisque j’avais choisi un « MF2 », donc celui précédant une détection.
La reprise en manuel du géné permet de mesurer très précisément (du moins avec une bonne résolution) les extrema :
1ère bosse = 468,200 kHz,
creux léger = 471,600 kHz,
2ème bosse = 475,500 kHz.
Je n’ai pas encore regardé les fréquences à -3dB et -20dB.
Ca fait donc 7,3 kHz pratiquement plats.

Conclusion : pour avoir le gabarit à l’écran, le géné MHS-2300 ne convient pas mais il est très pratique pour les autres manip’s. Dommage qu’il ne soit pas modulé AM. Je ferai un petit oscillateur BF et un mélangeur
simples !