【導讀】樹莓派簡單易用,自發布以來已經被極客們DIY成各種應用了。最近一個外國小哥應用樹莓派DIY了一個魔鏡:會產生隨機問候語(如你今天好帥~)、會顯示日期和時間,還會告訴你天氣。最重要的是這個DIY還不難,周末被自己帥醒了,宅在家搗鼓兩天就可以完工了。溫馨提示:工具不齊請自行上X寶。
該魔鏡是一個(ge) 雙麵鏡,後麵是一台由樹莓派驅動的顯示器。你可以在黑色網頁上增加一些小組件,通過鏡麵反射後看起來就像魔法一樣。目前版本支持的組件,可以顯示天氣預報和日期時間,以及一句隨機生成的問候語(比如,你今天太帥了)。你不需要底層硬件的黑客知識,隻需要一些木工活和一些我已經整合好了的代碼。


所需材料:
一台顯示器
一麵和顯示器大小相匹配的雙麵鏡
一些 2 x 4 大小的木條,用來包裹顯示器
一些細木用來搭建鏡子的框架,我用的是1/8 x 3的板子
一塊樹莓派以及相關組件,比如電源、HDMI 線、無線 USB 適配器、以及一個進行初始化設置的鍵盤。
常用的木工工具,比如鋸子、砂紙和螺絲刀
螺絲和液體釘(譯者注:液體釘是粘合力極強的多功能建築結構強力膠。幹後不會收縮下限,可填縫,可油漆。適合於:木材、石膏板等各種建材。)
選擇顯示器
鏡子的大小取決於你選擇顯示器的大小。我想要一個盡可能大的顯示器,而且有一個可以拆卸的支架,可以裝到一個外殼中。另一個重要的方麵是要確保顯示器的輸入,在中間的位置而不是靠邊。
我盡量不去選擇輸入在頂部或者邊上的顯示器,因為那樣很難與邊框和樹莓派的 HDMI 線相匹配。我最終選擇了BenQ GL2760H,這台27 英寸的顯示器。結果證明它是非常適合的。

準備鏡子
鏡子絕對是整個(ge) 工作中最重要的部分。但是我之前並不知道,這些雙麵鏡實際上透明又像塑料一樣。它們(men) 比實際的鏡子有更強的可塑性,你可以用多種不同的方式切割它們(men) ,以滿足你的需要。所以訂一個(ge) 和你需要的尺寸相近的鏡子吧(這個(ge) 尺寸僅(jin) 指屏幕顯示部分,不要包括邊邊角角)。別擔心如果買(mai) 大了怎麽(me) 辦,你可以自己切割它。
我從(cong) TAPPlastics.com 上訂購鏡子,你也可以從(cong) 其他在線供應商那裏訂購。

去掉顯示器的邊框(可選)
為(wei) 了讓外殼更加貼合顯示器,我決(jue) 定去掉顯示器的塑料邊框。這是個(ge) 明智的決(jue) 定,因為(wei) 我一開始就沒有考慮盒子的厚度,用於(yu) 容納所有的連線。我用一把刮漆鏟翹起顯示器的邊框並把它分離出來。
分離顯示器控製的時候千萬(wan) 要小心。它們(men) 的電路非常薄,必須保證它完好無損,否則你就沒法打開和調整顯示屏了。




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

順便一提,我還在外殼的頂部和底部用螺絲(si) 打了孔。這樣是為(wei) 了給樹莓派一點點空氣流動。你不會(hui) 希望電腦在一個(ge) 完全密閉的空間裏把自己烤幹的。
最後再提一句,記得在外殼底部弄一個(ge) 大一點的洞以便電源線通過。當你為(wei) 顯示器和樹莓派的電源布線的時候,就用得著了。我最終在外殼上用直鋸搗了個(ge) 適合電線通過的洞。
製作鏡框
起先,我想要做一個(ge) 酷炫的折角為(wei) 45 度圓弧的鏡框。注意關(guan) 鍵詞:起先。還記得我說過我不是個(ge) 專(zhuan) 業(ye) 的工匠嗎?是啊,這對我來說有那麽(me) 一點點難度。我沒能成功做出圓弧的折角。相反,我記得說過我是個(ge) “極簡抽象派藝術家”,隻想要做個(ge) 90 度的折角。
不過另一個(ge) 障礙是,我原本打算使用kreig jeg(譯:不知道這個(ge) 是神馬)鑽幾個(ge) 小洞的,不過嘛,3/8 薄的木板,就像聖戰組織(jihadst應該是拚錯了,應該為(wei) jihadist)一樣,遇到一點點壓力就會(hui) 膽怯而易碎。不過幸運的是,一個(ge) 來自家得寶的工 程師告訴我有這麽(me) 一個(ge) 棒呆了的工具,幫了我大忙:

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

