Affichage graphique pour communication série

Bonjour a tous,

J'aimerai réaliser une interface graphique/application afin de communiquer via le port série avec un Arduino ATmega2560. L'affichage doit se faire sur un écran tactile 3,5" ou 5".

Je recherche à développer une application dans le style de ce qui est fait avec les écrans MKS TFT pour imprimante 3D.
J'ai principalement besoin de pouvoir importer des images qui serviront de boutons, leur associer une commande, l'envoyer via le port série et afficher la réponse. Dans le futur, si tout fonctionne correctement, pouvoir afficher des graphes, sauvegarder des paramètres utilisateurs voir même un contrôle a distance serait un plus.

Je pensais a la base me tourner vers une Raspberry et un écran HDMI mais je préfère étudier toutes les possibilités avant de me lancer. J'ai réalisé par le passé une petit interface via Processing hébergé sur un Raspberry mais j'ai peur d'être limité avec le langage pour ce projet.

J'appel donc cette communauté à l'aide afin d'avoir vos avis et vos retours d'expérience sur le meilleur choix a adopter.

Merci d'avance pour votre aide :slight_smile:

Si tu t'adresses à la communauté Arduino, c'est biasié, je vais te répondre que si le code est bien écrit, on peut faire pas mal de choses, avec mon écran, et sur une Uno seulement, j'ai un paint qui prend quasi toute la place, mais pour les autres applications j'ai du rab. Alors avec une grosse Mega, on peut aller loin. Demo ici

Si tu vas sur un forum Raspberry, on te dira qu'il vaut mieux prendre un Raspberry!

Bonjour vileroi et merci pour ta réponse :slight_smile:

Il y a effectivement les inconditionnels de l'un et les inconditionnels de l'autre.
J'ai toujours préféré l'Arduino a la Raspberry c'est pour cela que je préfère m'adresser a cette communauté.

Je n'ai jamais réalisé d'interface via Arduino et j'aimerai donc avoir des retours concernant la facilité de la mise en place mais aussi en ce qui concerne la fluidité de l'affichage etc...
Je suppose que cela va dépendre de l'écran, des bibliothèques et évidemment des compétences en programmation.

Ayant l'intention d'avoir beaucoup de menus et d'utiliser beaucoup d'images, cela ne sera pas sans impacts.

A mon sens, si le projet est complexe, trois possibilités :

ARDUINO : en dehors des pilotes écrans, absence de librairies graphiques (je parle de widgets, boutons, menus, dialogues, etc.). Peut-être Nextion ?

RASPBERRY PI : nombreuses librairies graphiques de haut niveau (TK, GTK, QT, WxWindows, etc.) adaptées aux langages C, PYTHON, etc.

HTTP sur RASPBERRY PI : développer un serveur HTTP, l'affichage étant confié à un navigateur.
à mon avis la meilleure solution, mais il faut des connaissances HTML, JS, etc.
De préférence sur RASPBERRY PI 4 pour la réactivité.

pouvoir afficher des graphes, sauvegarder des paramètres utilisateurs voir même un contrôle a distance serait un plus

HighCharts permet d'afficher des graphes.
Contrôle à distance : HTTP est là pour cela. Dans ce cas, aucun développement à prévoir sur le client.

En voila un polythéiste, il n'y a qu'un seul Dieu, c'est Arduino! :stuck_out_tongue:

Je n'ai jamais réalisé d'interface via Arduino et j'aimerai donc avoir des retours concernant la facilité de la mise en place mais aussi en ce qui concerne la fluidité de l'affichage etc...

Je n'ai testé que pour un afficheur parallèle, cela doit aller moins vite avec un afficheur série, mais je n'en sais pas plus.
Sur une Uno, on peut faire ceci

Je suppose que cela va dépendre de l'écran, des bibliothèques et évidemment des compétences en programmation.

Cela dépend surtout du mode parallèle ou série. Puis de la taille de l'écran. Pour un 480320 ce sera simplement deux fois plus long que sur un 240320!
Pratiquement toutes les bibliothèques utilisent le même moteur, et les possibilités dépendent donc peu d'elles.
Par contre les compétences permettent effectivement de faire des différences, mais c'est surtout le graphisme qui sera prédominant. J'ai des compétances, mais je ne suis pas graphiste; je saurais peut être imiter des menus... mais si je ne sais pas les inventer, je ne peux pas faire quelque chose de terrible.

