• May 3, 2024

【顯示器能帶出鏡】電影中的超科幻鏡面顯示屏 |如何DIY |用樹莓派打造一個超薄魔鏡的簡單教程 |

鏡子左側顯示天氣以及當天預報概要。下面是風速。右側有時間和日期,後面是前往我大學通勤時間,通勤時間是實際交通狀況計算所得。

鑑於我上大學,預算,我選擇了我能買到鏡子:一個雙面亞克力鏡面。我想做成框外形,所以我鏡子四角鑽了孔,然後鋁製支架鏡子安裝牆上。

這部分可個人喜好。我來説,顯示信息方法是使用 Amazon Fire 電視棒。另一個常用解決方案是使用 Raspberry Pi。

我希望能自定義我鏡子,於是我它寫了個移動應用。

通勤出行時間上,我谷歌 Distance Matrix API。日期和時間顯示是用 Moment.js。

我一塊黑色泡沫切成我鏡子形狀,讓雙面鏡能工作。鏡子和泡沫板支座夾一起。

我顯示器預留了空間使其保持並能貼合在位置,接着我大力膠帶加固保證安全。我發現使用電子膠帶遮住顯示器前邊緣和背面減少光線溢出有幫助。

便攜式內鏡系統顯示屏要求,如何各種顯示屏中選出適合自己產品定位,顯示性能產品迫在眉睫。

便攜式內窺鏡、內鏡需求發展,便攜式內窺鏡顯示屏選型;便攜式內鏡系統顯示屏需求當前主流消費平板電腦有高度重合,尺寸7”~13.3“為主流,這同時帶來諸多選擇困難問題;普通消費領域,顯示屏種類,數萬計;如何各種顯示屏中選出適合自己產品定位,顯示性能產品迫在眉睫。

液晶屏是橫屏是豎屏主要其它應用及工業設計有關係, 平板、手機豎屏顯示應用領域,於大量設計是採用豎屏方式,所以LCD顯示屏驅動電路(TCON)電路大多採用豎屏方式,如下圖所示。 反之,工業及領域,於結構限制要求,採用橫屏方式。

現在SOC系統中,帶有圖像旋轉功能,無論是橫屏是豎屏可以通過軟件解決。但是Monitor顯示器驅動中,需要注意驅動Scaler是否具備圖像旋轉功能。

消費品市場中,於電子產品換代2~3年,消費級液晶屏生命週期;醫療顯示器選型時,產品生命週期是要考慮因素。於大客户,醫療註冊要求嚴格客户,長生命週期工業級或醫療級是首選。

MIP(Mobile Industry Processor Interface 簡稱MIPI)聯盟發起移動應用處理器制定開放標準和一個規範。 包括 MIPI CSI 及MIP DSI兩部分, CSI是攝像頭數據連接;DSI是顯示屏數據連接。MIPI-DSI採用4差分信號及1時鐘信號;每速率1.0GHZ到4.5GHZ。分辨率,並會4信號全用,1~2數據。下圖有一款1200×1920豎屏,4MIPI-DSI全部上。

03 IPS面板,醫療應用首選

本來買了一個樹莓派打算架個 Nextcloud,實際弄後發現並不是很用得上。眼看買樹莓派淪為吃灰大軍中一員,甘心。家裏有一面穿衣鏡,改造一下,做成了一個 Magic Mirror,效果如下。

有一些朋友是怎麼做到,會想要自己動手做一個類。這篇文章裏我簡這個鏡子用到材料、一些基本步驟和自己遇到一些坑記錄下來,通過説整個過程,為大家提供參考。

這篇文章會是一個手把手一步步教你做教程。如果你想要製作一個你自己魔鏡,是自己情況和現實需要選取材料,這樣會貼合你自己需求,能讓整個過程有。

總體上,一個魔鏡三個大部件構成:單向玻璃做成鏡子,放在鏡子後面顯示屏,以及運行 MagicMirror 軟件並內容顯示屏幕上控制電腦 (本文裏指樹莓派)。於行業背景人來説,可能會。我會順序來介紹需要做準備。

