Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the simply-static domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6121
第 44 页

使用您的树莓派

介绍

在这里,您将学习如何使用树莓派操作系统Raspbian和它的一些软件,以及如何根据您的需要调整一些关键设置。

如果您还没有运行树莓派,请查看我们的 设置您的树莓派 指南。

pi桌面

树莓派桌面

您的树莓派运行Raspbian,这是Linux操作系统(OS)的一种发行版本。 (Windows和macOS是其他类型的操作系统)。

Raspbian启动后,您将看到桌面出现。

pi桌面

左上角的树莓派图标是您访问菜单的入口。

  • 单击它可以找到许多应用程序,包括 编程 和 办公 应用程序。
  • 要打开文本编辑器,请单击附件并选择文本编辑器 。
截图
截图
  • 通过单击窗口右上角的 x, 关闭文本编辑器。
  • 浏览菜单中的一些其他应用程序,例如Python游戏 。

键盘和鼠标设置

要设置鼠标和键盘,请从菜单中选择 首选项 ,然后选择 鼠标和键盘

键盘和鼠标设置菜单

鼠标

您可以在此处更改鼠标移动速度和双击时间,如果您是左撇子,则可以交换左右键。

鼠标设置

键盘

您可以在此处调整键重复延迟和间隔值。

键盘设置

要更改键盘布局,请单击 键盘布局 ,然后从国家/地区列表中选择布局。

键盘布局

连接到互联网

如果您想将树莓派连接到互联网,可以将以太网电缆插入其中(如果你有Pi Zero,你也需要一个USB转以太网适配器)。

如果您的型号是Pi 4, 3 或Pi Zero W,您还可以连接到无线网络。

连接到无线网络

  • 单击屏幕右上角的无线网络图标,然后从下拉菜单中选择您的网络。
没有wifi
wifi
  • 输入无线网络的密码,然后单击 确定
输入密码
  • 一旦您的树莓派连接到互联网,您将看到无线LAN符号而不是红色叉叉。
wifi
  • 通过单击Web浏览器图标并在Web上搜索 树莓派来测试您的连接。
浏览器

设置声音

您的树莓派可以将声音通过 HDMI 传接到屏幕的内置扬声器(如果您的屏幕有扬声器)或者传送到 模拟 耳机插孔。

  • 右键单击右上角的扬声器图标,选择您的Pi是否应使用 HDMI 或 Analog 连接进行声音处理。
pi声音连接
  • 单击扬声器图标可通过向上或向下移动滑块来调节音量。
pi音量

安装软件

有很多很多软件和应用程序您可以在树莓派上下载和安装。

注: 你的树莓派要 已经连接到互联网 ,然后才能安装软件。

  • 在菜单中,单击 首选项 ,然后单击 推荐软件
推荐的软件菜​​单

您可以浏览所有推荐的软件,也可以按类别对其进行过滤。

推荐的软件
  • 要安装某个软件,请单击以选中其右侧的复选框。
选择要安装的软件
  • 然后单击 确定 以安装所选软件。
安装软件

除了树莓派推荐的软件之外,还有一个庞大的可用程序和应用程序库。

  • 单击 首选项 ,然后单击菜单中的 添加/删除软件
添加删除软件菜单

您可以搜索软件,也可以从左侧菜单中选择一个类别进行浏览。

添加删除软件

让我们尝试安装名为 Pinta的绘图应用程序。

  • 在搜索框中输入“pinta”,然后按 回车键
  • 在出现的列表中选择 Simple drawing/paint program
pinta安装
  • 单击 确定 开始安装过程。
  • 出现提示时,输入您的密码;如果您没有更改密码,它将是’raspberry’。
验证软件安装

Pinta现在将被下载并安装。

安装包
  • 完成此过程后,从菜单中选择 图像 然后选择 Pinta 打开Pinta。
pinta菜单

更新你的Pi

最好定期使用最新功能和修复程序更新Pi上的软件。

  • 您可以使用 添加/删除软件 应用程序更新Pi:通过从菜单的 首选项 选择它来打开。
添加删除软件菜单

在检查并安装任何更新之前,您应该刷新Pi上的软件包列表。

  • 单击左上角的 选项 ,然后选择 刷新软件包列表
