Go Down

Topic: Communication série avec Arduino (Read 2701 times) previous topic - next topic

icare

Bonsoir,
Sujet "off topic or borderline" :)
Pour des besoins spécifiques, il me fallait un logiciel PC graphique capable de transmettre et recevoir des données d'une carte Arduino.
Le langage de développement s'orientait vers des scripts Python. Mes connaissances sur Python se résumait à son nom. Il ne me restait plus qu'à apprendre ce langage.
Et comme souvent lorsqu'on apprend un nouveau langage on finit rapidement par se lasser des exemples de cours.
Comme mes besoins se situaient au niveau des liaisons séries pour Arduino. Alors pourquoi ne pas faire une émulation de terminal, il y en a temps de disponibles alors un de plus ou de moins n'allait pas changer la face du monde.
Cet applicatif peut se substituer au Moniteur série de l'IDLE Arduino avec comme seul avantage d'avoir un historique des "send".

Configuration logiciel :
- python 2.7
- pySerial pour python 2.7
- Windows 7 (même si je suis plus linux)
- bibliothèque graphique Tkinter (natif sous python)

Ce développement rassemble la programmation python, la programmation événementiel, la mise en oeuvre des widgets de Tkinter, l'accès aux ports séries via pySerial, l'utilisation des threads pour des communications full-duplex, la mise en oeuvre de Queues pour le stockage des données émises et reçues. Bref tout un programme.

Ce n'est pas le logiciel révolutionnaire que tout le monde attend mais juste un support d'apprentissage. Certaines parties du source seront peut être utile à d'autres pour résoudre leurs soucis de communication série.

Par contre si une ou plusieurs bonnes âmes pouvaient faire des tests ou des suggestions, je suis preneur.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

icare

Bonjour,
Pas d'utilisateur Python dans le monde Arduino pour me donner son avis sur le programme émulation terminal ?
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

B@tto

Salut icare,

Je suis pas adepte du Python mais des terminaux série performants et gratuit y'en a pas beaucoup donc je vais surement testé ça bientôt ;)

J'ai déjà deux petites amélioration à te proposer (je me base sur tes screenshots pour le moment) :
- une fonction permettant de choisir le codage : binaire, hexa, ACSII ... Bien pratique si on ne s'interface pas forcement avec une Arduino et qu'on veut étudier le protocole de com
- un système de raccourci pour des commandes : genre on pourrais présauvegardé des phrases à envoyer qui seraient liés à une liste ou à des boutons raccourci qu'il suffirait d'appeler pour ne plus avoir à retaper la commande en entier

Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

icare

#3
Jun 29, 2014, 04:37 pm Last Edit: Jun 29, 2014, 05:30 pm by icare Reason: 1
Salut B@tto

Je suis pas adepte du Python mais des terminaux série performants et gratuit y'en a pas beaucoup donc je vais surement testé ça bientôt ;)

Merci pour ta réponse.
C'est vrai que les terminaux séries sont plus que nombreux sur la toile. Comme j'ai pu l'écrire le but n'était pas d'en créer un de plus mais plutôt avoir un support d'apprentissage qui soit différent des exemples  "scolaires" que l'on trouve dans tout cours de formation.

J'ai déjà deux petites amélioration à te proposer (je me base sur tes screenshots pour le moment) :
- une fonction permettant de choisir le codage : binaire, hexa, ACSII ... Bien pratique si on ne s'interface pas forcement avec une Arduino et qu'on veut étudier le protocole de com

Très bonne idée, je compléterai cette option.

- un système de raccourci pour des commandes : genre on pourrais présauvegardé des phrases à envoyer qui seraient liés à une liste ou à des boutons raccourci qu'il suffirait d'appeler pour ne plus avoir à retaper la commande en entier

Cette option est en cours d'implémentation avec en plus une sauvegarde (fichier texte) des données reçues sur le port série.
@+
[edit] la copie d'écran de la version en cours
Les fonctions F1 à F6 permettent d'envoyer le contenu d'un fichier texte (mono ou multi-lignes) de manière continu ou ligne par ligne.
La touche Sauve permet des sauvegarder le contenu de la zone réception dans un fichier texte.

à suivre...
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

icare

Bonjour,
Une nouvelle version de iTerminal qui inclus des touches pré-programmées, la sauvegarde au format texte de la zone de réception et la sauvegarde au format csv de la communication en réception.

Il me reste à faire l'affichage des données dans les autres base.
Ce n'est pas le plus difficile mais pose quelques problèmes de design de présentation.
A suivre...
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Go Up