本來裝修房子時候買了一個普通穿衣鏡掛玄關牆上,來説話是宜家這款 LINDBYN 鏡子,。

想要實現魔鏡效果,需要一塊能後方透過光鏡子,單向透視玻璃。理想普通鏡子反射率 100%,而單玻璃是一種光線既能反射能透射玻璃,其反射率和透過率當前房間光線而有所區別。這種玻璃審訊室裏使用:光線一側 (嫌疑人待監控房間) ,一面普通鏡子;而光線暗的一側 (監控房間) 是玻璃。

實現魔鏡時,使用這樣原理:貼緊牆面一側無光,類似監控室;我們生活空間光線,類似監控房間;鏡子後方屏幕發出的光,於“改善”了鏡子內側光線條件,這部分光透過鏡子,我們看到,從而形成“鏡中屏”效果。

於魔鏡效果,單向玻璃有一些參數,這裏介紹一下。

這代表了光線透過單向玻璃效率。於魔鏡來説,用途類似電子看板,採用 8% ~ 10% 透過率,會是選擇。透過率可能導致屏幕部分鏡面效果。

於存在透射,因此魔鏡反射率達到普通平面鏡水平。考慮到玻璃吸收波長和反射膜透射部分,來説 50% 反射率能達到效果了。

不管是直接定製玻璃,還是買普通玻璃自己貼膜,是原本一塊透光玻璃,配上能同時反射和透射單向膜。如果是自己購買貼膜話,需要注意不要買那種辦公室玻璃熱反射膜,來説反射膜透過可能鏡面效果不太好。購買時注意多詢問光線透過率,不要。

雖然玻璃鏡面兩邊是存在反射和透射,但是因為膜位置會導致兩面性能:有膜面我們能得到反射率,這樣會讓成品有鏡面表現。來説,我們可以通過指甲接觸鏡面來判斷是哪一面朝外:玻璃面話,於反射部分玻璃後方,所以指甲是不能觸碰到鏡中像;而膜面話指尖可以直接貼到:

於玻璃面,膜面反光會,能得到鏡面。但缺點是磨損,不過於做魔鏡來説,肯定還是要選膜面朝外,獲取效果。

關於單向鏡一些更專業的説,不妨參看知乎上相關科普;貼膜相關技巧請多諮詢店家。

顯示屏沒有多要求,大小差不多,有接口就行了。樹莓派自身視頻輸出是 mini HDMI 或者標準 HDMI,所以顯示屏有一個 HDMI 輸入是。如果想要使用顯示屏樹莓派供電話,是有高一點功率輸入,比如 20W 30W USB-C PD,這樣才能保證樹莓派供電電壓。

實際上只要厚度,什麼樣顯示器是可以。如果預算話,直接買一塊裸液晶面板會。選擇顯示屏時候,需要注意給接口線纜留出足夠空間。15 寸顯示器於我用鏡子 (40 釐米) 來説,有一點點了:普通線纜,是 HDMI 線,插口部位是,於是導致了顯示屏無法放入鏡子裏。不過只是了一點點,購買了插口部分線纜後,有驚無險,勉強能夠放入。

後重頭戲樹莓派讓顯示器顯示 MagicMirror 啦。MagicMirror 本身,其實一個 Electron 包起來 app,它提供了很多適合顯示鏡子上模塊,我們可以它來地配置並顯示一個黑底白字,符合心意全屏 UI。

如果只是要樹莓派上安裝並運行話,照着官方安裝教程幾個命令搞定了。本來我如意算盤是,買了 8GB 版本性能爆炸 Raspberry Pi 4 Model B 上多裝一個 MagaicMirror,然後一併扔到鏡子後面就行了。但是人算不如天算,我想樹莓派扔到鏡子後面時候,我發現了一個問題:那我鏡子追求美觀,它自己弄得…

