Aller au contenu

Messages recommandés

Posté

Bonjour à tous.

 

Je me suis fabriquer un boitier a base d'arduino afin de mesurer la clarté du ciel, la température du fond de ciel, la température de rosée, ...

 

Mon soucis, c'est l'interface windows pour récupérer les données sous un petit logiciel. Le soucis, c'est que je connais pas trop le visual basic et les subtilité pour pas que le programme prenne toutes les ressources systèmes. J'ai effectuer un petit programme mais le PC est bloqué sur les taches de ce logiciels.

 

Ce que je souhaiterai c'est que le logiciel lise le port RS232 et écrive les donnée reçu dans un fichier CSV et ensuite lire le fichier CSV pour afficher les données.

 

Merci d'avance pour votre aide.

 

Mike91

Posté (modifié)

Bonjour mike91,

 

Déjà sur quel version de VB travaille tu, sous quel OS, et quel type de carte mère (ancienne machine avec un vrais port RS232 ou un émulateur de port)

 

Tu peut déjà glaner quelques bouts de code sur le forum développez.com

 

Lien*:

 

http://www.developpez.com/

 

Perso je suis toujours sous VB6 pro, la version Studio ne contient pas le port RS232 :confused:

 

Pour les autres versions gratuites (2012 ou 2013), je n'ai pas encore eu le temps de les essayer pour voir si elles géraient ce genre de port.

 

Perso, je me suis fait un intervallomètre pour mon canon EOS et ça passe bien.

 

Ci cela peut aider, voici le code de mon intervallomètre qui pour l'instant, le n° de port doit être définit dans le code.

 

###########################################

 

'Auteur du projet : Pascal ROUSSEAUX

 

 

'form et code non redistribuable sauf sur demande

'12/12/2011 : Première version

'15/12/2011 : Ajout d'un Contrôle Journal

'01/01/2012 : Ajout d'un enregistrement du conrôle Journal dans le bloc note Windows

'02/01/2012 : Ajout d'une Tablette

 

 

'Option Explicit

 

 

Dim X As String

 

Private imgL As Integer

Private imgH As Integer

Private red As Long

Private green As Long

Private blue As Long

 

Dim SelectFile As String

Dim Vari As Integer ' Données du journal pour enregistrement dans le bloc note

Dim Vari2 As Integer ' saisie des commandes dans de la console de programmation

Dim Vari3 As Integer ' Données de la console de programmation pour enregistrement dans le bloc note

Dim Note As Long ' Ouvre le Bloc note Windows

Dim cmde As Long

Dim Calc As Long ' Ouvre la calculatrice Windows

Dim Iris As Long ' Ouvre le logiciel Iris

Dim Filtre As Long

Dim TxBlue As Integer

Dim TxRed As Integer

Dim TxGreen As Integer

 

Dim Contenu As String

Dim Chemin As String

Dim Index As Integer

 

Dim Rouge As Integer

Dim Vert As Integer

Dim Bleu As Integer

 

Dim a As Integer

Dim b As Integer

Dim C As Integer

Dim d As Integer

Dim e As Integer

Dim f As String

Dim i As Integer

Dim M As Integer

Dim n As Integer

Dim o As Integer

Dim P As String

 

 

'TxBlue = 0

'TxRed = 0

'TxGreen = 0

''cmd.CancelError = False

'cmd.ShowOpen

'Picture1.Picture = LoadPicture(cmd.FileName)

'pic.PaintPicture Picture1.Picture, 0, 0, pic.Width, pic.Height

'loadpic

'End Sub

 

Private Sub Command1_Click() 'Bouton ouverutre port

Command1.Visible = False

 

MSComm1.PortOpen = True

 

Label5 = " Acquisition"

'Text1 = "Début de la séquence d'aquisition."

 

a = Abs(Val(Text6)) 'variable timer1

 

b = Abs(Val(Text2)) 'variable timer2

 

 

Timer1.Enabled = True

Timer2.Enabled = False

 

'----------------------------------------------------------

'Mémo

 

'Timer1 & 2: Enabled = False

'Interval = 1000

'valeur des Timers

 

'Timer1.Interval = Abs(Val(Text6))

'Timer2.Interval = Abs(Val(Text2))

 

 

End Sub

 

 

Private Sub Command10_Click()

 

 

 

'Dim ret As Long

Calc = Shell("Calc.exe", vbNormalFocus)

 

 

 

End Sub

 

Private Sub Command11_Click()

 

'Dim Iris As Long

Iris = Shell("C:\Documents and Settings\Pascal\Bureau\Atelier Astronomique\IRIS\iris\iris.exe", vbNormalFocus)

 

