OpenEyeTap:基于树莓派的开源AR智能眼镜

这一款EyeTap智能眼镜,使用3D打印组件,内置光学微型显示器,微型摄像头和带wifi功能的树莓派Zero W。具有电子记录功能(类似车载记录仪)和快照功能。

以下是项目团队对该项目的说明。

欢迎各位了解Open EyeTap项目!我们是一个具有雄心壮志的创作团队,致力于打造世界上最灵活的智能眼镜和可穿戴增强现实的社区。我们希望提供一个框架使AR技术可以蓬勃发展。我们希望与世界各地的设计师分享我们的EyeTap。作为一个社区,我们可以共同改进这种开源技术。

我们在这个项目中的主要目标是简化EyeTap的构建。我们希望它能帮助您建立自己的体系和减少进入AR领域的障碍。也希望你会找到有趣的功能和设计(也许是符合你生活方式的特定功能),都可以添加和分享到我们的网站:openeyetap.com!我们相信,作为一个社区,我们都可以成为开发第一波开源增强现实式眼镜不可或缺的有力臂膀。

下面我们详细介绍这款造价不到200美元的EyeTap的DIY步骤,你就可以打造同款了。简而言之,我们将使用3D打印组件,内置光学微型显示屏,微型摄像头和带wifi功能的树莓派 Zero W。我们目前开发了一种可以用EyeTap运行的电子记录功能(类似车载记录仪),更多其他模块和功能即将推出。

功能1:记录功能(Dash-camera)+ 快照功能

1、按下#1时,可拍摄照片。
2、按下#2时,可视频拍摄。按下按钮可保存1分30秒前的画面和后30秒的画面。如果连接到无线网络,将自动上传到你的YouTube频道。如果你的EyeTap未连接到WiFi,则保存到本地SD卡。

什么是记录功能?

车载摄像头在汽车中很常见,可以记录事故或异常事件。它们在循环缓冲区中运行,不断记录和覆盖旧的影像资料。在类似的运行基础上,我们可以从自己的视角拥有个人的视频纪录。如果你目睹或卷入任何意外事件,或着是想记录有趣或难忘的时刻,都可以按下按钮保存纪录。

当按下按钮#2时,最近的1分30秒,和按下按钮30秒后都将记录并保存为一个视频文件。如果连接到无线网络,这将自动上传到你的YouTube频道,如没有连接WiFi的情况下,则会本地保存。

步骤1:项目所需材料

需要3D打印部件(项目文件库中包含STL文件)

1x 3D打印头架
1x 3D打印左耳机
1x 3D打印右耳机
1x 3D打印鼻夹
1x 3D打印树莓派zero外壳
1x 3D打印树莓派zero盖子
1个3D打印的微型屏幕外壳
1个3D印刷的微型屏幕电路外壳

你可以选择水平或垂直的版本。本项目中,我们将使用水平版本,尽管照片中显示的是垂直的。

所需的电子和机械零件

树莓派Zero W × 1
微型显示屏 × 1
微型摄像头 × 1
微型摄像头Flex适配器 × 1
微型摄像头连接到树莓派的软排线 × 1
鼻夹片和1.5mm螺丝 × 1
分光镜 × 1
35cm电线 × 4
15cm电线 × 4
按钮 × 2

所需的工具

16mm M2螺丝 × 8
14mm M2螺丝 × 2
12mm M2螺丝 × 4
10mm M2螺丝 × 1
8mm M2螺丝 × 3
1.5mm螺丝用于固定鼻夹 × 1
螺丝刀 × 1
钳子 × 1
焊接用具 × 1
热熔胶 × 1

步骤2:3D打印EyeTap部件

如果你可以在家中,学校或附近的公共图书馆使用任何类型的3D打印机,则可以下载本项目文件库中的STL文件并自行打印部件。

如何成功3D打印部件,这里可以提供一些技巧。

1、100%填充所有部件,特别是头部带状框架,20%的填充物太脆弱,不适合玩耍。
2、如果打印正确,则不需要支撑材料的部件有:头部框架、微型显示屏、电路外壳、树莓派外壳和盖子。
3、需要支撑材料的部件有:耳塞,显示器外壳,鼻托支架。

步骤3:组装EyeTap框架

1、打印好组件后,先卸下支撑材料。多余的材料可以用在耳机支架和微型显示屏外壳上。
2、将右耳机滑动到头部框架上,组装EyeTap架。
3、从末端数起,听筒应位于第二个凹槽。
4、听筒应朝使用者头部内侧弯曲。使用两颗螺钉(M2x16mm)和螺母将听筒固定在头框上。重复使用左听筒。

步骤4:组装微型显示屏

1、将M2x8mm螺钉嵌入微型显示屏组件的中心部分。
2、将微型显示屏装入3D打印的微型显示屏外壳中。微型显示屏的两个突出接口应该插入外壳内,插入时稍许用点力。
3、将电路板固定在3D打印的电路板外壳中。让黄色部分自然弯曲在外壳的底部。之后,用螺丝将电路板外壳固定在微型显示屏外壳上。
4、使用三个螺钉(两个M2x8mm和一个M2x10mm),将分束器固定到微型显示屏模块上。
5、使用两个M2x12mm螺丝将模块固定在EyeTap头框上。

