From 5f57e67a2586bf8f7fe88621a79057022627025b Mon Sep 17 00:00:00 2001 From: a2nr Date: Fri, 3 Apr 2026 14:20:41 +0700 Subject: [PATCH] feat: Integrate AVR8js microcontroller simulator into Elemes LMS with custom compilation and simulation workflow --- proposal.md | 470 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 387 insertions(+), 83 deletions(-) diff --git a/proposal.md b/proposal.md index 953d090..aa0dc94 100644 --- a/proposal.md +++ b/proposal.md @@ -1,123 +1,427 @@ -# Proposal: Studi Kelayakan dan Perencanaan Implementasi CircuitJS1 di Elemes LMS +# Proposal: Integrasi AVR8js (Simulator Mikrokontroler AVR) ke Elemes LMS ## Pendahuluan -Dokumen ini merupakan proposal dan studi kelayakan untuk mengintegrasikan **[CircuitJS1](https://github.com/pfalstad/circuitjs1)** (sebuah simulator rangkaian elektronik berbasis web) ke dalam ekosistem Elemes LMS. Tujuannya adalah untuk mentransisikan atau menambahkan kapabilitas LMS yang saat ini fokus pada pemrograman (Code Editor) menjadi platform pembelajaran rangkaian elektronik yang interaktif. + +Dokumen ini merupakan proposal untuk mengintegrasikan **[avr8js](https://github.com/wokwi/avr8js)** — sebuah simulator mikrokontroler AVR 8-bit berbasis JavaScript — ke dalam ekosistem Elemes LMS. Referensi implementasi diambil dari **[Falstad Circuit Simulator + AVR8js](https://www.falstad.com/circuit/avr8js/index.html)**. + +Tujuannya: siswa dapat menulis kode C/Arduino, meng-compile, dan mensimulasikan eksekusi pada mikrokontroler virtual — lengkap dengan koneksi ke simulator rangkaian CircuitJS1 yang sudah ada. --- -## 1. Cara Implementasi dengan Sistem Elemes yang Sekarang +## 1. Apakah Memerlukan Compile Custom? -Sistem Elemes saat ini terdiri dari Backend (Flask) dan Frontend (SvelteKit). Implementasi CircuitJS1 dapat dilakukan dengan mulus karena CircuitJS1 berjalan sepenuhnya di sisi klien (browser). +**Ya, memerlukan kompilasi khusus.** -### a. Integrasi Frontend (SvelteKit) -- **Komponen Baru (`CircuitEditor.svelte`):** Komponen `CodeEditor.svelte` (berbasis CodeMirror) akan diganti atau didampingi dengan komponen baru yang memuat CircuitJS1. -- **Metode Embed:** CircuitJS1 dapat diintegrasikan menggunakan elemen `