用樹莓派打造超酷的魔鏡

jopen 8年前發布 | 34K 次閱讀 Linux Raspberry Pi

用樹莓派打造超酷的魔鏡

一位多倫多程序媛做了一個 Android 驅動的魔鏡,詳情看《 HomeMirror:一個程序媛做的 Android 魔鏡 》。Dylan Pierce 童鞋也做了一個類似的,不過是樹莓派驅動,并且有完整攻略。

該魔鏡是一個雙面鏡,后面是一臺由樹莓派驅動的顯示器。你可以在黑色網頁上增加一些小組件,通過鏡面反射后看起來就像魔法一樣。目前版本支持的組件,可以顯示天氣預報和日期時間,以及一句隨機生成的問候語(比如,你今天太帥了)。你不需要底層硬件的黑客知識,只需要一些木工活和一些我已經整合好了的代碼。

用樹莓派打造超酷的魔鏡 用樹莓派打造超酷的魔鏡 用樹莓派打造超酷的魔鏡

所需材料:

  • 一臺顯示器
  • 一面和顯示器大小相匹配的雙面鏡
  • 一些 2 x 4 大小的木條,用來包裹顯示器
  • 一些細木用來搭建鏡子的框架,我用的是1/8 x 3的板子
  • 一塊樹莓派以及相關組件,比如電源、HDMI 線、無線 USB 適配器、以及一個進行初始化設置的鍵盤。
  • 常用的木工工具,比如鋸子、砂紙和螺絲刀
  • 螺絲和液體釘(譯者注:液體釘是粘合力極強的多功能建筑結構強力膠。干后不會收縮下限,可填縫,可油漆。適合于:木材、石膏板等各種建材。)

選擇顯示器

鏡子的大小取決于你選擇顯示器的大小。我想要一個盡可能大的顯示器,而且有一個可以拆卸的支架,可以裝到一個外殼中。另一個重要的方面是要確保顯示器的輸入,在中間的位置而不是靠邊。

我盡量不去選擇輸入在頂部或者邊上的顯示器,因為那樣很難與邊框和樹莓派的 HDMI 線相匹配。我最終選擇了 BenQ GL2760H,這臺27 英寸的顯示器 。結果證明它是非常適合的。

用樹莓派打造超酷的魔鏡

準備鏡子

鏡子絕對是整個工作中最重要的部分。但是我之前并不知道,這些雙面鏡實際上透明又像塑料一樣。它們比實際的鏡子有更強的可塑性,你可以用多種不同的方式切割它們,以滿足你的需要。所以訂一個和你需要的尺寸相近的鏡子吧(這個尺寸僅指屏幕顯示部分,不要包括邊邊角角)。別擔心如果買大了怎么辦,你可以自己切割它。

我從 TAPPlastics.com 上訂購鏡子,你也可以從其他在線供應商那里訂購。 這就是我買的鏡子

用樹莓派打造超酷的魔鏡

去掉顯示器的邊框(可選)

為了讓外殼更加貼合顯示器,我決定去掉顯示器的塑料邊框。這是個明智的決定,因為我一開始就沒有考慮盒子的厚度,用于容納所有的連線。我用一把刮漆鏟翹起顯示器的邊框并把它分離出來。

分離顯示器控制的時候千萬要小心。它們的電路非常薄,必須保證它完好無損,否則你就沒法打開和調整顯示屏了。

用樹莓派打造超酷的魔鏡

用樹莓派打造超酷的魔鏡

用樹莓派打造超酷的魔鏡

用樹莓派打造超酷的魔鏡

打造外殼

這個過程沒有什么特別的。我只是切割了 4 個 4 x 2 的邊條,來包裹新的 Jenny Craig’d 顯示器。接下來我用夾子固定住邊條的位置,用螺絲把他們擰在一起。這樣你就可以讓外殼和顯示器匹配,而且很容易把顯示器從外殼中取出來。

用樹莓派打造超酷的魔鏡

順便一提,我還在外殼的頂部和底部用螺絲打了孔。這樣是為了給樹莓派一點點空氣流動。你不會希望電腦在一個完全密閉的空間里把自己烤干的。

最后再提一句,記得在外殼底部弄一個大一點的洞以便電源線通過。當你為顯示器和樹莓派的電源布線的時候,就用得著了。我最終在外殼上用直鋸搗了個適合電線通過的洞。

制作鏡框

