- Gộp các phần dựng hình, triển khai và điều khiển hiển thị cần thiết khi tự làm khung thông minh theo hướng chạy ngay trên thiết bị, giúp vận hành độc lập các khung dựa trên Raspberry Pi hoặc ESP32
- Backend có thể cài cục bộ bằng Docker hoặc Home Assistant add-on, triển khai qua SSH hoặc thẻ SD đã được flash, và sau đó khung vẫn tiếp tục hoạt động mà không cần backend
- Cảnh được tạo bằng đồ thị nút nối các sự kiện, ứng dụng dữ liệu, ứng dụng render và trạng thái; kết quả được biên dịch thành một binary duy nhất để chạy trên khung
- Raspberry Pi hỗ trợ triển khai qua WiFi từ Pi Zero 2 W trở lên, TrueType font, SVG, dithering e-ink 6 màu, TLS, phân tích iCal, chụp ảnh bằng headless Chromium và web server riêng
- ESP32-S3 hỗ trợ flash qua trình duyệt, render trên thiết bị, cập nhật OTA và deep sleep giữa các lần làm mới cho các tấm e-paper SPI của Waveshare, nhưng mỗi ảnh firmware chỉ bao gồm một driver panel đã chọn
FrameOS đảm nhiệm vai trò gì
- FrameOS là một hệ điều hành dùng để tạo các khung thông minh tự chạy như lịch, dashboard hoặc khung nghệ thuật bằng cách kết hợp Raspberry Pi hoặc ESP32 với màn hình
- Nhắm tới các màn hình e-ink, HDMI và LCD, và việc render được xử lý ngay trên thiết bị
- Hoạt động không cần đám mây hay đăng ký thuê bao, và được cung cấp miễn phí dưới giấy phép mã nguồn mở AGPL-3.0 từ năm 2023
- Backend có thể được cài bằng Docker, và kho dự án nằm trên GitHub
Quy trình cài đặt và triển khai
- FrameOS cấu hình khung theo luồng cài backend, kết nối phần cứng và triển khai cảnh
- Chạy backend trên laptop, server hoặc NAS bằng một lệnh duy nhất, hoặc cài dưới dạng Home Assistant add-on
- Kết nối Raspberry Pi hoặc ESP32 với màn hình
- Chọn cảnh dựng sẵn hoặc tự thiết kế rồi triển khai
- Backend không phải là dịch vụ thuê bao mà hoạt động như một ứng dụng web cục bộ
- Việc triển khai được thực hiện qua SSH hoặc thẻ SD đã flash, sau đó khung có thể chạy độc lập mà không cần backend
- Có thể kết nối hơn 120 panel được hỗ trợ, và với Raspberry Pi cũng có thể dùng cáp HDMI
- Khung được điều khiển bằng mã QR riêng và HTTP API; HTTP API trên ESP32 hiện vẫn còn ở mức thử nghiệm
Cách chỉnh sửa và chạy cảnh
- Cảnh được cấu hình trong một trình biên tập trực quan được hậu thuẫn bởi mã nguồn thực tế
- Cấu trúc cảnh được chia theo dạng đồ thị nút
- Màu đỏ: sự kiện
- Màu xanh lá: ứng dụng dữ liệu
- Màu xanh dương: ứng dụng render
- Màu vàng: trạng thái
- Cảnh đã cấu hình được biên dịch thành một binary duy nhất và chạy trên khung
- Có thể cài đặt gallery tuyển chọn, lịch, lịch trình, bảng tin nhắn, thời tiết, webcam và cảnh AI art chỉ với một cú nhấp, đồng thời chỉnh sửa đến cấp độ mã nguồn
Lựa chọn giữa Raspberry Pi và ESP32
- FrameOS hoạt động tốt nhất trong môi trường Linux thực tế, nhắm tới Raspberry Pi từ Pi Zero 2 W giá $15 trở lên
- Trong môi trường Raspberry Pi, có thể triển khai qua WiFi mà không cần flash lại firmware
- Trên khung nền Linux, có thể tận dụng các tính năng sau
- TrueType font và SVG ở mọi độ phân giải
- Dithering cho e-ink 6 màu
- TLS
- Phân tích iCal
- Chụp ảnh bằng headless Chromium
- Web server của chính khung
- Nếu muốn một khung không dây, có thể chạy trên ESP32-S3 cho các tấm e-paper SPI của Waveshare
- Cấu hình ESP32-S3 hỗ trợ flash qua trình duyệt, render cảnh trên thiết bị, cập nhật OTA và chạy bằng pin thông qua deep sleep giữa các lần làm mới
- Mỗi ảnh firmware ESP32 chỉ bao gồm một driver panel đã chọn
Tạo vỏ và ví dụ hoàn thiện
- FrameOS Case Maker tạo vỏ enclosure tham số hóa để in 3D theo các panel được hỗ trợ và bố cục Raspberry Pi
- Người dùng có thể chọn mẫu, điều chỉnh độ sâu và viền, rồi thêm tùy chọn treo tường, chân chống, lỗ cắt USB-C và trụ vít để tải xuống STL
- Case Maker sử dụng cùng cơ sở dữ liệu phần cứng như tài liệu để cung cấp kích thước mặc định cho các cấu hình Waveshare và Pimoroni
- Có thể dùng Case Maker tại Open Case Maker
- Ví dụ hoàn thiện cho thấy trọn bộ panel Waveshare và Pimoroni Spectra 6, vỏ mỏng in 3D, nguồn USB-C và cấu hình phần mềm FrameOS
1 bình luận
Ý kiến trên Hacker News
Một dự án nhỏ thú vị. 2 năm trước tôi từng làm một khung ảnh eInk Arduino 7 màu để tặng, và phần vất vả nhất là phải tự cắt ảnh, dithering và căn bảng màu sao cho hiển thị trên màn hình trông tạm ổn
Nếu FrameOS xử lý thay việc này thì chắc tôi đã tiết kiệm được vài giờ chỉnh sửa và thử nghiệm thủ công
Rốt cuộc năm nay việc thêm ảnh từ xa quá khổ sở nên tôi đã mua một khung ảnh Aura cho cùng người đó
Với những thứ như khung Inky Impression 7 màu thì đã chạy được rồi, vì phần mềm và driver tương ứng hầu hết đã xử lý việc này
Cái này có thể rất hữu ích cho kiosk y tế, nghệ thuật số và signage
Nhu cầu nghệ thuật số trong bệnh viện khá lớn. Tôi từng là kiến trúc sư công nghệ của SFGH, UCSF, quản lý triển khai công nghệ tại El Camino Hospital, và giám đốc vận hành TV ở Vizio
Tôi đã đánh giá, mua và lắp đặt những hệ thống như thế này cùng các hệ thống chỉ đường trong bệnh viện, và từng chi hàng trăm nghìn đô la cho nghệ thuật số phát lặp ở sảnh thang máy hoặc màn hình trong phòng bệnh, nhưng phần mềm thì rất tệ
Ở sảnh El Camino Hospital, hệ thống digital signage tệ đến mức chúng tôi phải thay một số thiết bị bằng Mac Mini để phát lặp MP4 trong VLC
Vì vậy tôi nghĩ dùng một hệ thống như thế này với Pi Zero sẽ rất hay
Tuy nhiên có vẻ cũng có thể triển khai chỉ đường một cách thanh nhã bằng nó. Khi nói “tương tác”, tôi hy vọng điều đó có nghĩa là có thể chạy web app/app trên Pi, và khi rảnh thì quay lại phát lặp nghệ thuật số
Thị trường nghệ thuật số, signage và chỉ đường cần một dự án mới táo bạo có thể khuấy đảo các thị trường này. Nếu giờ có Pi thì chắc tôi đã thử ngay
Không biết có cài được lên chiếc tablet Android TCL lởm nhận từ T-Mobile không. Cũng nên xem qua việc điều khiển bóng đèn Feit Electric
Lựa chọn sinh lợi nhất cho loại thiết bị/OS này có lẽ là signage hướng dẫn giao thông cho giao thông địa phương như BART. Chỉ cần làm sao để ngay cả người kém kỹ thuật nhất trong tổ chức cũng có thể lắp đặt, cấu hình và hiển thị mà không mắc lỗi
Giao thông khu vực Sacramento có nhiều màn hình nhưng hầu như không có thông tin hữu ích
Đi tàu ở APAC thì thấy có màn hình LCD trên vách phía trên hiển thị bản đồ trạng thái. Đi tàu ở Mỹ thì trên vách phía trên có nước tiểu và phân, nhưng chẳng thấy bản đồ trạng thái ở đâu
Ở Mỹ tiền bị lãng phí như vậy, trong khi ngoài đường có người phải xin ăn, nghe thật điên rồ
Làm tôi nhớ đến Chumby. Một sản phẩm có tiềm năng thật sự lớn nhưng đã bị bỏ cuộc quá sớm
Trong nhà có nhiều chỗ để dùng một màn hình thông minh, có thể điều khiển và ít code, nhưng tôi gần như không có thời gian tự tìm hiểu. Rất vui vì hôm nay thấy dự án này
.pnghoặc.jpegtừ một URL webhttps://shop.invisible-computers.com
Có được màn hình sáng, và thứ muốn xem chỉ cần hiển thị được trong trình duyệt web là đủ
Thật tuyệt. Năm ngoái tôi đã làm một bộ script trao đổi ảnh e-ink qua Gmail và đặt tên là DispatchPi; nếu có chương trình như thế này thì chắc việc phát triển đã nhanh hơn nhiều
https://github.com/malcolmosh/dispatchPi/blob/main/README.md
Lúc nào cũng phải SSH vào Pi bằng terminal, rồi cập nhật script bằng FileZilla FTP client và VSCode nên khá phiền
Tôi vừa hoàn thành một dự án dashboard và sắp công bố, đồng thời cũng đang nghĩ đến việc đổi driver của khung sang ESP32 để chạy bằng pin. Vì ESP32 tiêu thụ điện ít hơn Pi Zero rất nhiều
Nếu có thời gian thì tôi xin góp một phiếu cho khả năng tương thích ESP32
Thay vì cố hiển thị ảnh bất kỳ bằng thư viện ESP, việc chuẩn hóa ảnh về kích thước và định dạng cụ thể trước khi gửi sang ESP32/màn hình dễ và ổn định hơn
Hình ảnh đầu tiên trên trang là trình biên tập, và chà, thật sự rất ấn tượng. Trong phần mô tả có đoạn này
“Diagram Editor: giao diện kéo-thả để kết hợp các ứng dụng Nim thành các cảnh. Có thể fork và chỉnh sửa các ứng dụng sẵn có như ‘OpenAI image’, ‘Text overlay’ để phù hợp với nhu cầu. Mọi trường đều có thể được ghi đè bằng các đoạn mã inline.”
Trông thật sự rất tinh tế. Có vẻ đã tốn một khối lượng công việc khổng lồ. Tôi tò mò nó được làm bằng gì, và cũng tò mò liệu trình biên tập có được viết bằng Nim không
Sau khi tạo cảnh xong, tôi cũng tò mò nó sẽ chạy cái gì. Không rõ là nó chạy một runtime tương tự trình biên tập nhưng có chế độ trình chiếu, hay là sinh ra một chương trình Nim mới để chạy các chương trình Nim khác
Tôi cũng tò mò các app được gọi từng lần một, hay chúng chạy liên tục và giao tiếp bền vững với nhau. Điều gì kích hoạt việc bắt đầu một frame, và việc tổng hợp được thực hiện như thế nào
Dù đang được dùng cho smart frame, tôi có cảm giác thực ra họ đã tạo ra một hệ thống lập trình dựa trên luồng đa dụng rất tuyệt
Bản thân trình biên tập/bộ điều khiển là một ứng dụng React+Kea, phần diagram dùng React Flow, còn backend là Flask
Hiện tại, để kiểm tra app bạn tạo có hoạt động không, bạn phải triển khai lên frame. Nếu dùng RPi 5 nhanh để thử nghiệm thì vòng phản hồi thường khoảng 30 giây, Zero W2 khoảng 1 phút, Zero W khoảng 2 phút. Điều này chưa lý tưởng nên tôi muốn cải thiện
Lý tưởng nhất là tôi muốn dùng JS backend của Nim để tạo một “frame” có thể chạy ngay trong trình duyệt để kiểm thử
Trả lời các câu hỏi khác: hệ thống FrameOS chạy khi khởi động, và mọi app được biên dịch vào một binary duy nhất rồi chạy theo chỉ dẫn của cảnh. Khi một render event được truyền tới, một frame mới sẽ được render; sự kiện này có thể tự động phát sinh định kỳ hoặc phát sinh theo yêu cầu
Frame gửi log về bộ điều khiển, nhưng ngoài việc đó ra nó có thể hoạt động hoàn toàn độc lập
Sửa: tôi đã nhầm, thực ra là React Flow
https://github.com/FrameOS/frameos/blob/037af53e94a3b47ce5df...
https://reactflow.dev/
Trông thật sự thú vị. Tôi hiểu thế này có đúng không: đây thực ra không phải OS, mà là phần mềm chạy trên OS của Pi?
FrameOS là một binary đã biên dịch chạy trên Linux. Hiện tại, trước khi cài chính FrameOS, bạn cần cài “Raspberry Pi OS Lite” không có môi trường desktop lên thẻ SD. Vì vậy có thể xem nó là “chỉ là một ứng dụng”
Tuy nhiên, đó là vì dự án còn ở giai đoạn đầu và đây là cách nhanh nhất để bắt đầu. Bước tiếp theo là xem có thể loại bỏ được đến đâu. FrameOS là một binary đơn được biên dịch tĩnh nên có thể không cần nhiều thứ ngoài kernel Linux. Khi đó nó có trở thành OS thật không? Android cũng dùng kernel Linux nhưng được xem là một OS riêng
Khi được kích hoạt, FrameOS chiếm quyền toàn bộ hệ thống, có các thư mục
apps/vàdrivers/riêng, và ở nhiều khía cạnh đã hoạt động như một hệ điều hành. Tôi cũng đang cân nhắc chạy nó trên ESP32, có lẽ sẽ cần thêmdrivers/wifi/. Nếu nó chạy mà không có bất kỳ OS nào bên dưới, lúc đó có đáng gọi là OS không? Cái đó để mọi người tự đánh giáNếu hỏi tôi đây có phải hệ điều hành không, thì với tôi là có, nhưng nhìn khác đi cũng được
Ở công việc chính của tôi tại PostHog, đôi khi họ tự gọi mình là “Product OS”, điều này còn khó chịu hơn. Vì một tập hợp web app rõ ràng không phải hệ điều hành theo nghĩa truyền thống. Tôi cũng đã thấy hậu tố -OS được gắn vào những thứ không phải hệ điều hành thuần túy. Hơi khó chịu, nhưng chủ yếu là vì tôi từng sống trong thời mà câu “bạn dùng OS nào?” là câu hỏi phân định bản sắc
Ngôn ngữ đang thay đổi, và có vẻ “hệ điều hành” giờ đây chỉ nhiều thứ hơn những gì tôi và bạn nghĩ, tùy từng người
FrameOS dùng Nim, nên có thể port để chạy bare-metal không cần kernel. Nhờ async dispatch, Nim cũng cung cấp multitasking hợp tác nhẹ
Hiện tại có thể xem FrameOS là một OS chỉ chạy trên kernel Linux, hoặc nếu muốn thì là user space. Nhưng không có lý do gì khiến nó không thể được port để chạy trực tiếp trên vi điều khiển
Trông rất ngầu. Tôi đã muốn thiết lập một màn hình e-ink cùng với Home Assistant, nên sẽ thử xem cái này
Trong bài “Why FrameOS” có một bức ảnh trông giống màn hình e-ink đang hiển thị dashboard Home Assistant, và bên dưới ghi “nhưng phần mềm thì là một mớ hỗn độn”. Tôi tò mò chính xác đã có vấn đề gì trước khi tạo FrameOS. Ít nhất trong ảnh thì trông nó hoạt động ổn
Tôi cũng tò mò câu này thực sự có nghĩa là gì: “GPT4 Support: Hãy nhờ LLM yêu thích của bạn viết và debug ứng dụng FrameOS.”
Ngay khi thấy điều này, tôi cảm nhận rằng xu hướng các ứng dụng mới trong tương lai sẽ tích hợp LLM ngay từ đầu đã được xác nhận. Chẳng có lý do gì để không làm cả. Nếu dùng LLM đúng cách, nó có thể cải thiện đáng kể trải nghiệm người dùng trong hầu hết mọi ứng dụng
Kiểu đùa rằng không cần phải làm một thứ gì đó như cloud AI xã hội tự lái dựa trên blockchain đang bán chạy trên thị trường private equity hiện nay
Có lựa chọn thay thế tốt nào để không biến Amazon Fire tablet cũ thành rác thải điện tử không? Nó chạy nền Android
Cá nhân tôi dùng Amazon Fire tablet trong nhà làm audio driver cho Snapcast. Mỗi tablet đều có USB, Wi-Fi, cổng Aux 3,5 mm và pin tích hợp, nên rất phù hợp cho mục đích này; lúc giảm giá chỉ 45 USD một chiếc nên đặc biệt ổn
Nếu không có bootloader đã mở khóa, bạn có thể root Android nhưng không thể thay thế chính Android hay ROM
Dù sao cũng không có nhiều ý nghĩa. Vì là MediaTek, cấu trúc partition và mô hình driver thời đó nhìn chung khá hỗn loạn. Sẽ khó để FrameOS chạy trên phần cứng đó một cách hợp lý và thanh nhã
Thực sự rất tuyệt. Có nhiều dự án cố gắng sao chép những thứ tương tự, nhưng rất hiếm cái nào có độ hoàn thiện đến mức này, đặc biệt ở khâu chế tạo
Cá nhân tôi muốn nó hỗ trợ các thiết bị eINK tiết kiệm điện có tích hợp ESP32 như dòng InkPlate. Dù vậy, nhìn cái này cũng khiến tôi cân nhắc chuyển sang Pi
Tài nguyên sẽ rất eo hẹp và có lẽ phải cắt bỏ một số tính năng như threading, nhưng về lý thuyết thì có thể chạy được
Tuy nhiên vẫn còn nhiều việc phải làm để khiến bản Raspberry thật tốt, nên hiện tại tôi chưa có kế hoạch đảm nhận việc này
Thật vui khi có thêm phần mềm xuất hiện trong lĩnh vực này
Hơi liên quan gián tiếp, nhưng tôi đang tìm một màn hình từ 32 inch trở lên có thể dùng làm khung ảnh. Ngoài Samsung The Frame, tôi chưa tìm thấy sản phẩm nào khác, điều này khá đáng ngạc nhiên đối với một use case đơn giản như vậy
Đến giờ tôi tìm được chừng này. TV và màn hình máy tính không có mức tiêu thụ điện phù hợp để bật 24/7. E-ink màu thường tối đa khoảng 13 inch. Samsung The Frame có tính năng và ngoại hình tốt nhưng đắt, và còn có nhược điểm là Samsung
Tôi tò mò liệu có sản phẩm nào đáng giới thiệu không