刷新软件包列表

然后,您的Pi将更新所有包列表。

下载新的软件包列表
  • 完成后,单击 选项 然后选择 检查更新
检查更新

软件包更新程序 将打开并自动检查更新是否可用。 它将显示它在列表中找到的任何内容。

软件包更新程序
  • 单击 安装更新 以安装所有可用更新。
  • 出现提示时,输入您的密码;如果您没有更改密码,它将是’raspberry’。
验证软件安装
  • 然后将下载并安装更新。 您可以通过检查左下角的进度条来查看安装。
下载软件包

访问您的文件

树莓派上的所有文件(包括您自己创建的文件)都存储在SD卡上。 您可以使用 文件管理器 应用程序访问您的文件。

  • 单击 附件,然后单击菜单中的 文件管理器,或选择菜单栏上的 文件管理器 图标。
文件管理器菜单

当文件管理器打开时,您将看到 pi 目录 – 这是您可以存储文件和创建新子文件夹的位置。

文件管理器
  • 双击 Documents 图标打开目录并查看其中的文件。
文档

要打开文件,请双击其名称,或右键单击该文件以打开文件菜单以获取更多选项。

文件菜单

您可以在树莓派上使用USB硬盘和U盘。 这是备份文件并将其复制到其他计算机的便捷方式。

  • 将U盘插入树莓派。 将弹出一个窗口,询问您要执行的操作。
插入U盘
  • 单击 确定 到 在文件管理器打开。

文件管理器将打开并显示U盘上的文件。

U盘文件管理器

使用终端

终端 是一个非常有用的应用程序:它允许您使用键入的命令来访问文件目录并控制树莓派,而不是单击菜单选项。 它通常出现在许多教程和项目指南中,包括我们网站上的指南。

  • 要打开终端窗口,请单击屏幕顶部的 终端 图标,或者在菜单中选择 附件 ,然后选择 终端
截图

您可以在终端窗口中键入命令,然后按键盘上的 回车键 运行命令。

  • 在终端窗口中,键入:
ls
  • 然后按键盘上的回车键

ls命令列出当前文件目录中的所有文件和子目录。 默认情况下,终端在打开时访问的文件目录是名为 pi的文件目录。

pi终端ls
  • 现在输入此命令 change directory切换到桌面。
cd Desktop

每次命令后都必须按 回车键 。

  • 使用ls 命令列出Desktop目录中的文件。
ls
pi终端ls桌面

终端可以做比列出文件更多的事情 – 这是与树莓派进行交互的一种非常强大的方式!

  • 仅作为一个小例子,尝试命令 pinout
pinout

这将显示GPIO引脚的标记图,以及有关Pi的其他一些信息。

pinout
  • 单击 x 或使用命令 exit关闭终端窗口。

配置你的Pi

您可以通过菜单上 首选项 的 Raspberry Pi Configuration 应用程序控制大部分树莓派的设置,例如密码。

pi配置菜单

系统

在此选项卡中,您可以更改Pi的基本系统设置。

pi配置系统
  • 密码 – 设置 pi 用户的密码(最好更改出厂默认设置的密码’raspberry’)
  • Boot – 选择在Raspberry Pi启动时显示 Desktop 或 CLI (命令行界面)
  • 自动登录 – 启用此选项将使树莓派在启动时自动登录
  • 引导时连接网络 – 选择此选项将使树莓派等待网络连接可用,然后再启动
  • 启动画面 – 选择是否在Raspberry Pi启动时显示启动画面

接口

您可以使用许多不同类型的连接将设备和组件链接到树莓派。 “接口”选项卡用于打开或关闭这些不同的连接,以便Pi识别出您通过特定类型的连接将某些东西链接到它。

pi配置接口
  • 摄像头 – 启用 树莓派摄像头模块
  • SSH – 允许使用SSH从另一台计算机远程访问您的树莓派
  • VNC – 允许使用VNC从另一台计算机远程访问树莓派桌面
  • SPI – 启用SPI GPIO引脚
  • I2C – 启用I2C GPIO引脚
  • Serial – 使能串行(Rx,Tx)GPIO引脚
  • 1-Wire – 启用1-Wire GPIO引脚
  • 远程GPIO – 允许从另一台计算机访问Raspberry Pi的GPIO引脚

