pi raspberry gpi/o et ihm?

  • Auteur de la discussion v tec
  • Date de début
V

v tec

Compagnon
bonjour tout le monde, utilisant des carte arduino sur la pluspart de mes machines, j aimerais evoluer un peu

jusque là la carte arduino c est plustot simple, environnement windows, logiciel ide,et roule

seule bémole, pas de logiciel prevu qui va donner le retour d'information sur chaque I/o en temps reel si connecté à l ordi, juste la fenetre de communiquation pour afficher des prints.


du coup , l avantage du pi, c est de mettre un ecran tactile, et le plus compliquer est de trouver le logiciel qui va permettre de faire l'interfaçe, est ce que une version de mach3 est disponible pour linux ou pi?


et pour les connaisseurs, y a t il d'autre type de solution deja existante? je doute que depuis le temps rien n ai été developper dans le sens de l ide sur pi
 
E

erolhc

Guest
Bonjour


Un IDE c'est un environnement de programmation (Integrated Development Environment) Ce que fourni Arduino.org est uniquement un IDE pour ses produits mais on peut programmer les Arduino avec d'autres IDE tels que Eclipse, Atmel studio, etc ...
Pareil pour le Pi tu peux utiliser Eclipse et peut-être d'autres

Généralement les IHM (avec écran tactiles ou pas) tels que l'on peut voir avec des automates sont des systèmes à part entière c'est à dire qu'il ont un µprocesseur et donc qu'ils se programment aussi (pour avoir de beaux affichages des infos). L'automate envoie les info et l'IMH les reçoit et les traite. Inversement l'IMH envoie des info à l'automate (appuis de touches, ...) qui les traite.
Tout ça ce n'est pas du tout, du tout "temps réel" et les échanges se font généralement avec le port série.
Tu peux tout à faire ce système avec l’Arduino avec des écrans dit intelligents tels que ceux de 4Dsystems ou même avec des IMH prévus pour des automate Siemens par exemple (mais là tu va pleurer pour le prix du matériel puis aussi celui du logiciel pour les programmer) puisque cela se fait avec le port série.
Tu peux aussi faire un syteme complet avec deux arduino et un écran (tactile si tu veux ou écran+clavier). L'un des Arduino s'occupe de l'écran (et des touches) exclusivement et traite l'affichage des info de l'autre arduino qui "fait l'automate"

Le temps réel s'applique pour le traitement des taches à faire, rarement pour l'affichage : qu'est ce que l'on a faire que l'info s'affiche à +/- 10µs près puisque de toute façon à moins de s'appeler surperman tu ne pourras pas réagir (appuis d'une touche) dans cet intervalle de temps donc c'est mort pour le temps réel. Le seul "IHM" qui soit temps réel c'est le bouton d’arrêt d'urgence
 
Dernière édition par un modérateur:
V

v tec

Compagnon
ouais enfin si tu chipote sur chaque mot c est sur....

pour moi ihm interface homme machine, c est la liaison entre la machine et l homme, donc dans le cas du raspberry pi, c est un ecran tactile ou ecran + bouton sur les gpio

l'ide arduino ba c est le logiciel de programmation pour l arduino


bref, ce que je demande juste c'est ce que il y a des equivalents en terme d'ide arduino pour pi raspberry, avec le meme type de facilité d acces

pas de redefinir chaque mot de ma demande....

ps: je repond au message qui à été edité depuis...
 
V

v tec

Compagnon
ou alors question bete, peut on monter un windows "lite", qui permettrais d aborder les gpio, comme si c etait un port //, et ainsi installer mach3 par exemple, ainsi que l editeur grapique de mach3
 
J

Jmr06

Compagnon
Bon, la notion de "temps réel" est défini il me semble par la constante de temps du système. Quand on met l'homme dans la boucle, la constante de temps considérée est souvent 100 ms. En tous cas, c'est ce que je vois sur les STB de mes clients.
Après, j'ai travaillé sur des systèmes où on disait qu'on était en temps réel lorsqu’on traitait l'info en moins de 2 heurs ! Alors, tout est relatif...
Pour en revenir au sujet, j'ai une IHM sur Arduino, mais elle est dans l'atelier et je ne sais pas ici la référence. J'y vais cette après midi et je te dis.
 
V

vres

Compagnon
bref, ce que je demande juste c'est ce que il y a des equivalents en terme d'ide arduino pour pi raspberry,

Il me semble que c'est du Linux donc il te faut un logiciel de programmation Linux.
Python ou qt Creator si tu veux un vrai IDE. Comme pour l'Arduino tu es en C++.
 