步骤5:组装鼻托模块

1、将金属鼻托插入3D打印的鼻托支架中,用螺丝固定。
2、将两个鼻片插入金属鼻托,并用螺丝拧紧。
3、在所有硬件连接并集成到框架上之前,请先不要固定鼻托模块。接线完成后,将鼻托放在EyeTap头框上并用M2x12mm螺丝固定。鼻托部件突出于头部框架,朝着使用者的方向安装。

步骤6:使用微型摄像头构建树莓派模块

如图所示,连接软排线,带电线PCB板、微型摄像头和树莓派。确保树莓派和PCB板两端的蓝色面朝上。确保微型摄影机排线的银色面朝上。

步骤7:将微型显示屏连接到树莓派Zero W

1、微型显示屏附带的连接器总共有7根导线,其中只使用4根。如图所示,每端使用2根电线,并将其他3根电线切断。
2、每根导线都有颜色编码,并具有以下功能。
红线:电源
黑线:地线
白线:另一个地线
橙线:视频传送线
3、同样你还需要准备4根35cm长的黑色导线。你可以先放弃3根,或以备留用。这4根黑色导线将用于将树莓派连接到微型显示屏的连接器上。
4、将四根彩色导线焊接到35cm长的四根黑色导线上。
5、如图所示将四根黑色导线焊接到树莓派。
6、将微型显示屏的连接器插入到微型显示屏,并将黑色导线穿过头部框架内侧并返回到树莓派。框架内侧的标签用于容纳和保护电线。
7、将树莓派放入它的机箱内。

步骤8:将按钮连接到树莓派Zero W