性能

如果您需要为要处理的特定项目执行此操作,可以在此选项卡中更改Pi的性能设置。

警告:更改Pi的性能设置可能会导致其表现不正常或无法正常工作。

pi配置性能
  • 超频 – 更改CPU速度和电压以提高性能
  • GPU内存 – 更改给予GPU的内存分配

本土化

pi配置本地化

此选项卡允许您将Raspberry Pi设置更改为特定于国家或地区。

  • 区域设置 – 设置树莓派使用的语言,国家/地区和字符集
  • 时区 – 设置时区
  • 键盘 – 更改键盘布局
  • WiFi国家 – 设置WiFi国家代码
发布于 分类 Linux

开始使用树莓派

简介

在这个项目中,你将连接起一台树莓派电脑,并了解它可以做什么。

注: 本指南是对树莓派计算机的介绍,以及设置树莓派的详细指南使用您的树莓派 

你将能做什么

树莓派是一台可以做很多事情的小巧的计算机。 将其与和显示器、键盘和鼠标连接。

截屏

你将学到什么

本项目涵盖了树莓派数字制作课程如下几方面内容:

教师附加信息

如果您需要打印本项目文件,请使用适合打印版本

请使用页脚的链接访问此项目的GitHub版本库,文件夹’zh-CN/resources’里包含了所有资源(包括最终版示例) 。

你需要什么

硬件

  • 一个带有SD卡或Micro SD(TransFlash) 卡的树莓派
  • 带有连接线的显示器(可能还需要HDMI适配器)
  • USB键盘和鼠标
  • 一个电源
  • 耳机或扬声器(可选)
  • 以太网线(可选)

软件

  • Raspbian操作系统,通过NOOBS安装

认识树莓派

你将第一次见到树莓派! 你应该有一台树莓派电脑。 它应该没有连接任何东西。

  • 看一下你的树莓派。 你能找到图上标注的所有东西吗?
截图
  • USB端口 – 这些端口用于连接鼠标和键盘。 您还可以连接其他组件,例如U盘。
  • SD卡插槽 – 您可以将SD卡插入此处。 这是操作系统和文件存储的地方。
  • 以太网口 – 用于通过网线将树莓派连接到网络。 树莓派也能用wifi上网。
  • 音频插孔 – 您可以在此连接耳机或扬声器。
  • HDMI端口 – 用于连接显示器(或投影仪)将树莓派桌面显示出来。 如果您的显示器带有扬声器,您也可以使用它们播放声音。
  • Micro USB电源接口 – 这是连接电源的地方。 你应该永远在连接完所有其他组件后,最后再连接电源。
  • GPIO接口 – 这些接口允许您将电子组件(如LED和按钮)连接到树莓派。

连接你的树莓派

让我们连接你的树莓派并让它运行起来。

  • 检查树莓派底部的插槽,看看SD卡是否插入。 如果没有SD卡,则插入一个安装了Raspbian的SD卡(通过NOOBS)。截屏

注意: 许多micro Sd卡都是插在一个大号的卡套里的 – 您可以使用底部的凸起部分将卡取出。

sd 卡槽

用NOOBS安装Raspbian

  • 找到鼠标的USB插头,并将它连接到树莓派上的USB接口(随便哪个都可以)。截图
  • 以同样的方法连接好键盘。截屏
  • 确保您的显示器连接了电源并打开显示器开关。
  • 看看树莓派上的HDMI接口 – 请注意它顶部又大又平。
  • 使用HDMI线将显示器连接到树莓派的HDMI接口 – 如有必要,请使用适配器。树莓派4连接显示器到树莓派4的第一个HDMI接口 ,它标注了HDMI0.HDMI您可以以相同的方式连接的第二个屏幕。(可选)HDMI树莓派1,2,3代将屏幕连接到单HDMI端口。树莓派3 HDMI

注意: 现在屏幕上不会显示任何内容,因为树莓派尚未开机。

  • 如果要通过以太网将树莓派连接到因特网,请使用以太网网线将树莓派上的以太网接口连接到墙上或路由器上的以太网接口。 如果您要使用WiFi或者您不想连接到互联网,则无需执行此操作。
