Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1534 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Piloter un volet à partir d'un PC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Piloter un volet à partir d'un PC

n°1670125
Panda184
Posté le 12-01-2008 à 15:45:19  profilanswer
 

Bonjour à tous,
 
j'aimerais créer un programme avec Visual Basic pour pouvoir ouvrir et fermer un volet à distance. Pour cela je compte donc faire le programme en Basic, mais comment l'envoyer sur le microcontroleur du volet ?  
Puis une fois envoyer, dois-je faire un réseau en RS 252 pour pouvoir le piloter ? Comment puis-je créer une interface homme machine sur le pc ? J'entend dire par là, un bouton "ouverture" sur une fenêtre du pc qui permet d'ouvrir le volet.
 
Merci d'avance pour toutes vos réponses ;)

mood
Publicité
Posté le 12-01-2008 à 15:45:19  profilanswer
 

n°1670323
Panda184
Posté le 13-01-2008 à 11:02:35  profilanswer
 

Quelqu'un aurait-il un petite idée ? Pour que je puisse avoir une idée de ma réalisation.
 
Merci d'avance

n°1670324
esox_ch
Posté le 13-01-2008 à 11:13:26  profilanswer
 

Salut,
Tout dépend du microcontroleur ... Cela dit en VB j'ai un peu de peine à voir .. Il existe peut-être un programme qui converti ton code VB en autre chose d'utilisable par un microcontroleur mais j'en ai jamais vu ..
En général on utilise plutôt des langages de bas niveau pour faire ce genre de truc .. Tu charges ton prog en C sur le microcontroleur et après tu te crée une interface utilisateur en VB/autre-chose qui envoie les bonnes trames sur le port choisi

n°1670329
Panda184
Posté le 13-01-2008 à 11:42:53  profilanswer
 

Ok, je pensais aussi faire du C, j'ai déjà un programme en C, maintenant le problème que j'ai c'est comment faire l'interface sur le PC et comment y relié en réseau sur le microcontroleur.
Mon objectif est de piloter deux volets en simultanées avec une interface PC.
 
Comment envoyer les ordre de l'interface sur le microcontrolleur ?

n°1670394
Panda184
Posté le 13-01-2008 à 16:34:49  profilanswer
 

Quelqu'un aurait-il une petite idée pour que je puisse avancer dans mon projet ?
 
Merci encore ;)

n°1670521
esox_ch
Posté le 13-01-2008 à 22:09:01  profilanswer
 

Bein, tu connectes ton ordinateur à tes volets via un canal (port serie, usb, wifi,...) donc tu crée un programme (en vb/autre) qui utilise une lib qui te permet d'utiliser ce canal et voilà

n°1670578
Panda184
Posté le 14-01-2008 à 06:34:47  profilanswer
 

D'accord, juste une petite chose : qu'est ce qu'une "lib" ? Et comment mettre un port usb sur le volet, enfin sur le microcontrolleur plutôt ?
 
Merci encore ;)

n°1670580
esox_ch
Posté le 14-01-2008 à 06:51:28  profilanswer
 

quand tu commences ton programme par <stdio>, tu fais un appel à une lib.
Mais t'as une vague idée de ce qui t'attend ? Parce que tu me fais peur là ... Il va falloir que tu te construise un circuit électrique qui soit capable de piloter un moteur qui ferme les volets. A la limite le microcontroleur, tu pourrais presque t'en passer (une fois j'ai fait un truc du style purement en analogique pour les cours :D)

n°1670582
Panda184
Posté le 14-01-2008 à 07:18:37  profilanswer
 

J'ai quand même une idée, par contre les librairies sont fournis avec le microcontrolleur ? Ou je peux les trouvés sur un site ?
 
Par contre je sais bien que je vais devoir faire un circuit électrique, je vais avoir mon alim de 12V qui va être abaissé à 5V pour le microcontrolleur puis un pont en H etc ... En faite je n'ai jamais fait ce type de projet avec un micrcontrolleur, où vais je brancher les fils reliant le Pc au système ? Sur un circuit électrique ? C'est ça en faite que je ne sais pas trop

n°1670815
MagicBuzz
Posté le 14-01-2008 à 14:42:48  profilanswer
 

Euh... Pourquoi tu tires pas des fils de 220v et tu poses pas deux interrupteurs à côté de ton PC ? :o
Ca serait plus simple je pense :ange:

mood
Publicité
Posté le 14-01-2008 à 14:42:48  profilanswer
 

n°1670865
esox_ch
Posté le 14-01-2008 à 15:23:22  profilanswer
 

Je veux pas dire .. Mais t'es sur d'avoir les compétences qu'il faut?
Parce que à te lire j'ai l'impression que t'as pas la moindre idée de ce qui t'attend ..

n°1670889
MagicBuzz
Posté le 14-01-2008 à 15:45:36  profilanswer
 

Tiens pis au fait...
 
Volets, domotique, toussa...
Ca coûte bonbon, mais ça existe, donc autant utiliser ce qui existe déjà ! (je pense)
 
Et là non seulement tu ouvres tes volets automatiquement, mais en plus ça met en marche la machine à café !
 
Sans devoir acheter une cafetière spéciale.
 
PS : Et le gros intérêt, c'est que t'as PAS UN SEUL fil à tirer, c'est les câbles électriques existants qui transmettent les informations, t'as juste besoin d'installer des interrupteurs programmables sur les équipements que tu veux piloter...


Message édité par MagicBuzz le 14-01-2008 à 15:47:26
n°1670897
esox_ch
Posté le 14-01-2008 à 15:49:53  profilanswer
 

Bon faut voir ...
Moi par exemple .. J'avais besoin de pouvoir allumer / eteindre /rebooter mon routeur depuis l'ordinateur .. Tu penses bien qu'au lieu de mettre à la poubelle ma daube et acheter un truc qui en a dans le fut, j'ai sorti le fer à souder et me suis mis à bricoler... Faut pas négliger le coté ludique/voir-si-les-cours-ça-marche

n°1670933
MagicBuzz
Posté le 14-01-2008 à 16:09:35  profilanswer
 

ben la domotique t'as pas besoin de jeter ton truc, faut juste acheter des trucs à mettre en plus :D
 
sinon, étonnant, ton routeur n'a pas de fonction de reboot intégrée via telnet ?

n°1671001
esox_ch
Posté le 14-01-2008 à 17:15:33  profilanswer
 

Nop, mon truc c'est pas du luxe, c'est le moins cher du marcher :D

n°1671006
MagicBuzz
Posté le 14-01-2008 à 17:20:18  profilanswer
 

Ben ça dépends, une soudure foirée, un coup de 220 dans le RS232 et pouf ! Plus de routeur, plus de PC, et accessoirement, plus d'esox_ch non plus :D


Message édité par MagicBuzz le 14-01-2008 à 17:20:34
n°1671011
esox_ch
Posté le 14-01-2008 à 17:26:39  profilanswer
 

Plus de PC ... Bof ...suffit de foutre une protection entre les deux si on est pas sur ... un petit optocoupleur ou autre découplage et le PC est sauf.
Par exemple, j'ai un petit peu modifié des enceintes creative pour qu'elles pompes sur l'usb de mon laptop au lieu que sur les piles AAA (C'est moins cher et meilleur pour l'environnement :o), et ai foutu un petit circuit avec quelques transistors&ampliop pour être sur que s'il y avait un court-jus, le PC n'y passe pas ...  
 
ça mange pas trop de pain, suffit d'avoir un minimum en tête ce que tu fait ... Et un petit logiciel genre PSpice, Simplorer & co aide bien au passage :D

n°1671045
Panda184
Posté le 14-01-2008 à 18:29:07  profilanswer
 

Bon apparament j'ai pas l'impression d'être pris au sérieux.
J'ai déjà programmer mon microctrolleur en C et le volet marche très bien avec les 3 boutons (ouverture, fermeture et arrêt) et avec deux capteurs de fin de course. J'ai mon circuit de près...
 
La seule chose que j'aimerais faire c'est de piloter maintenant à partir d'une interface sous VB par exemple mon volet depuis l'ordinateur. Le code sous VB n'est pas si difficile que ça, mais là où je suis dans le flou c'est pour le raccord du rs232. Je pensais utiliser une femelle pour brancher mon rs232 sur le circuit mais après comment le relier au microcontrolleur ? C'est juste ça que je voudrais savoir.
 
Comme vous l'aviez dit dans votre premier post :

Citation :

après tu te crée une interface utilisateur en VB/autre-chose qui envoie les bonnes trames sur le port choisi

je voudrais savoir comment envoyer les bonnes trames sur le port choisi, rien de plus, je sais que c'est avec du rs232 mais concrètement dans la réalisation, comment y faire ?
 
Merci d'avance ;)