Ayant l'intention d'avoir beaucoup de menus et d'utiliser beaucoup d'images, cela ne sera pas sans impacts.

Pour les images, elle ne peuvent pas tenir dans la mémoire de l'Arduino, c'est pour cela que les écrans disposent (en principe seulement) d'un lecteur de carte SD, et du coup, le nombre d'image importe peu.

Ouah merci a tous les deux pour ces réponses complètes !

@hbachetti

ARDUINO : en dehors des pilotes écrans, absence de librairies graphiques (je parle de widgets, boutons, menus, dialogues, etc.). Peut-être Nextion ?

J'ai effectivement pensé a cette possibilité. Pour le début ce serait effectivement suffisant mais j'ai peur de me retrouver limité par la suite du fait du langage propriétaire.

HTTP sur RASPBERRY PI : développer un serveur HTTP, l'affichage étant confié à un navigateur.
à mon avis la meilleure solution, mais il faut des connaissances HTML, JS, etc.
De préférence sur RASPBERRY PI 4 pour la réactivité.

Je ne cache pas que c'était ma première idée. J'ai quelques connaissances HTML, CSS, JS mais loin d'être suffisant. Je ne suis pas retissant a me lancer pour progresser. Il me reste quelques interrogations mais je vais me renseigner du coté des forums Raspberry :stuck_out_tongue_closed_eyes:

@vileroibonjour

J'ai effectivement jeté un œil a ton site et malheureusement cela mon conforte au niveau de la performance de l'ensemble. L'affichage ne semble pas assez fluide a mon gout :frowning:

Bonsoir

J'aimerai réaliser une interface graphique/application afin de communiquer via le port série avec un Arduino ATmega2560. L'affichage doit se faire sur un écran tactile 3,5" ou 5".[/color]

Port série... TX/RX obligatoirement ou éventuellement Bluetooth ?
Si oui un écran de smartphone et une appli dédiée serait une option pour le cahier des charge évoqué :

J'ai principalement besoin de pouvoir importer des images qui serviront de boutons, leur associer une commande, l'envoyer via le port série et afficher la réponse. Dans le futur, si tout fonctionne correctement, pouvoir afficher des graphes, sauvegarder des paramètres utilisateurs voir même un contrôle a distance serait un plus.

L'affichage ne semble pas assez fluide a mon gout :frowning:

D'où ma suggestion RASPBERRY PI.
J'ai un écran 7 pouces sur une RASPBERRY PI 2. C'est un peu léger en terme de puissance, mais avec une RASPBERRY PI 3, ou mieux une 4, c'est franchement top, y compris sur HDMI.

La richesse du dev HTML + CSS + JS est incomparable, je pense que cela vaut la peine d'investir un peu de temps dans la formation, plutôt que de bâtir une librairie Widgets en partant de zéro.
Et le tactile n'est pas un souci, ça marche d'emblée, sans dev particulier.

Désole du temps de réponse, je ne reçoit pas les notifications par mail alors qu'elles sont sensé être activées :angry:

Mon idée est de remplacer l'écran tactile actuel de mon imprimante 3D. C'est un écran propriétaire Anycubic qu'on ne peut modifier. Il est connecté sur le port série 3 de la carte Trigorilla (ATMega2560) mais envois ses propres commandes et non du Gcode. Après des tests sur Marlin 2.0, j'arrive sans problèmes a desactiver la partie ecran et a activer la seconde liaison série sur le port 3. De ce fait, je peux maintenant communiquer en Gcode tout est gardant disponible l'entrée USB de la carte.

Je veux pouvoir développer ma propre interface et les options Nextion et MKS TFT ne me plaisaient pas (même si c'est plus simple a mettre en place).

J'aimerai que l'application web s'ouvre en fullscreen au démarrage du Pi (j'ai lu que c'était possible) mais également pouvoir éteindre mon imprimante sans devoir éteindre manuellement le Pi avant.
Etant donné que ca touche maintenant a du Rapsberry Pi et plus de l'Arduino, je vais aller me renseigner sur les forums Raspberry. :smiling_imp:

Je n'ai pas envie de me faire taper sur les doigts pour HS :stuck_out_tongue_closed_eyes:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.