以太网
  • 如果您的屏幕有扬声器,您的树莓派可以通过显示器播放声音。 或者您可以将耳机或扬声器连接到音频端口。
耳机
  • 将电源插入插座并将其连接到树莓派的Micro USB电源接口上。
截屏

你应该看到树莓派上的红灯亮起并且显示器上显示出树莓图像。

然后,您的树莓派将引导到桌面。

截屏

完成设置

当您第一次启动树莓派时,将弹出 欢迎使用树莓派 应用程序并引导您完成初始设置。

树莓派设置向导
  • 单击 下一步 开始设置。
  • 设置您的 国家, 语言和 时区,然后再次单击 下一步 。
pi 设置国家向导
  • 为你的树莓派输入新密码,然后单击 下一步
pi设置密码向导
  • 选择要连接的WIFI网络名称,输入密码,然后点击 下一步完成连接。
pi 设置WIFI向导

注意: 如果您的树莓派型号没有无线连接,您将看不到这个屏幕。

  • 单击 下一步 让设置向导检查Raspbian的更新并安装它们(这可能需要一段时间)。
树莓派设置向导 更新
  • 单击 完成 或 重新启动 以完成设置。

注意: 如果需要完成更新,您只需要重新启动。

树莓派设置向导 完成

漫游树莓派

现在是时候去漫游树莓派了。

  • 你看到左上角的树莓图标了吗? 这就是你访问菜单的地方:点击它,可以找到很多应用程序。
  • 单击 Accessories 然后选择 Text Editor
截图
  • 在弹出的窗口输入我刚刚装好了一台树莓派电脑。
screenshot
  • 单击 File,然后选择 Save,然后选择 桌面 并将文件保存为 rp.txt
截图
  • 您应该看到名为 rp.txt 的图标出现在桌面上。
截图

您的文件已经保存到树莓派的SD卡上了。

  • 单击窗口右上角的 X 关闭文本编辑器。
  • 返回到树莓菜单,选择 Shutdown,然后选择 Reboot
  • 当树莓派重新启动后,您的文本文件应该仍然在桌面上。
  • 树莓派运行一种称为Linux的系统的一种发行版本(Windows和MacOS是其他操作系统)。 它允许您通过键入命令而不是单击菜单选项来完成各种任务。 点击屏幕顶部的 Terminal标志:
截图
  • 在出现的窗口中,输入:ls

然后按下键盘的 回车键。

您就可以在home中看到文件和文件夹的列表目录。

  • 现在,键入这个命令把目录更改(change directory )到Desktop:cd Desktop

您必须在每个命令后按 回车 键。

然后输入:

ls

你能看到你之前创建的文件吗?

  • 点击 X关闭终端窗口。
  • 现在将 rp.txt 拖动到桌面上的垃圾桶,以便树莓派可以被下一个人使用。截图

浏览网页

您可能想要将您的树莓派连接到互联网。 如果在安装过程中未插入以太网电缆或连接到WiFi网络,则可以现在连接。

  • 点击屏幕右上角带红色叉叉的图标,然后从下拉菜单中选择您要连接的网络。 您可能需要向老师询问您应该选择哪个网络。
Wifi未连接
  • 输入的无线网络密码,或请求大人为您输入密码,然后点击 确定
输入密码
  • 当您的树莓派连接到互联网时,您将看到无线局域网符号,而不是红色叉叉。
截屏
  • 点击网页浏览器图标并搜索 树莓派
截图

挑战:探索树莓派

浏览菜单 – 你能否找到:

  • 某一版本的Scratch?
  • 玩一个Python游戏?
  • 您可以编程的Minecraft版本?
发布于 分类 Linux

使用树莓派做一个“魔镜”

第一部分——点子与镜子

作为一个男人,跟女友逛商城时,像是梅西百货那种的,难免会走神。我就是那号人,去年一月在纽约就发生过一回。长话短说。在我闲晃时我发现一面有灯光照明的镜子。我完全能自己做一面出来,而且比这更好。我想要属于我自己的魔镜!

magic_mirror1