起先,我想要做一個酷炫的折角為 45 度圓弧的鏡框。注意關鍵詞:起先。還記得我說過我不是個專業的工匠嗎?是啊,這對我來說有那么一點點難度。我沒能成功做出圓弧的折角。相反,我記得說過我是個“極簡抽象派藝術家”,只想要做個 90 度的折角。

不過另一個障礙是,我原本打算使用kreig jeg(譯:不知道這個是神馬)鉆幾個小洞的,不過嘛,3/8 薄的木板,就像圣戰組織(jihadst應該是拼錯了,應該為jihadist)一樣,遇到一點點壓力就會膽怯而易碎。不過幸運的是,一個來自家得寶的工程師告訴我有這么一個棒呆了的工具,幫了我大忙:

用樹莓派打造超酷的魔鏡

現在我可以使用一些液體釘來固定連接處了,這個工具可以幫助我把木頭固定住好幾個小時,以便讓液體釘變干。不需要螺絲啦。我唯一遺憾的是沒有買倆,這樣我在這部分的進度就可以加快一倍了。

用樹莓派打造超酷的魔鏡

連接鏡框和外殼

這部分是我考慮最少的,如果我再做一次的話,我一定會換個方式。基本上來說我遇到了一點小麻煩,因為鏡子和鏡框不匹配,導致外殼和鏡框之間有了間隙。幸運的是切割雙面鏡是件很容易的事情。你可以換著法子切割, TAPPlastics 上有全套教程

我恰好有個帶鋸能用。這一步我唯一的建議來自『Will it Blend?』:“別把它吸進去” 。 我的意思是指那些塑料粉塵。

用樹莓派打造超酷的魔鏡

現在鏡框和外殼可以匹配了。

用樹莓派打造超酷的魔鏡

我犯的另一個錯誤是沒有把鏡子粘在鏡框和外殼中間之前,分別給鏡框和外殼著色。這里我沒拍照片,不過我最終使用膠帶覆蓋了鏡子并著色了邊緣。

但是天哪快看!一個可以發光的鏡子。目前這只是顯示器的自檢信息,不過這也是進步呀!

用樹莓派打造超酷的魔鏡

安裝樹莓派

現在有趣的部分來啦。理想的情況是只從外殼底部拉出來一根電源線。利用電子或焊接等其它手段,可以讓一根電源線供電……不過我的選擇很簡單,我買了個兩路電源分流器:

用樹莓派打造超酷的魔鏡

然后左右組件都用膠帶固定好:

用樹莓派打造超酷的魔鏡

現在你可以通過一根線同時給顯示器和樹莓派供電啦。簡單地把樹莓派連接到顯示器上,連上網。我不會很詳細地講解如何安裝 Raspian(樹莓派的官方 linux 發行版),否則 這個指南 就沒有用處了。

一旦你完成了 NOOBS 的安裝步驟,就可以看到樹莓派的啟動信息啦:

用樹莓派打造超酷的魔鏡

把樹莓派改為“ Kiosk ”

(譯者:Kiosk,一種面對系統管理員的全屏模式,是一種功能受限的瀏覽器模式,比如圖書館的電腦瀏覽器經常如此)

讓一個鏡子顯示樹莓派的桌面不太合適。有好幾種方法可以讓樹莓派工作起來像是“ Kiosk ”,不過我的做法如下。

安裝谷歌瀏覽器

如果 Raspblian 版本不對,那你可能會遇到麻煩,反正我是遇到了。這鏡子后面的樹莓派運行的是 Jessie 版 Raspblian 系統。很明顯它 對原始的 Raspblian 版本進行了一些改動,包括移除谷歌瀏覽器,用它可以很容易設置為 Kiosk 模式。

你可以自己谷歌一下,不過我通過以下命令成功安裝了它:

wget http: //ftp .us.debian.org /debian/pool/main/libg/libgcrypt11/libgcrypt11_1 .5.0-5+deb7u3_armhf.deb

wget http: //launchpadlibrarian .net /218525709/chromium-browser_45 .0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb

wget http: //launchpadlibrarian .net /218525711/chromium-codecs-ffmpeg-extra_45 .0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb

sudo dpkg -i libgcrypt11_1.5.0-5+deb7u3_armhf.deb

sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb

sudo dpkg -i chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb

開機運行谷歌瀏覽器

現在谷歌瀏覽器安裝好了,你可以把它設置為開機啟動并全屏:

