Velxio — это симулятор с открытым исходным кодом для плат Arduino, ESP32 и Raspberry Pi, который работает напрямую в вашем веб-браузере. Можно перетаскивать платы, подключать компоненты и модули, писать и запускать код на Arduino или Python, а также получать доступ к последовательной консоли — всё без физического оборудования.
Если это выглядит похожим на то, что предлагает симулятор Wokwi , то это потому, что Velxio был вдохновлён им и даже интегрирует эмулятор ЦП AVR8, эмулятор RP2040 и форк QEMU для эмуляции ESP32 Xtensa из проекта Wokwi. Но ключевое отличие в том, что Velxio можно развернуть самостоятельно, хотя также доступна онлайн-демонстрация .

Velxio в настоящее время поддерживает 19 целей для пяти архитектур
- AVR8 (ATmega / ATtiny)
- Arm Cortex-M0+ ( Raspberry Pi RP2040 )
- RISC-V RV32IMC/EC ( ESP32-C3 / CH32V003 )
- Xtensa LX6/LX7 (ESP32 / ESP32-S3 через QEMU)
- Arm Cortex-A53 (Raspberry Pi 3 под управлением Linux через QEMU)
Проект также предлагает 48 компонентов. Разработчик упоминает что дополнительные возможности по сравнению с Wokwi включают несколько гетерогенных плат в одной цепи (например, два Arduino, соединенных по SPI или последовательному интерфейсу, ESP32 с Arduino, Raspberry Pi 3 с Pico и т.д.) и полную поддержку эмуляции через QEMU для ESP32 и Raspberry Pi 3.
Помимо использования онлайн-демо, установка на машину с Ubuntu 24.04 оказалась очень простой с помощью одной команды (предполагается, что Docker уже установлен и активирован):
jaufranc@CNX-LAPTOP-5:~/edev/sandbox$ sudo docker run -d -p 3080:80 ghcr.io/davidmonterocrespo24/velxio:master
После завершения установки доступ к симулятору можно получить в веб-браузере по локальному IP на порту 3080 (http://localhost:3080).
Нажатие кнопки «Try Simulator Free» переносит в симулятор, предварительно загруженный примером Blink для Arduino UNO, как на верхнем скриншоте в этой статье. Этот пример можно собрать и запустить, чтобы увидеть мигающий светодиод. На панель управления были добавлены Raspberry Pi 3 и Raspberry Pi Pico 2 W, и для платы Pico был собран пример Blink.
Raspberry Pi 3 можно запустить, но даже после нескольких минут ожидания доступ к последовательной консоли и запуск примеров скриптов на Python и Bash оказались невозможны. Возможно, это связано с бета-статусом функции.
Добавление дополнительных компонентов или плат очень просто, так как все хорошо описано, и выбранный компонент можно просто перетащить на нужное место перед подключением к одному из GPIO выводов платы.
Если пока не хочется подключать проект самостоятельно, всегда можно перейти в раздел с примерами, чтобы просмотреть различные образцы для плат Arduino, Raspberry Pi Pico или ESP32.
Было опробовано несколько примеров для ESP32. Они загружают код и необходимые библиотеки, но сборка завершилась с ошибкой:
[1285/1297] Building C object esp-idf/libsodium/CMakeFiles/__idf_libsodium.dir/libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c.obj
ninja: build stopped: subcommand failed.
✕ ESP-IDF build failed
Попытка сделать то же самое в онлайн-демо также завершается неудачей с похожей ошибкой, но с более подробным выводом.
Bootloader binary size 0x4350 bytes. 0x2cb0 bytes (40%) free.
ninja: build stopped: subcommand failed.
CMake Deprecation Warning at /opt/esp-idf/tools/cmake/project.cmake:2 (cmake_minimum_required):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
to tell CMake that the project requires at least <min> but has been updated
to work with policies introduced by <max> or earlier.
Call Stack (most recent call first):
CMakeLists.txt:8 (include)
fatal: not a git repository (or any of the parent directories): .git
CMake Deprecation Warning at /opt/esp-idf/CMakeLists.txt:1 (cmake_minimum_required):
...
Был выбран более простой пример для ESP32 (Blink LED), и на этот раз он сработал.
Velxio — интересный проект, хотя для повышения стабильности предстоит проделать дополнительную работу. Код и полная информация доступны на GitHub . Код распространяется по модели двойного лицензирования: лицензия AGPLv3 для личных, образовательных и проектов с открытым исходным кодом, а также коммерческая лицензия для проприетарных и закрытых продуктов или SaaS.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.