一回到家,我开始构想我需要的东西:一面镜子,薄的那种,一个树莓派,一些木头和油漆,还需要大量空余时间。

关于镜子

普通的镜子是不行的。镜子是要那种单面透光那种,或更加精细功能的:后面屏幕黑屏时,它是一面镜子;而信息在屏幕上显示时就该像普通玻璃窗那样。

和警察局问询室内那面镜子原理一样,当只有一间房有光时,它就像一面镜子,其他时候它就是普通玻璃窗。

magic_mirror3

我所需要的是一面观察镜。现在,请相信我,当你问买玻璃的要一面观察镜时,会被反问一些奇怪的问题。他们那些人往往有更多新奇点子……嘿嘿,肮脏的思想永远是快乐的源泉。

终于我还是得到了一块不错的观察镜。开始找乐子吧!

第二部分——显示器

magic_mirror4

解决了镜子问题后,是时候为魔镜项目入手一台显示器了。

在为魔镜选择合适的显示器过程中,有一些纠结的决定。我是买一台新显示器还是捡一台呢?我需要什么尺寸?屏幕最薄会是多少?我如何移动控制按钮?屏幕是否够亮来盖过我的堂堂仪表?

因为我用显示器作为仪容之用,选择合适尺寸差不多就是选择合适的宽度(也就是镜子合适的高度)。在一些测量和尝试用胶带固定在墙上我想放置镜子的位置后,24英寸屏幕会是完美的选择。额外带来的好处是,绝大多数(便宜的)24英寸屏幕初始就带有1080P分辨率,正是我想在这个项目所使用的分辨率。

为了合适的屏幕类型和品牌,我几乎跑遍了方圆20公里内的电器铺。我敢肯定保安大叔在盯着我,而我正仔细检查所有屏幕背面和底部。

大多数品牌被立即否定了,因为它们的电源和视频连接线在背后。我需要转接线是在侧面的那种。

magic_mirror5

最后我选择了Iiyama显示器,它最接近我所希望的——价格便宜,边框窄小,简单触控按钮和正确转接器方向。

直到现在,我还是不清楚显示器外壳能否轻易被卸除,控制面板如何在显示器内部被连接上。销售人员不许我做出怪异的动作,打开显示器外壳,所以买到这台合适的显示器纯属运气。

magic_mirror6

我订购了一台24英寸Iiyama E2481HS-B1显示器。为确定显示器和镜子之间气密性良好,我拆下了外壳。在刚刚开箱就进行拆卸显示器够战战兢兢的,但……勉强成功。

这台Iiyama显示器的好处是,显示控制器(金属盒内的电子元件)为这面镜子的其他零件留下了足够的空间,而又保持了它原本的苗条外形。

magic_mirror7

实际的显示板仅有9毫米厚,而小小的边框也只是10毫米宽。加上显示控制器后,就是下列尺寸:556毫米x323毫米x46毫米(外加6毫米的镜子厚度)。这些尺寸构成了新的木头外壳尺寸。

第三部分——外壳

magic_mirror8

在量度新外壳所需尺寸后,就开始享受DIY的喜悦吧。我用松木做了个结实坚固的框架,用地板地脚线固定镜子和显示器的位置,那尺寸刚刚好(30毫米宽),还有圆角边框效果。

镜子很可能会发热,那就需要通风口了。此外,在外壳的背后还加了几个既美观又结实的挂点。

小剧透:产品最终重量6.5千克,由我做的两个挂载点所推测得来。

magic_mirror11

补充一下,我在外壳的底部开了条细缝作为电源线槽。

当然,它需要进行上色。在涂抹油灰(我在打磨抛光时后悔涂太多油灰了)、一些地漆及上土层后,新外壳完工。

magic_mirror14

有个木工小步骤我要去做的:我做了4个挂在块来安装显示器与镜子。现在准备好将它们上在镜框里面。

magic_mirror15

木工部分到此结束,进入魔镜的下一环节,安装硬件。

第四部分——安装硬件

magic_mirror16

魔镜开始成形。我订购了镜子,找到合适的显示器,完成打磨白色的外壳,是时候开始安装硬件了。