連接鏡框和外殼
這部分是我考慮最少的,如果我再做一次的話,我一定會(hui) 換個(ge) 方式。基本上來說我遇到了一點小麻煩,因為(wei) 鏡子和鏡框不匹配,導致外殼和鏡框之間有了間隙。幸運的是切割雙麵鏡是件很容易的事情。你可以換著法子切割,。
我恰好有個(ge) 帶鋸能用。這一步我唯一的建議來自『Will it Blend?』:“別把它吸進去” 。 我的意思是指那些塑料粉塵。

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

我犯的另一個(ge) 錯誤是沒有把鏡子粘在鏡框和外殼中間之前,分別給鏡框和外殼著色。這裏我沒拍照片,不過我最終使用膠帶覆蓋了鏡子並著色了邊緣。
但是天哪快看!一個(ge) 可以發光的鏡子。目前這隻是顯示器的自檢信息,不過這也是進步呀!

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

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

現在你可以通過一根線同時給顯示器和樹莓派供電啦。簡單地把樹莓派連接到顯示器上,連上網。我不會(hui) 很詳細地講解如何安裝 Raspian(樹莓派的官方 linux 發行版),否則就沒有用處了。
一旦你完成了 NOOBS 的安裝步驟,就可以看到樹莓派的啟動信息啦:

把樹莓派改為“ Kiosesk ”
(譯者:Kiosesk,一種麵對係統管理員的全屏模式,是一種功能受限的瀏覽器模式,比如圖書館的電腦瀏覽器經常如此)
讓一個鏡子顯示樹莓派的桌麵不太合適。有好幾種方法可以讓樹莓派工作起來像是“ Kiosesk ”,不過我的做法如下。
安裝穀歌瀏覽器
如果 Raspblian 版本不對,那你可能會遇到麻煩,反正我是遇到了。這鏡子後麵的樹莓派運行的是 Jessie 版 Raspblian 係統。很明顯它 對原始的 Raspblian 版本進行了一些改動,包括移除穀歌瀏覽器,用它可以很容易設置為 Kiosesk 模式。
你可以自己穀歌一下,不過我通過以下命令成功安裝了它:
wget https://ftp.us.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u3_armhf.deb
wget https://launchpadlibrarian.net/218525709/chromium-browser_45.0.2454.85-0ubuntu0.14.04.1.1097_armhf.deb
wget https://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 --kiosesk --incognito "https://localhost"
退出並保存。現在你關閉了屏保,關閉了電源管理設置,並且把穀歌瀏覽器設置為了開機啟動的本地 Kiosesk 模式。
使用無線網絡
有很多教程教你怎麽讓樹莓派連上無線網。這就像編輯你的 wpa_supplicant 文件一樣簡單:
sudo nano /etc/network/interfaces
然後編輯網絡設置:
network={ ssid="Network name here" psk="password" }
我確信你很聰明,也沒有使用古老又不安全的 WEP 路由協議。
現在用以下兩個命令重啟你的wifi:
ifdown wlan0 ifup wlan0
如果看到奇怪的報錯,別擔心,我也遇到過。你可以試試以下命令判斷你跑成功了沒:
ifconfig
如果你的 wlan0 設備分配到了一個 IP 地址,那你就可以斷開以太網鏈接並安裝鏡子背麵了。我僅僅用了一些便宜的麵板,用四根螺絲固定住而已。

設置網頁
現在我們有了個多功能 Kiosesk 啦。就缺個真實的網頁了。我自己寫了個應用,你可以隨便修改或者直接用它。
我決定使用 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
進入 https://localhost 就可以看到你的 MirrorMirror 的版本以及運行結果啦!
目前的功能:
顯示天氣預報以及萌萌的氣象圖案。
顯示日期和時間。
顯示一句隨機的問候語,目前隻有一句,不過計劃會加更多啦。
當然為了更簡單的安裝和定製化還需要更多的工作,不過我已經在思考怎麽改善它了。希望你像我一樣享受建造和使用你自己的魔鏡。