invio ricevi con seriale da vb6/Arduino @scorty

@ Scorty e altri

ho preferito mettere qui le cose che mi hai chiesto in privato, in modo che se servisse ad altri possono usarla. :wink: :wink:
credo sia giusto cosi.

qui sotto ce il codice che ti serve per inviare e ricevere da vb6 e arduino. metterò anche immagine form, cosi ti fai un idea.

Private Sub cmdesci_Click()
        MSComm1.Output = "68"
         MSComm1.PortOpen = False
        End
End Sub
Private Sub cmdfine_Click()
        MSComm1.Output = "c" 'invio la lettera "c" che sarà riconosciuta dal circuito come spegni
                            ' e mi risponderà se ricevuto
        txttx.Text = ""
        
End Sub
Private Sub cmdinvio_Click()
        MSComm1.Output = "a" ' invio la lettera "a" che sarà riconosciuta dal circuito come accendi
                            ' e mi risponderà se ricevuto
        txttx.Text = ""
     
End Sub
Private Sub Form_Load()
        MSComm1.CommPort = 4 'porta com4
        MSComm1.Settings = "9600,n,8,1" 'setto la porta
        MSComm1.RThreshold = 1 ' voglio essere informato della ricezione di ogni singolo carattere

        On Error Resume Next 'rilevazioni di errori
        MSComm1.PortOpen = True 'apro la porta
    If Err Then
        MsgBox "impossibile aprire la porta: Com" & MSComm1.CommPort & ", controllare collegamenti." & vbCrLf & Error$
    End If
     
        

End Sub
Private Sub MSComm1_OnComm()
 Dim inputdat
       inputdat = MSComm1.Input ' Leggo il contenuto del buffer di ricezione (e svuoto .Input)
  If Len(inputdat) Then ' Se ho ricevuto qualcosa lo scrivo nella TextBox
       txttx.Text = txttx.Text & inputdat
  End If
End Sub

vb6invioricevi.bmp (996 KB)

Che figo mi serviva :):slight_smile:
solo che ora devo compilarlo e non ho idea di come si usi Vb.Net :(:(:frowning:

Io uso la porta seriale in vb2010 e la trasmissione funziona.. ora vorrei provare con questo oggetto MSCom però non lo trovo sul 2010.
edit: trovato : Microsoft Communications control

@ratto93 (un nome migliore no!!!) :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

in risposta alla tua domanda, ti rispondo che il codice è in visual basic 6.

quindi:
1- se vuoi usarlo con vb10 devi adattarlo.
2- oppure se vuoi provare con vb6, devi eseguirlo in "realtime" (tasto avvia forma triangolare).
3- se vuoi fare eseguibile con vb6: menù file - crea nomeprogetto.exe (in vb10 non so).

spero di averti aiutato. :wink: :wink:

ps: in questo post ce sciorty che usa vb10. prova a chiedere a lui. 8) 8)

IL mio nome non si toca 8)
punto due in parole povere per uno che programma in C# e java ???

@ratto93

che ti serve esattamente?
in che linguaggio lo vuoi?
vb6 ormai putroppo è veramente vecchio.
con le nuove versioni di visual studio (quind vb20110, c# ecc..) ci sono le versioni express che sono freeware.
con java si piò fare tutto free ma per l'interfaccia non ti saprei dire.
con flex puoi fare applicazioni AIR e tramite socket comunicare con la seriale (questo è un esempio di applicazione che ho sviluppato link al video)

a me va bene in qualunque linguaggio anche Vb 2010 davo mandare dei carattere via seriale e visualizzare eventualmete la risposta in una text box...
con java ho provato ma non ne vengo fuori

domani provo a darci un occhio..

lollotek:
domani provo a darci un occhio..

Grazie mille :wink:

Qui ce n'è uno in vb2010 usante l'evento keydown per l'intercettazione dei tasti. C'è una label per l'output e un oggetto Microsoft Communications Control (rinominato arduino), i settaggi come il baud rate o la porta poi dipendono da te

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown               
 Select Case e.KeyValue
    Case Keys.A
      arduino.Output = ("a")
    Case Keys.S
      arduino.Output = ("s")
    Case Keys.W
      arduino.Output = ("w")
    Case Keys.D
      arduino.Output = ("d")
 End Select
End sub

Private Sub arduino_OnComm(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles arduino.OnComm    
      Label2.Text = arduino.Input
End Sub

p.s.: lato arduino fai così

Serial.print(analogRead(A0));
Serial.print("            ");

altrimenti sulla label ti compare un treno di valori. Stessa cosa se fai un println, con la differenza che ti scendono in verticale.

Vedo che non sono l'unico ad usare ancora vb6 :stuck_out_tongue:
bene...

@ BrainBooster

Siamo tantissimi ad avere vb6. peccato che Microsoft ci ha abbandonati.

dobbiamo però aggiornarci prima o poi. :wink: :wink:

non vedo grandi differenze tra vb6 e vb10.
ma avete ragione dobbiamo aggiornarci. :roll_eyes: :roll_eyes: :roll_eyes:

Grazie arduinh3nk3r, questo post è molto utile.
Stavo facendo qualcosa del genere in VB6, ma non riuscivo a programmare la seriale.

Ho diversi dubbi però: si può creare una chat a breve distanza? Se l'Arduino ha solo la presa USB, come fa a simulare il funzionamento della seriale?

arduinh3nk3r:
Siamo tantissimi ad avere vb6. peccato che Microsoft ci ha abbandonati.

dobbiamo però aggiornarci prima o poi. :wink: :wink:

Quoto. Anche io.
Aggiornar... che?! :smiley: Io mi trovo benissimo con il VB6, anche se per programmare ci sono ormai ambienti di sviluppo avanti anni luce...