Wereldwijd microcontroller link voor onder $20 (8 / 15 stap)

Stap 8: Sommige code toevoegen


Zie stap 12 van de andere instructable voor de locatie van de knop die wordt gespiegeld tussen de formulierweergave en de codeweergave. Schakel naar codeweergave en plak de volgende code in. De kleuren moeten alle wel weer zoals in de screenshot. Als een regel is niet goed gekopieerd als gevolg van een probleem wordwrap dan spaties verwijderen tot het foutbericht gaat weg. Ik heb geprobeerd om commentaar te leveren de meeste van de lijnen dus de code ten minste sommige zinvol. De openbare klasse bit verwijderen zodat de tekst vóór het plakken van dit leeg is - deze code al een openbare klasse. Als een object zoals een tekstvak is niet op het formulier zijn geplaatst of de verkeerde naam heeft zal dan komen in de code van de tekst met een blauwe golvende lijn eronder.

Invoer System.IO
Hiermee importeert u tekenreeksen = Microsoft.VisualBasic ' dus kunt dingen zoals links (en rechts (voor strijkers
Public Class Form1
Openbare Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' voor de verklaringen van de slaap
Dim WithEvents serialPort als nieuwe IO. Ports.SerialPort ' seriële poort verklaren
Dim PicaxeRegisters(0 To 13) As Byte ' registreert b0 aan b13
Dim ModifyFlag As Boolean
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) behandelt Me.Load ' moeten al deze onzin spul - .net het in automatisch wanneer zet ga form1events bovenstaande / laden
Timer1.Enabled = True ' zet dit in code als standaardwaarden op false wanneer gemaakt
Timer1.interval = 20000' elke 20 seconden
PictureBox1.BackColor = Color.Gray ' starten met de comms vakken grijs
PictureBox2.BackColor = Color.Gray
ModifyFlag = False ' als een waarde handmatig wijzigen dan overslaan downloaden
RichTextBox1.Multiline = True ' dus meer dan één regel kunnen worden weergegeven
Bel DisplayPicaxeRegisters() ' de 14 registers weergeven
Bel ReadFTPFilename() ' Lees de bestandsnaam uit de schijf (resaved elke 20 sec)
End Sub
Sub SerialTxRx()
Dim DataPacket(0 To 17) As Byte ' volledige gegevenspakket "Data" + 14 bytes
Dim i As Integer ' ik is altijd handig for-lussen enz
Voor i = 0 tot en met 3
DataPacket(i) Asc (Mid ("Data", ik + 1, 1)) = "het woord"Data"toevoegen aan het pakket
Volgende
Voor i = 0 tot en met 13
DataPacket(i + 4) = PicaxeRegisters(i) ' alle bytes aan het pakket toevoegen
Volgende
Als serialPort.IsOpen dan
serialPort.Close() ' in het geval dat al geopend
End If
Probeer
Met serialPort
. PortName "COM1" = "de meeste nieuwe computers standaard naar com1 maar elke computer pre 1999 met een seriële muis waarschijnlijk standaard ingesteld op com2
. BaudRate = 2400 ' 2400 is de maximale snelheid voor kleine picaxes
. Pariteit = IO. Ports.Parity.None ' geen pariteit
. DataBits = 8 ' 8 bits
. StopBits = IO. Ports.StopBits.One ' one-stop bits
. ReadTimeout = 1000' milliseconden dus een time-out optreedt in 1 seconde als geen reactie
. Open() ' de seriële poort openen
. DiscardInBuffer() ' de input buffer wissen
. Schrijven (DataPacket, 0, 18) ' Stuur de datapacket matrix
Bel Sleep(300) ' 100 milliseconden minimum te wachten op gegevens terug te komen en meer als de gegevensstroom is langer
. Lezen (DataPacket, 0, 18) ' lezen terug in de matrix van de packet gegevens
. Close() ' Sluit de seriële poort
Eindigen met
Voor i = 4 tot en met 17
PicaxeRegisters (i - 4) DataPacket(i) = ' de nieuwe gegevenspakket te verplaatsen in de array registreren
Volgende
PictureBox1.BackColor = Color.GreenYellow ' werken
Catch ex als uitzondering
PictureBox1.BackColor = Color.Red ' werkt niet
Einde proberen
End Sub
Sub FTPUpload (ByVal Filename As String)
LocalFile As String Dim ' plaats voor het opslaan van gegevens
Externbestand As String Dim ' bestandsnaam is hoofdlettergevoelig dit is echt belangrijk
Const host As String = "ftp://ftp.0catch.com" ' merk op de 0 is een nul niet een personage O
Const username As String = "picaxe.0catch.com"
Const wachtwoord As String = "picaxetester"
Dim URI As String
localFile = bestandsnaam ' misschien niet nodig maar als een locatie BV c:\mydirectory kunt toevoegen gemakkelijk deze manier definiëren
externbestand = "/" + bestandsnaam ' bestand op de FTP-server moet "/" toegevoegd aan de voorzijde
URI = host + externbestand
Probeer
Dim ftp als System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(URI), System.Net.FtpWebRequest)
ftp.Credentials = nieuwe System.Net.NetworkCredential(username, password) ' inloggen
ftp.KeepAlive = False ' zal worden verbroken zodra gedaan
ftp.UseBinary = True ' binaire comms gebruiken
ftp.Timeout = 9000' timeout na 9 seconden - zeer nuttig als ftp soms sterft
' timeout (en de klokfrequentie van 20 seconden) wellicht trager is voor inbel-verbindingen
ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile ' beginnen met het verzenden van bestand
Dim fs als nieuwe FileStream(localFile, FileMode.Open) ' lokaal bestand openen
Dim filecontents(fs. Lengte) As Byte ' in het geheugen gelezen
FS. Lezen (filecontents, 0, fs. Lengte)
FS. Close() ' Sluit het bestand
Dim requestStream als stroom ftp.GetRequestStream() = ' start de FTP-verbinding
requestStream.Write (filecontents, 0, filecontents. Lengte) ' verzenden
requestStream.Close() ' Sluit de koppeling
PictureBox2.BackColor = Color.GreenYellow ' verandering het vak groen wil ok werkte
Label2.Text = "FTP verbonden" "tekst zegt het aangesloten
Overstaptijd voor de ' kan geen verbinding maken
PictureBox2.BackColor = Color.Red ' vak rood als geen verbinding
Label2.Text = "FTP Upload Fail" "tekst zegt verbinding is mislukt
Einde proberen
End Sub

