Terminal de Arduino (13 / 16 paso)

Paso 13: código!

Cuando se compila un proyecto, el software es lo que une el proyecto. Usted podría tener un terminal de aspecto increíble, pero no hace nada. Es no lo que usted vino aquí a construir. Usted vino aquí para una terminal de trabajo extensible. Y eso es lo que va a hacer.

Conexión es un enlace a Github con algo de código, que tiene unos pocos comandos. No hace demasiado tanto en las formas de cálculos avanzados y predecir cuándo la próxima vez que se cae por las escaleras, pero posiblemente podría hacerlo hacerlo! Los comandos ir como sigue:

ayuda - muestra todos los comandos que se pueden hacer. Ejemplo: ayudar a

rfile directory/file.extension - salidas el contenido de un archivo a la pantalla. No rellene el directorio o directorios si desea leer un archivo en la carpeta raíz de la tarjeta SD. Ejemplo: rfile folder/test.txt

directorio lfile - muestra todos los archivos y directorios con tamaños de pantalla. Los tamaños están a la derecha del archivo y es un '/' si es un directorio. Ejemplo: lfile carpeta/another_folder

Equivalente a pulsar la tecla 'Reset' botón reset - sus escudos Arduino/cualquiera que tengan uno. Ejemplo: reset

cls - borra la pantalla, tarda 2,5 segundos para él para despejar de arriba a abajo y está listo para escribir comandos otra vez.

Nota: Para que todo funcione, usted tendrá que instalar algunas librerías. Estas bibliotecas están en la parte inferior de este paso, con mi página de Github.


Agregando comandos son tan simples como sigue:

En línea de aproximadamente 138 del Terminal.ino, hay una función llamada 'runCommand(String args)'

Esto es donde van todos sus comandos. Veamos el comando 'rfile' en la línea 154.

Debería ver algo como esto:

 String tmp; String tmp2; tmp2 = args; if (args.indexOf(" ") > -1) { tmp = args.substring(args.indexOf(" ")); tmp2.replace(tmp, ""); tmp2.replace(" ", ""); // first was " -" tmp = tmp2; } else { tmp = args; } ... if (tmp == "rfile") { if(args.indexOf(" ") == 5) { String temp = args.substring(6); Tft.drawString("Opening file.", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); fileFunct("read", temp); temp = ""; } else { Tft.drawString("Try: rfile file.txt", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); } } ... else { Tft.drawString("Unknown!", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); } 

Vamos a romper este hasta los huesos desnudos.

Vamos a empezar con el código al principio:

 String tmp; String tmp2; tmp2 = args; if (args.indexOf(" ") > -1) { tmp = args.substring(args.indexOf(" ")); tmp2.replace(tmp, ""); tmp2.replace(" ", ""); tmp = tmp2; } else { tmp = args; } 

Para empezar,

 String tmp; String tmp2; 

Son sólo variables de ajuste, tmp y tmp2. Éstos se restablecen cada vez que un comando se pasa a través, por lo tanto el nombre abreviados, 'temporal'.

 tmp2 = args; 

Hace una copia de lo que es introducido cuando se presiona la tecla ENTER, como 'args' se pasa como el núcleo de entrada.

Este pequeño pedazo de código:

 if (args.indexOf(" ") > -1) { 

Comprueba que el índice de carácter de espacio es más de -1, también conocido como allí es un carácter de espacio. Comandos sin argumentos no tendrá esto.

Ahora tiempo mirar esto:

 tmp = args.substring(args.indexOf(" ")); tmp2.replace(tmp, ""); tmp2.replace(" ", ""); tmp = tmp2; 

Esto, en el orden de las líneas, hace algo como esto:

Establecer la cadena de 'tmp' todo después e incluyendo el carácter de espacio.

A continuación, obtener la copia de la orden entera, tmp2 y quitar los caracteres del argumento, para que se queden con solo el comando principal, sin ningún argumento.

Ahora cambie ese carácter espacio molestos con nada.

A continuación, establezca el tmp de la cadena en el valor de tmp2.

Después de que el bloque pequeño de código verás:

 else { tmp = args; } 

Que dice, porque no hay args, establezca la variable 'tmp' en el valor de 'args' para que 'tmp' puede ser registrado.

Ahora el código está listo para comprobar qué comando es ponerlo. Ahora tiempo para el siguiente bloque de código.

 if (tmp == "rfile") { if(args.indexOf(" ") == 5) { String temp = args.substring(6); Tft.drawString("Opening file.", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); fileFunct("read", temp); temp = ""; } else { Tft.drawString("Try: rfile file.txt", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); } } 

El código:

 if (tmp == "rfile") { 

Comprueba que la cadena 'tmp' (el bloque de comando principal) es el comando 'rfile'.

Avanzando,

 if(args.indexOf(" ") == 5) { 

Asegura que hay un espacio en el índice de 5, que en este comando es justo después de 'rfile'. Puesto que la codificación y números comienzan en el índice de 0, este número debe ser la longitud del comando. Un ejemplo de esto sería:

r -> 0

f -> 1

-> 2

l -> 3

e -> 4

[Espacio] -> 5

 String temp = args.substring(6); 

Este código crea una nueva cadena, otra vez reiniciar cada vez que se ejecuta la función de comando, que es igual a un entero más que el número que utilizó en la última parte. Ej.: Si el número es 5, como utiliza, este número será e 6. Esto crea al temp de la cadena de argumentos. Ej: Si el comando, carpeta rfile, fue puesto, temp es carpeta.

Ahora, como el siguiente código no es necesario en la fabricación de sus propios comandos con otras funciones, yo brevemente se descremada sobre esto.

 Tft.drawString("Opening file.", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); fileFunct("read", temp); temp = ""; 

En orden, línea por línea, esto es lo que hace el código:

Dibuja una cadena "Abriendo archivo." la última de X e Y valoran conjunto.

Esto establece el valor Y uso la próxima vez que algo se escribe en la carta de pantalla 1 (o 10 píxeles) hacia abajo.

El valor de X se establece en 0, así que la próxima vez que algo se escribe en la pantalla, está empezando en el borde de la pantalla.

Esta es la función principal del comando rfile. Esta es una función de tipo vacío, que lleva dos cadenas, que la primera de ellas tiene que ser "leído", y el nombre del archivo es temp, o los argumentos.

Esto sólo se restablece la temperatura, en caso de que algo raro sucede que es inesperado.

Ahora, el código está casi listo para este comando. Queda dos piezas pequeñas, que se ve así:

 else { Tft.drawString("Try: rfile file.txt", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); } 

Que se llama si no hay ningún carácter de espacio, o se pone en el lugar equivocado.

Esto se muestra en la pantalla, "probar: rfile archivo.txt" en rojo, entonces crea una nueva línea.

 else { Tft.drawString("Unknown!", getX(), getY(), 1, RED); setY(getY() + 10); setX(0); } 

Esto se llama cuando el comando es desconocido.

Esto se muestra en la pantalla "Desconocido!" en rojo, entonces crea una nueva línea.

Bueno, que es realmente cómo funcionan los comandos, pronto añadirá comentarios todo el código en Github, diciendo lo que todo lo hace.

GitHub:

https://github.com/RubbaBoy/ArduinoTerminal

Nota: se agregarán más funciones a este proyecto y actualizar cosas, entonces no te preocupes si algo no funciona correctamente, o quiere un nuevo comando.

Bibliotecas:

Biblioteca de teclado PS/2:

http://www.pjrc.com/Teensy/arduino_libraries/PS2Ke...

Seeed Studio 2.8'' TFT Touch pantalla V1.0 biblioteca:

https://github.com/Seeed-Studio/TFT_Touch_Shield_V...

Seeed Studio Ethernet Shield V2.0

https://github.com/Seeed-Studio/Ethernet_Shield_W5...

Artículos Relacionados

Confiable, seguro, control remoto de SMS personalizables (Arduino/pfodApp) - No codificación requerida

Confiable, seguro, control remoto de SMS personalizables (Arduino/pfodApp) - No codificación requerida

Actualización: 19 de mayo de 2015: uso del biblioteca pfodParser Versión 2.5 o superior. Corrige un problema reportado de no permitir tiempo suficiente para que el escudo para conectarse a la red después de haber encendido arribaIntroducciónCómo es p
Fuente de alimentación fuente de alimentación de ATX vieja con Arduino y pantalla del Banco

Fuente de alimentación fuente de alimentación de ATX vieja con Arduino y pantalla del Banco

Hola a todos y Bienvenidos a mi primer Instructable.Siempre he querido tener un banco PSU para facilitar el acceso a una fuente de energía y algo que puedo confiar en el cuando se trabaja en varios proyectos. Quería una PSU que:• proporciona 12v, 5v
Arduino Shield celular Tutorial

Arduino Shield celular Tutorial

The Arduino Shield celular le permite hacer llamadas de teléfono celulares y enviar mensajes de texto. El cerebro de este escudo es el SM5100B que es un robusto módulo celular capaz de realizar muchas de las tareas de la mayoría de los teléfonos celu
Cómo hacer un coche de Rc por cable utilizando un Arduino

Cómo hacer un coche de Rc por cable utilizando un Arduino

Voy a mostrarte cómo hacer un coche RC con un arduinoPaso 1: materiales2 unos de Arduino (que es lo que he usado).Los cables de puente y de macho a hembra de los cables2 joysticks de Arduino2 pilas de 9vbatería de coche RC recargable de 1 9.6v1 Torre
Función de Arduino Serial.read() y Serial.readString()

Función de Arduino Serial.read() y Serial.readString()

Serial monitor de Arduino es una característica muy útil. Serie se utiliza para ver recibir datos, enviar datos, imprimir datos y así sucesivamente. Serie monitor está conectado con el Arduino a través de comunicación serial. Esta comunicación serial
Interface MP3 para Arduino: fácil y barato

Interface MP3 para Arduino: fácil y barato

he añadido una continuación a este Instructable:La continuación muestra cómo diseñar, grabar y construir un escudo de PCB para conectar el MP3 al Arduino. Reemplaza los conmutadores analógicos con un 74HC244. Tablero de una sola capa con diseño de co
RGB LED partido luz

RGB LED partido luz

Aquí es cómo usted puede utilizar un LED RGB como una luz de arco iris partido continuamente viajando a través del espectro visible. Lo que se necesita es:-LEDs RGB 1 o muchos-1 tablero de Arduino UNO; puede ser otras placas de la marca de Arduino-un
Base de prototipos de Robot multiusos madera contrachapada

Base de prototipos de Robot multiusos madera contrachapada

Por qué gastar tu dinero en robot confeccionado de metal o acrílico bases cuando se puede hacer uno usted mismo! sí, así que este instructable va a enseñar cómo hacer una plataforma base de madera contrachapada robot prototipo. Seguramente necesite c
Tuyo, mío y de AUR

Tuyo, mío y de AUR

el hecho de que el Repository(AUR) de usuario de Arch no es fácilmente accesible desde pacman puede ser frustrante para los nuevos usuarios de Arch Linux y su derrivatives. Peor aún es que muchos programas populares como el IDE de Arduino en el AUR.
Prototipo de cerradura RFID bicicleta

Prototipo de cerradura RFID bicicleta

Bienvenidos a mi tutorial concepto de cerradura RFID bicicleta,Acabo de recibir mi Chip RFID de www.dangerousthings.com implantado en mi brazo y pensé sobre cosas que hacer con él.Lo primero que pensé fue escribir mi voluntad y órgano donar datos al
Indicador de nivel de agua increíblemente lindo árbol de Navidad

Indicador de nivel de agua increíblemente lindo árbol de Navidad

Y he aquí! Un pastorcillo de Playmobil visto el nivel del agua en nuestro árbol de Navidad están por la noche. Cuando hay suficiente agua, su linterna verde. Cuando hay muy poco, su linterna se ilumina en roja. Pero esperar. Tu mente ha pasado en otr
Inalámbrico de alarma aparcamiento

Inalámbrico de alarma aparcamiento

¿Son que usted o sus esposa/hijos han aprendido a conducir un coche y se teme que una fea abolladura en él mientras lo estacionamiento? No te preocupes, este proyecto es sólo para ti! El tema ya dice mucho sobre el proyecto pero todavía que dice, es
Construir un Laser de corte y soldadura con brazo Robot Dobot

Construir un Laser de corte y soldadura con brazo Robot Dobot

En este proyecto instructable, construimos un laser de corte y soldadura con brazo Dobot. La alta precisión Dobot brazo de robot se compone de marco 6061 y fabricada con CNC. Su precisión de maquinaria es de 0,02 mm y precisión de la repetición es 0,
Automatizado de coche

Automatizado de coche

Este instructivo pretende ofrecer un método de convertir un coche de control remoto en un coche automático. El resultado final es un vehículo que puede responder a su entorno a través de un sensor de proximidad y por lo tanto codificada para conducir