Reglage som verkliga världen med din PC (12 / 15 steg)
Steg 12: Lägga till lite kod
För våra syften men vi ska fuska och klistra in en hel platta av fungerande kod.
Kodvyn måste offentliga klass Form1... Avsluta klass - lyfta fram detta och ta bort den. Nu tar alla koden nedan och klistra in den i.
Import System.IO
Importerar strängarna = Microsoft.VisualBasic "så kan använda saker som vänster (och rätt (för strängar
Public Class Form1
Offentligt deklarera Sub sömn Lib "kernel32" (ByVal dwMilliseconds As Integer) "för sömn uttalanden
Dim WithEvents serialPort som nya IO. Ports.SerialPort "serieport deklarera
Dim PicaxeRegisters(0 To 13) som Byte "registrerar b0 till b13
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) hanterar Me.Load
Timer1.Enabled = True ' sätta detta i koden som standard false när skapade
Timer1.Interval = 5000 ' 5 sekunder
PictureBox1.BackColor = Color.Red ' set att placera "röd"
Array.Clear (PicaxeRegisters, 0, 13) "förmodligen inte behövs som matris förklarat tomt
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Timer1.Tick
"timer fästingar varje 5 sekunder
Kalla SerialTxRx() "prata med picaxe
End Sub
Sub SerialTxRx()
Dim LabelString As String ' sträng att Visa bytevärden
Dim DataPacket(0 To 17) som Byte ' hela datapaket "Data" + 14 byte
Dim jag As Integer ' jag är alltid bra för loopar etc
Label1.text = "" "bort texten på skärmen
För i = 0 till 3
DataPacket(i) = Asc (mitten av ("Data", jag + 1, 1)) ' lägga till ordet "Data" i paketet
Nästa
För i = 0 till 13
DataPacket(i + 4) = PicaxeRegisters(i) ' lägga till alla byte i paketet
Nästa
Om serialPort.IsOpen sedan
serialPort.Close() "ifall redan öppnat
Slut om
Försök
Med serialPort
. PortName = "COM1" "de flesta nya datorer som standard till com1 men någon pre 1999 computern med en seriell mus kommer förmodligen standard till com2
. Baud = 2400 ' 2400 är Max hastigheten för små picaxes
. Paritet = IO. Ports.Parity.None ' ingen paritet
. DataBits = 8 ' 8 bitar
. StopBits = IO. Ports.StopBits.One "en stoppbit
. ReadTimeout = 1000' millisekunder så gånger i 1 sekund om inget svar
. Open() "öppna den seriella porten
. DiscardInBuffer() ' Rensa indatabufferten
. Skriva (DataPacket, 0, 18) "Skicka datapacket matrisen
Kalla Sleep(300) "100 millisekunder minsta vänta för data att komma tillbaka och mer om dataströmmen är längre
. Läs (DataPacket, 0, 18) "Läs tillbaka i matrisen data packet
. Close() ' stänga den seriella porten
Avsluta med
För i = 4 till 17
LabelString = LabelString + "" + Str(DataPacket(i)) "förvandlas till en textsträng
Nästa
Label1.text = LabelString ' lägga textsträngen på skärmen
Fånga som undantag
"MsgBox (ex. ToString) "avkommentera här om vill se verkliga felmeddelandet
Label1.text = "Timeout" "kommer att visa detta om picaxe inte ansluten etc
Slutet försök
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Button1.Click
PictureBox1.BackColor = Color.Red ' ändra rutan till röd
PicaxeRegisters(0) = 120' godtyckliga värden för servo
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Button2.Click
PictureBox1.BackColor = Color.Green ' box till grönt
PicaxeRegisters(0) = 160' godtyckligt värde för servo
End Sub
Slutet klass