惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
A
Arctic Wolf
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
P
Proofpoint News Feed
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
AWS News Blog
AWS News Blog
Schneier on Security
Schneier on Security
TaoSecurity Blog
TaoSecurity Blog
H
Hacker News: Front Page
L
LangChain Blog
Y
Y Combinator Blog
T
Tenable Blog
Microsoft Security Blog
Microsoft Security Blog
L
Lohrmann on Cybersecurity
量子位
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
W
WeLiveSecurity
Martin Fowler
Martin Fowler
Cloudbric
Cloudbric
S
SegmentFault 最新的问题
Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
腾讯CDC
博客园 - 聂微东
F
Full Disclosure
WordPress大学
WordPress大学
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
M
MIT News - Artificial intelligence
Forbes - Security
Forbes - Security
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
嘿 Siri 关灯
2016-12-24 · via 夜行人

引言

你在南方的艳阳里大雪纷飞,我在北方的寒夜里四季如春

马頔的这句歌词,道尽南方人过冬的艰辛。在没有暖气的南方,过冬基本靠抖腿和一身正气

我们以高中诗词鉴赏的套路来剖析下词作,“你在南方的艳阳里大雪纷飞"当然不是直白地描述一场太阳雪,艺术要有含蓄美。这句话实际上说的是"你"在南方灯如暖阳的房间里,忘穿秋裤,冻得像雪地里呆呆的兔子(由此可见这个灯是白炽灯而不是节能灯,节能灯如白月光而不似暖阳)

如果你有兴趣深挖,会进一步坚定艳阳指的就是灯。小如洞穴的房间、灯与影子,不由让人想到柏拉图的洞穴理论,作者进而感慨现实世界的不真实性,于是有后边的"穷极一生做不完一场梦”

至于如果题目问"你"指的是谁,你最好不要答前女友,其他随意,以免勾起阅卷老师伤感的回忆,给你个悲伤的分数

在灯如暖阳床如霜的南方夜晚,你刚看完《汇编语言从入门到放弃》,准备起床关灯睡觉,却对被子依依不舍。这时你想:要是对着Siri说一声

嘿siri,宝宝困了帮我关灯么么哒

便可睡觉该是多美的场景

又或者 圣诞夜你和你的小女朋友在被窝里讨论拉普拉斯变换或是傅里叶变换,可窗帘没拉,灯太亮影响发挥。

嘿Siri关灯并闭上眼睛

让我们撸起袖子来实现它

思路

我不建议你给房间换一个智能灯泡,也不打算向你推销一套年底特价智能家居解决方案,我们延续之前的思路(用树莓派给家用电器加上智能),尽量用非入侵的方式来解决问题,不去破坏和替换现有的设备

于是我们就提出这样一个问题:如何在不改变现有灯泡特性、电路结构和开关特性的情况下,来关灯?

能想到的方案似乎只有模拟人手的动作,以机械的方式来按下开关

“舵机"就是我们的首选了

剩下的就是如何躺在床上控制舵机来关灯,与硬件世界打交道,树莓派是我偏好的工具。树莓派控制舵机不成问题,至于如何用手机控制树莓派,我也在此前的文章中论述过

不过本文将采用更酷的方式,你将无需编程,通过拖曳积木化的模块,就可以搭建出关灯机器人,然后通过siri控制这个机器人,如此一来你可以用自然语言的方式给siri发送关灯命令

这个方案拓展开,我们几乎可以控制所有的按键式开关

自然语言处理这部分Siri帮我们做了,之后有机会我们自己来实现,听起来有点像最近怒刷各种技术社区的Jarvis –扎尔伯格用人工智能控制家居的项目

准备工作

硬件部分

硬件部分包括:

  • 树莓派
  • 舵机
  • 长导线
  • 移动电源

组件不多,考虑到电灯开关的位置一般齐胸,而树莓派和移动电源(供电)放在地上,所以你需要三根长导线,而不是普通的杜邦线,和往常一样,长导线这种东西都是从万能的@李老师的万能的实验室里要来的,感谢@李老师一直以来的助攻

