Esta es una biblioteca JavaScript que implementa la arquitectura AVR de 8 bits.
Es el corazón, pero no todo el cuerpo, del simulador Arduino en https://wokwi.com.
AVR8js
Esta biblioteca solo implementa el núcleo de CPU AVR. Debe suministrarlo con el código de máquina precompilado para que se ejecute e implementar simulaciones funcionales de cualquier hardware externo. Probablemente también desee agregar representaciones de audio/visuales de hardware externo que se simule.
Un diagrama conceptual áspero:
Pre-Compiled machine code --> AVR8js <--> Glue code <--> external hardware functional simulation <--> simulation state display for the user
Es posible que esté interesado en explorar la colección de componentes web Wokwi-Elements para representaciones visuales de muchos componentes de hardware comunes. (Nota: estos son elementos visuales: deberá agregar la simulación funcional y el código de pegamento apropiado).
Un video tutorial paso a paso que muestra cómo construir un simulador Arduino simple usando avr8js y reaccionar:
Y una publicación de blog relacionada.
Estos ejemplos muestran ejemplos de trabajo del uso de avr8js
en una aplicación. Muchos de ellos también demuestran cómo usar los wokwi-elements
e incluyen ejemplos de trabajo de simulaciones funcionales de los componentes y cómo conectarlos a avr8js
.
Nota: Todos están alojados fuera de este repositorio.
El proyecto de demostración le permite editar el código Arduino, compilarlo y ejecutarlo en el simulador. También simula 2 LED conectados a los pines 12 y 13 (PB4 y PB5).
Para ejecutar el proyecto de demostración, consulte este repositorio, ejecute npm install
y luego npm start
.
La biblioteca se enfoca en simular el ATMEGA328P , que es el MCU utilizado por el Arduino Uno.
Sin embargo, el código está construido de una manera modular y es altamente configurable, lo que hace posible simular muchos chips de la familia AVR8, como la serie ATMEGA2560 y Attiny:
Consulte el número 67 y el número 73 para obtener más información.
Ejecute las pruebas una vez:
npm test
Ejecute las pruebas de los archivos que modificó desde la última confirmación (modo de reloj):
npm run test:watch
Para obtener más información, consulte la guía contribuyente.
Copyright (c) 2019-2023 Uri Shaked. El código se publica bajo los términos de la licencia MIT.