Sub FTPDownload (ByVal Filename As String)
' externbestand naar localfile gedownload
LocalFile As String Dim ' plaats voor het opslaan van gegevens
Externbestand As String Dim ' bestandsnaam is hoofdlettergevoelig dit is echt belangrijk
Const host As String = "ftp://ftp.0catch.com"
Const username As String = "picaxe.0catch.com"
Const wachtwoord As String = "picaxetester"
Dim URI As String
' localFile = "C:\" + bestandsnaam ' opslaan in de hoofdmap, maar dit kunt wijzigen
localFile = bestandsnaam ' zodat c:\ kunnen toevoegen als nodig werkelijke locatie definiëren
externbestand = "/" + bestandsnaam ' toegevoegd aan verre ftp-locatie
URI = host + externbestand ' make-up volledig adres
Probeer
Dim ftp als System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(URI), System.Net.FtpWebRequest)
ftp.Credentials = nieuwe System.Net.NetworkCredential(username, password) ' inloggen
ftp.KeepAlive = False ' zal worden verbroken na
ftp.UseBinary = True ' binaire modus
ftp.Timeout = 9000' timeout na 9 seconden
ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile ' een bestand downloaden
' lezen in stukken als weet niet hoe groot het bestand is
Met behulp van de reactie als System.Net.FtpWebResponse = CType (ftp.GetResponse, System.Net.FtpWebResponse)
Met behulp van responseStream als IO. Stroom = antwoord. GetResponseStream
Met behulp van fs als nieuwe IO. FileStream (localFile, IO. FileMode.Create)
Dim buffer(2047) As Byte
Dim lezen As Integer = 0
Doen
lezen = responseStream.Read (buffer, 0, buffer. Lengte) ' stuk van ftp
FS. Schrijven (buffer, 0, lees) ' en naar het bestand schrijven
Loop totdat lezen = 0' tot geen meer stukken
responseStream.Close() ' sluit u het ftp-bestand
FS. Flush() ' duidelijk spoelen
FS. Close() ' en sluit het bestand
Eindigt met
responseStream.Close() ' sluiten zelfs als niets er was
Eindigt met
reactie. Close()
PictureBox2.BackColor = Color.GreenYellow ' groene vak als het werkte
Label2.Text = "FTP verbonden" ' en tekst zeggen dat het werkte
Eindigt met
Vangen ' foutcodes hier plaatst
PictureBox2.BackColor = Color.Red ' red box als het niet werkte
Label2.Text = "FTP Download Fail" ' en bericht om dit te zeggen
Einde proberen
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) verwerkt Timer1.Tick
Als ModifyFlag = False Then ' als gebruiker gewijzigd een byte dan niet downloaden
Label3.Text = "Downloaden"
System.Windows.Forms.Application.DoEvents() ' dus de nieuwe tekst in een label worden weergegeven
Bel FTPDownload(TextBox3.Text) ' extern bestand downloaden
Label3.Text = "Gedownload"
System.Windows.Forms.Application.DoEvents()
Bel ReadRemoteFileToRegisters() ' bestandsnummers in de register-array opslaan
Label3.Text = "Talking te picaxe"
System.Windows.Forms.Application.DoEvents()
Anders
ModifyFlag = False ' reset van de vlag
End If
Bel SerialTxRx() ' Stuur naar de picaxe en lees het terug
Label3.Text = "verzonden en ontvangen van picaxe"
System.Windows.Forms.Application.DoEvents()
Oproep DisplayPicaxeRegisters()
Bel SaveRegistersToLocalFile() ' getallen opslaan in bestand
Label3.Text = "Uploaden"
System.Windows.Forms.Application.DoEvents()
Bel FTPUpload(TextBox3.Text) ' Stuur back-up op FTP-site met de naam als mijn naam
Label3.Text = "Rusten"
Bel SaveFTPFilename() ' dus leest wanneer herstarten
End Sub
Sub DisplayPicaxeRegisters()
Dim i As Integer
Dim registernumber As String
RichTextBox1.Multiline = True ' zodat kan meer dan één regel wordt weergegeven in het tekstvak
RichTextBox1.Clear() ' laat u het tekstvak leeg
Voor i = 0 tot en met 13
registernumber = Trim(Str(i)) ' trim uit voorloopspaties
Als ik vervolgens < 10
registernumber = "0" + registernumber ' 0 toevoegen aan de nummers onder 10
End If
RichTextBox1.AppendText (registernumber + "=" + Str(PicaxeRegisters(i)) + Chr(13))
Volgende ' chr(13) is zo nieuw retourregel vervoer
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) behandelt Button1.Click
Dim i As Integer
' eerst buiten het bereik
Ik = Val(TextBox1.Text)
Als ik < 0 of ik 13 > Klik
TextBox1.Text = 0
End If
Ik = Val(TextBox2.Text)
Als ik < 0 of ik > dan 255
TextBox2.Text = 0
End If
PicaxeRegisters(Val(TextBox1.Text)) = Val(TextBox2.Text) ' wijzigen van de waarde
Bel DisplayPicaxeRegisters() ' en de weergave vernieuwen
ModifyFlag = True ' en de volgende ftp link overslaan downloaden
End Sub
Sub SaveRegistersToLocalFile() ' opslaan register matrix in een lokaal tekstbestand opgeslagen
Dim i As Integer
FileOpen (1, TextBox3.Text, OpenMode.Output) ' het tekstbestand met de naam in het tekstvak openen
Voor i = 0 tot en met 13
PrintLine (1, Str(PicaxeRegisters(i))) ' 14 waarden opslaan
Volgende
FileClose(1) ' Sluit het bestand
End Sub
Sub ReadRemoteFileToRegisters() ' Lees lokaal tekstbestand opgeslagen in de array registreren
Dim i As Integer
Dim LineOfText As String
Probeer
FileOpen (1, TextBox3.Text, OpenMode.Input) ' de bestandsnaam van het externe lezen
Voor i = 0 tot en met 13
LineOfText = LineInput(1) ' lezen in de 14 regels
PicaxeRegisters(i) = Val(LineOfText) ' tekst converteren naar waarden
Volgende
FileClose(1)
Catch ex als uitzondering
FileClose(1) "bestand bestaat niet zo doen niets
Einde proberen
End Sub
Sub ReadFTPFilename() ' dus de naam van de externe ftp-bestand is hetzelfde volgende keer dit programma wordt uitgevoerd
Dim LineOfText As String
Probeer
FileOpen (1, "FTPFilename.txt", OpenMode.Input) ' het bestand openen
LineOfText = LineInput(1)
TextBox3.Text = LineOfText ' de naam lezen
FileClose(1)
Catch ex als uitzondering
FileClose(1)
Einde proberen
End Sub
Sub SaveFTPFilename()
FileOpen (1, "FTPFilename.txt", OpenMode.Output) ' de naam van het externe ftp-bestand opslaan
PrintLine (1, TextBox3.Text)
FileClose(1)
End Sub
Einde klasse

