买不到称心的智能镜子,就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

构建开源硬件的 5 个关键点

科学社区正在加速拥抱自由及开源硬件Free and Open Source Hardware(FOSH)。 研究员正忙于改进他们自己的装备并创造数以百计的基于分布式数字制造模型的设备来推动他们的研究。

热衷于 FOSH 的主要原因还是钱: 有研究表明,和专用设备相比,FOSH 可以节省 90% 到 99% 的花费。基于开源硬件商业模式的科学 FOSH 的商业化已经推动其快速地发展为一个新的工程领域,并为此定期举行 GOSH 年会。

特别的是,不止一本,而是关于这个主题的[两本学术期刊]:[Journal of Open Hardware] (由 Ubiquity 出版,一个新的自由访问出版商,同时出版了 Journal of Open Research Software )以及 HardwareX(由 Elsevier 出版的一种自由访问期刊,它是世界上最大的学术出版商之一)。

由于学术社区的支持,科学 FOSH 的开发者在获取制作乐趣并推进科学快速发展的同时获得学术声望。

科学 FOSH 的5个步骤

Shane Oberloier 和我在名为 Designs 的自由访问工程期刊上共同发表了一篇关于设计 FOSH 科学设备原则的文章。我们以滑动式烘干机为例,制造成本低于 20 美元,仅是专用设备价格的三百分之一。科学和医疗设备往往比较复杂,开发 FOSH 替代品将带来巨大的回报。

我总结了 5 个步骤(包括 6 条设计原则),它们在 Shane Oberloier 和我发表的文章里有详细阐述。这些设计原则也可以推广到非科学设备,而且制作越复杂的设计越能带来更大的潜在收益。

如果你对科学项目的开源硬件设计感兴趣,这些步骤将使你的项目的影响最大化。

1、评估类似现有工具的功能,你的 FOSH 设计目标应该针对实际效果而不是现有的设计(LCTT 译注:作者的意思应该是不要被现有设计缚住手脚)。必要的时候需进行概念证明。

2、使用下列设计原则:

在设备生产中,仅使用自由和开源的软件工具链(比如,开源的 CAD 工具,例如 OpenSCAD、 FreeCAD 或 Blender)和开源硬件。

尝试减少部件的数量和类型并降低工具的复杂度

减少材料的数量和制造成本。

尽量使用能够分发的部件或使用方便易得的工具(比如 RepRap 3D 打印机)进行部件的数字化生产。

对部件进行参数化设计,这使他人可以对你的设计进行个性化改动。相较于特例化设计,参数化设计会更有用。在未来的项目中,使用者可以通过修改核心参数来继续利用它们。

所有不能使用现有的开源硬件以分布式的方式轻松且经济地制造的零件,必须选择现货产品以方便采购。

3、验证功能设计。
4、提供关于设计、生产、装配、校准和操作的详尽设备文档。包括原始设计文件而不仅仅是用于生产的。开源硬件协会Open Source Hardware Association对于开源设计的发布和文档化有额外的指南,总结如下:

以通用的形式分享设计文件。

提供详尽的材料清单,包括价格和采购信息。

如果涉及软件,确保代码对大众来说清晰易懂。

作为生产时的参考,必须提供足够的照片,以确保没有任何被遮挡的部分。

在描述方法的章节,整个制作过程必须被细化成简单步骤以便复制此设计。

在线上分享并指定许可证。这为用户提供了合理使用该设计的信息。

5、主动分享!为了使 FOSH 发扬光大,设计必须被广泛、频繁和有效地分享以提升它们的存在感。所有的文档应该在自由访问文献中发表,并与适当的社区共享。开源科学框架Open Science Framework是一个值得考虑的优雅的通用存储库,它由开源科学中心Center for Open Science主办,该中心设置为接受任何类型的文件并处理大型数据集。

这篇文章得到了 Fulbright Finland 的支持,该公司赞助了芬兰 Fulbright-Aalto 大学的特聘校席 Joshua Pearce 在开源科学硬件方面的研究工作。

via: https://opensource.com/article/18/2/5-steps-creating-successful-open-hardware

作者:Joshua Pearce 译者:kennethXia 校对:wxy 来自:Linux中国

为什么说最适合IoT开发人员的发行版是Ubuntu

一句话前言:本文说的是用来“写”代码的机器,不是主要用来“跑”代码的机器。

适合做开发的桌面系统很多,但适合做IoT开发的并不多。

首先要支持各种硬件驱动和外设,再则要方便安装各种开源或闭源的IDE和插件。

