3 puan yazan GN⁺ 2024-01-04 | 1 yorum | WhatsApp'ta paylaş
  • Akıllı çerçeveyi kendiniz yaparken gereken render, dağıtım ve ekran kontrolünü cihaz içinde çalıştırma odağında bir araya getirerek Raspberry Pi veya ESP32 tabanlı çerçevelerin bağımsız çalışmasını sağlar
  • Arka uç Docker ya da Home Assistant eklentisi olarak yerel kurulabilir; SSH veya yazılmış SD kart ile dağıtıldıktan sonra çerçeve arka uç olmadan da çalışmaya devam eder
  • Sahneler; olayları, veri uygulamalarını, render uygulamalarını ve durumu birbirine bağlayan bir düğüm grafiği ile oluşturulur; çıktı tek bir ikili dosya olarak derlenip çerçevede çalışır
  • Raspberry Pi, Pi Zero 2 W ve üzeri modellerde WiFi üzerinden dağıtım, TrueType fontlar, SVG, 6 renkli e-ink dithering, TLS, iCal ayrıştırma, headless Chromium ekran görüntüsü ve kendi web sunucusunu destekler
  • ESP32-S3, Waveshare SPI e-paper panellerine yönelik olarak tarayıcıdan flashlama, cihaz içi render, OTA güncellemeleri ve yenilemeler arasında deep sleep desteği sunar; ancak firmware imajı yalnızca seçilen tek bir panel sürücüsünü içerir

FrameOS’un üstlendiği rol

  • FrameOS, Raspberry Pi veya ESP32’yi bir ekranla birleştirerek takvim, pano ya da sanat çerçevesi gibi kendi kendine çalışan akıllı çerçeveler yapmaya yarayan bir işletim sistemidir
  • e-ink, HDMI ve LCD ekranları hedefler; render işlemi cihaz içinde yapılır
  • Bulut ve abonelik olmadan çalışır; 2023’ten beri AGPL-3.0 lisanslı ücretsiz açık kaynak olarak sunulmaktadır
  • Arka uç Docker ile kurulabilir; proje deposu GitHub üzerindedir

Kurulum ve dağıtım akışı

  • FrameOS, arka uç kurulumu, donanım bağlantısı ve sahne dağıtımı akışıyla çerçeveyi yapılandırır
    • Arka ucu dizüstü bilgisayarda, sunucuda veya NAS üzerinde tek komutla çalıştırabilir ya da Home Assistant eklentisi olarak kurabilirsiniz
    • Raspberry Pi veya ESP32’yi ekrana bağlarsınız
    • Hazır bir sahne seçer veya kendiniz tasarlayıp dağıtırsınız
  • Arka uç bir abonelik hizmeti değil, yerel web uygulaması olarak çalışır
  • Dağıtım SSH veya flashlanmış SD kart üzerinden yapılır; sonrasında çerçeve arka uç olmadan bağımsız çalışabilir
  • 120’den fazla desteklenen panel bağlanabilir; Raspberry Pi’de HDMI kablosu da kullanılabilir
  • Çerçeve kendi QR kodu ve HTTP API’siyle kontrol edilir; ESP32’nin HTTP API’si ise hâlâ deneyseldir

Sahne düzenleme ve çalışma biçimi

  • Sahneler, gerçek kodla desteklenen görsel düzenleyici içinde oluşturulur
  • Sahne yapılandırması düğüm grafiği biçiminde bölümlere ayrılır
    • Kırmızı: olaylar
    • Yeşil: veri uygulamaları
    • Mavi: render uygulamaları
    • Sarı: durum
  • Oluşturulan sahne tek bir ikili dosya olarak derlenir ve çerçevede çalışır
  • Kürasyonlu galeri, takvim, ajanda, mesaj panosu, hava durumu, webcam ve yapay zeka sanat sahneleri tek tıkla kurulabilir; kaynak seviyesine kadar düzenlenebilir