Gerelateerde Artikelen

DIY Kettlebells voor onder $10

DIY Kettlebells voor onder $10

terwijl op zoek naar manieren om onze huidige trainingsprogramma, kwam ik over de Russische Kettlebell.  Kettlebells zijn meestal grijs gietijzer, "kanonskogels" met handvaten.  Zij bieden een grote, goed-rond gemaakte training voor krachttraini
Fundamentele remtrommel Forge voor onder $40

Fundamentele remtrommel Forge voor onder $40

gewoon een basic op een beproefde standaard doorlopen.  De kleine schaal hobbyist smith kolen forge, met upgrades spoedig te komen.  Ik heb vele happy hours in mijn jeugd draaien uit tientallen blad blad werpers gehamerd uit hydraulische lifters met
Ei in een Nest voor onder $4

Ei in een Nest voor onder $4

Mijn man en ik proberen te houden van onze maandelijkse supermarkt factuur ongeveer 350. En aangezien er in het weekend niet wij meestal wakker voor het ontbijt waardoor we 4,60 per maaltijd. Maak je geen zorgen we eigenlijk heel goed eten!Dus toen i
Snel en gemakkelijk, PVC tuin water geven systeem (voor onder $70)

Snel en gemakkelijk, PVC tuin water geven systeem (voor onder $70)

Tuinieren is een van mijn belangrijkste zomeractiviteiten en in de afgelopen jaren, dit mijn tuin (als ze de neiging om te doen) is gegroeid. Met die groei, is de hoeveelheid tijd en water die mijn tuin neemt ook gegroeid.Jarenlang wilde ik een water
Arduino Robot voor onder $5

Arduino Robot voor onder $5

Ik weet dat je altijd al wilde maken van een leger van robots! Maar dan ontdekt u dat je alleen een veroorloven kon of twee.Met dit ontwerp kunt u uw snode plannen te nemen over de hele wereld. Gaan en genieten van het maken van je leger van $5 robot
DIY Build voor een LED-verlichting achter de TV voor onder $20!

DIY Build voor een LED-verlichting achter de TV voor onder $20!

Dit project gemakkelijk en goedkoop is een geweldige manier om uw TV gebied POP werkelijk te maken!Voor dit project voegen we een LED-verlichting achter onze TV op de muur gemonteerd. We vonden deze echt cool, flexibele LED tape op Amazon. Het is mul
3D home cinema voor onder een grote

3D home cinema voor onder een grote

Hallo vrienden,Dit is mijn eerste post op instructables en ik ben opgewonden om te delen met u, mijn avonturen in het bouwen van een goede kwaliteit stereoscopische projectiesysteem.Het begon allemaal echt toen ik zag James Cameron's Avatar in 3D in
Betaalbare Outdoor filmscherm voor onder $50

Betaalbare Outdoor filmscherm voor onder $50

hier beneden in Texas krijgen we niet een heleboel aangenaam buiten weer waarin honger, mammoet-sized insecten niet.  Als de herfst en Winter rond komen proberen we het beste ervan te maken.Dit instructable zal u tonen hoe te maken van een scherm van
DIY Dash Camera voor onder $20

DIY Dash Camera voor onder $20

In dit instructable ik zal u tonen hoe om te zetten van een oude video staat smartphone en enkele willekeurige, gemakkelijk verworven odds en eindigt in een hoogwaardige, multifunctionele dash gemonteerde auto video recorder of Dash Cam. Dit is een g
Griezelig volgende Eye Halloween decoratie voor onder 50 cent

Griezelig volgende Eye Halloween decoratie voor onder 50 cent

Eerst en vooral, gaat alle lof voor deze naar de electric_piano_5k voor het oorspronkelijke idee. Dit is gewoon een afleiding van zijn werk, dat is bedoeld om te worden goedkoper en sneller te bouwen, hoewel niet zo indrukwekkend. De link naar zijn i
NEMEN van satellietbeelden van aarde voor onder de 50$

NEMEN van satellietbeelden van aarde voor onder de 50$

hier is korte video hoe te downloaden van satellietbeelden van aarde voor onder de 50$.Software links:SDR Sharp: http://sdrsharp.com/downloads/sdr-install.zip (Tuner-software)WXtoImg: http://www.wxtoimg.com/ (decodersoftware)Orbitron: http://www.stof
Condensator Mic voor onder $20

Condensator Mic voor onder $20

In dit Instructable zal ik u tonen hoe maak je een eenvoudige condensatormicrofoon voor onder $20. Ik gebruikte een thee-tin voor mijn microfoon het geval, maar u kunt wat werkt voor u.Lijst van onderdelen:Condensator mic cartridge (ik heb de mijne u
Hoe maak je een opvouwbare LED licht-up Bo Staff voor onder $30

Hoe maak je een opvouwbare LED licht-up Bo Staff voor onder $30

ik had ongeveer 15 mensen komen naar me tijdens het weekend (bij elektrische Forest / / Rothbury) en vragen me waar ik mijn LED-personeel kreeg en hoeveel ik betaald voor het. Het lijkt erop dat ik niet de enige ben gefrustreerd dat er slechts echt é
Links voor dood 2 Boomer gal Prop

Links voor dood 2 Boomer gal Prop

Ik bouwde deze boomer gal prop voor een vriend dat Ellis van links voor Dead 2 was cosplaying. Het kostte me een middag te maken en kost me ongeveer 8 dollar.Dingen die ik heb gebruikt:Voss waterflesFles van haargelRode verfWitte verfSchuim BoardDit