1、 两个按钮将连接到树莓派,其中一个(#1)用于“拍照功能”,另一个(#2)用于“Dash-Cam视频功能+ YouTube上传功能”。
2、准备两个按钮,两个10k电阻和四根15cm长的电线。
3、 按原理图所示连接按钮。按钮#1连接到GPIO 17,接地用于图片功能。按钮#2连接到GPIO 18,接地用于Dash-Cam功能。
4、图片中包含树莓派Zero GPIO图。黄色突出部分是使用部分,标出以供参考。

步骤9:集成硬件和其他机械零件

1、将树莓派Zero W插入3D打印的树莓排机箱中。确保按路线安装好微型显示屏的连接器,将按钮置焊接到树莓排外壳上。
2、将电线安装在头部框架的内侧,一直延伸到微型显示屏。
3、将连接器插入微型显示屏电路板。现在连接树莓派,以便屏幕显示输出。
4、将树莓派机箱固定在头部框架的左侧末端。
5、将微型摄像机安置在头部框架外表面。用强力胶将微型摄像机粘到EyeTap的主框架上。它应该位于用户鼻子的上方,与用户眼睛的朝向相同。
6、在树莓派机箱内轻轻折叠微型摄像机。用树莓派机箱上的4个M2螺丝将树莓派机箱盖固定在机箱上。
7、用热熔胶固定好两个按钮。

EyeTap的组装工作已完成

所有硬件组件都符合人体工程学的机械装配,现均已正确连接。唯一缺少的组件是软件。此时,如果你知道如何使用树莓派和Python,那么你已经完全有能力编写自己的所要的功能。线上有丰富的资源和无限想法,这正是我们最终建立自己的Wearable AR社区的原因,我们可以共享自己的新项目供其他人试用。但是,如果你想测试我们现有的程序,请参阅接下来的2个步骤!

步骤10:软件#1 纪录功能(dashcam) +快照功能

你下载和“即插即用”的第一个选项是记录功能(dashcam) +快照功能。你可以使用预先配置好了的Raspbian系统镜像。

自动执行程序

提供的图像具有设置为自动启动dashcam的功能——在任何时候按下ctrl + c可终止此过程,并禁止自动删除或编写/home/pi/.bashrc file ”中的“python /home/pi/Eyetap/dashcam/dashcam.py”。

在dashcam文件夹中提供了一个名为autostart.sh的脚本,该文件夹可自动设置为自动启动dashcam功能(如果它尚未设置为自动启动)。

通过运行命令/home/pi/Eyetap/dashcam/autostart.sh来执行此操作。

将EyeTap连接到你的YouTube频道

dashcam代码被设置为自动上传到YouTube,但它需要你的个人YouTube账号。当第一次运行代码时,它应该通过网页浏览器将你重定向到YouTube,你可以安全地输入你的YouTube登录账号。然后它会生成一个.youtube-upload-credentials.json文件,你可以将其放在你的主目录(/home/pi)中。你还可以更改上传视频的标题和说明以及代码中所述的分辨率,帧率和视频长度等参数。

步骤11:启动EyeTap!

完成SD卡设置后,将其插入树莓派Zero W。为EyeTap提供电源,连接电源——将Micro-USB插入树莓派Zero W上,将USB连接到便携式电池(任何可连接到手机充电器的便携式电池都可以)。将便携式电池放入你的口袋中,在EyeTap运行时可随身移动!

本项目所需的资源可在项目文件库中找到:
http://maker.quwj.com/project/45

来自:树莓派实验室

在Raspberry Pi 3B上跑Resin balena容器引擎

物联网正在快速发展,它是智慧设备的高度互联网络,这些设备包括环境传感器、健康跟踪器、家用电器和工业设备等。到 2020 年,预计有 200 亿个设备将连入网络,这超过 PC、智能手机和平板电脑加起来的数量的两倍。开发人员正在快速开始为 IoT 创建应用程序,而使用容器可在不同方面为他们带来帮助。

容器是一种轻量型的虚拟化方法,开发人员可使用该方法快速、大规模地开发、测试、部署和更新 IoT 应用程序。此前也有许多 Web 和移动应用程序开发人员使用虚拟机管理程序(比如 VirtualBox)来运行虚拟机 (VM),在一个跨平台的开发、测试和部署工作流中虚拟化物理硬件。道理异曲同工,但容器肯定更轻量。

Balena就是这样一个基于“Moby”的轻量级开源容器引擎,可以兼容32位到64位多种ARM架构,精简又轻便。可以跑在树莓派上。

安装也非常简单,一个命令搞定。

curl -sfL https://balena.io/install.sh | sh

不过缺点也是有的,比如没有Swarm集群、插件、云日志、应用层网络、非boltdb支持的商店。当然在IoT场景中,这些特性的需求度不高。

我在树莓派3B上测试了这个容器引擎,感觉还挺方便。

以后balena将在ResinOS里代替Docker,相信其他一些Docker相关的初创公司也会慢慢走上这条道路。恩,我指的是各种基于Moby的容器引擎替代Docker的。

买不到称心的智能镜子,就DIY一面吧

智能镜子可谓是科幻电影的必备道具。作为未来世界中信息泛滥的最佳展现形式,它随时能为主人公提供需要的消息。

然而,如此高大上的设备,制造起来其实还挺简单的……

所以,别再等众筹网站上不靠谱儿的项目了,不如自己动手组装一面~

材料:

一块树莓派3主板,或者有Wi-Fi 功能的旧型号。

一台有HDMI接口的显示器。显示器的尺寸就是智能镜子的最终尺寸,显示器还应该带USB接口,这样就不需要再为树莓派拉根电源线。

一面双向镜。尺寸当然和显示器一样。

鼠标、键盘,用来设置树莓派。

一幅画框,用来框镜子。当然,如果你有更好的创意,也可以不用画框~

工具若干。

制作:

制造智能镜子最难的并不是编程,因为需要的软件,Michael Teeuw创建的《智能镜子计划》网站(https://magicmirror.builders/)都给你打包好了。基本上,只要链接好树莓派,再安装上MagicMirror2;软件就行,甚至不需要下载,只要在树莓派上运行一行代码就成。

bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)”

为防你想要亲力亲为…… GitHub上也有手动安装指南,地址如下:

https://github.com/MichMich/MagicMirror#manual-installation

安装时长在10-20分钟之间,一旦完成,编程上就没别的活儿了。不过还需要做一些设置,比如关掉屏保、旋转屏幕(镜子大部分都是竖着的嘛~),还有保证在待机状态下 Wi-Fi不会断开。

接下来就是真正有趣的部分了~

设置镜子界面:MagicMirror自带了时钟、当前天气、天气预报、新闻、问候语、Hello World,和闹钟模块。其中一些模块是需要额外设置的,比如说注册API钥匙,添加地址什么的。

MagicMirror还是个开源软件,这意味着第三方开发者会不时为它增添新的模块,让你持续完善自己的智能镜子。

一旦你把所有需要的模块都设置好了,就可以把显示器变成智能镜子了~

把双向镜放在显示器上(当然是镜面那面朝外),框好相框,你的智能镜子就做好了。

如果你想要做的再完美(彻底)点,还可以把显示器的硬件从塑料外壳中拆下来,让它一劳永逸地做面镜子~

来源:sohu

给树莓派装个Web界面的仪表盘

大部分人都习惯界面友好的系统监视器,以便直观的了解系统的实时运行情况。

哪怕是一个正在跑着简单应用的树莓派。

最近看到有些朋友在用一个叫“Pi Dashboard”的仪表盘程序,感觉还挺清爽。

于是也装了一个试试。如图所示。

该应用后端是PHP,前端使用了bootstrap和jquery,安装也很简单,标准的LAMP或者LNMP环境都可以。

sudo apt-get update

sudo apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi

启动完nginx 和 php7.0-fpm之后,编辑Nginx配置文件。

sudo nano /etc/nginx/sites-available/default

把location那一整个大括号区域替换成如下内容即可:

location / {
index index.html index.htm index.php default.html default.htm default.php;
}

location ~\.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

如果是已经在跑Apache的PHP环境,直接运行即可。此应用在Raspbian Stretch系统 和 树莓派3B/3B+ 上均测试成功,感觉可以在后面加入温度显示。

注:该项目来自NXEZ.com的树莓派实验室,使用GPL v3.0许可证。

项目地址:https://github.com/spoonysonny/pi-dashboard

如何在树莓派的终端测试网速

Ookla 的 Speedtest 网速测试相信做网络的人大多都用过。 这在PC桌面和移动APP上是很简单。登陆点击“Go”即可。

它会自动测试你的机器到最近服务器的网速。 如果你只有树莓派终端,那怎么在命令行下做测试呢?

首先,我们要安装speedtest-cli这个包,树莓派直接apt-get一下即可。如图所示。

直接执行speedtest这个命令,就可以自动测试了,这里我的树莓派在访问北京电信的一个服务器。这里可以看到下载速度3.40 Mbit/s,上传速度3.87 Mbit/s。

如果想查看北京还有那些其他服务器,可以用:speedtest-cli –list | grep -i beijing 这个命令。另外,如果你还想生成一张图发给 别人的话,可以在后面加个“–share”参数。

然后就可以得到对应的图片网址了。如图所示。

从这个图上可以看到,我这个网速比全国62%的机器都要慢,略有遗憾。

 

减少树莓派系统读写次数:用relatime挂载选项

SD卡和普通的磁盘驱动器有很多不同的地方,SD卡可以执行写和擦除的周期的次数是有限的,然而传统的磁盘驱动器没有写和擦除周期的概念。

什么是写和擦除周期?

对于一个普通的磁盘驱动器,每当你往磁盘里写东西,磁盘的某个扇区就会改变它的磁盘状态。这是磁盘物理上的改变,它不会给磁盘圆片本身带来损耗。当我们读取磁盘片上同一扇区的数据时,磁盘片的性质也不会发生改变。而SD卡显然是没有磁盘片,但是SD卡有小的内存芯片,其中包含内存单元,数据储存在内存单元上,就像物理硬盘的扇区一样。

和物理硬盘不一样,当你读写内存单元时,它的状态就发生了改变。

这是因为闪存单元使用不量的存储电荷来表示数据的比特位,这就是写和擦除的来源:

每当你读或写闪存单元一次,这个单元 的周期就消耗一次。读写闪存的时候,状态随之改变,每一个闪存单元只有限的周期,这些周期消耗完之后,状态再也无法改变(无法写入).

一般的SD卡会有10万次写和擦除周期,相对于数码相机来算是很多了,不过相对于日志文件系统就显得不足了,日志文件系统会非常频繁地往SD卡内写入少量的数据。除此外,每当系统更新文凭或目录时,也会往磁盘写数据,所以,10万次的周期是远远不够用的,因此,我们要关闭自动更新文件存取时间的功能,关闭自动更新文件存取时间的功能可以通过以下两种方式实现:

1. 第一个是noatime选项,它会禁止更新文件存取时间,这对闪存单元来说是好事,但是对用户来说并不是好事,比如说你想知道你的文件的时间戳,又比如有些应用程序依赖于文件的存时间戳。

2. 为了在两个极端中取一个平衡点,可以使用relatime挂载选项,relatime选项只有当最新修改时间比当前存取时间新的时候才会更新文件时间。这个选项减少了大量的闪存单元写操作,用户可以编辑/etc/fstab文件启用这个选项将你的根文件系统(/)以及启动文件系统(/boot)的挂载选项修改成如下所示的样子:

/dev/mmcblkop1 / auto defaults,relatime 1 1

/dev/mmcblkop1 /boot auto defaults,relatime 1 2

首先重新挂载每个文件系统:

#mount –o remount / && mount –oremount /boot

然后使用mount命令检查relatime是否启用:

#mount
它会显示所有挂载的文件系统经以及它他们的挂载选项。

Pi-Micro:用树莓派Zero W制作的掌上电脑

你有没有想过制作一台可以放在手掌上的电脑? 我就很想,所以我制造了这款被我称之为 Pi-Micro 的小型笔记本电脑。 这是 Pi-Micro 的第三版,制作了将近一年的时间,因为它足够精细了,所以来与大家分享。 Pi-Micro 可以运行完整的 Linux 操作系统。能够浏览网页、编辑文档、使用终端、创建自定义编程脚本以及玩游戏。

据我所知,它是使用 Raspberry Pi 制作的最小的电脑,它还拥有全键盘。 使用树莓派 Zero W 制作,内置 WiFi 和蓝牙。

Pi-Micro规格介绍:

512 MB RAM
1GHz处理器
内置WiFi和蓝牙
3.5″触摸屏
1000mAh锂离子内置电池
16GB内部存储
完整的QWERTY键盘 108mmX19.5mmX70mm

自制 Pi-Micro 的心路历程

(如果你想要干货,请直接跳过此部分。)
这款笔记本电脑已经打磨了一年多了,在这一年里,我经历了很多不同版本的设计和原型。我设计的前两款都比较重,并且两种旋转轴的重量都不适合屏幕/主板。

a.V1.0(黑色)我的第一版Pi-Micro是2017年5月6日制作的。它使用3D打印的旋转轴,它太松,不能够让屏幕自行站立。但它的键盘是内置在我喜欢的,但是非常厚实和笨重。箱子顶部和底部的边缘也不是圆形的,外壳非常的便宜。

b.V2.0(Blue)我的第二版Pi-Micro是2017年10月左右制作的。我试图用超小的黄铜做的旋转轴,修复这个问题,但它们还是太松了。在这个版本中,我为了让它看起来更漂亮,把所有的边缘都变成圆形,并通过在3D建模程序为树莓派制作接口,代替焊接的铁质接口。关于这个版本的一个独特的地方,就是旋转轴和键盘连接处可以随意上下拆卸。但是,我最终不喜欢它的外观,因为它看起来并不像笔记本电脑。

项目免责声明

最好的项目从来都不容易。为了这台掌上计算机,我花费了一年多的时间,经历了几个版本通过几个版本的改机才获得现在的成品。这个项目有许多困难的焊接/拆焊,以及对Linux和Raspberry Pi的基本了解。如果你自己受伤或其他任何事情,我不负任何责任。请始终佩戴适当的保护装置,不要连接红色和黑色电线,也绝对不要刺破电池。小心!

3D 打印外壳

模型文件可在本项目文件库下载。
http://maker.quwj.com/project/44

打印参数设置如下:

长丝:ESUN PLA +
厚度:0.2MM
外壳:3
填充:80%

组件清单

树莓派 Zero W × 1
3.5 寸触屏显示器 × 1
3D 打印机 × 1
移动电源 × 1
迷你蓝牙键盘 × 1
Micro SD 卡 × 1
USB 插座 × 1
缝纫针 × 2
电线 × 1
螺丝 × 1
胶水 × 1

拆卸移动电源

拆卸的目的是获得薄型电池/充电器组合,电源开关,5v输出。

第1步,从机箱上卸下螺丝,然后从铝壳上拆下内部组件。
第2步,将电线从太阳能电池板切割到控制器板。
第3步,断开电池,然后把它与控制器板之间的两根3英寸长导线重新连接。
第4步,拆卸USB端口,并将焊线焊接到控制器板的正极和负极输出端。

准备屏幕组件

重要提示:此步骤基于Waveshare 3.5"显示器,如果你使用不同的显示器,请更换焊接电线的引脚以符合你的显示器规格。

更多详细信息查看文章下链接

1.拆除触摸屏上的外壳。就我个人而言,最简单的方法是使用冲洗刀具将其剪下,然后使用烙铁从电路板上单独移除引脚的下半部分。
2.焊接导线到引脚1,2,6,11,18,19,21,22,23,24和26。
3.标记所有电线,以便你分辨清楚,如图所示。
4.仔细检查标签。
4.在3D打印的显示部件中钻孔,以便它们可以组合在一起。
6.再次检查标签。相信我,它会省下很多挫折。
5.将屏幕放置在零件内部,并将其组合在一起。

将USB插座焊接到树莓派

我将USB接口安装在电脑的右下角。

1.首先使用钢丝钳剪下USB插孔两侧的小标签(不是四个引脚中的任何一个),因为不是利用它们将USB固定。

2.将四个引脚以90度角向下弯曲,让它们延伸出背面,但插口并没有伸出底部。

3.将线焊接到每个引脚上,确保它们足够长可以从外壳的一侧延伸到另一侧,如有必要,用热缩管将端口绝缘。提示:使用不同颜色的电线;它有助于分辨哪些是你要将它们连接到Pi。

4.使用上面的电路图,将导线焊接到Pi的焊盘。

将电池焊接到树莓派

1.焊接从电源5V输出Pi 5V引脚的红线。
2.将电源GND输出的黑线焊接到Pi GND引脚。

将屏幕焊接到树莓派

这一步非常的棘手,一定要小心。

1.请尽量缩短电线长度。如果你的电线太长,它们会堆积在底壳内,使其难以关闭。尝试测量每根导线需要的距离,并精确的切割它们,以便在显示器和下半部分布置时,底壳边缘与显示器边缘之间会有2CM的间隙。

2.将带标签的导线连接到Pi上的相应引脚。请一定确认好每根引线。

安装软件

你至少需要8GB大小的Micro SD卡,不过你选择使用的大小将决定Pi-Micro内部存储的容量。

这是一个重要的步骤,因为它也有助于确定屏幕和电池是否已连接正常。

1.将Micro SD格式化为FAT32。
2.在“ https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A) ”下载用于Waveshare显示器的预制系统镜像。
3.使用Etcher,将系统镜像写入到Micro SD上。
4.将卡插入Pi,打开电池然后静待佳音。
5.如果一切顺利进行,说明你的安装没错。如果有问题,请仔细检查所有焊点和接线。
6.将蓝牙键盘与Pi配对。这意味着稍后我们不必访问键盘上的配对按钮,并且每次启动时都会自动连接。

