Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


Recevoir des données d'une carte Arduino

Partagez
avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Dim 20 Avr 2014 - 8:23

bonjour,
ayant récemment acheté une carte Arduino (UNO) j'ai essayé de la faire interagir avec mon PC. J'ai réussi a contrôler mon arduino avec mon PC grâce a ce tuto : http://waihung.net/arduino-controlled-by-visual-basic-program/
je voudrais maintenant pouvoir envoyer des informations de ma carte a mon soft mais je n'y arrive pas même après de longues recherches
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
polien


Masculin Nombre de messages : 2869
Age : 21
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Recevoir des données d'une carte Arduino

Message par polien le Dim 20 Avr 2014 - 8:28

Bonjour,

pour ça, il faudra demander à lereparateurdepc qui a déjà fait des soft vb qui interagissent avec
arduino. Bon, par contre, si ça n'est pas faisable avec SZ, je lockerai le sujet Wink



Cordialement,
Polien.

You want to have an english help for Software Zator ? Let's try to read the first tutorial in english Wink : CLIC HERE
BESOINS D'UN TUTO? CONSULTER LE SOMMAIRE !

Débutez avec SZ avec les tutos en pdf !
avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Dim 20 Avr 2014 - 19:32

re,
si vu qu'il y a le composant port série c'est normalement possible

EDIT : @lereparateurdepc : as tu une idée vu que tu est le plus expérimenté la dessus ?

cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
lereparateurdepc


Masculin Nombre de messages : 5517
Age : 24
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Recevoir des données d'une carte Arduino

Message par lereparateurdepc le Lun 21 Avr 2014 - 7:00

re,

C'est tout con, utilise l'action port série de SZ Smile!!!!!

Le code proposé sur le site fonctionne super bien mais à une condition de n'envoyer d'un caractère !!!

Etape 1, il faut configurer la com .... Si tu peut envoyer des données, touche à rien, c'est bon Smile
sinon : (MyPort est le port série comme SerialPort1)
Code:

                MyPort.BaudRate = 9600
                MyPort.DataBits = 8
                MyPort.Parity = Parity.None
                MyPort.StopBits = StopBits.None
                MyPort.Handshake = Handshake.None
                MyPort.Encoding = Encoding.ASCII

Pour lire une donnée sous SZ qui se trouve sur le port série, utilise l'évènement DataReceived de celui-ci.

Pour mon programme Arduino_LED ça donne ( code de la partie lecture et traitement):
Code:

#Region "Traitement data lu"

    Private Sub MyPort_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles MyPort.DataReceived
        Try
            ReadVal = MyPort.ReadExisting.Trim
            Me.Invoke(New ProgressRefresh(AddressOf ReadData))
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Delegate Sub ProgressRefresh()

    Sub ReadData()
        Try
            Application.DoEvents()
            VerifData(ValDir.Read)
            If ReadVal.Trim <> "" Then
                If ReadVal <> "9999" Then
                    If InfoBut = 1 Then
                        If ReadVal.EndsWith("0") = True Then
                            ButL1.Text = "Led1 ON"
                            InfoLed1.Text = "Info : OK LED1 OFF"
                        ElseIf ReadVal.EndsWith("1") = True Then
                            ButL1.Text = "Led1 OFF"
                            InfoLed1.Text = "Info : OK LED1 ON"
                        Else
                            ButL1.Text = "Led1 ??"
                            InfoLed1.Text = "Info : ERR : " & ReadVal
                        End If
                    ElseIf InfoBut = 2 Then
                        If ReadVal.EndsWith("0") = True Then
                            ButL2.Text = "Led2 ON"
                            InfoLed2.Text = "Info : OK LED2 OFF"
                        ElseIf ReadVal.EndsWith("1") = True Then
                            ButL2.Text = "Led2 OFF"
                            InfoLed2.Text = "Info : OK LED2 ON"
                        Else
                            ButL2.Text = "Led2 ??"
                            InfoLed2.Text = "Info : ERR : " & ReadVal
                        End If
                    ElseIf InfoBut = 3 Then
                        If ReadVal.EndsWith("0") = True Then
                            ButL3.Text = "Led3 ON"
                            InfoLed3.Text = "Info : OK LED3 OFF"
                        ElseIf ReadVal.EndsWith("1") = True Then
                            ButL3.Text = "Led3 OFF"
                            InfoLed3.Text = "Info : OK LED3 ON"
                        Else
                            ButL3.Text = "Led3 ??"
                            InfoLed3.Text = "Info : ERR : " & ReadVal
                        End If
                    ElseIf InfoBut = 4 Then
                        If ReadVal.EndsWith("0") = True Then
                            ButL4.Text = "Led4 ON"
                            InfoLed4.Text = "Info : OK LED4 OFF"
                        ElseIf ReadVal.EndsWith("1") = True Then
                            ButL4.Text = "Led4 OFF"
                            InfoLed4.Text = "Info : OK LED4 ON"
                        Else
                            ButL4.Text = "Led4 ??"
                            InfoLed4.Text = "Info : ERR : " & ReadVal
                        End If
                    ElseIf InfoBut = 5 Then
                        If ReadVal = NUDBL5Val.Value.ToString Then
                            DefIncrem = 0
                            InfoLed5.Text = "Info : OK LED5 : " & ReadVal & " soit : " & System.Math.Truncate((ReadVal * 100) / 255) & "%"
                        Else
                            DefIncrem += 1
                            If DefIncrem < 3 Then
                                But5_Click(Nothing, Nothing)
                            Else
                                DefIncrem = 0
                                InfoLed5.Text = "Info : ERR : " & ReadVal
                            End If
                        End If
                    ElseIf InfoBut = 6 Then
                        If ReadVal.EndsWith("0") = True Then
                            ButChen.Text = "Chenillard ON"
                            InfoChen.Text = "Info : OK chenillard OFF"
                            ButChen.Enabled = True
                            Panel1.Enabled = True
                        ElseIf ReadVal.EndsWith("1") = True Then
                            ButChen.Text = "Chenillard OFF"
                            InfoChen.Text = "Info : OK chenillard ON"
                            Panel1.Enabled = False
                            ButL1.Text = "Led1 ON"
                            InfoLed1.Text = "Info : OK LED1 OFF"
                            ButL2.Text = "Led2 ON"
                            InfoLed2.Text = "Info : OK LED2 OFF"
                            ButL3.Text = "Led3 ON"
                            InfoLed3.Text = "Info : OK LED3 OFF"
                            ButL4.Text = "Led4 ON"
                            InfoLed4.Text = "Info : OK LED4 OFF"
                            InfoLed5.Text = "Info : OK LED5 : " & 0
                            NUDBL5Val.Value = 0
                        ElseIf ReadVal.EndsWith("2") = True Then
                            ButChen.Enabled = False
                            ButChen.Text = "Chenillard OFF"
                            InfoChen.Text = "Info : OK attente fin chenillard"
                            Panel1.Enabled = False
                        Else
                            ButChen.Text = "Chenillard ??"
                            InfoChen.Text = "Info : ERR : " & ReadVal
                        End If
                    Else
                        MessageBox.Show("Impossible de dissocier le type de LED.", "Erreur de type", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    End If

                Else
                    MessageBox.Show("Le client signale une erreur de donnée." & Environment.NewLine & "Le code d'erreur est : " & ReadVal, "Erreur de donnée", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Sub VerifData(ByVal Dir1 As ValDir)
        Dir = Dir1
        If Dir1 = ValDir.Write Then
            If BW1.IsBusy = True Then
                BW1.CancelAsync()
                BW1.RunWorkerAsync()
            Else
                BW1.RunWorkerAsync()
            End If
        End If
    End Sub

    Private Sub BW1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BW1.DoWork
        Dim err As Boolean = False
        Dim j As Integer = 0
        While Dir <> ValDir.Read
            Application.DoEvents()
            j += 1
            If j >= 10000 Then
                MessageBox.Show("Le client n'a pas répondu." & Environment.NewLine & "Vérifiez la COM !", "Erreur de COM", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Exit While
            End If
        End While
        If err = True Then

        End If
    End Sub
#End Region

En fait, dès que je clique sur un bouton, j'envoi une trame à la carte Arduino.
Elle lis et "décode" la trame et répond puis ensuite pilote les LED.
http://lereparateurdepc.olympe.in/ImgBox/Arduino/ArduinoLedSerialControl/

Il y a des choses que tu ne pourra pas faire sous SZ comme ça mais c'est faisable Smile

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Lun 21 Avr 2014 - 8:43

bonjour,
big merci
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Ven 1 Aoû 2014 - 16:00

bonjour, 
désolé pour le détterrage, mais je ne trouve pas le code arduino, a utiliser :/
peut tu m'aider ?
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
lereparateurdepc


Masculin Nombre de messages : 5517
Age : 24
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Recevoir des données d'une carte Arduino

Message par lereparateurdepc le Ven 1 Aoû 2014 - 16:22

re,

ça reste acceptable.......

Côté Arduino:
Dans le setup :
Code:
 Serial.begin(9600);

Dans le loop:
Code:
Serial.print("Du texte");
 Serial.println("Du texte + retour chariot");

sinon : http://arduino.cc/en/reference/serial

STP, fait une petite recherche Smile

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Sam 2 Aoû 2014 - 11:13

bonjour,
grand merci a toi lereparateurdepc Smile
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Dim 3 Aoû 2014 - 17:12

bonsoir,
je poste mon, au cas ou, il y ait des débutants qui ont besoin d'aides Smile :
VB.net :
Code:
Dim returnStr As String = ""

    Private Sub MyPort_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles MyPort.DataReceived
        Try
            Dim charb = 4
            Dim Incoming As String = MyPort.ReadLine
            If Incoming Is Nothing Then
            Else
                returnStr = Incoming
            End If
        Catch ex As TimeoutException
            returnStr = "Error: Serial Port read timed out."
        End Try
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MyPort.Open()
    End Sub

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
        MyPort.Close()
    End Sub

Arduino :
Code:
void setup()
{
  Serial.begin(9600); 
}

void loop() {
  Serial.println("gael");
  delay(1000);             
}

cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
lereparateurdepc


Masculin Nombre de messages : 5517
Age : 24
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Recevoir des données d'une carte Arduino

Message par lereparateurdepc le Dim 3 Aoû 2014 - 18:29

re,

La seule chose avec DataReceved c'est qu'il se comporte un peut comme un BackgroundWorker.

Tu ne peut pas modifier le texte d'un contrôle ou la valeur d'une ProgressBar.
D'où mon code avec le Invoke.


Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
Blackorion35
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 2565
Age : 27
Localisation : Rouen
Emploi/loisirs : Dirigeant société informatique déclaré/Informaticien au CNED
Humeur : En forme !
Date d'inscription : 19/03/2013

Re: Recevoir des données d'une carte Arduino

Message par Blackorion35 le Dim 3 Aoû 2014 - 19:58

Bonjour,

Merci à vous deux c'est sympa et merci à toi Fandeonepiece2 pour ce partage ça peut m'aider un jour sur j'achète une carte Arduino Wink



Le site officiel de notre société : http://algostep-company.fr
Notre WebOS "Rynna" en développement : http://rynnawebos.fr/login
Le WebOS "Zator" conçu pour le forum et ses membres dispo en test ici :
http://algostep-company.fr/WebOS-Zator-Test1/
---------------------------------------------------------
avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Dim 3 Aoû 2014 - 20:30

re,
oui, lereparateurdepc, moi, j'ai ajouté un timer, ou je modifie mes propriétés, avec la valeurs, de returnStr.
mais, je vais examiner le invoke, car il risque de beaucoup m'aider Smile
sinon, si vous voulez savoir ce que j'ai fait avec, j'ai fait un un bouton, qui change la couleur de ma form xD
j'ai aussi fait un allumeur de lampe via internet xD
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor
avatar
lereparateurdepc


Masculin Nombre de messages : 5517
Age : 24
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Recevoir des données d'une carte Arduino

Message par lereparateurdepc le Dim 3 Aoû 2014 - 20:51

re,

Lampe ou LED ? Je n'aime pas trop le lampe..... Lampe de bureau ou ampoule de lampe de poche?

juste comme ça, tu n'utilise pas le secteur Erdf ?

Je sais je suis parano mais il y a tellement d'accidents lié à l'électricité que dès que j'ai un doute, j'avertis.

Sur ce, bonne soirée.

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 16
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

Re: Recevoir des données d'une carte Arduino

Message par fandeonepiece2 le Lun 4 Aoû 2014 - 7:35

bonjour,
c'est une led rouge récupéré sur un objet (je sais plus quoi lol)
ouais, le secteur, c'est ultra dangereux :-/
cordialement



(ಠ_ಠ)


http://openclassrooms.com/forum/sujet/regie-publicitaire-drozor

Contenu sponsorisé

Re: Recevoir des données d'une carte Arduino

Message par Contenu sponsorisé


    La date/heure actuelle est Dim 24 Sep 2017 - 8:37