V

v tec

Compagnon
ba moi perso le c++ ne me derange pas, j'ai pris le pli


je ne connais pas du tout l environnement linux, donc j essaye de savoir a quel sauce je vais être mangé en terme de temps et compétence,j'ai missionné un de mes stagiaires sur la question, afin d evoluer de l arduino vers le pi, mais sans non plus reinventer le fil a couper le beurre

donc à votre connaissance existe t il des ide aussi simple que celle de l arduino, et un soft qui permet d'avoir un affichage des etats gpio en temps réèl (plus ou moins 10ms on va pas chipoter)

exemple:
476842
 
V

v tec

Compagnon
en fait, ce qui m embete sous arduino, c est que quand je dois debugger (ce qui arrive souvent), je dois aller chercher le pc portable, demarrer etc.... afin d affichier les print sur la console



bon ba je me dis que avec le pi, tout est fait , comme ça debug ou maintenance rapide

maintenant si pour compenser ce simple petit confort, je dois me taper de la programmation sur mesure, des nouvelles compétences hard etc... bon ba tant pis je reste avec mon arduino, et ecran 2 lignes
 
V

vres

Compagnon
Se que tu montres est la fenêtre de configuration d'une carte Soprolec. Elle ont un interpréteur basic incorporé et peuvent communiquer avec une IHM par ModBus.
 
V

v tec

Compagnon
oui je connais bien ce soft, je n utuilise que la premiere fenetre pour voir l etat de mes automates quand il y a un bug


donc je cherche un truc de ce genre mais sur pi raspberry, qui va gerer ses propres gpio
 
E

erolhc

Guest
en fait, ce qui m embete sous arduino, c est que quand je dois debugger (ce qui arrive souvent), je dois aller chercher le pc portable, demarrer etc.... afin d affichier les print sur la console



bon ba je me dis que avec le pi, tout est fait , comme ça debug ou maintenance rapide

maintenant si pour compenser ce simple petit confort, je dois me taper de la programmation sur mesure, des nouvelles compétences hard etc... bon ba tant pis je reste avec mon arduino, et ecran 2 lignes
Si a chaque fois que tu fais un système tu veux aussi debugger dessus et qu'un affichage sur un LCD de 2 lignes te conviens en temps normal.cela va te revenir cher en écrans
ba moi perso le c++ ne me derange pas, j'ai pris le pli
L'arduino c'est du C++ mais en programmation courante par l'utilisateur c'est du C réduit à sa plus simple expression. On commence a faire du C++ quand on fait des librairies. Il suffit d'ouvrir un fichier de librairie (en .h et .cpp) pour voir la difference.


donc à votre connaissance existe t il des ide aussi simple que celle de l arduino, et un soft qui permet d'avoir un affichage des etats gpio en temps réèl (plus ou moins 10ms on va pas chipoter)
Si c'est juste pour avoir l'état des E/S tu mets des LED sur celles-ci et, cerise sur le gâteau, là tu seras en "vrai" temps réel.
Tu peux faire un shield qui s'intercale entre ta carte arduino et le/les shields qui correspondent à ton application. Ca n’empêche pas les E/S de fonctionner et tu as la visu de leur état
 
V

v tec

Compagnon
chaque machine que je fais sont des protos maisons, donc il y a toujours besoin de debugger et ameliorer le code en fonction de l utilisation dans le temps

un ecran tactile pour pi c est 30-50 euro, c est pas non plus la mort

mais quand le programme fonctionne, on pourrait afficher les differents print de fonctionnement du code, comme dans interpcnc

ce qui fait que par defaut le pi s allume, ouvre la console et execute le programme

https://www.aranacorp.com/fr/programmez-votre-raspberry-pi-en-c/


on va considerer que je fais du c++, car j utilise des librairies tels que accel stepper pour mes moteur, celle des capteurs de poids pour mes balances, et liquidcrytal pour l ecran,et parfois capteur humidité et temperature

mais je ne suis pas un expert, je prend juste la biblio, suit qq exemple, et ensuite j adapte
 
Dernière édition:
V

vres

Compagnon
j'ai programmé mon sketch pour MultiCN en pur C++, ça passe sans problème.
 
E

erolhc

Guest
Le problème c'est que des écrans tactiles pour programmer c'est déjà un peu galère alors si ils sont pas très grand...

j'ai programmé mon sketch pour MultiCN en pur C++, ça passe sans problème.
Oui si on connait mais écrire genre "LCD.print(...", ce que font la plupart de ceux (dont moi) qui programment sur arduino ce n'est pas ce que j’appelle programmer en C++

Si on prend une ligne du programme prise du lien cité par V-tec

Déjà 90% de ceux qui programment sur arduino sont largués (que veux dire **argv ????) alors que c'est du simple C alors du C++ ...
On arrive a faire tourner un programme Arduino sans utiliser de pointeur, etc, ... alors parler en plus de classe, d’héritage, de propriété, etc....
On utilise pour la plupart le C comme une sorte de basic dans l'arduino
 
Dernière édition par un modérateur:
E

erolhc

Guest
Combien de gens qui programment sur arduino savent ce qu'est une classe et comment la construire ? Peu et je fais partie du lot de ceux qui aurait de très grandes difficultés à en faire une complexe, cela coule pas de source. Et j'ai toujours du mal avec les pointeurs :)
Par contre je suis au top pour utiliser la classe XYZ (XYZ.clignote, XYZ.vroum, ...) Cela fait-il de moi un maitre du C++ ?
 
V

vres

Compagnon
C'est ce qui fait le succès de l'Arduino, il d'adapte à tous les niveaux.:tumbsupe:
Grace aux classes définient dans les librairies, on arrive a un programmation simplifiée. On ne peut pas faire la même chose avec du simple basic qui est pourtant plus facile à comprendre.
 
M

MCrevot

Compagnon
Bonjour,

C'est vrai que sur Arduino, l'utilisation des bibliothèques est bien pratique, mais ça devient vite très limitant au niveau des perfs ! d'où d'ailleurs l'envie d'aller voir ailleurs, ce en quoi ce post m'intéresse bien.

Mais en creusant un peu, on se rend vite compte que les bibliothèques, à vouloir tout faire, le font mais bien plus lentement que si l'on passe par une prog directe ; par exemple, pour numériser mon tour (cf mon site) j'utilise deux arduino, l'un comme IDE et l'autre comme moteur, et je n'utilise pas de biblio (j'ai essayé, mais ça ne passait pas, juste liquidcrystal) ; donc pas de biblio timer, ni stepper, ni com, et ça fonctionne du feu de dieu, à telle enseigne que j'ai reproduit une partie du code pour le "throttle" (les manettes) de mon simu d'A320 ...

Bon, cela dit, j'attends avec impatience d'en savoir plus sur les 32 bits ... histoire de pouvoir utiliser les bibliothèques sans me préoccuper de pb de perf :tumbsupe:

Michel
 
E

erolhc

Guest
C'est ce qui fait le succès de l'Arduino, il d'adapte à tous les niveaux.:tumbsupe:
Initialement c'est fait pour initier les gens à la programmation il me semble.
Ce que je veux dire c'est que les gens en reste majoritairement au niveau zéro et donc que ça n'en fait pas des as de la programmation.

Pour en revenir au Pi, que je ne connais pas, je doute que cela suffise et qu'entre ce "niveau zéro" en Arduino et ce qu'il faut pour le Pi, la marche soit assez grande.

moi les bibliotheques, j en ai jamais ouvert une seule pour l etudier, si elle à été faite c est pour gagner du temps, pas la reinventer ou la comprendre, les explications suffisent
Oui c'est un choix mais si demain sort un nouveau composant que tu veux utiliser tu devras attendre que quelqu'un développe une biblio.
Alors tu peux bien sur utiliser ce composant en pur C mais cela complique l'utilisation .

l'utilisation des bibliothèques est bien pratique, mais ça devient vite très limitant au niveau des perfs
Le probleme des biblio Arduino c'est qu'elle doivent convenir à toutes les cartes donc on n'exploite pas a fond certaine possibilités.
De plus ce sont des carte dites de prototypage et cela bride aussi les perf possible.
Par exemple sur les SAMD (serie MKR) le SPI est bridé à 12MHz alors qu'il pourrait aller à 24MHz pour éviter les problèmes avec le "montage en l'air"
 
Dernière édition par un modérateur:
V

v tec

Compagnon
oui mais pour mes applications ça me suffit largement


et je suis d accord que faire du deplacement de moteur et d autre action en // n'est pas adapté, tout comme de la mesure de poids

mais faut savoir s adapter
 
V

vres

Compagnon
C'est vrai que sur Arduino, l'utilisation des bibliothèques est bien pratique, mais ça devient vite très limitant au niveau des perfs ! d'où d'ailleurs l'envie d'aller voir ailleurs, ce en quoi ce post m'intéresse bien.

