
TinyBubbles는 Go의 대화형 UI 프레임워크 Bubble Tea를 TinyGo 기반 임베디드 디스플레이에서 사용할 수 있게 하고, 같은 UI를 브라우저에서도 체험하도록 만든 프로젝트다. 브라우저 갤러리에서 버블 애니메이션을 조작할 수 있으며, GitHub 저장소에서 소스와 기기별 안내를 확인할 수 있다.
기본 런타임은 Bubble Tea v2.1이다. 더 작은 기기를 위한 선택형 런타임 TinyTea도 제공하지만 기능이 제한된다. 두 런타임은 같은 셀, 글꼴, 렌더러를 사용한다. 위젯에는 목록, 값·선택 항목 선택기, 대화상자, 진행 표시, 상태 표시, 스크롤 텍스트가 포함되며 차트와 화면 배치 도구도 제공한다.
브라우저에서 바로 갤러리를 열거나 저장소를 내려받아 실행할 수 있다. 로컬 갤러리 실행에는 Go와 Python 3이 필요하며, 빌드는 Go 1.26.8을 선택한다.
브라우저에서 http://127.0.0.1:8080을 열면 디스플레이 종류를 고르고 버블을 터뜨리거나 색을 바꾸고 애니메이션을 멈출 수 있다. 갤러리에는 위젯과 설정 화면, 레이아웃 데모 등이 있다. Hello World 데모에서만 Bubble Tea와 TinyTea 런타임을 전환할 수 있고, 나머지 브라우저 데모는 Bubble Tea를 사용한다.
펌웨어 빌드에는 TinyGo 0.43.0 이상이 필요하다. 현재 안내된 하드웨어에는 Adafruit Reverse TFT Feather, Raspberry Pi Pico와 Pico 2, Adafruit CLUE가 포함된다. Hello 데모는 Reverse TFT Feather에서 하드웨어 동작을 확인했고, Pico의 SSD1306 예제는 실제 OLED 검증이 TODO로 남아 있다. 설정 펌웨어도 Feather 실물 검증이 남아 있다. 자세한 설정은 기기 안내와 Bubble Tea 백엔드 안내를 참고하면 된다.
기본 글꼴은 6×8픽셀 셀을 사용한다. 셀 그리드 두 개의 메모리는 128×64 OLED에서 약 2.6KiB, 240×135 TFT에서 10KiB, 320×240 디스플레이에서 24.8KiB다. 화면 구성에 따라 하위 버퍼가 추가로 필요하며, 뷰포트는 텍스트와 줄 오프셋도 보유한다. 핵심 렌더러는 픽셀 프레임버퍼를 할당하지 않지만 디스플레이 드라이버는 프레임버퍼를 사용할 수 있다.</content>
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요