1、安装树莓派要达到魔镜的所有需求,树莓派就要有以下功能:Wifi连接屏幕旋转90度,符合照镜方向本地网络服务维持界面在全屏幕下运行的浏览器,用于显示界面因为Raspbian操作系统的灵活性和背后有开源设全支持,我就选了它。安装树莓派花时间太久,这里就不详述了。我最担心的问题是将屏幕顺时针旋转90度,最终显示分辨率为1080x1920。树莓派的BIOS设置储存在系统启动分区中。在这分区中,有一个Config.txt文件,载所有设置。要旋转显示器,在这文件内加上一下一行代码:display_rotate=1要让显示器连接更加可靠,我就不解释为何加上下面允许HDMI线热插拔的代码了:hdmi_force_hotplug=1配置文件存盘后重启树莓派,不由得感叹,树莓派简直太好用了。由于在镜子上显示的内容实际上是一个网页,因此我需要在树莓派安装上Apache服务器。在这树莓派上是一个很常见的应用,安装过程简直行云流水。然后是要确定树莓派能够显示我在信息模式(Kioskmode)下用Chromium浏览器显示的网页。Chromium浏览器是个能在树莓派操作系统上运行的开源浏览器。一如既往,安装很简单。另外我还加了以下代码:@xset s off@xset-dpms@xset s noblank@chromium-kiosk-incognito http://localhost这样就能完全禁用所有屏保功能,及Chromium浏览器在开机后自动启动,开启全屏模式并导向本地主页。
2、界面开发首先,我在开发之初就已经确定好了,镜子不是触摸屏,不能直接进行交互,一方面会让镜子变得很脏,另外未来也可以加上类似于Kinect一类的手势识别装置来进行交互。但现在,这个镜子只是一个展示信息的工具。而更重要的是,镜子就是镜子,不应被大量(无用的)信息所填满。只有边上能用来做摘要性显示。以下是我对信息的需求:问候语天气时钟和日历新闻订阅(或其他消息订阅)当然未来版本当中有大量的改进可能,现在列出的这些应该够用了。由于所有展示的信息其实是个网页,因此我能用最简单的HTML、CSS和Javascript开发,关键是现成的代码网上一大堆,比如:Jquery:懒人最爱Moment.js:用来搞定时间戳FeedTojson:将RSS订阅用JSON数据转成Javascript的方便工具。iCal Parser:将iCal数据转化为JSON作为一个资深果粉,那么在设计上一定要遵从苹果系的设计指标:比如使用Helvetica Neue字体,还有各种苹果风格的天气图标。关于各种数据获取,当然是使用开源的API,比如Openweathermap.org有很好的API接口,能够免费得到天气预报信息。在这里我用了两个连接,一个是当前天气,另一个是预报天气。另外,iCloud允许你以iCal格式获取日程表信息。新闻订阅用到了荷兰公共广播公司的RSS订阅功能。可是,他们不支持JSON格式数据,因此我用了FeedToJson插件来把RSS数据转为JSON格式的。其他内容,例如当前日期与时间,还有问候语都只是一些简单地javascript语句。所有代码我都放到了git上面:https://github.com/MichMich/MagicMirror由于我是懒人,代码很少标注,基本上都是if、when等条件语句构成,小白都能看懂的。
3、未来在镜子上面加一个高清摄像头,加入一些手势操作或者更复杂界面功能开发。宅男们,受到启发了吗?