Paso 12: Añadir algo de código
Aunque para nuestro propósito vamos a cheat y pegar en una losa entera del código de trabajo.
La vista de código tendrá público clase Form1... Fin clase - destacar esto y eliminarlo. Ahora toma todo el código abajo y pegarlo en.
Las importaciones de System.IO
Las importaciones de cadenas = Microsoft.VisualBasic ' por lo que puede usar cosas como izquierda (y derecha (para cuerdas
Public Class Form1
Público Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' para los Estados de sueño
Dim WithEvents serialPort como nuevo IO. Ports.SerialPort ' declarar puerto serie
Dim PicaxeRegisters(0 To 13) como Byte ' registros de b0 a b13
Privada Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) maneja Me.Load
Timer1.Enabled = True ' poner esto en el código como valores por defecto en false cuando se crea
Timer1.Interval = 5000 ' 5 segundos
PictureBox1.BackColor = Color.Red ' set en la posición 'rojo'
Array.Clear (PicaxeRegisters, 0, 13) ' probablemente no sea necesario como matriz declarada en blanco
End Sub
Privada Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Timer1.Tick
' temporizador garrapatas cada 5 segundos
Llamar SerialTxRx() ' hablar con picaxe
End Sub
Sub SerialTxRx()
Dim LabelString As String ' cadena para mostrar los valores de byte
Dim DataPacket(0 To 17) como Byte ' paquete de datos completo "Datos" + 14 bytes
Dim i As Integer ' siempre es útil para los bucles etc.
Label1.Text = "" ' eliminar el texto en la pantalla
Para i = 0 a 3
DataPacket(i) = Asc (Mid ("datos", i + 1, 1)) ' agrega la palabra "Datos" en el paquete
Siguiente
Para i = 0 a 13
DataPacket(i + 4) = PicaxeRegisters(i) ' agregar todos los bytes en el paquete
Siguiente
Si serialPort.IsOpen entonces
serialPort.Close() ' en caso de que ya abrió
End If
Tratar de
Con serialPort
. PortName = "COM1" ' más nuevos equipos por defecto com1 pero cualquier computadora pre 1999 con un mouse serial com2 mostrará probablemente
. Velocidad en baudios = 2400 ' 2400 es la velocidad máxima de picaxes pequeño
. Paridad = IO. Ports.Parity.None ' sin paridad
. DataBits = 8 ' 8 bits
. StopBits = IO. Ports.StopBits.One ' bits de parada
. ReadTimeout = 1000' milisegundos tan tiempo en 1 segundo si no hay respuesta
. Open() ' abrir el puerto serie
. DiscardInBuffer() ' borrar el búfer de entrada
. Escribir (DataPacket, 0, 18) ' enviar la matriz datapacket
Llamar Sleep(300) ' mínimos esperar datos volver y más si la secuencia de datos es mayor a 100 milisegundos
. Leer (DataPacket, 0, 18) ' leer en el conjunto de paquetes de datos
. Close() ' cerrar el puerto serie
Terminar con
Para i = 4 a 17
LabelString = LabelString + "" + Str(DataPacket(i)) ' convertir en una cadena de texto
Siguiente
Label1.Text = LabelString ' poner la cadena de texto en la pantalla
Captura como excepción
' MsgBox (ex. ToString)' descomentar esta si quieres ver el mensaje de error real
Label1.Text = "Timeout" ' Esto mostrará si picaxe no conectado etc.
Prueba final
End Sub
Privada Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Button1.Click
PictureBox1.BackColor = Color.Red ' cambiar la caja a rojo
PicaxeRegisters(0) = 120' un valor arbitrario para el servo
End Sub
Privada Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Button2.Click
PictureBox1.BackColor = Color.Green ' caja verde
PicaxeRegisters(0) = 160' valor arbitrario para el servo
End Sub
Clase final