HN🔥 73
💬 16

【爆速開発】Arduino・ESP32・ラズパイ3をブラウザでエミュレート!Velxio 2.0が登場

dmcrespo
約20時間前

ディスカッション (7件)

0
dmcrespoOP👍 73
約20時間前

Velxio 2.0がリリースされました!このツールを使えば、Arduino、ESP32、さらにはRaspberry Pi 3といった主要なマイコンやシングルボードコンピュータをブラウザ上で直接エミュレートできます。実機が手元になくても、ウェブブラウザさえあればどこでも手軽にコードの動作確認やテストが行える画期的なシミュレータです。IoT開発のハードルを一段と下げてくれる強力なツールになりそうです。

1
dmcrespo
約20時間前

HNのみんな、少し前にVelxioをここで紹介した時に素晴らしいフィードバックをありがとう。それから大規模なアップデートをリリースしたんだ。

v2の新機能:

  • 5つのCPUアーキテクチャ(AVR8、Xtensa、RISC-V、ARM Cortex-M0+、ARM Cortex-A53)にまたがる19種類のボード
  • QEMU(lcgamboaフォーク)によるESP32エミュレーション — 本物のフラッシュイメージ、ROM機能のエミュレーション、GPIO/ADC/タイマーに対応
  • TypeScriptで書かれたカスタムRISC-Vコア上で、ESP32-C3とCH32V003が完全にブラウザ内で動作
  • QEMU raspi3bによるRaspberry Pi 3B — 本物のPi OSが起動し、Pythonが動作
  • リアルなセンサーシミュレーション:DHT22(40ビットプロトコルのタイミング)、HC-SR04(トリガー/エコー)、WS2812B NeoPixel(GRBデコード)
  • wokwi-elements由来の48以上の電子部品

アーキテクチャ:

  • AVR、RP2040、RISC-Vのエミュレーションはクライアントサイドで動作(avr8js、rp2040js、カスタムTSコア)
  • ESP32 XtensaとPi 3はバックエンドのQEMUで動作
  • 本物のarduino-cliによるコンパイル
  • React + Viteのフロントエンド、FastAPIのバックエンド
  • Dockerでセルフホスト可能、アカウント不要

ソース:https://github.com/davidmonterocrespo24/velxio (AGPLv3)

エミュレーションのアーキテクチャ、特にブラウザ内とバックエンドQEMUのトレードオフについて議論できるのを楽しみにしてるよ。

2
dmonterocrespo
約20時間前

Velxio 2.0が公開されたよ。

Arduino、ESP32、Raspberry Pi、RISC-Vなど、19種類の組み込みボードに対応した無料のオープンソース・エミュレーターで、ブラウザ上で実際にコンパイルされたコードを動かせるんだ。

一番のポイントは、完全にローカルで完結すること。

クラウド依存も、学生アカウントも、ネットワーク外へのデータ送信も一切なし。Dockerコンテナ一つでセルフホストできるよ。

大学やブートキャンプなら、自前のサーバーにデプロイして、学生全員に完全な組み込み開発環境を無料で提供できるはずだ。

1年以上かけて開発して、ESP32エミュレーション(QEMU経由)やカスタムRISC-Vコア、本物のPythonが動くRaspberry Pi 3サポートを盛り込んだv2.0をリリースしたばかりなんだ。

3
hex4def6
約19時間前

まずは、素晴らしい出来だね!今ちょうどいじってるところだよ。

一つ提案なんだけど、メインのスプラッシュ画面の画像が8MB近くあってかなり大きい。俺の回線だとダウンロードに結構時間がかかるんだ。最近の帯域コストがどれくらいか分からないけど、ここは最適化の余地がありそうだね。

4
radicality
約19時間前

よくESPHomeの「コード」を書いて、それをesphome/HomeAssistant経由で色んなESP32デバイス(主にM5Stack)で使ってるんだ。

実機に書き込んでから「動かない」って気づく前の開発段階で、このプロジェクトが役立つことってあるかな?例えば、このエミュレーターでESPHomeのYAMLをコンパイルして動かしてみる、みたいなことは可能?

5
urbandw311er
約18時間前

これは素晴らしいアイデアだね。この手のプロジェクトをテストするためだけに、いちいち物理的なボードにアクセスしなきゃいけないのは、いつも不便だと思ってたんだ。

6
wumms
約18時間前

いい仕事だね!個人的に気になった細かい点だけど、「Play」が有効になる前に「Compile」を押す必要があるのが、すぐには分からなかったな(例えばArduino IDEだと、必要に応じて自動でコンパイルしてそのままアップロードできたりするしね)。