Etienne BAUDOUX

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX

-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

4 participants

    Recevoir des données d'une carte Arduino

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


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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
    polien
    polien



    Masculin Nombre de messages : 3002
    Age : 27
    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

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

    Message par polien 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
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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
    lereparateurdepc
    lereparateurdepc



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

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

    Message par lereparateurdepc 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
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 Lun 21 Avr 2014 - 8:43

    bonjour,
    big merci
    cordialement
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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
    lereparateurdepc
    lereparateurdepc



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

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

    Message par lereparateurdepc 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
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

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

    bonjour,
    grand merci a toi lereparateurdepc Smile
    cordialement
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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
    lereparateurdepc
    lereparateurdepc



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

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

    Message par lereparateurdepc 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
    Blackorion35
    Blackorion35
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 2612
    Age : 33
    Localisation : Rouen
    Emploi/loisirs : Technicien Informatique DEC / Associé Directeur Convergence
    Humeur : C'est quand les prochaines vacs... ?
    Date d'inscription : 19/03/2013

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

    Message par Blackorion35 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
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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
    lereparateurdepc
    lereparateurdepc



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

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

    Message par lereparateurdepc 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
    fandeonepiece2
    fandeonepiece2
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 1804
    Age : 23
    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 Empty Re: Recevoir des données d'une carte Arduino

    Message par fandeonepiece2 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

    Contenu sponsorisé


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

    Message par Contenu sponsorisé


      La date/heure actuelle est Mer 8 Mai 2024 - 15:51