Raspberry Pi ve ESP32 seçenekleri

  • FrameOS gerçek Linux ortamında en iyi şekilde çalışır ve 15 dolarlık Pi Zero 2 W ve üzeri Raspberry Pi modellerini hedefler
  • Raspberry Pi ortamında firmware’i yeniden flashlamadan WiFi üzerinden dağıtım yapılabilir
  • Linux tabanlı çerçevelerde şu özellikler kullanılabilir
    • Her çözünürlükte TrueType fontlar ve SVG
    • 6 renkli e-ink için dithering
    • TLS
    • iCal ayrıştırma
    • headless Chromium ekran görüntüsü
    • Çerçevenin kendi web sunucusu
  • Kablosuz bir çerçeve istenirse ESP32-S3 üzerinde Waveshare SPI e-paper panelleri için çalıştırılabilir
  • ESP32-S3 yapılandırması; tarayıcıdan flashlama, cihaz içinde sahne render’ı, OTA güncellemeleri ve yenilemeler arasında deep sleep ile pille çalışmayı destekler
  • Her ESP32 firmware imajı, seçilen tek bir panel sürücüsünü içerir

Kasa üretimi ve tamamlanmış örnek

  • FrameOS Case Maker, desteklenen panel ve Raspberry Pi yerleşimlerine uygun parametrik 3D baskı muhafazaları oluşturur
  • Kullanıcılar bir şablon seçip derinlik ve çerçeve kenarını ayarladıktan sonra duvar askısı, kickstand, USB-C kesiti ve vida kolonları ekleyerek STL indirebilir
  • Case Maker, belgelerle aynı donanım veritabanını kullanarak Waveshare ve Pimoroni yapılandırmaları için temel ölçüleri sağlar
  • Case Maker, Open Case Maker üzerinden kullanılabilir
  • Tamamlanmış örnek; Waveshare ve Pimoroni Spectra 6 panellerini, 3D baskı ince kasayı, USB-C gücü ve FrameOS yazılım ayarlarını bir arada gösterir