目前我手上有以下零件: · 显示器 · 树莓派 · 一条HDMI线(连接树莓派和显示器) · 一条USB转micro USB转接线(用来为树莓派供电) · 一条显示器电源线

但接着我遭遇到小小挫折。在找合适的显示器时,我完全没想到看看显示器有没有一个USB口,用来驱动树莓派。我以为现在的显示器都默认装有USB口,不过我错了,它没有。

这不是不能解决的问题,但我真心希望只用一条线来驱动魔镜。所以我只能将电源分为两条线,一条给显示器,一条给240伏USB降压器。补充一点,我希望用一条普通C13电源线就能驱动魔镜。

magic_mirror17

也就是说,我要做的是中间带有USB充电器的接插电源线。在翻了我几个闲置线材抽屉后,我找到了个旧USB充电器。

magic_mirror18

拆开充电器比想象中的容易,只要一点点焊接工序,一些胶和绝缘胶布即可。我要设法做个外观高大上的电源线。

magic_mirror20

我做了试运行,确保电源线正常工作。我将所有零件连接好,插好电源线,打开显示器。树莓派启动正常,USB充电器没有发热过量。不错!

magic_mirror21

接着组装所有零件。这次没有倒霉事件:所有东西完美吻合。

magic_mirror24

另一个阶段完成了,包括所有实体部分(除了还没把两颗螺丝钉在墙上)。进入戏肉的部分:安装树莓派。

Magic Mirror: Part V – Installing the Raspberry Pi

第五部分——安装树莓派

magic-mirror25

那么,做完所有硬件之后,就轮到安装树莓派了。要达到魔镜的所有需求,树莓派就要有以下功能:

· Wifi连接 · 屏幕旋转90度,符合照镜方向 · 本地网络服务维持界面 · 在全屏幕下运行的浏览器,用于显示界面

基本安装

因为Raspbian操作系统的灵活性和背后有开源社群支持,我就选了它。下载了操作系统映像后,就把它写入SD卡。

拷贝一个映像档需要很长时间,那么有三种选择:

  1. 用树莓派技术文档中提到的rdisk方法拷贝。
  2. 拿杯咖啡,坐下,在等待中享受咖啡因的感觉。
  3. 上面两者都选。

我选了3。完成拷贝后,我启动树莓派、登入,进入命令行的sudo raspi-config开始配置向导。在这个配置中,有几件重要事项需要配置:

· 确保系统启动到桌面(取代命令行模式或调试模式)。 · 调整时区,使魔镜显示正确时间。 · 在高级选项部分,确保显存超过128MB。 如果你想做和这个一样的镜子,尽管尝试选择所有其他选项。只是记住,如果选砸了,就再泡杯咖啡重装系统吧。

Wifi连接

我不想在魔镜上加任何多余的连接线,就选择了以Wifi连接因特网。安装Wifi接收器真的依赖频宽和种类,因此写下完全过程是多余的。有最好的替代吗?看看这个神奇的网站……

老实说,这部分安装确实很花时间。一旦装好了,就能工作正常。

旋转屏幕

魔镜在设计上是纵向肖像模式,所以我需要将屏幕顺时针旋转90度,最终显示分辨率为1080 x 1920。我曾担心这会是最大的问题,最终却很容易解决了。

树莓派的BIOS设置储存在系统启动分区中。在这分区中,有一个config.txt文件,载有所有设置。要旋转显示器,在这文件内加上以下一行代码:
display_rotate=1

要让显示器连接更加可靠,我就不解释为何加上下面允许HDMI线热插拔的代码了:
hdmi_force_hotplug=1

配置文件存盘后重启树莓派,我不禁会心一笑:这感觉真好,腰不疼颈不酸了!

网络服务器

要维持界面(很简单的一个网页),我需要在树莓派上Apache服务器。这在树莓派上是其中一个很常见的应用,安装过程简直行云流水。

首先我运行下列指令,确定我用的是最新系统软件。
sudo apt-get update && apt-get upgrade -y

现在是时候真的安装Apache了:
sudo apt-get install apache2 apache2-doc apache2-utils

完成了!就是所有这些。但要保证在服务器上能用到一些PHP脚本(以后会更多的),我也加上了PHP支持:
sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache

又完成了!重启之后,网页服务器就挂载上线运行了!我在/var/www文件夹内放置了index.php文件,将浏览器首页指向树莓派的IP地址,发现成功了。

信息模式(kioskmode)

现在就是要确定树莓派能够显示我在信息模式(kioskmode)下用Chromium浏览器显示的网页。Chromium浏览器是个能在树莓派操作系统上运行的开源浏览器。

一如既往,安装很简单:
sudo apt-get install chromium x11-xserver-utils unclutter

但这一次,它需要一些额外设置,在信息模式下禁用屏幕保护和自动重启。我在/etc/xdg/lxsession/LXDE/autostart作了编辑,在前面加上了#号。
@xscreensaver -no-splash

另外我还加了以下代码:
@xset s off @xset -dpms @xset s noblank @chromium –kiosk –incognito http://localhost

这样就能完全禁用所有屏保功能,及Chromium浏览器在开机后自动启动,开启全屏模式并导向本地主页。

存盘并再一次重启,检查工作效果。树莓派并不是世界上最快的电脑,它需要花点时间,但最终测试页还是在旋转了90度的画面上显示出来。要得!

进入项目的最后部分,界面开发。

第六部分——界面开发

回顾一下,我买了合适的镜子、显示器,做了个新外壳,安装好硬件及配置完成树莓派,那就进入最后一步——界面开发。

需求和功能

我开始项目时,我发现不能通过镜子直接进行任何交互,要不然在铮亮的镜面上会抹上油脂和什么脏东西。但还有更重要的原因,还有别的更好设备可用于用户交互。我希望魔镜只是个被动信息来源。

而更更重要的是,镜子就是镜子,不应被大量(无用的)信息所填满。只有边上能用来作摘要性显示,给本帅哥留些足够自恋的空间吧。

这样我需要以下信息类别目录来满足我对信息的需求:

· 问候语 贴心问候,每日美好的开始。

· 天气 看到我穿的衬衫吗?不错吧!嗯?今天穿T恤衫不会鸡冻吧?

· 时钟和日历 现在赶时间吗?还有足够时间顾影自怜吧?

· 消息反馈 我只是担心自己形象帅不帅吗?还有别的需要上心吗?

当然,未来版本当中有大量的改进可能,现在列出的这些应该够用了。

基本安装

前面提过,程序界面不是一个在树莓派桌面上神奇的应用,仅仅是一个全屏幕网页。我能用HTML、CSS和Javascript开发外,还有一个额外的好处,在我将它放入魔镜之前,能在我的苹果电脑上开发测试。

magic-mirror28

在自己写的代码基础上,我用了一些开源库文件来优化它的运行速度:

Jquery

像大多数网站那样,魔镜使用Jquery来简化DOM操作方式,对我这种懒人最为适用。

Moment.js

它对我在时间安排操作上帮助不少,尤其是在争分夺秒时更节省不少时间。

FeedToJson

将RSS订阅用JSON数据转成javascript的方便工具。

iCal Parser

将iCal数据转化为JSON。可惜这个库文件并不完美,需要一些额外的优化。

以上这些库文件,加上我自己的HTML和Javascript足够使我的镜子成精了。

设计

我的魔镜需要个酷炫设计。我本人是个严重果粉,那么在设计上要遵从苹果系的设计指标

边框、倾角、阴影效果有时是用户界面厚重感的因素,甚至能盖过显示内容的光芒。所以,专注在内容设计,把用户交互界面摆在辅助位置上。

利用足够的实体空间,它是个重要内涵,在感官上更让人注意和易于理解。

怎么做到这一点?用Helvetica Neue字体,用天气图标对应显示天气信息。

magic-mirror29

镜子在背后没有光源时就只是一面镜子,用黑色背景是个重要设定。而为了有最好的对比度,显示内容字体应为白色,在加一些灰色阴影边缘,那灰度为50吧……

我大可以加上一些其他色彩,但目前为止我只想做到简洁的黑白界面。我可不想镜子比我的尊容还要出彩。(译者注:镜子:好吧,我不告诉你谁是世界上最帅的男人。镜子,碎。)

API设计