n°1671047
esox_ch
Posté le 14-01-2008 à 18:39:07  profilanswer
 

Non c'est pas qu'on te prend pas au sérieux, c'est juste qu'à lire tes premiers posts, on aurait dit que t'avais absolument aucune idée de ce que tu faisais ... Donc on se faisait un peu de soucis.
Maintenant, tu dois implémenter un bout de code sur ton microcontroleur pour lui faire comprendre les trames que tu enverras sur ton port série, et ce qu'il doit faire en conséquence ..  
 
Concernant l'interface, il faut que tu crées un programme en VB/autre chose qui utilise une lib te permettant de parler sur le port serie .. Moi par exemple j'ai écrit ça en ruby avec interface GTK et j'ai une lib qui me fourni une API qui s'occupe des trucs de bas niveau .. Moi j'ai juste à m'occuper des aspects "haut niveau".

n°1671051
Panda184
Posté le 14-01-2008 à 18:53:24  profilanswer
 

Merci de votre réponse, en faite j'ai une petite chose qui me chiffonne, qu'est ce que vous entendez par "trames" ?
 
Le problème c'est qu'en utilisant VB, je fais du basic et le microcontroleur ne gère que du C, comment faire ? Je suis perdu avec GTK, je ne l'ai jamais utilisé auparavant.
 
 
En faite si je récapitule, je fais un programme en visual basic avec disons pour faire simple 3 boutons et une librairie pour que cela puisse être envoyé sur le port ethernet. Ensuite il faut que je l'envoie par rs232 sur le microcontrolleur qui lui après pilotera le moteur. Mais c'est là que je bloque, en faite je n'arrive pas à me le visualiser.
 
Merci encore ;)

n°1671181
esox_ch
Posté le 14-01-2008 à 22:17:29  profilanswer
 

Non mais attend, là tu mélanges tout.
Si tu veux communiquer par rs232, utilise le port série déjà, c'est fait pour.  
Ensuite, si tu comprends exactement ce qu'est le rs232, regarde sur wikipedia, y a un article qui m'a bien servi au début. Ensuite, sur ton circuit, tu soudes un connecteur série qui te permet d'envoyer le signal vers ton microcontroleur, et là c'est lui qui doit comprendre que tel signal correspond à telle action.
 
En gros, t'as ton interface écrite en basic, qui utilise une lib pour convertir le signal "ouvre-volet" en une trame rs232, tu expédie ça dans le câble série et ton microcontroleur reçoit la trame et la reconverti en "ouvre-volet". Après c'est à toi de voir comment tu vas implémenter ça, et tu vas le décider en fonction de ce que tu donne comme option ton microcontroleur ... Moi par exemple dans un petit robot que j'ai fait, j'ai un mini-interpreteur basic stocké dans une EEPROM qui va faire tout le boulot low-level pour moi ... Si le tien est programmable en C, tu regardes comment lui faire comprendre ce qu'est ton signal et voilà ..

n°1671233
dreameddea​th
Posté le 14-01-2008 à 23:31:58  profilanswer
 

Et puis avec de nombreux microcontroleurs ont des pattes dédiés (pré cablées) pour comprendre le RS232.
 
Si il faut le recoder en interne c'est pas toujours trivial (surtout de gérer la "norme" RS232 dans ça complétude)
 
Sinon pour l'ouverture d'un port com en VB il existe des choses sur le net, j'ai trouvé cela :
http://elkhiyar.ifrance.com/

n°1671695
Panda184
Posté le 15-01-2008 à 18:24:23  profilanswer
 

Merci de vos réponses. Je pense que c'est assez claire.
 
Juste une chose esox_ch, pour que je sois sûr d'une chose, pour que je lui fasse comprendre au microcontrolleur ce qu'il doit faire en fonction de la trame, par exemple je peux avoir dans mon programme en C du microcontrolleur si on imagine que la trame du signal d'ouverture est 0001 (c'est juste un exemple ;)), j'aurais par exemple:
if 0001=1
  sortie A=1.
Si ce n'est pas ça, pourriez vous me donner juste un petit exemple de fonctionner dans ce code ? Juste quelque chose de toute bête :if .... then ....
 
Par contre peut-on dire au début du programme que 0001=OuvertureVolet et j'aurais alors:
if OuvertureVolet =1
  sortie A=1
 
 
Enfin une dernière chose, où peut-on récupérer les librairies qui permettent de convertir le signal ouvre-volet en trame rs232 ?
 