'Shell ("C:\Documents and Settings\Pascal\Bureau\Atelier Astronomique\IRIS\iris.exe"), vbNormalFocus

End Sub

 

Private Sub Command12_Click()

 

Note = Shell("notepad.exe", vbNormalFocus)

 

End Sub

 

Private Sub Command13_Click()

 

cmde = Shell("cmd.exe", vbNormalFocus)

 

End Sub

 

Private Sub Command14_Click()

 

Note = Shell("charmap.exe", vbNormalFocus)

 

End Sub

 

Private Sub Command15_Click()

 

Note = Shell("igfxzoom.exe", vbNormalFocus)

 

End Sub

 

Private Sub Command16_Click()

 

'C:\Documents and Settings\Pascal\Bureau\Module aquisition photo 2

 

Filtre = Shell("C:\Documents and Settings\Pascal\Bureau\Tablette Graphique.exe", vbNormalFocus)

 

'CommonDialog1.ShowColor

'Call changeColor(CommonDialog1.color)

 

End Sub

 

Private Sub Command17_Click()

Rouge = 0

Vert = 0

Bleu = 0

cmd.CancelError = False

cmd.ShowOpen

Picture1.Picture = LoadPicture(cmd.FileName)

'pic.PaintPicture Picture1.Picture, 0, 0, pic.Width, pic.Height

'loadpic

End Sub

 

Private Sub Command19_Click()

 

 

Command19.ToolTipText = "non utilisé dans cette version"

'cmd.ShowOpen

'Picture1.Picture = SavePicture(cmd.FileName)

 

End Sub

 

'Private Sub Command17_Click()

 

'TxBlue = 0

'TxRed = 0

'TxGreen = 0

 

'cmd.CancelError = False

'cmd.ShowOpen

'Picture1.Picture = LoadPicture(cmd.FileName)

'pic.PaintPicture Picture1.Picture, 0, 0, pic.Width, pic.Height

'loadpic

 

'End Sub

 

Private Sub Command3_Click()

C = 0 'donne la valeur 0 à c

Label12 = "0" ' remise à 0 du Label12

Label5 = ""

 

End Sub

 

Private Sub Command4_Click()

 

Text1 = ""

 

End Sub

 

Private Sub Command5_Click()

 

Text3 = ""

 

End Sub

 

Private Sub Command6_Click()

 

 

'non utilisé dans cette version

Command6.ToolTipText = "non utilisé dans cette version"

 

 

End Sub

 

Private Sub Command7_Click()

 

Picture1.Visible = True

 

 

End Sub

 

Private Sub Command8_Click()

 

Picture1.Visible = False

 

 

End Sub

 

Private Sub cha_load_Click()

Bleu = 0

Rouge = 0

Vert = 0

cmd.CancelError = False

cmd.ShowOpen

Picture1.Picture = LoadPicture(cmd.FileName)

'pic.PaintPicture Picture1.Picture, 0, 0, pic.Width, pic.Height

'loadpic

End Sub

 

'Private Sub im_quit_Click()

'End

'End Sub

 

Private Sub Command9_Click()

 

Note = Shell("notepad.exe", vbNormalFocus)

 

 

'Shell = ("C:\WINDOWS\system32\calc.exe")

 

'Shell = ("C:\Windows\System32\Calc.exe")

 

End Sub

 

Private Sub OLE1_Updated(Code As Integer)

 

End Sub

 

'Private Sub enr_Click(Index As Integer)

'enr(123).ToolTipText = "non utilisé dans cette version"

'End Sub

 

Private Sub Picture1_Click()

 

 

 

'Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage

 

End Sub

 

Private Sub qui_Click(Index As Integer)

End

End Sub

 

Private Sub Sauv3_Click()

 

 

Vari3 = FreeFile

Contenu = Text3.Text

Open "C:\ControlJournal3.txt" For Output As #Vari3

Print #Vari3, Contenu

Close Vari3

 

 

End Sub

 

Private Sub Scroll_Change(Index As Integer)

 

'valeurs des ascenceurs

Rouge = Scroll(0).Value

Vert = Scroll(1).Value

Bleu = Scroll(2).Value

 

 

 

Shape1.FillColor = RGB(Rouge, Vert, Bleu) 'remplissage de la zone Shape avec RGB

 

 

For i = 0 To 2 'Mise à jour à par une boucle, le groupe de Labels

Label15(i).Caption = Scroll(i).Value

Next i

 

End Sub

 

Private Sub Label12_Click()

 

'Label12.Caption = e

 

End Sub

 

Private Sub Text4_Change()

 

End Sub

 

Private Sub Sauv_Click()

 

Vari = FreeFile

Contenu = Text1.Text

Open "C:\ControlJournal.txt" For Output As #Vari

Print #Vari, Contenu