整個鏡子厚度其實只有 20 毫米出頭,去掉鏡子玻璃本身厚度和一些凸出來邊角,鏡子背後實際可用厚度只有 15 毫米不到。而我回頭望了望躺角落 Raspberry Pi 4 Model B,發現原本小巧它,此刻身材顯得如此“”…

已有 17mm Model B 顯然是放進去,所以我只能選擇型號。 2021 年初這個時間點上,可供選擇只有 3 代 Model A+ 或者 Model Zero W。但是兩者有致命問題,那搭載內存多只有 512 MB。實測結論是,512 MB 內存不足以官方寫明方法運行 MagicMirror:雖然安裝和初期運行可以完成 (速度),但是實際運行後就算使用默認模塊,會於內存而會出現卡死狀態。

不過好消息是,MagicMirror 支持服務器和客户端分開運行。説,我可以我強力 4 代 Model B 運行 MagicMirror 服務器部分,架設一個 MagicMirror 實例。然後購入一枚薄型樹莓派,比如 Raspberry Pi 3 Model A+ 或者 Raspberry Pi Zero W,它用來顯示 MagicMirror 實例,這樣能內存佔用分成兩個部分,讓低端薄型樹莓派能工作。

我選擇了 Raspberry Pi 3 Model A+,這主要是因為家裏有一些多餘 HDMI 線,而缺少 Zero 需要 mini HDMI。另外 RPi 3 Model A+ 性能和接口一些,今後有擴展可能。不過 Zero W 尺寸一些,性能上應該什麼問題。

延伸閱讀…

如何DIY 電影中的超科幻鏡面顯示屏(實操篇)

鏡子也能當顯示屏?智能鏡子顯示器做到了

注意選擇 RPi Zero W 時候,不要誤買成 RPi Zero。RPi Zero 中是沒有 WiFi 支持,而 Zero W 是 Zero 升級版本,加入了無線連接支持。

將 Node.js 10 源添加到軟件源列表。雖然現在 Node.js 版本飛昇,但是 MagicMirror 還是推薦 10.x。避免兼容性麻煩,而且我們會版本中得到多收益,這裏文檔繼續使用 10.x 版本。

將配置示例文件複製一份,作為初始配置文件。後我們會通過編輯 config/config.js 文件來 MagicMirror 進行配置。

如果你設備跑是桌面版操作系統 (比如標準 RPi OS 或者 Ubuntu Desktop),並且有外接屏幕話,到這裏你應該可以運行 npm run start 來啓動 MagicMirror,並讓它顯示屏幕上了。不過本例裏,我們需要是讓 MagicMirror 跑服務器模式,然後性能客户端連接訪問。所以還需要一些額外配置。

nano (或者 vim) 打開配置文件 nano config/config.js,編輯內容。

進行這些修改後,可以嘗試服務器模式運行 MagicMirror 了:

嘗試電腦設備瀏覽器訪問服務器地址和對應端口,http://192.168.0.100:5959,如果一切正常話,我們應該能看到默認 MagicMirror 界面了。

後,我們可能想要 MagicMirror 服務器開機時自動運行。因為 MagicMirror 是一個 Node.js 程序,方式是 PM2 添加一個啓動項。停止運行中 server,然後:

pm2 startup 你環境 (系統,用户名) ,生成合適的啓動服務。你只需要輸出的內容複製粘貼運行,比如:

後驗證 MagicMirror 處於運行狀態 (通過電腦設備瀏覽器或者 pm2 l 命令),並當前 pm2 任務狀態保存。這樣,後設備啓時,該服務啓動了。

這次使用客户端有 512MB 內存限制:要進行瀏覽,客户端其需要一個圖形界面和跑一個瀏覽器。做法是直接裝一個桌面系統,但是這會讓原本捉襟見肘內存雪上加霜。定性,我選擇了安裝命令行操作系統,然後它配置一個桌面服務和額外安裝瀏覽器,確保內存佔用。