Merci encore pour votre patience ;)
 
Bonne soirée

n°1671728
esox_ch
Posté le 15-01-2008 à 19:03:47  profilanswer
 

Salut,
 
J'ai rien compris à ton if ...
Tu dois juste lui dire :
 
if trame_rs232 == '0001'
 pinA = 1
else  
....
 
Mais regarde bien si ton microcontroleur comprend le rs232 tout seul, parce que sinon tu vas vraiment t'amuser à devoir lui expliquer comment le comprendre...

n°1671729
Panda184
Posté le 15-01-2008 à 19:05:57  profilanswer
 

D'accord, je pensais pas que le bout de code était aussi simple.

 

Il faut que je trouve le bon microcontrolleur alors, sinon comment lui expliquer comment il doit comprendre ?

 

Par contre en ce qui concerne les librairies qui permettent de convertir le signal ouvre volet en trame rs282, où puis-je en trouver ?

 

Merci encore ;)


Message édité par Panda184 le 15-01-2008 à 19:08:04
n°1671731
esox_ch
Posté le 15-01-2008 à 19:10:55  profilanswer
 

Mon on va prendre un exemple que tu vas comprendre :
 
J'ai un programme qui doit retrouver des informations dans un fichier XML. Alors j'ai 2 cas de figure :  
Soit il existe une librairie intégrée au langage qui me permet d'ouvrir un XML comme un XML et donc d'utiliser les XPath et tout et tout et donc ça prend 5 min de trouver ce que j'ai besoin
Soit ça existe pas, et c'est moi qui vais devoir en écrire une.  
 
Voilà pour toi c'est pareil, si ton microchip il intègre une structure qui lui permet de dire "Cette trame rs232 que j'ai reçu sur cette patte, elle a pour représentation le string "ouvre". Ou alors c'est pas le cas et c'est toi qui va devoir "t'amuser" à le faire ...
Si ton microchip est pas imposé, c'est vite vu, t'en prend un qui comprenne déjà tout ça tout seul, comme ça toi tu t'occupe seulement de lui dire quoi faire et quand.

n°1671732
Panda184
Posté le 15-01-2008 à 19:14:14  profilanswer
 

Oui je pense que je vais essayer de me débrouiller pour en trouver un qui lise les données du rs232. Après en fonction des trames que j'envoie à partir du pc (de l'interface VB), dans mon programme que je ferais, je dirais que quand il reçoit cette trame, il doit ouvrir la sortie A par exemple. Comme vous l'aviez fait dans votre post précédent.
 
Je pense que c'est ça non ? Car je ne me sens pas de faire une librairie pour le rs232... c'est pas de mon ressort je pense.
 
Merci pour tout ;)

n°1672482
Panda184
Posté le 16-01-2008 à 20:04:01  profilanswer
 

Est-ce bien ça ?
 
Je pense avoir bien compris le programme que je dois faire sur Visual Basic, je suis en train de le réaliser, il me reste à trouver le bon microcontrolleur non ?
Je vais envoyer les trames d'octets du Pc au microcontrolleur avec le MsCOMM

n°1672562
esox_ch
Posté le 16-01-2008 à 23:42:55  profilanswer
 

Oui il te reste a trouver le microchip adapté .. Concernant VB, j'ai jamais tapé une seule ligne, donc je saurai pas trop de conseiller pour la lib :D

n°1673514
Panda184
Posté le 18-01-2008 à 17:17:16  profilanswer
 

J'ai choisi le PIC 16F877, apparament il gère le rs232, mais maintenant comment lui dire qu'il doit gérer le rs232 ? Je pense qu'il faut mettre une fonction rs232 dans le programme non ?
C'est juste par exemple : if (trame_rs232 == 0001) alors ....
Ou c'est plus compliqué ? Je pense qu'il faut lui mettre une librairie en plus au début non ? ou lui activé la fonction rs232.
 
Je vais essayer de faire l'interface avec Visual Basic, je pense avoir compris pour ça, j'utilise le MSCOMM. Je vais donc envoyer une trame d'octet par le port COM que doit lire après le microcontrolleur avec la fonction trame_rs232 ==..... ?
 
Merci encore ;)

n°1673530
esox_ch
Posté le 18-01-2008 à 17:58:42  profilanswer
 

Lit le manuel [:spamafote]


Message édité par esox_ch le 18-01-2008 à 17:58:50

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1673533
Panda184
Posté le 18-01-2008 à 18:08:58  profilanswer
 