下边我们对各个部分做个简单介绍:

树莓派

关于树莓派,可以参考我此前的文章:树莓派折腾笔记之系统安装与配置.入门新手会遇到的问题我基本都列出了

我也翻译了一份树莓派(Raspberry Pi)资源大全中文版

供大家玩耍时参考

舵机

我买的是淘宝上的SG90 9g舵机,价格6块多,关于舵机的控制原理比较麻烦,李老师跟我描述过,我听个大概,不过不影响,去网上抄段程序修修改改,封装为黑盒函数基本能用,有空在细看这块

简单介绍下舵机上的几根线:

  • 红色:电压
  • 粽色:地线
  • 橙色:信号线

我把信号线接到18号引脚(BCM) ,查看gpio图:gpio readall

李老师

顺便也介绍些李老师.

  1. 李老师其实不是我的老师,我毕业后才认识他,我从李老师这边学到很多硬件知识,从传道解惑的角度来说,李老师确是我的老师

  2. 李老师南大博士毕业后,在大学执教,他博士阶段读的是图像识别,但他是个彻头彻尾的硬件黑客

  3. 李老师的实验室黑科技齐全,哆啦A梦口袋一般,有求必应

  4. 李老师常说的话有这样一种模式:“没事没事,xx功能的电子设备买不到也没事,我们自己画,等印刷完,你过来取”. 我们有个有趣的项目,硬件部分都是李老师画的

  5. 迄今 只有一次例外: 有一回李老师在论述分布式节点的连接策略时,我有点开小差,状态类似"一人虽听之 一心以为有鸿鹄将至 思援弓缴而射之”. 我突然想要一个无线开关来控制我那不够智能的油汀,以便于用树莓派控制它。而李老师也和往常一样,一边论述一边离题,岔到其他他感兴趣的话题:这回是关于如何把无线模块画得更小,当他兴致勃勃地分享这个灵光一现时,我不合时宜地提出说我想要一个无线开关,能不能用继电器、开关外壳和无线模块,外加画个板子集成它们,李老师以一种给你糖吃别打岔的样子,说这个淘宝上有卖的,app都自带的,你去买一个,抓包hack它就能编程了。于是李老师继续谈论他画板子的布线方案

  6. 李老师实验室的四轴飞行器,除了飞行器是自己做的,遥控手柄也是自己画的

大家感受一下

让我们想到那句感人的话

情之所钟,虽丑不嫌

感觉哪里不对 ……

组装硬件

硬件部分的组装很容易,直接上效果图

接下来让我们用双面胶把舵机贴到开关边上,舵机转动即可关灯

软件部分

按照一般的套路,此处应该从舵机的驱动程序写起,加上通讯模块,接着写一些胶水程序黏合它们,组成实现完整的功能

软件部分如开篇所说,这次我想试试不通过编程的方式来完成这个工作. 仅仅通过拖拽功能模块,我们就能拼出功能的机器人,这样可以让更多的人参与进来(当然包括哪些在玩王者荣耀的小学生)

我已经完成了积木式的控制平台,硬件驱动全部封装为积木块(让每个人实现一次硬件驱动未免无聊),拖曳即可,支持几乎完备的编程要素,可以实现丰富的功能

我们来拖曳模块完成任务,Siri的请求本身被我封装为模块

完成后,程序为:

至于对原理有兴趣的geek小伙伴,在之后的文章里,我们再来讲解细节实现,实际hack了Siri

效果演示

点击"运行程序",程序就会在树莓派中运行(开机自启),我们做个演示

自然语言

因为Siri本身具有处理自然语言的能力,我们可以用许多说法来关灯

todo

当前的自然语言处理(NLU)用得到了Siri,下一个版本想试试yige.ai,然后把它植入到微信中,这样可以跨平台使用它