Interfaz de Línea de Comandos (CLI) para Arduino UNO: Rápida y Fiable
Componentes y Suministros
- Arduino UNO × 1
Sobre el Proyecto
Una Interfaz de Línea de Comandos (CLI) ligera y eficiente para Arduino, que permite enviar comandos de texto por puerto serie para controlar el dispositivo, consultar variables, mover motores, etc. Ideal para depuración y control interactivo sin necesidad de interfaces gráficas.
Visión Rápida
El loop() principal llama a dos funciones definidas en CommandLine.h:
#include "CommandLine.h"
void setup() {
Serial.begin(115200);
}
void loop() {
bool received = getCommandLineFromSerialPort(CommandLine);
if (received) DoMyCommand(CommandLine);
}
Funcionamiento Interno (CommandLine.h)
- Usa
strtok()(C standard library) para separar tokens (palabras) delimitados por espacios, comas o salto de línea. - Incluye
atoi()para convertir cadenas a enteros. - Maneja retroceso (backspace) en la entrada serie.
- Convierte comandos a minúsculas.
- Ejecuta funciones según el comando recibido (
add,subde ejemplo).
Ejemplo de Comandos
add 5, 10 sub 10, 5
La respuesta se imprime en el monitor serie:
> The sum is = 15 > The difference is = 5
Cómo Añadir tus Propios Comandos
- Define el nombre del comando en
addCommandToken,subtractCommandToken, etc. - Implementa la función correspondiente (
addCommand(),subtractCommand()). - Añade el
if-elseenDoMyCommand().
Código Completo (CommandLine.h)
El archivo completo (muy extenso) incluye: macros de depuración, buffer de 25 chars, parsing con strtok, funciones readNumber() y readWord(), y estructura extensible para añadir comandos ilimitados. Se recomienda copiar el archivo completo desde el proyecto original.
Ventajas: Bajo consumo de memoria (usa C-strings, no objetos String), respuesta rápida, soporte de backspace, fácil extensión.
Proceso de manufactura
- Sensor Inalámbrico Fiable para Entradas Largas – Integración Fácil con Raspberry Pi
- Sensor de Proximidad Infrarrojo de Bajo Coste para Raspberry Pi Usando Solo Pines Digitales
- ANDY – El robot humanoide multipropósito
- Simple Pi Robot: Construye un Rover Autónomo 2‑WD con Raspberry Pi
- Entendiendo las Líneas de Corte Longitudinal de Bobinas de Acero: Transformando Bobinas en Tirillas de Precisión
- Principales Fabricantes de Líneas de Corte a Longitud: Guía Completa
- Dominando los comentarios en C#: Tipos, mejores prácticas y documentación XML
- Dominando las Interfaces en C#: Definición, Implementación y Casos de Uso Prácticos
- Dominando los Argumentos de Línea de Comandos en C: Guía Práctica
- Interfaces en C#: Contratos de diseño para POO robusta
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas