Arduino es una plataforma de código abierto muy popular entre los aficionados para proyectos de hardware que requieran un microcontrolador. La plataforma consta de placas de desarrollo fáciles de usar que se programan mediante Arduino IDE. Con solo una placa Arduino y algunos componentes adicionales, puedes crear un montón de proyectos interesantes.
A veces, es una buena idea hacer una prueba de tu diseño antes de comprar todos los componentes e invertir mucho tiempo en su montaje. Y eso es precisamente lo que te permite hacer un simulador Arduino. Simula componentes físicos y placas Arduino virtualmente para que puedas probar el circuito que hayas diseñado e incluso su código antes de montarlo en la vida real.
El uso de un simulador suele ser el método más productivo para crear prototipos de un diseño en sus primeras fases. Dicho esto, también tiene algunas desventajas, que analizaremos en breve.
En este artículo, hablaremos de algunos de los mejores simuladores Arduino disponibles (tanto online como offline), de los factores que tuvimos en cuenta a la hora de seleccionarlos y de cómo elegir el simulador ideal para responder a tus necesidades.
Sin más dilación, ¡empecemos!
Para empezar, veamos las opciones disponibles en Internet. Para usar estos productos, necesitarás un navegador y una buena conexión a Internet, pero no es necesario descargar ningún programa.
En Microsoft Maker Code, la creación de simulaciones con varias placas, incluidos modelos Arduino, se realiza mediante bloques visuales, lo que lo hace accesible incluso para quienes no tienen experiencia previa en codificación. También se puede optar por programar en Python o JavaScript. Todo en este entorno es muy intuitivo, y una vez que domines los conceptos básicos, podrás crear excelentes simulaciones.
A pesar de ser una plataforma online, también puedes conectar dispositivos físicos. Tendrás acceso a una gran variedad de extensiones para sensores y otros componentes, de gran ayuda para las simulaciones. Además de las funciones más básicas, hay extensiones más avanzadas. Estas se encuentran más abajo en el panel y te ofrecen funciones adicionales como un joystick, sensores o incluso comandos para soporte de lápices USB y almacenamiento flash.
La interfaz de usuario resulta bastante sencilla: muestra un panel ilustrativo con animaciones a la izquierda y el panel de programación por bloques a la derecha. Algunos comandos de salida muestran resultados incluso sin que haya un Arduino o un componente conectado, como ocurre con el sonido. Además, puedes imprimir el diagrama de cableado electrónico como ayuda para el montaje físico.
Veamos un ejemplo básico de una operación:
Tinkercad Circuits es un servicio gratuito y online de Autodesk disponible desde 2017. Probablemente se trate del simulador Arduino más fácil de usar. Este servicio te permite diseñar fácilmente tus propios circuitos, crear un programa en formato de bloques o de texto y, posteriormente, depurarlo.
La simulación de las placas Arduino y las interfaces de E/S y la interacción con el código funcionan a las mil maravillas. Además, podrás descargar el código y compartirlo con otros creadores.
Por supuesto, tiene limitaciones. Tinkercad te permite utilizar cualquier elemento de su biblioteca, pero no te permite añadir nuevas opciones de componentes (módulos Arduino, diferentes modelos de placas Arduino, sensores Arduino) ni modificar los elementos disponibles en la biblioteca. Algunos de los componentes más básicos, como las resistencias, se pueden parametrizar, pero esta opción no existe en el caso de los microcontroladores, y para Arduino, solo existe el modelo Arduino Uno R3.
Si quieres probar Tinkercad, tendrás que registrarte, eligiendo una cuenta de educador, de estudiante o personal.
Para echar un vistazo al programa sin necesidad de registrarte, puedes probar esta cinta métrica virtual. Una vez que hayas abierto el enlace:
¡Y funciona! Las distancias en la pantalla LCD son iguales a los datos mostrados por el sensor. Para saber más, consulta nuestro artículo sobre cómo diseñar y simular circuitos en Tinkercad.
Wokwi se basó originalmente en AVR8js, una implementación basada en JavaScript de la arquitectura AVR de 8 bits. Es la misma familia de microcontroladores que utilizan los Arduino Uno, Nano y Mega. En los últimos años, también han integrado un par de plataformas populares como ESP32, STM32 y RP2040 (Raspberry Pi Pico). La lista completa de hardware compatible está disponible en su sitio web.
La forma más fácil de iniciarse es ir a la página de inicio, donde puedes elegir la plataforma que quieras probar (por ejemplo, Arduino). A continuación, puedes explorar los proyectos que contiene y simularlos. También puedes modificar el código y el esquema del circuito modificando el archivo diagram.json o simplemente arrastrando el nuevo componente al circuito. Para obtener consejos e instrucciones, hay una guía bastante recomendable sobre cómo utilizar el editor de diagramas.
Si quieres guardar tu trabajo, tendrás que registrarte en Google o GitHub. Después de registrarte, verás un pequeño menú (en la esquina superior derecha de la pantalla) con una opción llamada «My Projects», donde puedes crear y organizar tus proyectos.
WokWi permite crear o añadir componentes personalizados, así como subir librerías personalizadas, acerca de las cuales se habla con más detalle en su documentación. Para los usuarios avanzados, también existe la opción de utilizar el depurador interactivo y el analizador lógico para depurar mejor el código.
El desarrollador y la comunidad son muy activos, y Wokwi ha evolucionado rápidamente gracias a su modelo de código abierto, que fomenta un entorno de colaboración. Desde el canal de Discord y el grupo de LinkedIn, puedes consultar dudas y recibir soporte, incluso por parte del desarrollador.
En cuanto a los precios, Wokwi tiene un nivel gratuito para proyectos de código abierto, lo que significa que todo el mundo puede ver los archivos de tu proyecto. Esta opción debería ser suficiente para la mayoría de los usuarios, aunque no permite cargar bibliotecas personalizadas.
Para los aficionados más avanzados, los niveles de pago denominados Hobby y Hobby+ ofrecen algunas funciones adicionales, como proyectos privados, bibliotecas personalizadas e integración con Visual Studio Code. Por último, el nivel Wokwi Pro permite crear proyectos comerciales y ofrece un tiempo de creación más rápido y la capacidad de ejecutar una pasarela IoT privada, entre otras características.
Aquí tienes un programa de prueba:
¡Funciona! Las distancias de la pantalla LCD son prácticamente iguales a los datos mostrados por el sensor.
Los siguientes simuladores están disponibles tanto online como offline, por lo que pueden responder a diferentes necesidades.
Virtual Breadboard es una app de Windows Store. La interfaz es fácil de usar y te permite diseñar fácilmente tus propios circuitos (arrastrando y soltando los distintos elementos). También puedes cargar tus sketches en formato HEX desde el entorno de desarrollo integrado de Arduino, Arduino Create, PlatformIO, Visual Studio, etc.
Dentro de sus funcionalidades, se incluye la posibilidad de simular una placa Arduino, interfaces de E/S y la interacción de los programas. Además, puedes exportar tu proyecto en formato SVG y KiCad. Lo que hace especial a Virtual Breadboard es la inclusión de hardware virtual de realidad mixta y la posibilidad de remodelar el hardware.
El simulador es un poco restrictivo en el sentido de que no puedes crear o añadir tus propias piezas y componentes ni crear tus propios programas desde la interfaz del software. Finalmente, tampoco puedes exportar placas y esquemas para la fabricación de placas de circuito impreso (PCB).
Para probar la cinta métrica virtual, descarga el software e instálalo en tu PC. Una vez hecho esto, puedes empezar a utilizar la caja de herramientas Toolbox para añadir tus componentes haciendo clic sobre ellos y arrastrándolos. Por ejemplo: Toolbox > Integrated circuits > ATMega328p.
Ahora puedes cargar tu archivo HEX simplemente arrastrándolo, pero recibirás el siguiente mensaje de error que te sugiere que adquieras una licencia para habilitar los componentes sin licencia actualmente:
Unlicensed components: ATMega328Uno
Consider purchasing a license to enable these components at runtime
Para comprobar si nuestro programa de prueba funciona, necesitarás una licencia. Entonces:
¡Funciona! Y las distancias de la pantalla LCD coinciden con los datos que muestra el sensor.
Si no quieres comprar una suscripción, puedes probar los ejemplos beta en línea.
PICSimLab es un emulador en tiempo real de placas de desarrollo que integra un depurador MPLAB X/AVR-GDB. Es compatible con algunos microcontroladores PICSim y Simavr. PICSimLab cuenta con integración con el entorno de desarrollo integrado (IDE) MPLAB X de Arduino para programar placas de microcontroladores.
Puedes diseñar tus propios circuitos, cargar archivos HEX o realizar cargas directamente desde el IDE de Arduino. También puedes simular interfaces de entrada y salida de Arduino y la interacción con otros programas. Los usuarios avanzados pueden crear o añadir sus propias piezas y componentes, pero tampoco en este caso es posible diseñar placas y esquemas ni exportarlos para la fabricación de placas de circuitos impresos.
Finalmente, aquí tienes algunas opciones disponibles para descarga y con las que puedes trabajar sin necesidad de estar conectado a Internet mientras creas tus simulaciones.
Flowcode es una plataforma de programación gráfica con un IDE (o entorno de desarrollo integrado) para varios controladores como PIC, AVR, ARM, ESP o Raspberry Pi. Además de simular fácilmente un Arduino, ofrece una amplia gama de componentes de prueba y visualización de entornos 3D o 2D. Solo con hacer clic y arrastrar, puedes incluir bloques de comandos editables en un diagrama de flujo para probar tu Arduino ¡sin ni siquiera cambiar de pantalla! Echa un vistazo a este vídeo de YouTube de StudentCompanion Electronics para ver el programa en acción.
Flowcode es bastante intuitivo y adecuado tanto para los usuarios que empiezan como para aquellos que ya tienen cierta experiencia previa. Cuenta con la capacidad única de importar modelos 3D en formatos de archivo MESH, STEP y OBJ, lo que lo hace perfecto para experimentar con sistemas electromecánicos en cuya representación digital se pueden integrar motores, servos y actuadores.
Hay una versión gratuita de Flowcode disponible para fabricantes y aficionados registrados, con mucho que ofrecer y sin limitaciones en el tamaño de los proyectos. Las versiones Pro y Academic incluyen algunas funcionalidades especiales relacionadas con la depuración, los paradigmas y la documentación. Flowcode explica detalladamente todas las diferencias en su sitio web. Está disponible en seis idiomas.
Además de la guía de iniciación y de un vídeo formativo para principiantes, podemos ver nuestro programa de prueba para hacernos una idea de cómo será un flujo de trabajo:
SimulIDE es un simulador de circuitos electrónicos en tiempo real con simulación PIC, AVR y Arduino. SimulIDE tiene una interfaz bastante «espartana», que pretende ser rápida, sencilla y fácil de usar.
Puedes diseñar tus propios circuitos y programarlos con un editor de código y un depurador para GcBasic, Arduino, PIC y AVR. SimulIDE también cuenta con un canal de YouTube con más de 45 vídeos.
Al igual que en los ejemplos anteriores, no puedes crear tus propias piezas o componentes (aunque podrías pedirlo en el foro o en Patreon). Tampoco es posible diseñar placas y esquemas ni exportarlos para la fabricación de placas de circuitos impresos.
Para crear nuestro ejemplo, probaremos la versión gratuita. Hay dos maneras de hacerlo:
A pesar de su nombre, Arduino IO Simulator se utiliza para probar componentes y requiere de un Arduino físico conectado al ordenador para usarlo. Al ejecutar un código o ejemplo en el Arduino conectado al PC, puedes interactuar con este a través de los sensores y componentes del simulador. En la versión gratuita, necesitas estar conectado mediante un cable USB y utilizar un puerto COM, pero en la versión Pro, es posible emular puertos mediante el protocolo TCP y así conectarte a través de wifi. Actualmente, la versión Pro está disponible de forma gratuita.
La idea del programa es facilitar la realización de una prueba si no tienes todos los componentes o comprobar rápidamente cómo se comporta tu código. Todo está bien documentado e incluye un manual de instrucciones y una guía de instalación que explica todo lo necesario para la instalación de Java. El programa ofrece varios ejemplos para realizar pruebas y también hay bibliotecas para facilitar el uso de los componentes. Este programa puede ser muy útil con fines educativos.
Vamos a comprobar cómo se utiliza el programa:
UnoArduSim es una herramienta educativa gratuita en la que puedes diseñar tus propios circuitos (haciendo clic en «Configure > I/O Devices» para configurar dispositivos de E/S»), programas (solo de texto o cargando archivos de Arduino), depurar código y simular las interfaces de E/S de Arduino y la interacción de los programas.
Ten en cuenta que no puedes crear o añadir tus propias piezas o componentes, arrastrar o soltar componentes, diseñar placas o esquemas, ni exportar placas y esquemas para la fabricación de placas de circuitos impresos (PCB).
Aquí tienes un programa de prueba:
Proteus VSM para la AVR de Arduino es, con mucho, la opción más cara de la lista. Sin embargo, además de todo lo básico, también ofrece algunas características especiales que no hemos visto en otros simuladores. Por ejemplo, tendrás acceso a miles de modelos de periféricos, además de poder arrastrar y soltar docenas de shields en tus simulaciones.
Aunque no hemos podido probar nuestro ejemplo porque la versión de demostración profesional es bastante limitada, mucha gente en YouTube ha utilizado este mismo sencillo proyecto de cinta métrica.
Si quieres probarlo, hay muchos proyectos de muestra:
Cuando hablamos de simuladores, debemos controlar nuestras expectativas porque nunca serán tan fluidos y fiables como el hardware real. Dicho esto, un simulador ideal debería ofrecer lo siguiente:
Licencia: El texto del artículo "Los mejores simuladores de Arduino (online y offline)" de All3DP está bajo una licencia de Atribución 4.0 CC BY 4.0..