j'aimerais créer une interface utilisateur sur un Pc permettant de piloter à distance à partir de ce PC, deux volets. Pour cela j'ai programmé en C mes microcontrolleurs pour l'ouverture et la fermeture d'un volet avec 3 boutons (ouverture, fermeture et arrêt) et deux capteurs de fin de course (ouverture et fermeture).
Toutefois j'aimerais savoir comment dois-je m'y prendre pour réaliser l'interface utilisateur sur le pc, par exemple en appuyant sur ouverture, mon volet s'ouvre, mais comment créer à la fois l'interface mais également le réseau ? Car je me doute bien qu'il faut un réseau reliant le système au PC pour que le microcontrolleur reçoivent les ordres de l'interface utilisateur.
Comment dois-je m'y prendre ? Il me semble qu'il faut utiliser Visual Basic, mais je n'en suis pas sûr...
il n'est pas nécessaire d'utiliser "visual basic" ca c'est juste un IDE de programmation(proprietaire qui plus est ) .... ca dépends, tu connais quels langages de prog ?
si tu sait programmer en C, tu peu utiliser soit un programme "console 16bit" (si tu compte faire tourner ca sur un vieux coucou) ou avec une interface graphique style l'api Windows, Qt, GTK+ .... (la premiere n'étant pas spécialement portable, tu t'en serai douté ^^) En basic, tu peu effectivement utiliser visual basic (ou Qbasic si c'ets pour un vieux coucou...) ...
une fois que tu a défini tes besoins, tu peu dessinner une petite interface (ce que tu vois d'un programme en fait ...) et y greffer tes fonctions (envoi de données sérielles par exemple, via Rs232 ou parallele, qui tant à disparaitre ...)
voilà, ++ Tix.
13/01/2008 - 16h31
lyon90
Date d'inscription
mars 2007
Messages
112
Re : Créer une interface utilisateur.
A vrai dire je débute dans ce domaine d'interface et je n'ai pas de notion dessus. Je sais un peu programmer en C, j'ai d'ailleurs fait mes programmes pour les ouvertures et fermetures des volets avec les boutons poussoir (enfin il faut que je transfère les programmes pour voir si cela marche mais c'est une autre histoire), mais sur visual basic je suis vraiment un débutant, mais je pense faire mon interface avec visual basic.
Est-ce dur de créer cette interface de 3 boutons : ouverture, fermeture et arrêt sur visual basic ?
une fois que tu a défini tes besoins, tu peu dessiner une petite interface (ce que tu vois d'un programme en fait ...) et y greffer tes fonctions (envoi de données sérielles par exemple, via Rs232 ou parallèle, qui tant à disparaitre ...)
C'est ceci que je ne comprend pas, que veut tu dire par petite interface ? et par greffer tes fonctions ?
En prenant du Rs232, comment cela marche t-il ? Je branche le rs232 sur le pc et la sortie je la met où ? car le microcontrolleur n'a pas de port rs232 sur lui. C'est surtout cette idée que je n'arrive pas à me visualiser, comment faire ce "réseau" pour y piloter à partir du Pc.
Merci encore pour votre aide
13/01/2008 - 16h54
lyon90
Date d'inscription
mars 2007
Messages
112
Re : Créer une interface utilisateur.
En faite je viens de voir que visual basic est assez simple à prendre en main, je veux dire par là pour faire 3 boutons. Le problème c'est qu'après il faut programmer ces boutons, c'est dommage qu'on ne puisse pas le faire en C. Mais une fois programmé, par exemple : bouton ouverture => sortie 1 du µc=1 while bouton arret =0; comment faire pour le transférer sur le µc ?
Je dis ça, mais cela ne marche peut être pas comme ça en faite ...
13/01/2008 - 21h05
Tix
Date d'inscription
octobre 2004
Localisation
france
Messages
1 515
Re : Créer une interface utilisateur.
bein, le principe d'une interface graphique logicielle, c'est que chaque actoin délivre un message que la fonction principale du programme gere.... donc, à l'appui sur le bouton x, la fonction bouttonxdown se lance ... (c'ets un exemple)
ensuite, pour envoyer un message au pic, tu peu utiliser un protocole "sériel" (les bits sont envoyés les uns à la suite des autres...) et, parallele (chaques bit est envoyé sur uen ligne, plus facile à gerer, mais moin "puissant").
par exemple, si tu à une centaine de volets à commander .... tu aura intéret à utiliser une liaison sérielle
par contre, si tu n'en à qu'un avec seulement 2 ou trois commandes... tu peu bien récuperer 3 fils
++
14/01/2008 - 06h40
lyon90
Date d'inscription
mars 2007
Messages
112
Re : Créer une interface utilisateur.
Merci pour votre réponse, je pense que c'est assez clair dans mon esprti, toutefois une ou deux interrogations substitent sur l'aspect technique.
1) Faut-il faire un programme "géneral" comme je l'ai fait quand j'ai créer mon programme en C. Je veux dire par là j'avais pour l'ouverture : si bouton ouverture activé....et pas bouton arret.......et après à la place du bouton ouverture dans le programme en VB, je renvoie l'action du bouton ou dois-je simplement définir l'action du bouton sans changer a programmes general que l'on a en double cliquant sur le fond de la fenetre "form".
Enfin, si on utilise des liaisons parrallèles ou séries, comment peux on y relier au micronctrolleur ? J'entend par là que le microcontrolleur n'a pas d'entrée de fil sur lui, il faut donc passer par un circuit ou autre chose non ? peut être une table de programmation du microcontrolleur ? Mais j'en sais rien là dessus...
Quelqu'un aurait-il une petite idée pour me permettre d'avancer dans mon problème ?
J'avais pensé à mettre une femelle sur mon circuit pour raccorder le rs232 du pc au système, mais après comment relier les "fils de données du rs232" aux pattes du microcontrolleur ?
Merci encore
14/01/2008 - 18h44
DAUDET78
Date d'inscription
septembre 2006
Localisation
Ile de France
Âge
69
Messages
32 131
Re : Créer une interface utilisateur.
Je ne sais pas ce que tu utilises comme µP, mais ils ont tous un interface Asynchrone (UART en Français). Tu mets sur RX TX un interface hard (MAX232 par exemple) et tu dialogues avec COM1 ou COM2 sans problème ( ou presque !)
Ton PC est avec quel O.S. (W2000, XP?)
Tu travailles en VB6?
Tu as dèja fait un bout de programme en VB6? on peut le voir?
L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
14/01/2008 - 18h47
f6bes
Date d'inscription
février 2005
Localisation
Nimes Age:67820 millions de kms autour du soleil !!
Messages
30 847
Re : Créer une interface utilisateur.
Envoyé par lyon90
Enfin, si on utilise des liaisons parrallèles ou séries, comment peux on y relier au micronctrolleur ? J'entend par là que le microcontrolleur n'a pas d'entrée de fil sur lui,
Bsr lyon90,
Un peu confus ta description "..microcontrolleur n'a pas d'entrée de fil sur lui, ..."
Un micro controlleur POSSEDE des entrées et des sorties !
Bien sur, ces entrées FAUT les relier par DES FILS , les infos n'y viendront pas toutes seules !
Si les liaisons paralléles ou série sont au FORMAT qu'acceptent les entrées microprocesseur il n'y aura pas besoin forçément d'INTERFACE (circuit) pour ramener cela à qq chose de compréhensible pour lui.
T
Bonne soirée
Dernière modification par f6bes ; 14/01/2008 à 18h50.
"Bonjour" et "Merci" (pour ceux qui oublient!!)
14/01/2008 - 19h03
Tix
Date d'inscription
octobre 2004
Localisation
france
Messages
1 515
Re : Créer une interface utilisateur.
Salut tous
Lyon, je penses que tu devrais d'abbord te renseigner sur tout ca, et glaner quelques infos.... tout résumer sur le forum ne devrais arranger personne. Pour ce qui est de l'électronique, ya LEKTRONIK qui ets un tres bon truc pour débuter du début (explications claire, simple et tout...) et Ptitrain ...
mon OS est windows xp, quand je voulais dire qu'il n'y a pas d'entrée de fil sur le microcontrolleur je voulais dire que les infos du port rs232 ne viendront pas sur lui par magie, qu'il faut y relier et c'est là tout le problème que j'ai, comment y relier ? comment raccorder le rs232 au microcontrolleur ?
Concernant mon code, j'utilises visual basic 6 express edition, je n'ai pas encore tapé de code pour les 3 boutons (ouverture, fermeture, arret) car j'aimerais savoir comment m'y prendre dans la réalisation. En faite il me semble qu'il faut que j'utilise une libraire spécial dans mon code pour y envoyer sur le port série du pc non ?
Pour le microcontrolleur, je ne sais pas encore lequel utilisé, d'ailleurs si vous en avez qui vous passent par la tête pour ce projet de pilotage par pc, j'en serias ravi
Je ne sais pas ce que tu utilises comme µP, mais ils ont tous un interface Asynchrone (UART en Français). Tu mets sur RX TX un interface hard (MAX232 par exemple) et tu dialogues avec COM1 ou COM2 sans problème ( ou presque !)
Par contre ça je ne vois pas trop ce que vous dîtes, je ne suis pas encore informaticien ou électronicien, c'est dans le cadre d'un projet, si vous pourriez m'en dire un peu plus celà serait intéressant.
En faite je suis étudiant, et mes professeurs m'ont dit que celà était envisageable de piloter un système par ordinateur et par réseau, mais mon prof d'electronique est absent depuis un mois et il revient dans 15 jours, donc j'aimerais quand même avancer dans mon projet. Je pense que cela est possible, mais il me fait votre aide.
Enfin une dernière chose, si j'utilise Visual Basic, mon code que j'enverrais au microcontroleur par le biais du rs232 sera en basic, mais apparament les microcontrolleur ne gèrent que le C, comment faire ?
En tout cas merci infiniment pour toute l'intention que vous portez à mon problème
Bonne soirée.
14/01/2008 - 19h33
DAUDET78
Date d'inscription
septembre 2006
Localisation
Ile de France
Âge
69
Messages
32 131
Re : Créer une interface utilisateur.
Y a du boulot !
1/ un programme écrit en language "tartenpion" expédie des trames RS232 en code ASCII (si on désire que ce soit des caractères imprimable)
2/ Choisi ton microprocesseur (peut importe lequel, dument que tu as les outils de developpement et de debug)
3/ regarde l'Uart ou l'USART sur ton µP
L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
14/01/2008 - 19h55
lyon90
Date d'inscription
mars 2007
Messages
112
Re : Créer une interface utilisateur.
Bonsoir et merci encore pour votre aide
Que voulez-vous dire par "1/ un programme écrit en language "tartenpion" expédie des trames RS232 en code ASCII (si on désire que ce soit des caractères imprimable)" Vous savez moi je programme en C habituellement et c'est une nouvelle et interessante experience qui s'offre à moi, pouvez vous m'expliquer un peu plus en détail comment expedier des trames rs232 ? Je veux dire par là, par exemple avec Visual Basic, comment y envoyer ?
Pour le microprocesseur, je vais bientôt en avoir un, je vous tiens au courant.
Je regarde l'uart mais j'avoue que je ne comprend pas grand chose là-dedans...
Bonne soirée et merci encore
14/01/2008 - 20h16
DAUDET78
Date d'inscription
septembre 2006
Localisation
Ile de France
Âge
69
Messages
32 131
Re : Créer une interface utilisateur.
Tu avais écris :
Envoyé par lyon90
Enfin une dernière chose, si j'utilise Visual Basic, mon code que j'enverrais au microcontroleur par le biais du rs232 sera en basic, mais apparament les microcontrolleur ne gèrent que le C, comment faire ?
Les trames sont des octets indépendants du langage
Envoyé par lyon90
Que voulez-vous dire par "1/ un programme écrit en language "tartenpion" expédie des trames RS232 en code ASCII (si on désire que ce soit des caractères imprimable)"
C'est ce que j'ai ré-expliqué
Pour envoyer un octet (sur un PC comme sur un µP), il suffit d'écrire l'octet dans une case spéciale et l'UART l'expédie (en rajoutant des bits de contrôle)
L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !
Très bien, mais alors comment programmer ces octes puisqu'ils sont indépendants du language ?
Je sais pas si j'ai raison, mais imaginons que j'ai du Basic (je sais pas si des microcontrolleurs supportant le basic existent...) je fais le code en Basic et les données que l'utilisateur envoie au microcontrolleur (par exemple appuie sur le bouton ouverture et bouton fermeture pas activés, ce sont des octets apparament) sont envoyés sous forme d'octet bien définit pour que le microcontrolleur les comprennes. Ensuite il gère le traitement et renvoie une valeur en sortie en fonction du programme ecrit.
Si c'est ça, comment définir les octets ? Je pense que c'est spécifique à chaque microcontrolleur non ?
En tout cas merci, si mon raisonnement n'est pas le bon, pourriez-vous expliquer pas à pas, je sais que cela doit être pénible quand on le pratique depuis un moment, mais j'aimerias vraiment en apprendre un peu plus sur ce sujet d'autant plus que cela pourra me servir dans un eventuel futur