- HEMS Solar Speicher Tutorial    Werbung      
Ergebnis 1 bis 10 von 80

Thema: Mit VB über FTDI Roboter steuern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Hier der Code (den habe ich einfach vom Video übernommen) :

    Code:
    Public Class Form1
    
        Private Sub COM1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            Try
                SerialPort1.PortName = TextBox1.Text
                SerialPort1.BaudRate = TextBox2.Text
                SerialPort1.Open()
                Button1.Enabled = False
                Button2.Enabled = True
                Button3.Enabled = True
    
            Catch ex As Exception
                MsgBox("Verbindung konnte nicht hergestellt werden")
            End Try
        End Sub
    
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If SerialPort1.IsOpen = True Then
                SerialPort1.Close()
            End If
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            SerialPort1.Write("1" & vbCr)
    
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            SerialPort1.Write("0" & vbCr)
        End Sub
    End Class
    Zu DanielSan: Wie hast du das mit dem Com Port vorher schließen gemacht???

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    47
    Beiträge
    1.369
    Du hast die falsche klasse ausgewählt oder nicht? Du hast _Textchanged .... im Video ist es aber _click auf Button1.

    Woher hattest Du diese Programm nochmal...
    Ist es bei Dir denn auch Com1?
    Wenn Du das so schreibst wie hier im Video müsstest Du doch auch ein Click-Event für einen Button1 verwenden? Was _TextChanged anstellt weiß ich leider auch noch nicht....

    Kommt denn die Meldung MsgBox?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Du hast die falsche klasse ausgewählt oder nicht? Du hast _Textchanged .... im Video ist es aber _click auf Button1.
    Stimmt,Haste Recht.Das habe ich wohl falsch abgeschrieben. Bild  
    Jetzt funktioniert es schon mal ,aber es wird trotzdem das mit " Eine Ausnahme ist in..... aufgetreten" angezeigt. Was das bedeutet weiß ich nicht???

    Woher hattest Du diese Programm nochmal...
    Was meinst du ??

    Ist es bei Dir denn auch Com1?
    Nein, es ist Com 10, aber das stört ja nicht ,da ich es umstellen kann.

    Kommt denn die Meldung MsgBox?
    Was ??


    So also hat denn jetzt mal einer einen Code fürs Senden und Empfangen (von Text). Denn wenn ich den Menschen im Video richtig verstanden habe ist sein Code nur zum schalten von einer LED geeignet???

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    41
    Beiträge
    647
    Ich glaube immer wenn du auch nur das geringste in der Textbox änderst, wird das gesendet. Mach es erstmal alles wie im Video.

    Das mit dem schliessen sollte so gehen:
    Code:
    Try
    SerialPort1.Close()
    SerialPort1.PortName = TextBox1.Text
    SerialPort1.BaudRate = TextBox2.Text
    SerialPort1.Open() 
    Button1.Enabled = False
    Button2.Enabled = True 
    Button3.Enabled = True          
    Catch ex As Exception             
    MsgBox("Verbindung konnte nicht hergestellt werden")         
    End Try
    Wenn es COM10 ist musst du das auch einstellen.

    Der Code sendet doch Text! Einmal eine 1 und einmal eine 0. Du hast den Gesamtzusammenhang noch nicht ganz verstanden.
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Der Code sendet doch Text! Einmal eine 1 und einmal eine 0. Du hast den Gesamtzusammenhang noch nicht ganz verstanden.
    Da hast du Recht. Jetzt habe ich es aber halbwegs verstanden (das Senden ).
    Wie könnte ich jetzt aber Sachen Empfangen und in einer Text Box anzeigen lassen ?? Die Sachen, die ich auf Youtube dazu gefunden habe hatten leider auch nicht funktioniert.

    Könnt ihr mir da auch helfen??

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    47
    Beiträge
    1.369
    Du hast die Menschen im Video falsch verstanden. Das ist ein einfaches Beispiel.
    Übrigens fragte ich Dich auch nach dem Code auf dem AVR. Hier wir nämlich entschieden was passiert wenn eine "1" oder eine "0" oder ein "100" "255" "136" oder "125" rein kommt. Am einfachsten sind Zahlen am besten als Byte bei eine 8N1 Verbindung. Wenn Du mal guckst siehst Du ja das der Button2 nicht "1" heißt sondern "einschalten", das VB-Programm sendet nun eine "1" ab. Der AVR empfängt das ganze mit seinem Programm.
    Wäre ja auch etwas unübersichtlich je nach Umfang des Codes wenn man die Buttons einfach nur 1, 2, 3 usw nennen würde.

    Wenn man schon weiß das man Com 10 benutzt, sollte man es vielleicht auch in den Code schreiben, damit er auch diesen öffnet. Ansonsten könnte man versuchen den Com zu suchen...aber das ist wieder ein anderes Thema Bild  
    Geändert von HeXPloreR (25.03.2013 um 19:52 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    41
    Beiträge
    647
    Das lesen geht fast wie das Schreiben. Such mal nach:
    Code:
    SerialPort1.Read()
    in einer SUchmaschine.

    Das solltest du jetzt alleine lösen können.
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Also zu HeXPloreR : hier der Code :

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    Config Portd.7 = Output             ' Summer für das Einschalten und für Fehlermeldungen
    Config Portc.5 = Output             ' Led die von vb gesteuert wird
    
    Dim Wort As Word
    
    Wait 1
    Sound Portd.7 , 400 , 450         'Summer
    Sound Portd.7 , 400 , 250          'Summer
    Sound Portd.7 , 400 , 450              'Summer
    Wait 2
    
    Main:
      Waitms 500
      Input "?" , Wort
    
      Select Case Wort
    
          Case 1
          Waitms 10
          Portc.5 = 0
          Waitms 500
    
    
          Case 0
          Waitms 10
          Portc.5 = 1
          Waitms 500
    
          Case Else
          Waitms 10
          Sound Portd.7 , 400 , 450
          Sound Portd.7 , 400 , 250
          Sound Portd.7 , 400 , 450
          Waitms 10
    
      End Select
    Goto Main
    Ich habe es auch schon mit dem Terminal Emulator und mit vb getestet. Hat funktioniert. Doch hatte ich ein Problem mit dem Summer. Als ich es erst in Bascom ausprobiert habe ,hatte er noch gesummt. Als ich es danach aber bei vb ausprobiert habe hat er nicht mehr gesummt. Dann habe ich es noch mal in Bascom versucht ,aber da wollte er dann auch nicht mehr summen. Nach einem Neubespielen des MC hat es genau so ausgesehen wie davor .Erst hat es in Bascom funktioniert ,sobald ich es aber einmal in vb testete hat es nicht mehr funktioniert. Warum ???????

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    47
    Beiträge
    1.369
    Naja, weil das VB Program einen String über Com sendet... und Dein Bascom Programm ein Word erwartet.
    Ausserdem scheint es als wenn Du input direkt den wert "?" zuweist. Was denkst Du macht das Programm wenn es keine 1 oder 0 auswerten kann?
    Ausserdem werden die waits innerhalb select case 1 und 0 nicht benötigt. Beim Else kann man das lassen wenn man das möchte

    Wie testest Du diese Programm in VB?

    Ich würde den ganzen Codeteil mit dem Summer raus nehmen, denn sonst sollte es ja ständig summen - mal kurz unterbrochen wenn du die richtigen Daten sendest. Aber dazu hast Du ja die LED reingeschrieben.

    Das von mir gelinkte Video bei 2:18 mal angucken.
    Geändert von HeXPloreR (25.03.2013 um 19:55 Uhr)

Ähnliche Themen

  1. Roboter über internet Website steuern
    Von Mikel36 im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 10.12.2008, 17:13
  2. visueller roboter über atmega32 steuern
    Von roboterheld im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 16.11.2007, 18:49
  3. Roboter über PocketPC steuern
    Von wanderer im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 08.08.2006, 22:50
  4. [ERLEDIGT] Roboter über RS232 steuern
    Von Frischling im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 01.12.2004, 06:36
  5. Roboter über PC steuern
    Von jens84 im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 03.07.2004, 10:03

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      12V Akku bauen