缩小键盘大小,并将其焊接到树莓派

对于Pi-Micro的键盘,我们将使用电池的迷你蓝牙键盘,然后将其焊接到Pi。

1.打开键盘外壳。我发现最简单的方法是弯曲键盘,直到盒子的顶部和底部之间出现裂缝,然后用平头螺丝刀将其撬开。
2.卸下微型USB充电端口。直接加热端口后面,用烙铁完成这一操作,当焊料熔化时,它很容易滑落。
3.拆除电池。
4.将两根电线焊接到电池用于连接的端口上。
5.打开它。 (当我们将它连接到Pi时,务必确保它会同时打开。)
6.将电池正极端子的电线焊接到Pi上的3.3V引脚
7.将电池负极端子上的导线焊接到Pi上的任何GND引脚。

组装所有组件

提示:这是最令人头疼的部分,各位趣友耐心点哦。对于旋转轴部分,我决定使用针作为转轴。如果安装的整个过程中,如有阻力,请勿强行挤压。把壳内的物品整理一下比生拉硬拽好的多。

1.确保一切尺寸合适。把所有组件放入壳内,把盖子放在下半部分,并确保它是齐平的。如果不能,请微调一下。

2.用热胶来固定一切(除了电池,它有可能爆炸)。这样就可以确保当你摇动完成的计算机时不会有任何移位,并且在尝试使用USB和充电端口时不会将其推入计算机。