打開開機啟動設置:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

注釋掉下面這行以關閉屏保:

@xscreensaver -no-splash

增加以下這幾行:

@xset s off @xset -dpms @xset s noblank /usr/bin/chromium --noerrdialogs --kiosk --incognito "http://localhost"

退出并保存。現在你關閉了屏保,關閉了電源管理設置,并且把谷歌瀏覽器設置為了開機啟動的本地 Kiosk 模式。

使用無線網絡

有很多教程教你怎么讓樹莓派連上無線網。這就像編輯你的 wpa_supplicant 文件一樣簡單:

sudo nano /etc/network/interfaces

然后編輯網絡設置:

network={ ssid= "Network name here" psk= "password" }

我確信你很聰明,也沒有使用古老又不安全的 WEP 路由協議。

現在用以下兩個命令重啟你的wifi:

ifdown wlan0 ifup wlan0

如果看到奇怪的報錯,別擔心,我也遇到過。你可以試試以下命令判斷你跑成功了沒:

ifconfig

如果你的 wlan0 設備分配到了一個 IP 地址,那你就可以斷開以太網鏈接并安裝鏡子背面了。我僅僅用了一些便宜的面板,用四根螺絲固定住而已。

用樹莓派打造超酷的魔鏡

設置網頁

現在我們有了個多功能 Kiosk 啦。就缺個真實的網頁了。我自己寫了個應用,你可以隨便修改或者直接用它。

我決定使用 PHP 的微架構 Lumen 以及一些 jQuery 和 MomentJs。

安裝網頁服務

要操作網頁你首先得安裝網頁服務,要跑 Lumen 你首先得安裝 php :

sudo apt-get update sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git

這需要一點時間,不過你需要知道 MirrorMirror 網頁安裝在哪里,以便配置 nginx :

sudo nano /etc/nginx/sites-available/mirror .conf

把以上配置復制到配置文件中:

server { listen 80; server_name localhost; root /home/pi/projects/MirrorMirror/public ;

index index.html index.htm index.php;

charset utf-8;

location / {

   try_files $uri $uri/ /index .php?$query_string;

}

location = /favicon .ico { access_log off; log_not_found off; }

location = /robots .txt  { access_log off; log_not_found off; }

access_log off;

error_log  /var/log/nginx/myapp-error .log error;

sendfile off;

client_max_body_size 100m;

location ~ .php$ {

   fastcgi_split_path_info ^(.+.php)(/.+)$;

   fastcgi_pass unix: /var/run/php5-fpm .sock;

   fastcgi_index index.php;

   include fastcgi_params;

   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

   fastcgi_intercept_errors off;

   fastcgi_buffer_size 16k;

   fastcgi_buffers 4 16k;

}

location ~ /.ht {

   deny all;

} }

然后激活這些配置:

sudo ln -s /etc/nginx/sites-available/mirror .conf /etc/nginx/sites-enabled/mirror .conf sudo service nginx reload

現在你的派里有了適用php的網頁服務了!

安裝 MirrorMirror

這是最后一步了,安裝真實的網頁。在 /home/pi 里建一個文件夾并進入:

mkdir /home/pi/projects cd /home/pi/projects

用下面的命令克隆 MirrorMirror 網頁應用:

git clone https: //github .com /ctrlaltdylan/MirrorMirror .git

安裝配置器以便安裝 Lumen 的相關依賴:

curl -sS https: //getcomposer .org /installer | sudo php -- -- install - dir = /usr/local/bin --filename=composer

使用配置器安裝 Lumen 的依賴,啟動 MirrorMirror 并運行:

cd MirrorMirror composer install

進入 http://localhost 就可以看到你的 MirrorMirror 的版本以及運行結果啦!

目前的功能:

  • 顯示天氣預報以及萌萌的氣象圖案。
  • 顯示日期和時間。
  • 顯示一句隨機的問候語,目前只有一句,不過計劃會加更多啦。

當然為了更簡單的安裝和定制化還需要更多的工作,不過我已經在思考怎么改善它了。希望你像我一樣享受建造和使用你自己的魔鏡。

非常感謝 Michael Teeuw 為我提供的初始靈感以及紀錄項目文檔。

更新

來源: mirrormirror.tech ,用于討論并提供幫助。這篇教程的任何更新都會放在上面。謝謝!

來自: http://www.finalshares.com/read-6431?g-134

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!