1 yorum

 
GN⁺ 2024-01-04
Hacker News yorumları
  • Eğlenceli küçük bir proje. 2 yıl önce hediye olarak 7 renkli eInk Arduino çerçeve yapmıştım; ekranda fena görünmemesini sağlamak için görüntüleri elle kırpmak, dithering uygulamak ve renk paletini uydurmak en zor kısmıydı.
    FrameOS bunu benim yerime halletseydi, elle düzenleme ve test için harcadığım birkaç saati kurtarabilirdim.
    Sonunda bu yıl aynı kişiye bir Aura çerçeve aldım; uzaktan fotoğraf eklemek fazla zahmetli gelmişti.

    • ImageMagick, görüntüleri sınırlı bir paletle toplu işleyebilir. Hepsini elle yapmak için bir neden yoktu.
    • Kimsenin görüntüleri elle kırpmasını, dithering yapmasını ve renk indekslemesini istemiyorum. Bu, FrameOS yazılımının halletmesi gereken bir kısım.
      Inky Impression 7 renkli çerçeve gibi bir şey kullanırsanız zaten çalışıyor; çünkü çoğu durumda ilgili yazılım ve sürücü bu işlemi zaten yapıyor.
  • Bu, tıbbi kiosklar, dijital sanat ve signage için çok faydalı olabilir.
    Hastanelerde dijital sanata talep oldukça büyük. SFGH ve UCSF’te teknoloji tasarımcısıydım; El Camino Hospital’da teknoloji uygulama yöneticiliği, Vizio TV’de de operasyon direktörlüğü yaptım.
    Bu tür sistemleri ve hastane yön bulma sistemlerini değerlendirdim, satın aldım ve kurdum; asansör lobilerinde ya da hasta odası ekranlarında döngü halinde oynatılacak dijital sanata yüz binlerce dolar harcandığını gördüm, ama yazılım berbattı.
    El Camino Hospital lobisinde dijital signage sistemi o kadar kötüydü ki bazı ekipmanları Mac Mini ile değiştirip VLC’de MP4’leri döngü halinde oynatmak zorunda kaldık.
    Bu yüzden böyle bir sistemin Pi Zero ile birlikte iyi olabileceğini düşünüyorum.
    Ayrıca yön bulma da bununla zarif biçimde uygulanabilir gibi. “Etkileşimli” derken Pi üzerinde bir web uygulaması/uygulama çalıştırıp, boştayken dijital sanat döngüsüne geri dönebilmek kastediliyorsa güzel olur.
    Dijital sanat, signage ve yön bulma pazarında, bu pazarı sarsacak cüretkâr yeni bir projeye ihtiyaç var. Şu anda elimde bir Pi olsaydı hemen denerdim.
    T-Mobile’dan aldığım dandik Android TCL tablete de kurulup kurulamayacağını merak ediyorum. Feit Electric ampul kontrolüne de bakmak iyi olur.
    Böyle bir cihaz/OS için en kârlı seçenek, BART gibi bölgesel ulaşımda ulaşım bilgilendirme signage’ı olabilir. Kurulum, yapılandırma ve gösterimi, kurum içindeki teknolojiye en uzak kişinin bile hatasız yapabileceği hale getirmek yeterli.
    Sacramento bölgesel ulaşımında çok ekran var ama işe yarar bilgi neredeyse yok.
    APAC’ta trene bindiğinizde üst duvarda durum haritası gösteren LCD ekranlar oluyor. ABD’de trene bindiğinizde üst duvarda idrar ve dışkı var, ama hiçbir yerde durum haritası yok.

    • ABD trenlerine ekran takılırsa, sonunda o ekranlara da idrar ve dışkı bulaşır gibi geliyor.
    • MP3 dosyası çalmak için Mac Mini kurmak aşırı para israfı. 10 dolarlık çok ucuz bir taşınabilir MP3 çalar kullanılabilir.
      ABD’de paranın böyle israf edilmesi, sokakta yiyecek dilenen insanlar varken delilik gibi geliyor.
    • BrightSign hakkında ne düşündüğünüzü merak ediyorum. Varsayılan yazılımı epey kötü, ama programlanabilirliği bizim için çok iyiydi. Henüz derinlemesine kurcalama aşamasına gelmedik.
  • Aklıma Chumby geliyor. Gerçekten çok potansiyeli vardı ama fazla erken vazgeçilmiş bir üründü.
    Ev içinde akıllı, kontrol edilebilir ve low-code şekilde yönetilebilen ekranların kullanılabileceği çok yer var; ama bunları kendim araştırmaya neredeyse hiç vaktim yok. Bugün bu projeyi görmek gerçekten sevindirici.

    • Hazır bir eInk takvim yapıyorum. Kendi içeriğinizi geliştirip bir web URL’sinden ekrana .png veya .jpeg olarak da sunabilirsiniz.
      https://shop.invisible-computers.com
    • Benim de kendim araştırmaya vaktim yok; bu yüzden sadece ikinci el bir iPad alıp duvara asmayı düşünüyorum.
      Parlak bir ekran elde edersiniz ve görmek istediğiniz şeylerin web tarayıcısında görünmesi yeterli olur.
  • Gerçekten harika. Geçen yıl Gmail üzerinden e-ink görüntüleri değiş tokuş eden bir dizi script hazırlamış ve buna DispatchPi adını vermiştim; böyle bir program olsaydı geliştirme çok daha hızlı ilerlerdi.
    https://github.com/malcolmosh/dispatchPi/blob/main/README.md
    Sürekli terminalden Pi’ye SSH ile bağlanmak, FileZilla FTP istemcisi ve VSCode ile scriptleri güncellemek zorunda kalmak epey zahmetliydi.
    Az önce bir dashboard projesini de tamamladım ve yakında yayımlamayı düşünüyorum; çerçeve sürücüsünü ESP32’ye değiştirip pille çalıştırmayı da düşünüyorum. Çünkü ESP32’nin güç tüketimi Pi Zero’dan bile çok daha düşük.
    Zaman olursa ESP32 uyumluluğu için ben de oy veririm.

    • ESP32 geliştirmesini ne kadar ilerlettiğinizi merak ediyorum. Görüntü render etmek beklediğimden daha az basitti. Benim durumumda ekran eInk değil LCD idi.
      Rastgele görüntüleri ESP kütüphanesiyle göstermeye çalışmaktansa, görüntüyü ESP32/ekrana göndermeden önce belirli bir boyut ve biçime hazırlamak daha kolay ve güvenilirdi.
    • Hangi donanımı kullandığınızı merak ediyorum. Yakın zamanda benzer bir projeyi bitirdim ve e-ink ile daha fazlasını yapmak istiyorum; ama Pi’ye takılan donanım sürücü kartı, e-ink ekranın kendisi kadar pahalı.
  • Sayfadaki ilk görsel editör; gerçekten çok etkileyici. Açıklamada şu bölüm var:
    “Diagram Editor: Nim uygulamalarını sahneler hâlinde birleştirmeye yarayan sürükle-bırak arayüzü. ‘OpenAI image’, ‘Text overlay’ gibi mevcut uygulamaları fork edip değiştirerek ihtiyacınıza göre uyarlayabilirsiniz. Tüm alanlar satır içi kod parçalarıyla geçersiz kılınabilir.”
    Gerçekten çok şık görünüyor. Muazzam bir emek harcanmış olmalı. Neyle yapıldığını ve editörün de Nim ile yazılıp yazılmadığını merak ediyorum.
    Sahneyi oluşturduktan sonra ne çalıştırdığını da merak ediyorum. Editöre benzeyen ama sunum modu olan bir runtime mı çalıştırıyor, yoksa başka Nim programlarını çalıştıracak yeni bir Nim programı mı üretiyor, bilmiyorum.
    Uygulamaların bir kez mi çağrıldığını, yoksa sürekli çalışıp kalıcı iletişim mi kurduğunu da merak ediyorum. Bir frame’in başlamasını neyin tetiklediği ve birleştirmenin nasıl yapıldığı da merak konusu.
    Akıllı çerçevelerde kullanılıyor olsa da aslında çok güzel bir genel amaçlı akış tabanlı programlama sistemi yapılmış gibi hissettiriyor.

    • Geri bildirim için teşekkürler.
      Editör/denetleyicinin kendisi bir React+Kea uygulaması; diyagram kısmında React Flow kullanıyor, backend ise Flask.
      Şu anda oluşturduğunuz uygulamanın çalışıp çalışmadığını test etmek için frame’e dağıtmanız gerekiyor. Test için hızlı bir RPi 5 kullanıldığında geri bildirim döngüsü genelde yaklaşık 30 saniye; Zero W2’de yaklaşık 1 dakika, Zero W’de yaklaşık 2 dakika. İdeal değil, bunu iyileştirmek istiyorum.
      İdeal olarak Nim’in JS backend’ini kullanıp tarayıcıda doğrudan çalışabilen bir “frame” oluşturarak test etmek istiyorum.
      Diğer sorulara cevap olarak: FrameOS sistemi açılışta çalışır ve tüm uygulamalar tek bir binary’ye derlenir; sahnenin yönergelerine göre çalıştırılır. Render olayı iletildiğinde yeni bir frame render edilir; bu olay periyodik olarak otomatik ya da isteğe bağlı olarak oluşabilir.
      Frame logları denetleyiciye gönderir, ancak bunun dışında tamamen bağımsız çalışabilir.
    • Sadece ekran görüntülerine bakınca dear imgui gibi görünüyor. Benzer widget’ları burada görebilirsiniz: https://github.com/TimoSalomaki/awesome-dear-imgui
      Düzeltme: Yanılmışım; aslında React Flow.
      https://github.com/FrameOS/frameos/blob/037af53e94a3b47ce5df...
      https://reactflow.dev/
  • Gerçekten ilginç görünüyor. Bunu gerçek anlamda bir OS değil de, Pi’nin OS’i üzerinde çalışan bir yazılım olarak anlamak doğru mu, merak ediyorum.

    • Teknik olarak doğru. Hatta en iyi türden doğru; ama bu soruda biraz nüans var.
      FrameOS, Linux üzerinde çalışan derlenmiş bir binary. Şu anda FrameOS’un kendisini kurmadan önce SD karta masaüstü ortamı olmayan “Raspberry Pi OS Lite” kurmanız gerekiyor. Bu yüzden “sadece bir uygulama” olarak görülebilir.
      Ancak bu, projenin erken aşamasında başlamanın en hızlı yolu olduğu için böyle. Sonraki adım ne kadarını kaldırabileceğimizi görmek. FrameOS statik olarak derlenmiş tek bir binary olduğundan Linux çekirdeği dışında fazla şeye ihtiyaç duymayabilir. O zaman gerçek bir OS olur mu? Android de Linux çekirdeğini kullanıyor ama kendi başına bir OS kabul ediliyor.
      Etkinleştiğinde FrameOS tüm sistemi ele geçiriyor, kendi apps/ ve drivers/ klasörlerine sahip ve birçok açıdan zaten işletim sistemi gibi davranıyor. ESP32 üzerinde çalıştırmayı da düşünüyorum; belki drivers/wifi/ eklemek gerekebilir. Altında hiçbir OS olmadan çalışırsa o zaman OS demeye değer mi? Buna siz karar verin.
      Bunun bir işletim sistemi olup olmadığını sorarsanız bana göre öyle, ama farklı görmek de mümkün.
      Asıl işim olan PostHog’da bazen kendilerine “Product OS” diyorlar; bu beni daha çok rahatsız ediyor. Çünkü bir web uygulamaları paketi, geleneksel anlamda kesinlikle işletim sistemi değil. Saf işletim sistemi olmayan şeylerin sonuna -OS eklendiğini de gördüm. Biraz rahatsız edici, ama muhtemelen “Hangi OS’i kullanıyorsunuz?” sorusunun kimliği belirlediği dönemlerde yaşamış olmamdan.
      Dil değişiyor ve “işletim sistemi” artık sanırım benim ve sizin düşündüğümüzden daha fazla şeyi ifade ediyor.
    • Öyle görünüyor. O hâlde başka kartlarda da küçük değişikliklerle çalışması oldukça olası.
    • Evet. Uzaktan kontrol edilebilen tam ekran bir uygulamaya daha yakın görünüyor.
    • OS’in ne olduğunu gerçekten merak ediyorum. Alay etmiyorum. “OS” şu anda oldukça gevşek tanımlanmış bir terim. Android ve Ubuntu neredeyse aynı çekirdeği kullanıyor ama açıkça çok farklı işletim sistemleri.
      FrameOS Nim kullandığı için çekirdeksiz, bare metal üzerinde çalışacak şekilde taşınabilir. Asenkron dispatch sayesinde Nim hafif bir işbirlikçi multitasking de sağlıyor.
      FrameOS şu anda yalnızca Linux çekirdeği üzerinde çalışan bir OS, ya da isterseniz kullanıcı alanı olarak görülebilir. Ama doğrudan bir mikrodenetleyicide çalışacak şekilde taşınamaması için bir neden yok.
  • Harika görünüyor. Home Assistant ile birlikte bir e-ink ekran kurmak istiyordum; buna göz atacağım.
    “Why FrameOS” yazısında, Home Assistant panosunu gösteren bir e-ink ekran gibi görünen bir fotoğraf var; hemen altında da “ama yazılım tarafı berbat durumdaydı” deniyor. FrameOS’u yapmadan önce tam olarak hangi sorunlar vardı merak ediyorum. En azından fotoğrafta iyi çalışıyor gibi görünüyor.
    Şu ifadenin gerçekte ne anlama geldiğini de merak ediyorum: “GPT4 Support: Sevdiğiniz LLM’den FrameOS uygulamaları yazmasını ve hata ayıklamasını isteyin.”

    • Yazar, FrameOS’un özel görünümler oluşturmak için kullanılan uygulama geliştiricisine GPT-4’ü entegre etmiş; böylece temel kodu iyileştirmeyi GPT’den isteyebiliyorsunuz. https://frameos.net/blog/gpt4-support
      Bunu görür görmez, yeni uygulamaların bundan sonra en baştan LLM entegrasyonu içereceği yönündeki eğilimin doğrulandığını hissettim. Yapmamak için bir neden var mı ki? LLM’ler doğru kullanıldığında neredeyse her uygulamada kullanıcı deneyimini ciddi ölçüde iyileştirebilir.
    • ChatGPT konusunda ise, ek entegrasyon gerektirmeyen bir ürün olduğunu vurgulayan zekice bir espri gibi görünüyor.
      Son zamanlarda özel sermaye piyasasında iyi satan, blokzincir tabanlı otonom sürüşlü sosyal yapay zeka bulutu gibi bir şey yapmaya gerek olmadığına dair bir şaka gibi.
  • Eski bir Amazon Fire tabletin elektronik atığa dönüşmesini engelleyecek iyi bir alternatif var mı? Android tabanlı.

    • Fire Toolbox ile gereksiz tüm varsayılan uygulamaları devre dışı bırakabilirsiniz. Fully Kiosk lisansı alırsanız bunları birçok pratik kullanım alanına dönüştürebilirsiniz.
      Ben şahsen evde Amazon Fire tabletleri Snapcast için ses sürücüsü olarak kullanıyorum. Her tablette USB, Wi‑Fi, 3.5 mm Aux ve dahili pil var; bu kullanım için çok uygunlar ve indirimde tanesi 45 dolar olduğu için özellikle iyi bir seçenek.
    • Orada sorunun ne olduğunu merak ediyorum. Sadece herhangi bir Android uygulaması kurup ekranda gösteremez misiniz?
    • Bootloader kilitli. Yanlış hatırlamıyorsam, bazı pinleri kısa devre yaptıran bir hata sayesinde kilidi açılabilen son model 2015 modeliydi.
      Kilidi açılmış bir bootloader yoksa Android’i rootlamak mümkün olabilir ama Android’in ya da ROM’un kendisini değiştiremezsiniz.
      Zaten çok da anlamı yok. MediaTek olduğu için o dönemin bölümleme yapısı ve sürücü modeli genel olarak karmakarışıktı. FrameOS’u o donanımda makul derecede şık şekilde çalıştırmak zor olurdu.
  • Gerçekten harika. Benzerini kopyalamaya çalışan çok proje var ama özellikle üretim tarafında bu düzeyde olgunluğa sahip olan çok az.
    Şahsen InkPlate serisi gibi ESP32 yerleşik düşük güç tüketimli eINK cihazlarını desteklemesini isterdim. Yine de bunu görünce Pi’ye geçmeyi düşünür oldum.

    • FrameOS’un ESP32 desteklemesini isterdim. Daha iki gün önce FrameOS, yavaş ve yorumlayıcıyla çalışan bir Python uygulamasıydı. Bugün ise 3 MB’lık statik bağlı bir ikili dosya.
      Alan çok kısıtlı ve muhtemelen iş parçacıkları gibi bazı özellikleri kesmek gerekecek, ama teorik olarak çalıştırılabilir olmalı.
      Ancak Raspberry sürümünü harika hale getirmek için hâlâ yapılacak çok iş var; bu yüzden yakın zamanda bunu üstlenmeyi planlamıyorum.
  • Bu alanda daha fazla yazılım çıkması sevindirici.
    Dolaylı olarak ilgili bir konu ama fotoğraf çerçevesi olarak kullanılabilecek 32 inç ve üzeri bir ekran arıyorum. Samsung The Frame dışında başka bir ürün bulamadım; bu kadar basit bir kullanım senaryosu için şaşırtıcı.
    Şimdiye kadar bulduklarım şu kadar. TV ve monitörlerin 24 saat açık kalması açısından güç tüketimi iyi değil. Renkli e-ink genelde en fazla 13 inç civarında. Samsung The Frame’in özellikleri ve görünümü iyi ama pahalı; ayrıca Samsung olması gibi bir dezavantajı var.
    Önerebileceğiniz bir ürün var mı merak ediyorum.

    • Özel bir çerçeve cihazının sıradan bir TV ekranına göre nasıl güç tasarrufu sağlayabileceğini merak ediyorum. Sonuçta aynı temel bileşenlere dayanmıyor mu?