Réglage du mode octet de l'application de communication série TWE-Lite (envoi en Python)

introduction

Je me souviendrai de la partie sur laquelle j'ai trébuché lors de l'envoi et de la réception de l'application de communication série Monowireless TWE-Lite "Byte mode".

environnement

Windows 10 MONOSTIC TWI-LITE DSP(TWELITE R)

Anconda python 3.7 pyserial

Pour référence, il existe un exemple (mode standard) utilisant TWE-Lite sur ce site. (Parce que j'utilise Python2, je dois être prudent lors de la gestion de Byte.) Texte sur le développement des ressources humaines des TI agricoles

Logiciel à installer (confirmation de la communication série)

Teraterm Realterm (pour envoyer et recevoir des binaires)

Réécriture vers une application de communication série

Veuillez vous référer à la page Web suivante. Référence: Environnement d'évaluation et de développement TWELITE STAGE (1) TWELITE STAGE-Télécharger Twilight Stage → Dans mon cas Windows

(2) Connectez le TWELITE R ou le MONO STICK à réécrire au port USB. → Dans le cas du TWELITE R: Vérifiez la position de la broche jaune du cavalier à proximité de la borne USB (Cavalier 2 des 3 broches à proximité de la borne USB. Sinon, l'alimentation ne sera pas fournie au DIP et une erreur de reconnaissance se produira. ) Référence: TWELITE R-Twilighter

(3) Démarrez et réécrivez TWELITE_stage.exe (Windows) dans le dossier MWSTAGE → Sélectionnez 2. Réécriture d'application L'écran passe au programmateur TWELITE. → Sélectionnez TWELITE APPS Build & Rewrite dans 3. Sélectionnez App_Uart

(4) Réécriture du contenu en mode interactif Revenez à TWELITE STAGE et sélectionnez le mode interactif Modifier l'ID de l'appareil défini Unité de base: 121 = 0x79 Unité esclave: 120 = 0x78 (par défaut) Appuyez sur "i" Entrez "121" ou "0" Entrez le «S» majuscule (Maj + S) pour enregistrer vos modifications.

(5) Test en mode chat Mode chat Sélectionnez la connexion série dans Teraterm Reportez-vous au port COM auquel l'unité maître et l'unité esclave sont connectées. Réglez la vitesse sur "115200" dans les paramètres du port série et la connexion dans les paramètres Teraterm (sinon, ce paramètre ne fonctionnera pas)

tw01.PNG

Exemple de connexion avec TeraTerm COM3 est une unité esclave, COM4 est une unité maître tw03.PNG

(6) Mode ASCII Omis cette fois Les paramètres passent en mode interactif Appuyez sur "m". Entrez "a" Entrez le «S» majuscule (Maj + S) pour enregistrer vos modifications.

(7) Mode binaire Utilisez Realterm pour vérifier la communication. Paramètres Realterm Baud:115200 Port: 4 Spécifiez 3 pour l'autre Display As:Hex(space) tw011.PNG tw010.PNG

Transmission de l'unité esclave à l'unité maître Envoyer "0xA5 0x5A 0x80 0x05 0x00 </ u> 0x00 0x11 0x22 0x33 0x78"

  • Entrez le nombre hexadécimal ci-dessus dans les numéros de série dans la balise Envoyer de Realterm. Unité maître Reçu "A 5 5A 80 05 78 00 11 22 33 78 04"

De l'unité maître à l'unité esclave 「0xA5 0x5A 0x80 0x05 0x78 0x00 0x11 0x22 0x33 0x78」 Combiné sans fil Reçu "A 5 5A 80 05 00 00 11 22 33 00 04"

Exemple de communication réelle: 3 à gauche est une unité esclave, 4 à droite est une unité maître TW013.PNG

"0xA5 0x5A 0x80 0x05 0x00 </ u> ..." Spécifiez la destination avec le numéro du 5e octet 00: Unité maître, 78: Unité esclave

Envoyer par Python (Pyserial)

Envoyez en Python et surveillez avec Realterm Python=3.7,  Installez Pyserial (Si vous utilisez Anaconda, il est préférable d'installer avec conda) Référence: Comment créer un environnement virtuel Anaconda (conda-forge, notebook Jupyter)

import serial

#Unité maître: COM4, unité esclave: COM3
#Envoyer de l'unité maître à l'unité esclave Spécifiez 0x78
data=[0xA5, 0x5A, 0x80, 0x05, 0x78, 0x00, 0x11, 0x22, 0x33] 

#Envoyer de l'unité esclave à l'unité maître Spécifiez 0x00'
# data=[0xA5, 0x5A, 0x80, 0x05, 0x00, 0x00, 0x11, 0x22, 0x33] 

#Calcul de la somme de contrôle
chs = 0
for i in data[4:]:
    print(hex(i))
    chs = chs ^ i
print('check sum xor:',hex(chs))
data.append(chs)

# borate 115200
b_data = bytearray(data)
#Lors de l'envoi de l'unité maître à l'unité esclave. Utilisez COM3 lors de la connexion d'une unité esclave à une unité maître.
with serial.Serial('COM4', 115200) as ser:
    print('---')
    ser.write(b_data)
    print('---')

Exemple d'exécution tw015.PNG

Recommended Posts