프로젝트 소개
MOGWAI NANO는 .NET nanoFramework 기반으로 구축된 마이크로컨트롤러용 스크립팅 엔진입니다. 데스크톱 MOGWAI 엔진의 포팅이 아니라 임베디드 제약을 중심으로 설계된 동반 런타임으로 설명됩니다. PC의 MOGWAI NANO Studio에서 MOGWAI 코드를 작성하고, 네트워크에서 장치를 검색한 뒤, WiFi를 통해 하드웨어에서 해당 코드를 원격으로 실행합니다.
작동 방식: 구문 설탕(if/then/else, while/do, for/do, forever do, 타이머 등)으로 작성된 코드는 데스크톱에서 정규 RPN으로 디슈가링된 후 장치로 전송됩니다. 장치는 이 최소 형태만 실행합니다. 즉, 토크나이저, 스택, 프리미티브 디스패처로 구성되어 펌웨어를 작게 유지합니다. README에는 정규 프리미티브가 비공개이며 자동 생성되므로 직접 입력하기 위한 것이 아니라고 명시되어 있습니다.
나열된 언어 및 하드웨어 기능:
- 산술, 비교, 제어 흐름, 사용자 정의 함수, 참조, 스킬과 플래그, 구조화된 오류 처리(trap/guard)
- GPIO, I2C, SPI, PWM, ADC, 전용 SSD1306 OLED 디스플레이 드라이버
- 병렬 실행을 위한 작업(Task). 각 작업은 자체 네이티브 스레드에서 격리된 런타임 인스턴스로 실행되며 이벤트를 통해 부모와 통신
- 두 가지 구성 가능한 모드(mogwai.frugalMode)를 가진 지연 파싱 실행 모델
- "units"라고 불리는 재사용 가능한 코드 라이브러리. 플래시에 저장되고 필요 시 로드됨
- 일회성 및 반복 타이머, 이름이 지정된 스톱워치
- 이벤트. 데이터는 MOGRecord를 통해 전달됨
- UDP 검색과 TCP 통신, 연결 끊김 감지
- 독립 실행 배포를 위한 영구 자동 실행
메모리 고려 사항이 길게 논의됩니다. 일반 ESP32는 약 40KB의 여유 RAM을 남기며, README에서는 이것이 단순 스크립트에는 충분하지만 장시간 실행되거나 여러 하위 시스템을 사용하는 워크로드에서는 단편화와 할당 실패가 발생하기 쉽다고 설명합니다. ESP32-S3와 같이 PSRAM이 장착된 보드는 검증된 참조 플랫폼으로 제시되며 복합 프로젝트에 권장됩니다. 작업은 각각 약 10KB를 소비하며 PSRAM이 있을 때만 실용적이라고 설명됩니다. README는 PSRAM이 활성화된 nanoFramework 타깃을 사용하는 클래식 ESP32/WROVER도 비슷하게 작동해야 하지만 작성자들이 테스트하지는 않았다고 언급합니다.
지원 플랫폼 표: ESP32는 작은 단일 목적 스크립트용으로 테스트됨, PSRAM이 있는 ESP32-S3는 테스트되어 권장됨, PSRAM이 있는 클래식 ESP32/WROVER는 미테스트, Raspberry Pi Pico W는 현재 지원되지 않음(ESP32 전용 핀 구성이 Pico 빌드를 깨뜨렸으며 재구성 후 복귀 예정), STM32와 TI는 작동해야 하지만 미테스트로 나열됨.
MOGWAI NANO Studio는 Avalonia 기반 데스크톱 동반 앱으로, 자체 코드 편집기, 로컬 및 장치 출력을 위한 별도의 라이브 콘솔 탭, 파일 관리, 라이트/다크 테마를 갖추고 있습니다. 이전의 콘솔 기반 Studio는 0.5까지 존재했으며 0.6부터 더 이상 유지 관리되지 않습니다.
릴리스에는 장치 펌웨어(MogwaiNano.bin)와 플랫폼별 자체 포함 Studio 아카이브(win-x64, linux-x64, linux-arm64, osx-x64, osx-arm64)가 첨부됩니다. 빠른 시작은 nanoff로 펌웨어 플래싱, 전원 재인가, 애플리케이션 배포, wifi.json 파일을 통한 WiFi 구성, LED를 깜빡이는 첫 프로그램 실행을 다룹니다. README는 특정 특이 사항을 문서화합니다. ESP32_REV3에서는 명시적인 --address 0x1E0000이 필요하며 --update와 별도의 명령이어야 합니다. 첫 플래싱 시 --masserase가 권장됩니다. ESP32-S3 플래싱은 몇 분 걸릴 수 있습니다.
문서에는 시작 가이드, 장치 프리미티브 참조, nano.* 명령 집합에 대한 Studio 프리미티브 참조, ESP32 DeviceFunction 값 조회 표가 포함됩니다. 로드맵에는 I2C, SSD1306, PWM/ADC, SPI(전적으로 MOGWAI NANO 스크립트로 작성된 MFRC522 RFID 드라이버로 검증됨), ESP32-S3/PSRAM 검증, 작업, units 라이브러리 시스템, Studio GUI 등 완료된 항목이 나열됩니다. 보류 중인 항목에는 바이너리/비트 조작 지원, STM32 및 TI 검증, BLE, 동적 PE 로딩, 공유 코어와 플랫폼별 조각으로의 재구성이 포함됩니다.
이 프로젝트는 Apache 2.0에 따라 라이선스가 부여됩니다. nanoFramework 기여자인 Laurent Ellerbach의 도움을 크레딧으로 표시하며, 데스크톱 MOGWAI 프로젝트와 .NET nanoFramework로 연결됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.