3.现在所有东西都是安全的,把盖子放在下半部分,用螺丝来固定它。你可能需要预先钻孔,因为可以使用的螺钉厚度不同,所以我没有将这些孔放入设计中。

4.将显示器放在下半部分。确保它可以安装在底部旋转轴上,并且可以旋转。

5.安装针。我建议使用最大直径的针头,由于旋转轴会变硬,你也许需要用一块木头的尖端或其他东西来推动它们。

6.如果需要,请使用烙铁将针头两端的塑料熔化,以免滑出。

7.如有需要,绕过下半部分的底部和盖子的边缘,并使用烙铁焊接任何有间隙的地方。

DONE!完成啦!希望趣友们喜欢这个项目!

via

本文来自:树莓派实验室

原帖:http://www.instructables.com/id/Pocket-Sized-Linux-Computer-Pi-Micro

用树莓派搭建低成本VOIP电话系统

在研究了一些为小企业提供VoIP(Voice over Internet Protocol)和IP电话服务,包括支持新趋势 UC(统一通信)的技术解决方案之后,我个人认为用树莓派提供一个非常低成本的解决方案是完全可行的。相对于100美元的投资和一个专用的 VoIP/UC 服务器解决方案,树莓派和相应配件在成本方面的优势是无法比拟的。