Les Atmel 8 bits ne sont pas trop performant, un appel de routine peut prendre 6 cycles (au hazard), si c'est pour faire une opération toutes simple comme changer l'état d'une sortie, c'est effectivement pénalisant.
Par exemple avec cette instruction tu peux changer 8 sorties avec 1 cycle : Si tu veux changer l'état de 8 ports avec DigitalWrite avec tout les appel de routine il te faudra peut-être 60 cycles.
Même en assembleur le problème est le même.
Si tu veux faire un code performant il faut éviter les appels de fonctions.


Initialement c'est fait pour initier les gens à la programmation il me semble.
Ce que je veux dire c'est que les gens en reste majoritairement au niveau zéro et donc que ça n'en fait pas des as de la programmation.

GRBL est développé en Arduino il me semble, vu les performances chapeau aux développeur.

Pour en revenir au Pi, que je ne connais pas, je doute que cela suffise et qu'entre ce "niveau zéro" en Arduino et ce qu'il faut pour le Pi, la marche soit assez grande.

Le processeur d'un Rasberry est un Arm11 à 700MHz avec un circuit graphique Full-HD, rien a voir avec le petit micro 8bits d'une arduino.
L'autre ENORME différence c'est que le Raspberry travaille avec un système d'exploitation comme un PC alors que l'Arduino fonctionne avec du code natif.

Edit: je viens de voir que le modéle 3B+ est équipée d'un quadricœur à 1,4 GHz.
 
Dernière édition:
V

v tec

Compagnon
c est justement ce qui m interesse, c est le coté "autonome", mais par contre, je ne pourrais pas aller au dela de mes competences avec la programmation de l arduino et son ide


donc la question initiale est:

est ce qu il existe des applications simples a mettre en oeuvre, qui vont donner le meme resultat? soit que ide arduino, soit que interpcnc
 
V

vres

Compagnon
donc la question initiale est:

est ce qu il existe des applications simples a mettre en oeuvre, qui vont donner le meme resultat?

La réponse simple est "non".

Windows 10 ARM n'est réellement fonctionnel qu'avec les puces Snapdragon donc pas avec les Raspberry.
 
Dernière édition:
V

v tec

Compagnon
bon ba je reste sur arduino alors

voila merci bon week end ^^
 
D

dh42

Compagnon
Salut,

Alors, je suis peut être totalement hors sujet, car je ne connais rien à l'arduino ... ni a linux ... ; je suppose que ça prends du langage GRBL ?

Je sais que Andy (le programmeur de Cambam) à fait tourner CamBam sur un Pi sous linux, mais j'ignore si linux CNc peut fonctionner sur un Pi, ni si c'est assez puissant ou si il y a un port // utilisable.

Il y a également un plugin de pilotage GRBL depuis CamBam, mais la aussi, si CB fonctionne sur linux et sur un Pi, j'ignore si le plugin fonctionne aussi ; ça ne marche peut être que sous Windows ... je suppose que c'est en USB (je ne peux pas le tester, pas de CN compatible GRBL)


++
David
 
S

speedjf37

Compagnon
Bonjour,

Le Raspberry Pi est conçu comme une carte d'apprentissage (comme l'Arduino) et n'est pas adapté à un environnement industriel.

Le système à base de PI est totalement autonome OS + clavier souris écran)

Ces cartes sont fragiles (pas de tampons E/S) et alimentation native en USB.

Toutes les adaptations (de type industrielles) se font avec des cartes E/S et des alimentations.

Le langage communément utilisé est le Python (standard multiplateforme win linux et)

exemple:


@dh42
Cambam tourne sous linux mais pas en natif (tourne sous mono)

Machinekit (version de LinuxCnc ) tourne sur le Pi mais mieux avec une carte E/S

Pour l'Arduino l'interface tactile est opérationnel (exemple Imp3D avec Marlin )

JF
 
S

speedjf37

Compagnon
Bonjour,




JF
 
H

henrig

Apprenti
Bonjour,
Vous avez un TUTO sur Python et Eclipse qui me semble très bien faire l'affaire pour piloter et créer des interface graphiques sur Raspberry.
Henri
 
R

roboba

Ouvrier
C genre ca que tu cherche a faire ? :
C juste qu'il te faut un ecran assez grand sur la machine pour lancer le C++ et debugger si necessaire...
sinon l'assembleur existe aussi ...
il me semble bien que linuxcnc fonctionne sur raspberry
 
Dernière édition:
Haut