Close Vari

 

 

 

End Sub

 

Private Sub Text5_Change()

 

'P = Abs(Val(Text5))

 

 

End Sub

 

 

Private Sub Timer1_Timer()

 

a = a - 1 'décompte su Timer1

 

Label10.Caption = a 'Afficle la valeur de a

If a = 0 Then

 

Label5 = " Attente"

Timer2.Enabled = True

Timer1.Enabled = False

MSComm1.PortOpen = False

 

End If

 

End Sub

 

 

 

 

Private Sub Command2_Click() 'Bouton STOP

 

Command1.Visible = True

'Text1 = "Chargement photo en mémoire"

Label10 = "0" 'Affiche 0 au label10

Label11 = "0" 'Affiche à au label11

'Timer1.Interval = 0

'Text6 = "1"

Timer1 = False 'Arrêt du Timer1

Timer2 = False 'Arrêt du Timer2

Label5 = " Arrêt séquence"

'Unload Me

'MSComm1.PortOpen = False

If MSComm1.PortOpen = True Then

MSComm1.PortOpen = False

Else

 

End If

 

 

End Sub

 

 

 

'Definition des paramètres de configuration du port série

 

Private Sub Form_Load()

 

 

 

'rootPath = App.Path

 

' constantes nécessaires à la fonction nivComp

 

'red = RGB(255, 0, 0)

'green = RGB(0, 255, 0)

'blue = RGB(0, 0, 255)

 

' Charge les images "noire" et "blanche"

'Pictureblack.Picture = LoadPicture("C:\Documents and Settings\Pascal\Bureau\I5\Image093.jpg")

 

'imgL = Pictureblack.Width

'imgH = Pictureblack.Height

 

 

 

'PictureCar.Picture = Pictureblack.Picture

 

 

'Text3 = ""

'Dim i As Integer

'For i = debut To fin

'ListBox.etems.Add (i)

'Next i

 

'P = Abs(Val(Text5))

 

'##################################################################

 

 

MSComm1.CommPort = 7 'ComboPort.ListIdex + 1 'Donne la valeur du Port Comm

'MSComm1.PortOpen = True

'MSComm1.Settings = "9600,n,8,1"

'MSComm1.InputMode = comInputModeText

'MSComm1.SThreshold = 1

'MSComm1.InputLen = 0

 

 

End Sub

 

 

 

 

 

 

 

 

Private Sub Timer2_Timer()

 

b = b - 1 'Décompte du Timer2

 

Label11.Caption = b

If b = 0 Then

Label5 = " Acquisition" 'Affiche la valeur b au Label11

Timer2.Enabled = False 'Arrêt du Timer2

a = Abs(Val(Text6)) 'charge la variable a

b = Abs(Val(Text2)) 'charge la variable b

Timer1.Enabled = True 'lance le Timer1

Timer2.Enabled = False 'Arrêt du Timer2

MSComm1.PortOpen = True 'Ouverture du port Comm

'Label5 = " Acquisition"

C = C + 1 'Incrémente C de + 1

'Label12.Caption = ""

Label12.Caption = C 'Affiche la valeur de c dans le Label12

 

End If

 

End Sub

 

 

Bon ciel :)

 

La form n'est pas jointe.

 

Pascal

Modifié par empire37
Posté

Je ne connais pas l'Arduino, je suis plutôt fan du Raspberry, je me demande pourquoi passer par une interface RS232 ? On ne peut pas communiquer en Wifi où en RF ?

Posté

Bonsoir à tous

 

Je connais pas trop le Raspberry, d’où l'utilisation de l'arduino.

 

Pour ce qui est de la programmation je suis sous windows 7 pro et visual basic studio 2008.

 

En fait j'ai trouver ma réponse à force de regarder des site. J'ai garder l'habitude du Basic (Qbasic). J'ai bien avancés sur la programmation, recuperation de la chaine du port RS232, écriture dans un fichier CSV, lecture du fichier et édition des graphes et textbox.

 

Encore quelques heures de programmations et mon petit logiciel seras opérationnel.

 

Mike91

Posté

Mile excuse mike91, :confused:

 

Je n'avais pas vu que tu te servait d'un Arduino, petite bestiole que je ne vais pas tarder à acheter d'ailleurs ! :)

 

Mais si VB plante ton système, je pense que tu doit avoir oublié de passer un de tes paramètre en false.

 

En effet tout composants passés en True (ouverture) doit impérativement passé en False et surtout ben faire attention que rien ne tourne en boucle !:(

Posté

J'avais placer la lecture du port série sur un événement timer au lieu de faire un événement sur réception data du port série.

 

Certaines habitudes à perdre et de nouvelles à prendre.

Mike91

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.