树莓派的解决方案是通过在 Raspbian 系统上运行 Asterisk VoIP/UC 软件来实现的。这个开源解决方案提供了高度灵活的配置项,当然也可以用于许多不同的领域和应用。

本文说明了 VoIP/UC 的解决方案并不一定是高风险的,在实施的时候也不一定是需要很高投入的。

简介

在过去的几十年中,电话技术发展迅速,从模拟通信迁移到了基于VoIP的数字通信和IP电话。这也让统一通信成为了可能,统一通信是对实时通信服务,例如即时消息(聊天),电话,数据共享,视频会议,语音识别等和非实时通信服务,例如语音信箱,电子邮件、短信和传真等的集成。统一通信并不是指某一个单一的产品,而是一系列提供了一致的,统一的,跨多个设备和媒体类型的用户界面和用户体验的产品。

(http://en.wikipedia.org/wiki/Unified_communications)

VoIP 是利用某个网络协议,比如SIP协议 (Session Initiation Protocol) 和 RTP协议 (Real-time Transport Protocol) 等,从而实现通过因特网来传输声音。

基础

要实现一个 VoIP/UC 解决方案,系统必须满足各种行业标准,而且网络设备也必须能够区分出对语音视频数据和其他类型数据的使用。

基本组件

本方案对硬件和软件的要求很简单。你需要做的可能只是下载软件而已。

硬件:

  • 树莓派B或者B+
  • 4 GB SD卡 (最低配置)
  • 1A 电源
  • 网线
  • 可选的 SIP 电话或者 SIP适配器(本文使用 Dlink DPH-150SE)

软件:

  • Raspbian
  • Asterisk 通信软件
  • LinPhone 虚拟电话软件 (支持 iOS, Android, Blackberry, Linux, Windows and OSX)。你可以通过下面链接下载。http://www.linphone.org

安装

初始安装设置的时候,你可能需要使用一个USB键盘和鼠标连接到 Raspberry Pi 上,再连上一个显示器。配置成功以后,树莓派就可以不需要这些而自己运行了。

获取 Asterisk 软件最好的和最容易的方法是从这个网站 (http://www.raspberry-asterisk.org/downloads)下载最新的 SD 卡映像文件,它是一个预装了 Asterisk 通信软件和 FreePBX 图形用户界面的 Raspbian 系统。

该映像文件是通过在这个网页上(http://www.raspberrypi.org/documentation/installation/installing-images/)的步骤被写到SD卡上的。

当系统启动后,用 root 身份和 raspberry 密码登陆。如果愿意,你也可以远程登陆树莓派系统。在 Windows 上安装 PuTTY SSH 客户端并用 root@raspbx 连接树莓派。如果是苹果的 Mac,只需简单的打开终端,输入命令 SSH root@raspbx.local 。

你可能以后会想禁止通过 SSH 登陆 root 用户,因为这有可能造成一个安全漏洞。当你登录系统以后,你需要运行的第一个命令是:

raspbx-upgrade

这个命令将更新所有的软件到最新版本,包括 Raspbian 和 Linux 内核。

接下来你需要做的是配置静态IP地址。你需要在你的路由器或者猫上指定你想使用的静态IP地址,网络掩码和网关。命令:

ifconfig

将提供你当前的IP地址,网络掩码。你的新的静态IP地址的前三个字节应该跟你当前的IP相同,最后一个字节必须在你的路由器当前已使用的动态IP地址范围之外。如果想查找网关地址,请输入:

netstat -r

通过下面的命令编辑 interface 文件:

nano /etc/network/interfaces

编辑好的 interface 文件应该看起来跟下面截图中的一样。

注意你需要将 eth0 那一行上的 “dhcp” 替换为 “static”, 并确保你使用的是 <Tab> 键来达到需要的缩进。

保存这个文件以后,重启树莓派让新的网络设置生效。现在开始,你就可以使用新的静态IP或者 raspbx 主机名了。例如我现在就可以使用 PuTTY 通过静态IP来连接树莓派: root@172.31.15.11 。

Asterisk的配置

我们现在要通过 FreePBX 的图形用户界面来配置 Asterisk 软件。这样可以让整个配置过程变得简单和容易。FreePBX 是已经在我们下载的那个映像文件里预装好了的软件。

如下所示的是一个示例架构图:

要运行 FreePBX,请打开浏览器并在地址栏输入 http://raspbx 或者树莓派的静态 IP 地址。(对于苹果的 Mac,你需要输入 http://raspbx.local)。这样就打开了 FreePBX 的管理界面。

这里有三个选项:

  1. FreePBX Administration 用于配置 Asterisk
  2. User Control Panel 供用户调整他们的个人设置
  3. Get Support 将打开 FreePBX 的官方网站

点击 FreePBX Administration, 默认的登录名是 admin,登陆密码也是 admin。这个软件的菜单有多种选项,包括分机(Extensions),会议(Conferences)和响铃组(Ring Groups)等。请点击分机(Extensions)。

由于当前没有分机存在,所以你将添加一个新的分机。Device 选项请选择 Generic SIP Device,然后点击提交(Submit)进入下一个页面。这个页面也有很多的选项,但我们只需要设置用户分机号码为 300,显示名称为 Walberto 和密码为 ext300。单击 Submit 添加该扩展。

在屏幕的右边,点击300来查看你刚刚添加的分机。验证端口(port)选项被设置为5060。点击Submit提交,然后点击那个红色的 Apply Config 按钮来保存所做的更改。

重复这个过程添加其它你需要的分机号,在这里我添加了301和302分机。

现在,我们需要配置 IP 电话。这个过程根据你的电话设备的型号而不同,在这里我们将使用 Dlink DPH-150SE 作为一个示例。

最重要的设置是禁用 DHCP 选项,确认 SIP 电话端口号为 5060,还有注册的服务器是你的树莓派的 IP 地址。在后面的章节中,我们将通过 Proxy 选项来启用服务器注册。

对于 SIP Account 设置选项,我们需要输入之前通过 FreePBX 添加分机时使用的数据。Authentication User Name 就是之前添加的分机号码,而 Authentication Password 就是我们之前设定的那个密码(即ext300)。

虚拟电话配置

启动 Linphone 并在 Options 菜单中选择 Preferences。确认网络设置如下图所示。

在 Multimedia settings 选项中, 确认 Echo cancellation 被选上。在 Manage SIP Accounts 选项中输入你的显示名称。在我的例子中,虚拟电话的分机号为302, 所以用户名也为 302。由此而生成的 SIP 地址为<sip:302@172.31.15.7>。单击 Add 按钮在 Asterisk 上注册该分机的帐号。

按照下图所示,输入你的 SIP identity 和 SIP Proxy address(即你的树莓派的 IP地址)。

然后你将被要求输入密码。对于302分机,我设定的密码是 ext302。单击确定,注册就完成了。

通过 FreePBX 和 Asterisk 可以实现各种服务,如会议室,IVR(交互式语音应答),呼叫组等,还可以通过普通的PSTN电话,SIP中继线或互联网进行呼入和呼出。

未来

VoIP和互联网通讯的发展正在推动统一通信系统融合成一个整体的系统和环境。 FreePBX 和 Asterisk 是一个非常好的例子,它演示了如何用很低的成本来实现复杂的通讯系统。

来自:https://www.jianshu.com/p/4789d030fee3

想要更多,请欢迎关注“IoT前哨站”微信公众号或微博

从树莓派到Microbit,中国IT启蒙教育比英国缺点什么?

前段时间,笔者一直在用英国产的“Micro:bit”。这是一款由BBC主导,微软、三星、ARM、英国兰卡斯特大学、巴克莱银行等合作伙伴共同开发的嵌入式编程设备。

它可以通过计算机、手机、平板编程,也可以用图形化的方式编程。支持Scratch、Python、JavaScript三种语言。一块小小的电路板,集成了重力传感器、磁力传感器、温度感测、蓝牙等多个模块。如图所示。

不用安装任何复杂的IDE和运行环境,只要一根USB线和一个主流浏览器就能写入代码,让这块小电路板进行各种有趣的项目和实验。如图所示。

这块小型电路板的背后,是一项名为Make it Digital的计划,旨在推进英国的数字化进程。

该计划从2015年秋季开始,让英国11岁左右的学生都免费获得“Micro:Bit”进行编程学习。

BBC此举意在提高年轻人的数字化技能,并填补未来这方面人才的空缺。据估计,未来五年内,英国将需要约140万的专业IT人士,但现实是目前这方面人才紧缺。BBC希望将这个基于ARM处理器的微型设备作为一个跳板,让学生掌握基础编程知识之后再去使用更复杂的设备,毕业以后可以成为精通此类技能的IT人才。

目前主流的英国中学,编程已经和科学、技术、工程、数学一起,成为学生的基础课程。而且从树莓派到Micro:Bit这类开源硬件不断涌现,也证明了英国教育界和产业界融合之深入,协同之到位。

我国早在1984年,邓老爷子曾就在上海提出过“计算机的普及要从娃娃做起”。计算机课程在该年首次进入上海的高中课堂,翌年成为高中阶段的必修课。

随后计算机教育在我国的发展也如火如荼。但十分可惜的是,与计算机启蒙教育相关的配套硬件却一直没有发展起来。大部分时候,学生都是直接使用进口的非开源商业计算机进行学习。而商业计算机大多是美国标准,一批批学生成年后又继续按这套标准教育新的学生,培训新的员工。间接导致了相关软件业一度被迫向美国看齐,让出了相关领域与美国一较高下的机会。

这虽然和我国的IT基础产业发展较晚有关,但我国没有对青少年计算机启蒙教育进行系统的,持续的,深入的定制和推广也有关系。

比如笔者在初中开始进行系统计算机课程学习。但一开始学的不是编程,而是五笔字型和办公软件。高中时期,学校教授模拟电路和数字电路,很少有机会实战。直至考入大学的电子专业后,才第一次接触嵌入式设备的真机开发,此时不仅动手能力不如少年时期,而且学习计算机编程最好的时光已一去不返。

反观现在的英国青少年,在初中时候便有良好的环境学习Micro:bit这样的简易电路板,高中时候可以进阶到Raspberry Pi这样功能更强的微型电脑实战。可以预想,大学以后,他们基于之前的功底便可轻松进入各种高级的电子、计算机研究领域。

大规模持续的非盈利教育活动,是一个国家国民素质提高的有效手段。而孩童时期又是人们最热衷探索和创新的时候,这个时候如果能给予正确的方向和足够的教育支持。对整个国家综合国力的发展大有裨益。

规模化的IT启蒙,现阶段我国软硬件发展跟的上吗?

2000年左右,中国近乎全民Windows。所幸最近十年大力发展Linux为主的开源软件,让我国在相关领域没有落后于欧美先进国家。

而硬件方面,像树莓派、Micro:bit所采用的低功耗芯片,国内有“全志”、“瑞芯微”可以满足。相关的开源电路板,迅龙的“Orange Pi”和方糖科技的“CubieBoard”已在业界小有名气。

我国东部地区的一些学校,近几年均已经开始中小学的编程训练以提高学生的“STEAM”能力。民间的很多培训班也如雨后春笋般涌现出来。

以上可见,基础已备。中国现阶段缺的,就是一家类似BBC这样有公信力的机构来牵头成立相关的教育基金会,整合国内外一流的资源,建立有益青少年IT教育的体系。同时协调各方设计“能让适龄青少年迅速上手的可编程设备“,推出趣味性和实用性并存的计算机课程,降低整个国民IT学习的成本,让更多的孩子有机会受到良好的计算机启蒙教育,让他们能迈出扎实的第一步。

随着IoT、区块链、AI时代的到来,中国今后的IT需求十分巨大。相关产业的高速发展急需人才推动。希望中国也能借鉴英国的成功经验,普及国民IT教育,填补相关产业的人才缺口,以免在未来失去竞争力。