LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: dio123 em 29 de Março de 2010, 14:49
-
bem gostaria de saber se alguem já conseguiu com o visual basic criar um programa que comunique com o arduino atraves do cabo usb?
se sim alguem me pode umas luzes
já vi este site mas ainda nao consegui fazer nada.
http://www.acraigie.com/programming/firmatavb/firmatavb_downloads.html (http://www.acraigie.com/programming/firmatavb/firmatavb_downloads.html)
agradecia
-
Pois também eu queria... quer seja com arduino quer seja com outr micro qualquer...
imagina que estou a estudar VB.net ou VB2008 e pedi ao Prof que me ensina-se como comunicar com a porta «COM» e nada.
No livro de visual tem lá um capiulo dedicado ao System.IO mas resume-se a saber quantas portas tem o PC relativamente ao que interessa enviar e receber pelas portas parece que é coisa muito complicada porque nem faz parte do conteudo do livro.
depois dizem mal dos alunos, na minha opinião são um espelho dos formadores...
jp_
-
Boas.
Nas brincadeiras que tenho feito com o arduino, tenho utilizado o VB.net (vs 2008) sem problemas de maior.
Tudo se resume à utilização do objecto SerialPort com uma ou outra configuração especifica, e receber e enviar dados pela porta serie associada.
Vou tentar encontrar um programa simples para por aqui.
-
Olá,
Talvez este link http://www.codeproject.com/KB/gadgets/DigitalThermometer.aspx (http://www.codeproject.com/KB/gadgets/DigitalThermometer.aspx) possa ajudar.
-
Tenho 2 posts mais ou menos sobre isto no meu blog:
http://bravomofo.blogspot.com/search/label/Arduino (http://bravomofo.blogspot.com/search/label/Arduino)
Foi feito em C# mas é muito facilmente adaptável a VB. Dá uma vista de olhos no código que disponibilizo!
-
eu tenho andado a trabalhar com visual basic para controlar o arduino e é muito simples...
deixo aqui como o fiz
apenas precisas do
-visual basic
-firmataVB.extended
-e do programa que vem com o arduino, o skecth
1º
no skecth inseres um exemplo = Examples>Firmata>Standarfirmata , fazes upload...
2º abres o firmata no visual basic, carregas em play abre aquele painel com os controles, defines a porta e as rates > conect
depois é sempre a andar
Boa Sorte
-
y0d3t0, como disseste não consegui fazer nada.
Standarfirmata passei para o arduino, mas depois com o programa aberto no vb , configuro a porta e as rate no 115200.
O led rx do arduino pisca mas depois nao acende o led 12 que tenho ligado no arduino.
qual e a diferença entre visual basic e visual basic.net, e que na wikipedia não me exclareceu esta duvida
-
Desce o baud rate para 9600 e certifica-te que é igual no arduino e no teu programa em VB.
-
bem já consegui fazer com o visual basic 6.0 e o visual basic 2008 comunica-se com o arduino.
Estou a preparar um pequeno projecto, e depois vou por aqui como tutorial.
tenho um lcd de 14 pinos que é o HD44780A00, mas estive a experimentar uns exemplos que o programa arduino trás, mas tenho uma pequena duvida:
no exemplos- LiquidCrystal- SerialDisplay- o programa apenas escreve na 1º linha e eu gostaria de escrever nas duas linhas, já comecei por tentar escrever só na 2ºlinha mas ainda nao consegui.?
Alguem sabe como fazer?
agradecia
-
Boa tarde
Enviar info usando o VB6 para o Arduino até foi fácil, usando o objecto MScomm1...
Agora a grande questão é receber a info correcta por parte do Arduino... dá-me caracteres esquisitos... tipo "o\".
Alguém sabe, usando o VB6 receber dados de forma correcta por parte do Arduino?
Grato pela atenção
Pedro Ferrer
-
Sim é por serial ... facil mesmo...
-
Boa tarde
Sim... enviar é fácil... o receber correctamente é que está complicado...
Alguém sabe a forma correcta?
Grato pela atenção
Pedro Ferrer
-
Sim receber é mais dificil... ainda nao percebi muito bem...
-
Depende do que queres receber, que quantidade de bytes vais receber, e como queres tratar os dados, dá mais informação sobre os teus problemas.
-
Bom dia
Graças a umas dicas daqui e dali, já recebo correctamente a info proveniente do Arduino!
#NO VB6
'\\
Private Sub Form_Load()
With MSComm1 'sets up COM settings
.Handshaking = 0
.RThreshold = 1
.RTSEnable = False
.CommPort = 2
.Settings = "9600,n,8,1"
.DTREnable = False
.PortOpen = True
End With
End Sub
'\\BOTAO PARA ENVIAR INFO ARDUINO
'\\VAMOS ENVIAR A LETRA 'T'
Private Sub Command10_Click()
Me.Text1 = ""
MSComm1.Output = "T" + Chr(13)
End Sub
'\\
Private Sub MSComm1_OnComm()
Dim ReceivedData As String
Dim Command As String
Dim strDump As String
Dim strChr As String
Do While MSComm1.InBufferCount > 0
If MSComm1.InBufferCount > 0 Then 'check for something in buffer
strChr = MSComm1.Input ' copy to string
If Asc(strChr) = 13 Then ' end if string
Exit Do
ElseIf Asc(strChr) = 10 Then ' remove chr(10) from string
Else
strDump = strDump & strChr ' connect chr to string
End If
End If
DoEvents
Loop
ReceivedData = strDump
Dim i As Integer
For i = 1 To Len(ReceivedData)
If Mid(ReceivedData, i, 1) = vbCr Then
Command = Mid(ReceivedData, 1, i)
ReceivedData = Mid(ReceivedData, i + 1, Len(ReceivedData))
End If
Next i
Me.Text1 = Me.Text1 & ReceivedData
End Sub
#NO ARDUINO
int command = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
command = Serial.read();
if (command == 'T') {
Serial.println("TU TAS LA");
delay(5000);
Serial.println("TU TAVAS LA");
command=0;
}
}
}
No final, na caixa de texto vamos ter "TU TAS LA" vbcrlf "TU TAVAS LA". Não se esqueçam de colocar a text1 com multiline=true...
Claro está, que agora falta fazer algo mais racional, pois a resposta que queremos do Arduino não será esta...
Abraço
Pedro Ferrer
-
Bom dia,
tenho um programa no arduino que envia para serial.println(millis()/1000) .
Agora queria fazer a mesma coisa que serial monitor do arduino mas em vb.net.
O vb.net liga ao arduino mas depois quando tendo ler o que está a chegar ao serial para uma textbox multiline nunca aparece nada.
Tenho textbox.text = SerialPort.ReadExisting()
-
Eu costumo usar um evento da SerialPort chamado DataReceived ou qualquer coisa parecido.
Como queres ler a linha inteira altera o readExisting para readline.
EDIT: Não sei se o que pretendes é ir adicionando a info recebida a uma linha nova da textbox... Se for assim não dá e possivelmente é por isso que não vez nada.
Altera para Textbox1.text &= SerialPort1.ReadLine() & vbnewline
Depois diz se funcionou.
-
Então o programa está a funcionar e os valores vão para textbox fica igual ao serial monitor arduino.
O problema é que faltava dtrenabler = true
então ligava o arduino e nunca tinha nada.