因為內存限制帶來額外步驟肯定是大大增加了安裝複雜程度。有錢且需求同學,可以一波 Model A 或者 RPi Zero,應該會標配到 1GB 內存,可以直接跑完整版 MaginMirror,這麼多事兒了。

我選擇是 Raspberry Pi OS Lite,其實 Ubuntu Server 應該是沒有問題,大家是 Debian 你好我大家而已。

, Raspberry Pi Imager RPi OS Lite 燒到客户端 SD 卡以後,連接顯示器,開機使用默認用户名 pi 和 raspberry 首次登入。來説首要做事情是修改密碼,開機 RPi OS Lite 裏:

設定密碼後,為客户端設定 WiFi。可以使用 raspi-config 工具:

延伸閱讀…

用樹莓派打造一個超薄魔鏡的簡單教程

超佛心工具讓你把手機螢幕鏡射到電腦上,不但跨平台還完全免費

今後能地連到客户端,可以繼續使用 raspi-config 開啓 SSH 訪問:

能啓動瀏覽器,並顯示 MagicMirror 這樣圖形,我們需要一個圖形界面環境。

解釋一下,xinit 讓我們可以手動啓動一個 Xorg 顯示 server,桌面環境;matchbox 是一個輕量級 window manager。x11-xserver-utils (或者説這個軟件包中 xset 命令) 提供了一些用來顯示進行設置工具,比如關閉節能選項,關閉屏幕保護。

我們計劃是使用 xinit 來啓動 matchbox,然後它管理 GUI 窗口中打開瀏覽器並顯示 MagicMirror 內容。

另外,窗口中,會有鼠標指針顯示。於 MagicMirror 應用,我們肯定是希望它隱藏掉。可以使用 unclutter 來達成這個目的:

萬事俱備了,後只需要啓動瀏覽器,並且打開 MagicMirror 服務器地址就行了。

用户文件夾下創建一個腳本 start_browser.sh,然後填入以下內容:

啓動 chromium 時,使用 –kiosk 參數來隱藏掉所有 UI。注意,你需要後一行地址換成你實際服務器地址。

後,能讓瀏覽器顯示中文,我們需要安裝一個中文字體:

如果一切正常,連接客户端顯示屏上應該能夠看到 MagicMirror 內容了。

能客户端樹莓派開機 (或者啓後) 自動運行上面命令並顯示 MagicMirror,我們可以創建一個腳本:

這個腳本會開機用户登錄後,等待 30 秒,然後 xinit 運行啓動瀏覽器腳本。類似服務器端的做法,我們可以 PM2 來管理。但是其實客户端並需要 Node.js 環境,單單這個目的去安裝 Node.js 和 PM2 感覺有點太重了。RPi OS Lite 是使用 systemd 服務來管理啓動,所以只需要添加一個服務可以了。

這系統添加了一個服務,我們 systemctl 啓這個服務,它設置自動運行:

後,我們希望作為客户端樹莓派能夠啓後動登錄並運行這些內容,所以需要開啓免動登錄:

應該一切準備就緒了。現在你可以嘗試啓客户端樹莓派,靜待 30 秒,來看看它是否能自動打開魔鏡了:

一切準備完畢後,可以各種部件扔到鏡子裏,然後掛起來了。完工撒花~

默認情況下 MagicMirror 自帶了一些模塊,比如天氣、日曆和時鐘。我們可以通過編輯服務器端的 MagicMirror/config/config.js 文件,來配置它們。關於這個話題,參看官方文檔 Modules 部分內容會,這裏只介紹幾個我覺得有用第三方模塊。

智能鏡子顯示器是通過傳統鏡子內嵌入顯示屏、傳感器操作系統,鏡子新增了鏡面顯示以及人鏡互動功能,通過觸控、人體感應或語音識可以喚醒魔鏡系統。

你可以聯動手機來日程安排,智能鏡子顯示器會日程安排,你推送行程路況併你規劃出行路線。

搭載了智能語音控制智能鏡子顯示器,選播音樂、視頻及新聞到浴室內空氣質量調節、燈光控制可實現全語音控制。