很多朋友可能会说Mac OS X不错啊,Mac OS X是不错,但对应的Macbook实在不合群,一旦要用到USB口或者以太网口什么的……

Windows更适合用来进行Windows IoT版开发,而大部分嵌入式设备跑的是Linux……

好吧,那我们在Linux阵营里找。

此刻的答案可能要多如牛毛了,每个发行版的粉丝们都会讲出自己的理由。但我还是要说出我的选择 —— Ubuntu Desktop。

Eclipse 基金会在2017年四月完成了由 713 位开发者回答的 IoT 开发者那个调查,他们被问到了有关 IoT 编程语言、云平台、IoT 操作系统、消息协议(MQTT, HTTP)、IoT 硬件架构等问题。

当被问及大家在IoT开发时采用的操作系统/Linux发行版时,Raspbian 以 45.5% 的比例遥遥领先,Ubuntu/Ubuntu Core 紧随其后,使用比例达到了 44.0%。

嗯,答案看起来应该是Raspbian才对。

可大家别忘了Raspbian一直是跑在树莓派上的,而我们这里说的是技术人员平时用的开发环境。

Ubuntu/Ubuntu Core的官方支持列表大家有目共睹,不管是树莓派还是Orange Pi、DragonBoard 410c、Intel NUC……都能跑。

况且市面上很多公司的产品都在基于Ubuntu Core做定制,不管是大疆、Erle Robotics的无人机还是Rigado的IoT网关。

这样一对应,用Ubuntu的桌面来开发Ubuntu IoT这类系统的软件似乎再合适不过。很多包和组件都是配套的,有官方支持。

为各类设备做内核编译等操作的时候,运行Ubuntu Desktop的高性能X86桌面电脑可以快速交叉编译,搞定你需要的组件。不管是Ubuntu系统的,还是Raspbian系统的。

另外,近期开始流行的跨发行版Snappy包管理器,最初就是为Ubuntu系统构建的。其管理的Snap 包可对 App 和 Ubuntu Core 软件本身进行原子级事务性更新。具有沙箱的属性,不可以随意访问外部资源,和系统的其它部分隔离开来,并通过设计好的安全策略与其他 Snap 进行交互。这也是 Ubuntu Core 具有极强安全性的原因。

写了半天,突然发现Ubuntu官网已经把18.04 LTS这一“长期支持版”正式上线了。

是的,作为一个IoT开发平台,LTS —— “Long Term Support”也很重要。也许这就是我喜欢用Ubuntu Desktop来写代码的原因吧!

版权声明:本文为“IoT前哨站”原创,转载请注明原文作者和出处。

给树莓派装个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%的机器都要慢,略有遗憾。

 

微软宣布软硬结合的IoT安全解决方案:Azure Sphere

第27届RSA大会于4月16日至19日在美国旧金山Moscone中心举办,来自世界各地的网络安全团队在此切磋交流,微软在本次大会上举办了一场安全通报会,正式宣布了面向物联网(IoT)安全的解决方案。

事实上该项目早在一年前就已启动,随后在去年4月份推出了名为“Project Sopris”的低成本物联网设备。其队伍包括 George Letey、Ed Nightingale、Galen Hunt 等研究人员,旨在为大家带来“大量低成本的安全联网设备”。

本次公布的Azure Sphere同时涵盖软件和硬件。微软还为此开发了“全新级别”的微控单元(MCUs),性能是旧款MCU的五倍。而且这些设计可以无授权费地授权给合作厂商,首款主板来自于联发科。

通过Azure Sphere授权的MCU运行Azure Sphere OS,这是基于Linux的定制发行版本,包含“多个安全层”。该系统针对物联网系统进行优化,并融合了Windows系统的诸多安全功能从而创建高度安全的软件环境。

来自:Microsoft资讯

麦迪文:这次支持微软 Azure Sphere 解决方案 的芯片为联发科的MT3620,微软开发的安全系统跑在上面。

用树莓派和 RFID 做能识别音乐专辑的桌子

有不少年轻用户还会追黑胶唱片。

他们的着眼点并不在体验传统的味道上,而是觉得收集黑胶或者其他实体专辑是一种支持歌手出唱片或提升“仪式感”的行为。

虽然不怎么听,但买起来也不会少。

确实,现在要听个实体专辑确实也不容易。黑胶的话经不起折腾,听 CD 也不方便。而且现在的人已经习惯了那种以单曲、EP 为主的音乐消费模式,很少人能够坚持把一张专辑完完整整听完的。

所以在声音体验也没有差太多的前提下,与其去不断切歌、换碟,倒不如直接用流媒体来得方便。

但其实,现在有人还想去玩“实体专辑”。GitHub 上有一位用户,就通过树莓派做了一个识别感应器,让自家的 Google Home 用上“实体专辑”。

根据 The Verge 的报道,这位来自 GitHub 上的用户叫“hoveeman”,他将一个射频识别读卡机和树莓派 Raspberry Pi Zero 连接起来,并开发了一套专用的程序。安装上这套程序后,树莓派能够给家中的 Google Home 发出指令,让它播放相应的专辑。

在这套组合中,射频识别读卡器 RFID 模块的任务就是用来识别“实体专辑”。

这些“实体专辑”,其实是 hoveeman 自己做的一些小卡片。小卡片的表面印着专辑封面、名称和表演者,卡片内部则呆在了一块小型识别芯片。当用户将芯片放到 RFID 模块上,模块就能够识别出相应的信息,传输到 Raspberry Pi Zero 上。电脑处理后,就会发送的 Google Home 上,让它播放相应的专辑。

这个模块能够隐藏在家居产品当中,不管是木桌还是凳子,只要不阻碍 RFID 识别的,都能够藏在里面。虽然这套设备带来的解决方案有点“多此一举”,但现在看起来有点意思。至少,它比你经常换 CD 来得方便。

现在,Hoveeman 将这套解决方案都上传到 GitHub 上。你可以在以下网址:

https://github.com/hoveeman/music-cards

查到它用过的设备和代码,自己做一套相同的出来。

这个其实有点像用 RFID 来控制 Spotify 的方案,那个方案也是用识别卡片来让智能设备播放 Spotify 中的专辑或特定播放列表,做法和实现目标基本上没有什么大分别。

这些方案对于开发者来说,也都是自娱自乐的东西而已。

毕竟,现在的人确实也不怎么喜爱这种消费方式。他们只需要一个简单的听歌方案,而流媒体服务正好能够给他们最简单直接的体验,有这个来确保基本需求之后,其他东西也不重要。

转自 ifanr

Windows平台也高效的GNU编译工具链 —— MSYS2

MSYS:Minimal GNU(POSIX)System on Windows,是一个小型的GNU环境,包括基本的bash,make等等。

而MSYS2除了集成了MinGW这个精简的Windows编译器以外,还集成了包管理器等等。

MSYS2可以在Windows下搭建一个完美的类Linux环境,包括bash、vim、gcc、make等工具都可以通过pacman这个包管理器来添加和卸载 。使用界面如图所示。

如果要安装git工具,可以这样。

是不是很方便?顺便说一句,高性能 Web 平台OpenResty的64位Windows版本也是用这个编译的。

安装限制:

  • MSYS2 不能安装在FAT* 分区。
  • MSYS2 仅支持Windows XP以后的版本。

基本工具包使用:

  • pacman -Sy 更新软件包数据
  • pacman -Syu 更新所有包
  • pacman -Ss xx 查询软件xx的信息
  • pacman -S xx 安装软件xx

Python 推出新一代 PyPI 发布站点 —— Warehouse

PyPI 团队的成员 Sumana Harihareswara 发表博客表示,Python 已推出新的 PyPI 网站(Python 的官方第三方软件存储库),浏览器流量和 API 调用(包括”pip install”)已从旧版 pypi.python.org 重定向到新网站,而旧的 PyPI 网站将于 4 月 30 日关闭。

不过现在旧的代码库在 https://legacy.pypi.org 上仍然可用。

目前,权威的 PyPI(Python Package Index) 地址是:https://pypi.org/,使用了新的 Warehouse 代码库。

https://pypi.org 测试版早于 3 月 26 日已提供,到 4 月 16 日正式推出,而旧的 PyPI 网站 https://legacy.pypi.org 则计划于 4 月 30 日关闭,pypi.python.org 则继续重定向至新网站。

有关更多详细信息,请参阅路线图:https://wiki.python.org/psf/WarehouseRoadmap

如果你仍在使用 pypi.python.org,现在开始应该迁移至使用 pypi.org,迁移指南:https://warehouse.readthedocs.io/api-reference/integration-guide/#migrating-to-the-new-pypi

从小抓起!最值得推荐的少儿编程入门书籍清单

纵观国外的一些科技大佬都是从小就开始学习编程,如比尔盖茨在13岁的时候就开始学习Basic编程;扎克伯格、苹果创始人乔布斯从12岁开始学编程;推特创始人杰克·多西学习编程的时间更早,从8岁就开始了……

而在国内,从小就开始学习编程的儿童却寥寥无几,假如你的孩子正好对互联网、电脑感兴趣的话,那么,编程技术的学习一定会是从小培养的首选。

正好,昨天就是世界儿童读书日,忙碌的家长们假如想教孩子们编程,下面要推荐的这些书就是不错的选择。

1、《Scratch少儿趣味编程》

优点:结合漫画卡通人物,趣味性比较好

适合人群:小学1—3年级学生入门

Scratch 是麻省理工学院设计开发的一款编程工具, 包含了编程语言最基本的元素:变量、函数、循环等,很是适合孩子入门编程,本书作者阿部和广师从PC之父、面向对象之父、图灵奖得主艾伦·凯博士。近年来多次举办面向少儿的编程讲座,在儿童编程方面经验十足。

书中结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教读者如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,让孩子不会感到枯燥乏味。

学习编程最主要的就是兴趣,所以本书十分适合中小学生等初学者自学或在家长的帮助下学习。

2、动手玩转Scratch2.0编程

优点:讲解细致,由浅入深

适合人群:儿童成人都适用

《动手玩转Scratch2.0编程—STEAM创新教育指南》的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。本书也是以示例来演示,不过里面还穿插了数据结构等计算机科学方面的知识。

所以,此书阅读人群最好是对编程明确感兴趣的,并且已经有一点基础的中学生。

3、Scratch少儿趣味编程2

优点:结合漫画卡通人物,趣味性强

适合人群:中小学生

本书是《Scratch 少儿趣味编程》系列的第二本,采用升级版本Scratch 2.0 教大家如何用Scratch 设计程序,内容贯彻STEAM 教育理念,综合了数学、科学、音乐、实践等科目,旨在引导读者通过实践来探索、发现并理解现实中的知识,在激发创造力的同时提升思考能力和与他人的协作能力。适合中小学生等初学者自学或在家长的帮助下学习。

4、父与子的编程之旅

优点:浅显易懂,卡通人物场景

适合人群:小学生编程入门

当你家孩子学完Scratch这类图形化编程后,如果孩子真的对编程有浓厚的兴趣,希望进一步学习,真正地学习代码类编程语言,那么从Python编程语言入门就是个不错的选择

《父与子的编程之旅》最适合零基础学编程,内容十分浅显易懂,有不少计算机常识的铺垫,同时里面还融入了很多卡通人物的场景对话,让孩子轻松愉快进入编程世界。

5、《Hello Ruby:儿童编程大冒险》

优点:编程与冒险故事相结合,集故事性、趣味性、知识性于一体

适合人群:幼儿园、小学生入门

作者琳达·刘卡斯(LINDALIUKAS)是芬兰赫尔辛基的一位程序员、作家和插画家。全书通过特别有趣的小故事,向孩子们介绍了与编程有关的知识和思维方式,没有一个生涩难懂的专业术语,特别适合孩子阅读,也增强了理念的代入感。并且随书附的一套编程桌游,可以让孩子们通过游戏,锻炼编程思维。

建议家里有3-9岁孩子的亲们,不妨给孩子添置一本这样的编程启蒙书。

6、《和孩子一起玩编程》

优点:国内编写,贴合中国孩子习惯

适合:9岁左右的孩子

国内家长编写的一本Python编程入门书籍,贴合中国孩子的任职习惯。书中的内容大部分都是小故事,以孩子生活的场景为例,介绍了Python编程的基础知识,并且让孩子以闯关的形式持续挑战和学习

7、我的第一本编程书

优点:与生活例子相结合,讲解详细、连贯

适合人群:初学者

本书是编程的入门书,目的在于教会读者编程的基本思路和方法。书中使用专门的工具Sunaba,向读者展示如何从零开始一步步做出一个完整的程序。书中内容讲解详细、连贯,并采用了大量能与现实生活相结合的例子。特别是在对编程思路的介绍上进行了详细的说明。

这本书主要以编程思维培养为起点出发,让还孩子逐渐培养编程的基本思路和方法,喜欢编程,又不喜欢枯燥的可以尝试从这本书入门。

8、程序是怎样跑起来的

优点:图文并茂、通俗易懂

适合人群:有点编程思维的人群,初高中

本书从计算机的内部结构开始讲起,以图文形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,让读者更直观的了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时还以人物形象来讲解程序的运行原理,生动有趣。

总体图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读,无论是新学者还是复习者,都是不错的选择

9、网络是怎样连接的

优点:对话的形式介绍网络术语的词源

适合人群:初高中

本书以探索之旅的形式,从在浏览器中输入网址开始,到显示出网页内容为止的整个过程,同样以图文形式讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。

来自:程序员书库(微信号:CodingBook)