Enlace de microcontrolador en todo el mundo por menos de $20 (8 / 15 paso)

Paso 8: Agregar algo de código

Ver paso 12 del otro instructivo para la ubicación del botón que cambia entre la vista formulario y vista Código. Cambie a vista Código y pegue el siguiente código en. Los colores deben aparecer como en el pantallazo. Si una línea no ha copiado correctamente debido a un problema de wordwrap entonces eliminar espacios hasta que el mensaje de error desaparece. He intentado comentar la mayoría de las líneas por lo que el código tiene al menos algún sentido. Borrar el bit de la clase por lo que el texto está en blanco antes de pegar este - este código ya tiene una clase pública. Si un objeto como una caja de texto no ha sido colocado en el formulario o tiene el nombre equivocado entonces vendrá para arriba en el código de texto con una línea azul ondulada debajo de él.

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
Dim ModifyFlag como Boolean
Privada Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) maneja Me.Load ' necesitan todas estas cosas de la basura - .net pone en automáticamente cuando va form1events arriba / carga
Timer1.Enabled = True ' poner esto en el código como valores por defecto en false cuando se crea
Timer1.Interval = 20000' cada 20 segundos
PictureBox1.BackColor = Color.Gray ' empezar con el gris de la cajas de comunicaciones
PictureBox2.BackColor = Color.Gray
ModifyFlag = False ' si modificar un valor manualmente y luego saltar descargar
RichTextBox1.Multiline = True ' por lo que puede mostrar más de una línea
Llamar DisplayPicaxeRegisters() ' Mostrar los 14 registros
Llamar ReadFTPFilename() ' leer el nombre del disco (guardar cada 20 segundos)
End Sub
Sub SerialTxRx()
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.
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
PicaxeRegisters (i - 4) = DataPacket(i) ' mover el nuevo paquete de datos en la matriz de registro
Siguiente
PictureBox1.BackColor = Color.GreenYellow ' trabajo
Captura como excepción
PictureBox1.BackColor = Color.Red ' no funciona
Prueba final
End Sub
Sub FTPUpload (ByVal Filename como cadena)
Dim Archivo_local As String ' lugar para guardar datos
Dim Archivo_remoto As String ' nombre del archivo es caso sensible esto es realmente importante
Const host As String = "ftp://ftp.0catch.com" ' tenga en cuenta el 0 es un cero no un personaje O
Const username As String = "picaxe.0catch.com"
Const contraseña As String = "picaxetester"
Dim URI como cadena
Archivo_local = nombre_archivo ' tal vez no sea necesario pero si definir una ubicación por ejemplo, c:\mydirectory puede agregar fácilmente de esta manera
Archivo_remoto = "/" + Filename ' archivo en servidor ftp necesita "/" agregado en el frente
URI = host + Archivo_remoto
Tratar de
Dim ftp como System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(URI), System.Net.FtpWebRequest)
ftp.Credentials = New System.Net.NetworkCredential(username, password) ' iniciar sesión en
ftp.KeepAlive = False ' se desconecta una vez hecho
ftp.UseBinary = True ' utilizar comunicaciones binarias
ftp.Timeout = 9000' tiempo de espera después de 9 segundos, muy útiles como ftp a veces muere
' tiempo de espera (y la frecuencia de reloj de 20 segundos) pueden necesitar ser más lenta para las conexiones de acceso telefónico a redes
ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile ' empezar a enviar archivo
Dim fs como nuevo FileStream(localFile, FileMode.Open) ' Abrir archivo local
Dim filecontents(fs. Byte de longitud) como ' leer en memoria
FS. Leer (Contenidosdearchivo, 0, fs. Longitud)
FS. Close() ' cerrar el archivo
Dim requestStream como secuencia = ftp.GetRequestStream() ' iniciar enlace ftp
requestStream.Write (Contenidosdearchivo, 0, Contenidosdearchivo. Longitud) ' enviar
requestStream.Close() ' cerrar el enlace
PictureBox2.BackColor = Color.GreenYellow ' cambiar el cuadro verde a decir funcionó ok
Label2.Text = "FTP conectado" ' texto diciendo conectado
Catch ' no puede conectarse
PictureBox2.BackColor = Color.Red ' caja roja como sin conexión
Label2.Text = "FTP Upload error" ' texto diciendo conexión falló
Prueba final
End Sub