Je n'ai pas de notice avec... et c'est introuvable sur internet, auriez-vous une idée ?

n°1673534
esox_ch
Posté le 18-01-2008 à 18:18:54  profilanswer
 
n°1676551
naturel75
Posté le 24-01-2008 à 23:39:24  profilanswer
 

Panda184 a écrit :

J'ai choisi le PIC 16F877, apparament il gère le rs232, mais maintenant comment lui dire qu'il doit gérer le rs232 ? Je pense qu'il faut mettre une fonction rs232 dans le programme non ?
C'est juste par exemple : if (trame_rs232 == 0001) alors ....
Ou c'est plus compliqué ? Je pense qu'il faut lui mettre une librairie en plus au début non ? ou lui activé la fonction rs232.
 
Je vais essayer de faire l'interface avec Visual Basic, je pense avoir compris pour ça, j'utilise le MSCOMM. Je vais donc envoyer une trame d'octet par le port COM que doit lire après le microcontrolleur avec la fonction trame_rs232 ==..... ?
 
Merci encore ;)


 
Avant d'aller lire quoique ce soit sur le port rs232 du pic16f877, tu dois t'assurer de l'état reset de chaque registres internes du pic16f877. Pour cela, utilises le memory map fournit dans le manuel du pic16f877.

n°1677422
dreameddea​th
Posté le 27-01-2008 à 13:43:36  profilanswer
 

il faut aller sur le site du constructeur et recupérer le kit de dev (mplab) ainsi que la "datasheet" (pdf de ref - la bible du microcontrolleur) si tu préfères...
Mais vu la nature des questions que tu te poses, je pense qu'il vaut mieux faire 2/3 tours sur des tutoriels et/ou acheter un bouquin sur le sujet...
La programmation de micro controlleur est assez hard surtout les PICs (le kit de dev est de l'Assembleur), en effet c'est une plateforme complète :
- un CPU
- de la mémoire
- des E/S (ports dont certains sont spécialisés)
- un "zone" de programme (mem flash dans ton cas)
 
Bon courage, mais à mon avis tu en as encore pour de nombreuses semaines de dev...

n°1677532
esox_ch
Posté le 27-01-2008 à 19:03:12  profilanswer
 

Surtout que pour ce qu'il veut faire, ce chip à l'air beaucoup trop complexe ...

n°1677617
naturel75
Posté le 27-01-2008 à 22:31:56  profilanswer
 

Faut bien qu'il se lance

n°1677628
esox_ch
Posté le 27-01-2008 à 23:41:36  profilanswer
 

Tout à fait, mais il existe des microcontroleurs pilotables plus simplement ... Rien qu'à voir celui avec lequel j'ai commencé .. Il est fourni par Parallax   avec tout ce qu'il faut pour pouvoir le programmer en PBasic (http://bstamp.sourceforge.net/) ... Et il sait très bien faire des trucs de ce genre :o Après je suis d'accord que c'est pas le plus optimisé&co, mais au moins il a une chance de voir son projet aboutir :o

n°1680137
naturel75
Posté le 31-01-2008 à 23:22:37  profilanswer
 

esox_ch a écrit :

Tout à fait, mais il existe des microcontroleurs pilotables plus simplement ... Rien qu'à voir celui avec lequel j'ai commencé .. Il est fourni par Parallax   avec tout ce qu'il faut pour pouvoir le programmer en PBasic (http://bstamp.sourceforge.net/) ... Et il sait très bien faire des trucs de ce genre :o Après je suis d'accord que c'est pas le plus optimisé&co, mais au moins il a une chance de voir son projet aboutir :o


 
On devrait lui conseiller un autre que celui de parallax , car il lui faut quand même un bus I/O plus étendu pour son projet. Mais il peut programmer le pic16F877 en utilisant des outils de mplab.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Piloter un volet à partir d'un PC

 

Sujets relatifs
lancer une fonction php à partir d'un bouton ("button")Espace blanc imposible à enlever
AS3 : appeler une fonction a partir d'une fonction...Obtenir un MCD a partir d'une base venant de PhpMyadmin
Pilotage d'un menu à partir d'une appli?Lire a partir de l'ecran en PL/SQL
création programme pour piloter le port parallèle[php/Mysql] requete à partir d'une requete
Modification de cellules a partir d'une fonction[oracle] récupérer un nom de domaine a partir de l'email ?
Plus de sujets relatifs à : Piloter un volet à partir d'un PC


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR