Il s'agit d'une bibliothèque JavaScript qui implémente l'architecture AVR 8 bits.
C'est le cœur - mais pas le corps entier du simulateur Arduino à https://wokwi.com.
AVR8js
Cette bibliothèque implémente uniquement le noyau AVR CPU. Vous devez le fournir du code machine pré-compilé pour exécuter et implémenter des simulations fonctionnelles de tout matériel externe. Vous voudrez probablement également ajouter des représentations audio / visuelles du matériel externe en cours de simulation.
Un diagramme conceptuel approximatif:
Pre-Compiled machine code --> AVR8js <--> Glue code <--> external hardware functional simulation <--> simulation state display for the user
Vous pourriez être intéressé à explorer la collection Wokwi-Elements de composants Web pour les représentations visuelles de nombreux composants matériels communs. (Remarque: ce sont des éléments visuels uniquement - vous devrez ajouter la simulation fonctionnelle et le code de colle appropriés.)
Un tutoriel vidéo étape par étape montrant comment créer un simulateur Arduino simple à l'aide d'AVR8JS et de réagir:
Et un article de blog connexe.
Ces exemples montrent des exemples de travail d'utilisation avr8js
dans une application. Beaucoup d'entre eux démontrent également comment utiliser les wokwi-elements
et incluent des exemples de travail de simulations fonctionnelles des composants, et comment les connecter à avr8js
.
Remarque: ils sont tous hébergés en dehors de ce dépôt.
Le projet de démonstration vous permet de modifier le code Arduino, de le compiler et de l'exécuter dans le simulateur. Il simule également 2 LED connectées aux broches 12 et 13 (PB4 et PB5).
Pour exécuter le projet de démonstration, consultez ce référentiel, exécutez npm install
, puis npm start
.
La bibliothèque se concentre sur la simulation de l' ATMEGA328P , qui est le MCU utilisé par l'Arduino Uno.
Cependant, le code est construit de manière modulaire, et est très configurable, ce qui permet de simuler de nombreuses puces de la famille AVR8, comme l'ATMEGA2560 et la série Attiny:
Consultez le numéro 67 et le numéro 73 pour plus d'informations.
Exécutez les tests une fois:
npm test
Exécutez les tests des fichiers que vous avez modifiés depuis le dernier engagement (mode de montre):
npm run test:watch
Pour plus d'informations, veuillez consulter le guide de contribution.
Copyright (C) 2019-2023 URI Shaked. Le code est publié selon les termes de la licence MIT.