Sub FTPDownload (ByVal Filename como cadena)
' descargas archivo_remoto a archivo_local
Dim Archivo_local As String ' lugar para guardar datos
Dim Archivo_remoto As String ' nombre del archivo es caso sensible esto es realmente importante
Const host As String = "ftp://ftp.0catch.com"
Const username As String = "picaxe.0catch.com"
Const contraseña As String = "picaxetester"
Dim URI como cadena
' Archivo_local = "C:\" + nombre del archivo ' guardar en directorio raíz pero puede cambiar esto
Archivo_local = nombre de archivo ' para que pueda añadir c:\ si necesita definir ubicación real
Archivo_remoto = "/" + Filename ' añadido a la ubicación de ftp remoto
URI = host + Archivo_remoto ' conforman la dirección completa
Tratar de
Dim ftp como System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(URI), System.Net.FtpWebRequest)
ftp.Credentials = New System.Net.NetworkCredential(username, password) ' iniciar sesión en
ftp.KeepAlive = False ' se desconecta después de terminado
ftp.UseBinary = True ' modo binario
ftp.Timeout = 9000' tiempo de espera después de 9 segundos
ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile ' descargar un archivo
' leer en piezas como no saben cuán grande es el archivo
Con respuesta como System.Net.FtpWebResponse = CType (ftp.GetResponse, System.Net.FtpWebResponse)
Utilizando responseStream como IO. Corriente = respuesta. GetResponseStream
Utilizando fs como nuevo IO. FileStream (Archivo_local, IO. FileMode.Create)
Dim buffer(2047) como Byte
Dim Lee As Integer = 0
Hacer
leer = responseStream.Read (buffer, 0, tampón. Longitud) ' pieza de ftp
FS. Escribir (buffer, 0, Lee) ' y escribir presentar
Loop hasta que leer = 0' hasta no mas piezas
responseStream.Close() ' cerrar el archivo ftp
FS. Flush() ' ras claro
FS. Close() ' y cierre el archivo
Extremo usando
responseStream.Close() ' cerrar aunque nada estaba allí
Extremo usando
respuesta. Close()
PictureBox2.BackColor = Color.GreenYellow ' verde caja como trabajó
Label2.Text = "FTP conectados" "y texto diciendo que trabajó
Extremo usando
Catch ' poner aquí los códigos de error
PictureBox2.BackColor = Color.Red ' rojo de la caja ya no funciona
Label2.Text = "FTP Descargar Fail" ' y mensaje para decir esto
Prueba final
End Sub
Privada Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Timer1.Tick
Si ModifyFlag = False Then ' si el usuario cambia un byte entonces no descarga
Label3.Text = "Descargando"
System.Windows.Forms.Application.DoEvents() ' por lo que muestra el nuevo texto de la etiqueta
Llamar FTPDownload(TextBox3.Text) ' Descargar archivo remoto
Label3.Text = "Descargado"
System.Windows.Forms.Application.DoEvents()
Llamar ReadRemoteFileToRegisters() ' Guardar números de archivo en el array de registro
Label3.Text = "Hablando con picaxe"
System.Windows.Forms.Application.DoEvents()
Otra cosa
ModifyFlag = False ' restablecer la bandera
End If
Llamar SerialTxRx() ' enviar a lo picaxe y leer hacia atrás
Label3.Text = "enviado y recibido de picaxe"
System.Windows.Forms.Application.DoEvents()
Llamar al DisplayPicaxeRegisters()
Llamar SaveRegistersToLocalFile() ' guardar los números en archivo
Label3.Text = "Subir"
System.Windows.Forms.Application.DoEvents()
Llamar FTPUpload(TextBox3.Text) ' enviar hasta sitio ftp denominado como mi nombre
Label3.Text = "Descansando"
Llamar al SaveFTPFilename() ' por lo que lee al reinicia
End Sub
Sub DisplayPicaxeRegisters()
Dim te como entero
Dim registernumber As String
RichTextBox1.Multiline = True ' por lo que puede mostrar más de una línea en el cuadro de texto
RichTextBox1.Clear() ' limpiar el cuadro de texto
Para i = 0 a 13
registernumber = Trim(Str(i)) ' ajuste off lleva espacios
Si yo < 10 entonces
registernumber = "0" + registernumber ' Añadir 0 para números menores de 10
End If
RichTextBox1.AppendText (registernumber + "=" + Str(PicaxeRegisters(i)) + Chr(13))
Siguiente ' Chr (13) es tan nuevo retorno de carro de línea
End Sub

Privada Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) maneja Button1.Click
Dim te como entero
' Compruebe fuera de rango primero
i = Val(TextBox1.Text)
Si yo < 0 o i > 13 entonces
TextBox1.Text = 0
End If
i = Val(TextBox2.Text)
Si yo < 0 o i > 255 entonces
TextBox2.Text = 0
End If
PicaxeRegisters(Val(TextBox1.Text)) = Val(TextBox2.Text) ' cambiar el valor
Llamar al DisplayPicaxeRegisters() ' y actualizar la pantalla
ModifyFlag = True ' y enlace ftp skip descargando
End Sub
Sub SaveRegistersToLocalFile() ' guardar array de registro en un archivo de texto local
Dim te como entero
FileOpen (1, TextBox3.Text, OpenMode.Output) ' abrir el archivo de texto en el cuadro de texto
Para i = 0 a 13
PrintLine (1, Str(PicaxeRegisters(i))) ' guardar 14 valores
Siguiente
FileClose(1) ' cerrar el archivo
End Sub
Sub ReadRemoteFileToRegisters() ' leer archivo de texto local en la matriz de registro
Dim te como entero
Dim LineOfText como cadena
Tratar de
FileOpen (1, TextBox3.Text, OpenMode.Input) ' leer el nombre del archivo remoto
Para i = 0 a 13
LineOfText = LineInput(1) ' leer en las 14 líneas
PicaxeRegisters(i) = Val(LineOfText) ' convertir texto a valores
Siguiente
FileClose(1)
Captura como excepción
FileClose(1) ' no existe así que no nada
Prueba final
End Sub
Sub ReadFTPFilename() ' para el nombre del archivo ftp remoto es lo mismo la próxima vez que se ejecuta este programa
Dim LineOfText como cadena
Tratar de
FileOpen (1, "FTPFilename.txt", OpenMode.Input) ' abrir el archivo
LineOfText = LineInput(1)
TextBox3.Text = LineOfText ' leer el nombre
FileClose(1)
Captura como excepción
FileClose(1)
Prueba final
End Sub
Sub SaveFTPFilename()
FileOpen (1, "FTPFilename.txt", OpenMode.Output) ' guardar el nombre del archivo ftp remoto
PrintLine (1, TextBox3.Text)
FileClose(1)
End Sub
Clase final

Artículos Relacionados

Cómo hacer la catapulta de mano más simple en el mundo por menos de un dólar!

Cómo hacer la catapulta de mano más simple en el mundo por menos de un dólar!

Esto es una catapulta simple y fácil que puede utilizarse para la diversión o simplemente como un proyecto (escuela, etc.). Lo grande es que sólo cuesta aproximadamente un dólar para hacer. BARATO!Paso 1: fuentes de Perchas plásticoPerchero de metal
Todo el mundo necesita un multímetro

Todo el mundo necesita un multímetro

un multímetro puede salvar una persona promedio mucho dinero durante años, a pesar de que las señoras que eligen comprar uno no pueden llevarlo en su bolso al salir por la noche. A menudo será capaz de resolver muchos problemas en menos tiempo del qu
Cómo cuidar el dulce jazmín rosa todo el mundo ama

Cómo cuidar el dulce jazmín rosa todo el mundo ama

Si una planta tiene un programa de televisión sería: "Todo el mundo ama a jazmín". Todo el mundo pero yo y un puñado de mis compañeros jardineros que es. El objeto de rosa jazmín, también conocido como el Jasminum polyanthum, adoración es las fl
Cómo participar en el Anti-Yo en todo el mundo Video Yoyo concurso

Cómo participar en el Anti-Yo en todo el mundo Video Yoyo concurso

anunciados los ganadores! Ver quién ganóaquí.Entusiastas del yoyo de atención!¿Quieres ganar $350 edición limitadayoyo BSP deAnti-Yo, antes de llega al mercado?Instructables es asociándose conAnti-Yo para el concurso de Yoyo Video en todo el mundo, a
'Los endebles Egon' Anti-yo en todo el mundo Yoyo concurso de Video

'Los endebles Egon' Anti-yo en todo el mundo Yoyo concurso de Video

http://www.youtube.com/watch?v=lFbxF7pEiK8Aquí está mi entrada de vídeo para el Anti-yo en todo el mundo Yoyo concurso de Video. Llamo este truco 'Los endebles Egon'Nota: La primera vez que el truco se hace en la velocidad es resolvió hacer en. La se
Un truco tarjeta de todo el mundo puede hacer

Un truco tarjeta de todo el mundo puede hacer

un relelitivly simple truco todo el mundo puede hacer, y funciona cada vez.Paso 1: configuración Las tarjetas sólo necesita para este truco son las tarjetas de la cara (Reyes, reinas y tomas, si no sabes) y ases.Arreglar los coches como tal:Paso 2: c
¿Cómo redecorar la oficina cuando todo el mundo es lo que

¿Cómo redecorar la oficina cuando todo el mundo es lo que

ha siempre demostrado para arriba en 10:30 en la mañana del viernes y fue mirando para ver si alguien más quiere ir a buscar donuts con ustedes sólo para descubrir que no hay un solo vive el ser humano en la Oficina toda?Sólo entonces, puede revisar
Todo el mundo del Coffeecake favorito

Todo el mundo del Coffeecake favorito

cuando digo todo el mundo le encanta este pastel de café, me refiero a todo el mundo! Esto ha sido un éxito con el equipo de campo a través, equipo de natación y las mamás de los atletas. Es tan buena con una taza de café en la mañana como en la noch
Cómo hacer postales de todo el mundo y hacer amigos también!

Cómo hacer postales de todo el mundo y hacer amigos también!

¿Cómo le gustaría conseguir postales muy cool de todo el mundo de personas reales? Este instructable le guía a través del proceso simple de usar PostCrossings un sitio que conecta emisores de tarjeta postal de todo el mundo.Paso 1: A PostCrossings Pr
Quesadilla de pollo mejor del mundo por debajo de 4 dólares!

Quesadilla de pollo mejor del mundo por debajo de 4 dólares!

Cuando fui creciendo estaba constantemente haciendo quesadillas porque eran rápida, fácil y barata hacer, así como ser muy deliciosa. Una quesadilla se define como una tortilla con queso fundido en el interior. Pero además de queso hay varios otros i
Tronco en todo el mundo: Aplicación móvil hecha a mano

Tronco en todo el mundo: Aplicación móvil hecha a mano

instrucciones para hacer su registro de Yule en todo el mundo: aplicación móvil con la tarjeta de vacaciones Drillteam.¿(No está en nuestra lista? Escríbenos a wwyl y te enviaremos uno.)El leño amplia de mundo comenzó vertiendo su resplandor LED de b
Sencillo pollo al limón (para todo el mundo, incluso robots)

Sencillo pollo al limón (para todo el mundo, incluso robots)

nunca tenía un hueso en su cuerpo que podría hacer cualquier cosa? puede estropear incluso las cosas en caja de la cocina? Bueno aqui les dejo una receta sencilla que literalmente cualquiera puede hacer, (él él él él) incluso mi marido... lo mejor de
¿Todo el mundo piensa como durian? O ¿cuáles son los beneficios de comer durian?

¿Todo el mundo piensa como durian? O ¿cuáles son los beneficios de comer durian?

Para ver a gente come durian con fruición, yo también quiero comer, pero realmente apesta, por lo tanto no todavía probado el gusto de durian, todo el mundo ¿cómo cree que durian? O ¿cuáles son los beneficios de comer durian?
Empresa de mudanzas en todo el mundo - siendo preparado con información precisa es fundamental

Empresa de mudanzas en todo el mundo - siendo preparado con información precisa es fundamental

Muchas complejidades están involucrados en el transporte marítimo en todo el mundo. Sin embargo, puede simplificar el proceso en primer lugar por forearming con el tipo de información sobre el país donde usted necesita para enviar sus mercancías y se