为了接收我想在镜子上显示的数据,我用了一些开源API和反馈代码。还有谁不太清楚什么是API,维基百科里面有详尽的解释:

“电脑操作系统(Operating system)’或‘程序库’提供给应用程序调用使用的代码。”

我心中的API就像你家的DVD播放器背后那样充满接口——如果你将其他设备连接到它的话,它就变得更加有用,这些接口本质上就是API。API让设备变得功能强大、有趣,尤其对我这种电脑狂人来说。

Openweathermap.org

Openweathermap有很好的API接口,能够免费得到天气预报信息。它允许你查询区域内的信息,定义你想要的信息类别。在这里我用了两个连接,一个是当前天气,另一个是预报天气。

iCal Calendar

iCloud允许你以iCal格式分享日历。因为javascript无法做到这一点(因为多站点脚本安全问题),我需要通过PHP代理服务器来开启数据。这其实很容易,只有三行代码而已:

12<!--?php <br ?-->    $url = "https://p01-calendarws.icloud.com/ca/subscribe/1/mysupersecreticloudhash";    echo file_get_contents($url);

只需查询calendar.php就能将在同一个服务器内日历表在界面上显示出来。

前面说过的iCal语法分析编辑帮我把信息解析成有用信息。可是,iCloud在他们的反馈中用了一些非标准标签,我要添加额外的代码行来将代码解析为javascript文件。

magic-mirror30

NOS新闻订阅

新闻订阅只是用到了荷兰公共广播公司的RSS订阅功能。可是,他们不支持JSON格式数据,因此我用了FeedToJson插件来把RSS数据转为JSON格式的。

其他内容,例如当前日期与实践,还有问候语都只是一些简单的javascript语句。

自动更新

你看了这篇博客这么久,应该能接受更进阶的信息了吧。那么瞪大眼看下去吧……

在开发当中,我遇到了一个很不爽的境地,就是没有键盘和鼠标连在魔镜上的问题。如果我更新界面,就没有一个简单方法在魔镜上更新页面的方法。最简单直接的方法是重启整个树莓派,但让我在调试每个更新上花时间太多了。

我用GIT分布控制系统更新文件,而每个更新版本都有本身的哈希校验提交码,我用PHP就能读取出来。这启发了我再代码行内加上一个片段,将本地页面和刚刚开发的页面进行哈希比对。如果两者不符,程序将重新载入网页,显示最新版本。

我用以下PHP代码获取当前网页上的哈希校验码:

1trim(`git rev-parse HEAD`)));

对比过程在javascript主文件内完成,但只有在HTML文件有当前版本的哈希校验值前提下才能实现:

1var gitHash = '';

现在,对比过程就很直观,每3秒进行一次:

1234567891011121314(function checkVersion()    {        $.getJSON('githash.php', {}, function(json, textStatus) {            if (json) {                if (json.gitHash != gitHash) {                    window.location.reload();                    window.location.href=window.location.href;                }            }        });        setTimeout(function() {            checkVersion();        }, 3000);    })();

所有这些神奇的操作,让更新魔镜界面变得简单。只需用SSH登入树莓派,进入合适的文件夹,然后处理一个git推送请求。

给我交出代码来!

得了得了……好奇了吧?所有代码在GitHub上都有。有件事情要说一声:代码很少标注,以面条式代码填充(译者注:就是大量复杂逻辑结构诸如if、when之类的条件语句,没想到老外还是有和国人程序猿一般的生物,反面例子啊),通篇都是TODO语句。哈,不怕晃晕菜的,尽管扎进去吧。

未来展望

魔镜还能做更多的功能,这是一个陆续发展过程。如有新功能上的建议,请不吝提供。让我知道你想在界面上的创意。不过请记住,少为美。:)

尽管有很多改进需要跟进,项目就总结到这儿吧。请关注我的博客,我会登出更多的照片来秀一下成品。

via org

2019-6-9 更新:
经过数年,无数 Maker 前赴后继地创造、加入到制作队伍,已经形成了一个专门 DIY 魔镜的社区。
网站不仅提供了完整的项目源码、一键安装脚本。还分享了项目中所用到的每个第三方模块,非常丰富,感觉已经发展成了一个平台化的系统软件。

发布于 分类 Linux