全球最强大的区块链项目,竟然不是比特币?

没什么意义的头图

提到区块链三个字,恐怕如今的小白也能说出来比特币。刚过去的2018年,区块链炙手可热,有人忙着割韭菜,有人忙着伸出头给人割,有人忙着想搭车融资,也有人在摸索区块链除了庞氏骗局和博彩以外,究竟有什么正能量的绝杀应用。

其实,有这么一个区块链应用,早已经深入到每个IT工作者的生活中了。在我自己的工作中就离不开它,但直到看到一期Linus Torvalds 2007年在Google的讲座视频,才恍然意识到它才是最成功的区块链项目。论时间,比Bitcoin早了4年;论用户量,它比Bitcoin多一个数量级。

它就是git。而一个更大胆的推演是: Linus或许就是中本聪本葱。

Linus Torvalds强烈鄙视CVS的用户

先说说什么是区块链。(了解请自行跳过)区块链其实是个无中心的分布式数据库(新近项目则是分布式的计算机,我们暂且不提)。例如,数据库中可以保存着每个人的账户有多少钱。所谓分布式,是指每个参与的用户都保存着部分或者全部的数据,大家对全部数据的内容通过一种机制达成共识。这样一来,就不用担心银行的系统被黑掉,或者数据中心遭到自然灾害而瘫痪,导致的数据丢失。

然而分布式的问题是,假如有一个恶意的用户在自己保存的数据上做了手脚,还宣称自己的数据是真实的,那么大家必须有能力分辨是非。区块链技术正是通过密码学的方法,给大家雪亮的眼睛,保证不可能被个别几个恶意的用户骗到。

Bitcoin区块链示意图1:4笔交易被记录在BLOCK 50中,其中引用了BLOCK 49的哈希值

之所以称为区块链,是因为数据是按照一个个“区块”为单位添加到数据库中的,区块只能添加,不能删除或修改。而每一个区块,都有一个哈希值(签字画押),这个哈希值的计算过程包含了上一个区块的哈希值。而上一个区块的哈希值又包括倒数第三个区块,以此类推,区块就成了个链条。如果有人要改动任何一个区块的内容,势必引起从这个块往后的所有块的哈希值改变(签字画押被破坏),别人一眼就看出来了。

重新画个押行不?行,但每一个画押的过程,都需要全球参与者的计算机共同努力一段时间才能完成(俗称挖矿,学名叫PoW,Proof of work)。靠攻击者一个人的计算资源,大概一辈子也画不出来一个押,更别提重新画押后面被破坏的所有区块,以及重新画押的这段时间中,正常用户在共识的数据库中添加的新的区块。据此,这个机制保证了无人能篡改已经进入数据库中的区块数据。

https://git-scm.com/

Git是什么?Git是目前全世界最受欢迎的版本管理工具,在2005年由Linux内核的作者Linus Torvalds设计开发。Git之于程序员,就如同知网之于博士。但如果一个博士不知道知网,那还可能是个外国博士;但如果一个程序员不知道git,那他只能是外星人了。

但是大家可能不知道,git的数据结构就是区块链。首先,git仓库是个数据库,其中保存的是一个文件夹和其中所有文件的全部更新历史。当git仓库用于保存多人协作的软件代码时,这个数据库需要在所有开发者之间共享,因此就形成了一个分布式的数据库。

Git的数据结构中,有3种相互引用的基本类型,分别是:

  • blob:用于保存文件的内容,不包含文件名
  • tree:用于保存文件夹中的子文件夹和文件的名称及属性列表。其中,子文件夹会引用另一个tree对象,而文件会引用blob对象。
  • commit:整个项目的一个历史状态。包括时间、提交者、一段描述文字、对一个tree对象的引用——即所保存状态的根文件夹。最终要的是,commit中还包含对若干个旧历史状态(父commit对象)的引用。

所有对象都有个唯一的标识符,就是这个对象完整内容(经过压缩后)的SHA1哈希值。

3个commit形成链条,分别引用tree对象。注意tree对象和blob对象是可以重用的,这大大提高了git的存储效率。
图片来自https://git-scm.com/book/en/v2/Git-Internals-Git-Objects

这样一来,如果你想更改一个文件在某个历史时刻的内容,你首先要修改它对应的blob,这会导致它的哈希值改变。为了能让文件夹能找到这个更改后的文件,文件夹tree对象中引用blob的那个标识符就得随之改变,这就引起了tree的哈希值改变。进而,那个历史的commit要引用修改后的tree,其哈希值也会变化,接着会引起这个commit的后续所有commit的哈希值变化。

事实上,由于密码学哈希算法SHA1的使用,只要给定任何一个commit的哈希值(仅仅20个字节),就可以唯一确定一个git项目某一对应时刻的完整状态,以及其完整的历史沿革。

这就是一个区块链。每个commit都是一个区块,commit之间的引用关系构成链条。由于每个commit可能引用若干个更老的commit,因此这不仅仅是个链,而是个有向无环图(DAG,directed acyclic graph)。

有人认为,仅仅是数据结构符合区块链特性,并不能足够说明git的区块链属性。而git的设计思想和使用方式,让git仓库成为了真正意义上的区块链应用。

在git仓库里怎么挖矿?当然是通过写代码、提交代码。这实在是太妙了,我只要在Linux kernel里面提交两行注释说:“幻腾智能招聘golang工程师”,就可以被所有内核程序员看到,就可以在家坐收英才简历了?

想得美!

软件开发中的共识机制是:谁的提交功能好、bug少,就能被大家认可,加入到共识的版本中去。因此,虽然人人都能在git上提交新的修改,但一个招聘广告显然对Linux内核没有价值,不会得到社区的认可。只有那些真正有价值的提交,才会被pull到大家都认可的仓库中。 这是一种真正意义上的proof of work,这里的work是真正意义上的工作、成果。

与比特币的“验证哈希值足够小”相比,这种对于代码提交质量的判断,完全是主观的。为了保持分布式的git仓库的一致,就要求一个项目的每个参与者,都有能力review所有人提交的代码,并以相同的标准接收高质量的提交。这在现实中几乎是不可能的。因此,人们就组织起来,在小范围内统一接收标准,形成了软件的维护者团队。而维护者以外的开发者或使用者,则完全根据自己个人的偏好,选择一个自己信任的维护团队。这就类似于有人维护比特币全节点,有人使用轻钱包。

bitcoin v.s. git

回到Linux内核,作为世界上最重要的开源项目,它由Linux基金会组织,由Linus和一群小伙伴们一起维护。全世界的开发者都信任Linus的团队,从而请求他们合并自己的提交,并仅仅信任被他们接受的提交。试想,假若有一天Linus黑化了(Linus自己的原话是,假若某天某个小伙伴忘了吃药了),在内核中真的发布了幻腾智能的招聘广告,那么一旦有人发现,就不会再信任Linus维护的版本。而另一个有信誉有技术的人,比如Minus,就会扛起大旗,继续内核的维护工作。于是Linux大旗不会倒,但可能会改名叫Minux吧。

这就是git中的硬分叉。在数字货币领域,分叉已经成了家常便饭(菜谱包括猪肉韭菜包,韭菜炒鸡蛋等)。在git管理的开源项目中,分叉也很常见,原因多种多样。

最主要的原因之一,是原先的维护团队“黑化”。当然,通常不是指在代码中夹带广告或者恶意代码,而是改变了软件的License授权协议,开始收费或者增加使用条款。这时,几乎一定会有人揭竿而起,基于原License的版本继续开发,从而形成分叉。例如,大家现在都在用的OpenSSH,就是从早期的SSH项目分叉而来,因为后者成为了商业软件。又比如CentOS从RHEL分叉而来,为社区提供免费的企业级Linux发行版。而LibreOffice从OpenOffice分叉而来,更是暴力地干掉了原本的OpenOffice项目——大部分OpenOffice的维护者都加入了LibreOffice,从而没有人再维护OpenOffice了。

LibreOffice的发展(分叉)历程

另一些分叉比较温和,可能仅仅是因为团队对于产品定位和方向的理解不同。比如Ubuntu从Debian分叉而来。可能Ubuntu看不惯Debian的产品和设计,但仍然依赖Debian的技术,两者还是好基友,代码补丁共享。

这些都是开源软件社区中活生生的分叉的例子,而git给了大家发起和维护分叉的工具。可见,git不仅仅在数据结构上使用了区块链技术,而且在使用思想上,也涵盖了区块链中的关键概念:分布式、共识机制、分叉等。你是否曾经怀疑,为什么在开源软件这样一个需要无中心的信任机制的领域,没有看到区块链的应用呢?答案是,大家早在2005年,就在Linus大神的带领下,走进了区块链的殿堂,那时候比特币还没诞生呢!

说到这里,我们甚至可以抱着吃瓜不嫌事大的态度揣测,以Linus的设计能力和技术实力,加上他早在2005年就把区块链玩得如此透彻,就差用在数字货币领域了。他难道不是发明比特币的不二人选吗?事实上,他在2007年的演讲中就说,“现在我只需要想明白第三步:怎么赚钱”。

清理即将爆炸的redis

近日发现运行多年的redis服务器越来越慢,已经接近爆炸了。

服务器配置为:2GB内存,2GB swap,只跑了redis服务,没有任何其它服务。

登录后发现redis的内存占用在80%左右,此外还有redis-rdb-bgsave进程,内存占用也在80%左右,同时还有接近80%浮动的CPU占用。这两项导致整个服务器的内存和swap几乎全部占满了,服务器响应非常缓慢。

redis-rdb-bgsave是redis的持久化保存进程,它是从redis主进程中fork出来的。因此,当fork刚刚发生时,由于内存的copy-on-write机制,内存占用并不多,随着bgsave的进行和redis服务进程仍然在修改内存数据,两者的差异逐渐增加,内存占用也越来越大。加之swap的存在,数据不停地在硬盘和内存之间传递,性能惨不忍睹。

登录到redis-cli上,查看info,发现一共有760万个key,总内存用量为1.5G。从业务上看,并不可能有这么多key。这都是什么呢?

> redis-cli scan 0 count 1000

执行上面指令,列出来1000个key,发现其中几乎全部是cache:*。这时Rails的session存储。进而发现是Rails session没有设置超时,导致这些key全部积累起来了。

如何增加Rails session的超时不表,下面我们要删除这700多万个cache:*。可惜redis没有提供根据pattern批量删除key的办法。

如果去网上找批量删除key,大概会发现两类方法:

  1. redis-cli keys <pattern> | xargs redis-cli del
  2. 利用exec lua脚本在redis内删除

如果你要删除的keys不多,可以参考这两种方法,参考链接如下:

https://huoding.com/2014/04/11/343

https://stackoverflow.com/questions/4006324/how-to-atomically-delete-keys-matching-a-pattern-using-redis

实际情况是,因为redis数据库已经处于爆炸边缘状态,任何keys <pattern>操作,都会返回700万个key,所占用的内存完全分配不出来,因此完全行不通。

解决办法如下:

首先需要暂时关掉bgsave,这样可以省出来几乎一半的内存,即几乎把swap都省出来了,内存还是满满的,不过已经可以顺畅操作了。

修改/etc/redis.conf,把其中的bgsave相关设置调成不保存:

#注释掉默认的备份数据
#save 900 1
#save 300 10
#save 60 10000
#增加一条“不可能”触发的,理论上也可以不增加,不过为了保险增加也无妨
save 3600 1000000

重启redis,可以发现,bgsave不会自动开始了,swap也几乎空着,只是RAM仍然占满,redis仍然占用80%以上内存。这里我直接kill -9杀掉了原来的redis和bgsave,然后重启。如果不强行杀,也不知道要等多久才能正常重启。如果真的在乎尽量不丢有用的数据,可以尝试正常重启。

即便这样,仍然不能用keys <pattern>的方式列出所有要删除的键——内存仍然不够。我的办法是用scan一点一点删

> redis-cli scan 0 match cache:* count 10000 | xargs redis-cli del

实测count 10000的时候,机器不会死掉,可以正常运行。

理论上scan会返回一个新的cursor,以便下一次scan的时候用(换掉scan后面第一个参数0)。不过咱们这种简单粗暴的方式并不会输出这个cursor给你看,所有只能多执行几次上面的命令,你会发现del成功的数量越来越少。

之后,可以换一个起始cursor,比如1000000,再跑几次。然后再换一个……这样删了几轮之后,逐步把count提高,例如20000、50000、100000。

注意,删除的过程中,通过info可以查看剩余的总keys数量。不过这个过程中内存并不会被释放出来,redis的内存占用只是从80%以上降低到了70%左右。事实上,这微小的内存释放,就是咱们增大scan count的资本。

当删除到剩下300万左右keys的时候,count可以增大到50万。这样再来几次,几乎所有键都删掉了。

接下来,怎么彻底释放内存呢?

先手动执行一次bgsave(因为之前已经”关掉”了bgsave,所以需要手动执行)。可以感受到bgsave并没有让系统变慢,查看一下保存的文件,尺寸小了一个数量级。

然后把/etc/redis.conf改回原有的保存策略,重启redis,可以看到重启后,redis内存占用变得很小了。

至此,大功告成。

总结本文要点:

  1. 暂时停掉bgsave,可以让redis暂时变得可操作,而不是完全不能响应
  2. 内存占用很大的时候,keys <pattern>操作或者count过大的scan都没法执行,只能通过count比较小的scan逐步删除。

幻腾Local Control固化边缘控制逻辑

本文适合对软硬件技术和物联网架构都有深入了解和实践的专业人事阅读。

考虑一个简单的使用场景:一个过道顶安装一个人体运动传感器(幻腾产品UFO),用来控制两盏智能灯(幻腾产品Nova)。当有人经过时,UFO可以检测到人的运动,从而控制Nova点亮到100%亮度;当人离开后,UFO检测不到人的运动,Nova亮度降低到20%。UFO和Nova之间采用无线通讯,之间并没有线缆连接。此外UFO是由纽扣电池供电的低功耗设备,需要有长达若干年的设计电池寿命。

上面这个场景,有三种实现方式:

  1. 大闭环:UFO将检测到的有人/无人状态发送到云服务器,云服务器根据IFTTT策略向Nova发送控制指令;
  2. 小闭环:UFO将检测到的有人/无人状态发送到本地网关或中控设备,中控设备根据IFTTT策略向Nova发送控制指令;
  3. 最小闭环:UFO直接向Nova发送控制指令

其中,方式1扩展性最强,但控制延时不确定,有时可能长达1~2秒。这样的延时对于IoT控制来讲,体验非常差。方式2延时较短,但引入了复杂的本地中控设备,不仅成本高,而且是个“单点失效”的设备——一旦中控设备不稳定,就会导致整个系统瘫痪。智能系统瘫痪后,连传统的开关灯都无法实现,这是不能接受的。

幻腾Local Control固化控制协议,采用的是上述方式3的控制方式。这样,只要Nova有电,控制就可以达成。它不依赖于网关或中控设备是否联网,甚至不依赖于网关是否通电开机。网关仅仅作为云端控制和收集统计数据的桥梁使用。

这好像并不复杂呀,人体运动传感器相当于一个遥控器嘛?

如果你曾经尝试过给一个四路或者六路的电动窗帘遥控器对码,你一定清楚这是一个多么痛苦的过程。幻腾将“遥控器”和“执行器”的控制策略保存在云端,并通过Topology Generator为每个设备生成需要的分布式控制策略,并可靠地同步到设备上。这样,用户只需要通过手机APP或者幻腾后台,就可以对固化控制关系进行更改。这和对码相比,即方便又安全。

有点意思,不过仍然不难实现。好,那我们把场景的复杂度提高一些:

还是走廊里的两个Nova灯,我们现在需要用两个UFO来控制,分别放在走廊的两头。我们希望,只要其中任意一个UFO检测到有人经过,就应该打开灯;但只有当两个UFO都检测不到人时,才减弱灯光。即:

  • 灯光明亮条件:UFO1或UFO2有人
  • 灯光减弱条件:UFO1和UFO2都无人

如此一个简单的与、或算符,该在哪里执行?如果采用大闭环或小闭环,那么云服务器或中控设备将毋庸质疑地担当“重任”。但我们不喜欢延时和单点失效,事情就变得复杂了。

值得一提的是,现在另一种单点失效的形式是:其中一个UFO在有人的状态下突然坏掉了,这时系统可能认为这个UFO一直处于有人状态,因此灯光总是不会变暗。这也是不能接受的。常理告诉我们,走廊中的人不会长时间停留,所以如果一个UFO长时间(比如超过4个小时)未上报无人,那么它应该是坏掉了。对于坏掉的UFO,默认情况应该认为是无人的,这样可以不影响整体策略的执行。

我们继续提高复杂度:

假设走廊尽头有一个SNPi按钮开关,它是一个无线按钮,并不会接通和断开Nova的电源,而是在被按动时,通过无线电给系统发送指令。现在我们希望,当SNPi按到“关闭”位置时,无论两个UFO是否有人,Nova都不点亮;当SNPi处于“开启”位置时,UFO可以控制Nova的亮暗。

  • 灯光明亮条件:SNPi开启,并且UFO1或UFO2有人
  • 灯光减弱条件:SNPi开启,并且UFO1和UFO2都无人
  • 灯光关闭条件:SNPi关闭

看起了我们的表达式变得更加复杂了。那么,是否支持任意复杂的逻辑表达式,就可以解决问题了?并不是。

我们继续给走廊增加一些动感:当有人从UFO1这边走进走廊时,Nova1先亮起,接着Nova2亮起;当有人从UFO2这边走进时,则先点亮Nova2,再点亮Nova1。此外,上面的SNPi开关逻辑仍然存在。当然,我们也可以用更多的Nova,使走廊灯光形成跑马灯逐个点亮的效果。这样一来,控制加入了时间的维度。

现在,你会想:灯里面不是都有MCU嘛,可以给每个灯设计定制的程序,那样就可以实现任意的效果。

是的,但那样是不可扩展、不可持续维护的系统。利用幻腾的Local Control系统,并不需要定制每个灯的固件,不需要MCU编程。只需要用市面上买到的Nova,就可以实现上面这些复杂的场景。当然,复杂的场景仍然需要专业人员的配置,不过大部分配置的工作量都可以通过电脑在云端完成。

这就是幻腾Local Control系统的能力——一个分布式控制系统。它无延时、无单点失效、可以通过云端配置、具有无限扩展性。

震惊!央视315炮轰无良LED厂,智能家居厂竟集体躺枪

2017年315晚会上,央视曝光了部分打着“护眼灯”旗号的LED灯泡,存在严重的频闪问题,并给出了一个简单的用普通手机摄像头检测频闪的方法。消息一出不到5分钟,立刻就有用户发来了微信,说我用手机看了,怎么这智能灯也有频闪呀!

赶快回看315晚会,果然,央视继续秉承一贯的“为了大众的认知能力,不能把科学讲太深”的精神,把大家的恐慌煽动起来后就撤了。是时候把央视没讲出来的部分写出来了。

什么是频闪(Flicker),哪些灯具会有频闪,哪些没有?

大家都知道,咱们的市电是50Hz的交流电,也就是说,在一秒钟之内,会交替变化50个周期,就像下面的图那样。

不仅仅瞬时电压是波动的,相应的瞬时电流和瞬时功率,都是以50Hz波动的。正因为这个50Hz的交流电,导致几乎所有插在市电上的电子设备,都或多或少带有一些50Hz的印记。

(315合格灯具,依然可见微小的波动)

日光灯:说到频闪,最典型的是需要用启辉器的日光灯管。这类灯管,是通过电流激发管里的气体,产生光线。电流无论正反流动,都能激发发光,只有电流接近和经过零点的时候,才不发光(但仍有辉光),因此,这类灯管会产生两倍于电流频率的频闪,在市电下就是100Hz(美国就是120Hz)。

白炽灯、卤素灯:这类灯具都是靠热来发光的,虽然灯丝的瞬时功率是波动的,但是其温度的变化是非常缓慢的,因此其光线是持续无频闪的。

节能灯:所谓节能灯,其实是指采用电子镇流器的荧光灯,发光原理和日光灯相同,但电子镇流器会把50Hz的市电先转换成直流,再转换成频率高达20k-60kHz的高频交流来驱动灯管。因此它也有“频闪”,只是频率高了近3个数量级。

LED:它是有潜力实现没有频闪的光源。LED灯具中,50Hz市电首先转换成直流,再转换成恒定的电流和电压,直接以直流驱动LED发光器件,因此几乎没有频闪。同时,LED也是目前量产商用的效率最高的光源。

很遗憾的是,一些无良LED厂商为了降低成本,并不用上述这种市电->直流驱动的方式,而是直接用简单整流后的市电来驱动LED器件。这样,LED就和日光灯一样,会产生100Hz的频闪。在(Wilkins-2010)中,记载有如下会产生频闪的简化LED驱动方式。事实上,我曾经在某个办公室看到过采用这种方案的灯泡。某宝上的1.9包邮的LED灯泡,大家就自己掂量着买吧。

(简化LED驱动图,摘自Wilkins-2010)

频闪对健康是否有影响?

频闪,是“频”和“闪”两件事组成的。离开频率谈频闪对健康的影响,是不科学的。遗憾的是,直到电子镇流器之前,人们对频闪的讨论都只集中在了50-60Hz工频,以及其倍频100-120Hz。

频闪对人的影响,大致有两类:

第一类:可见的频闪(Visible Flicker),大约3-70Hz。这类闪烁可以被人直接看到。短期暴露在这种环境中,就有可能产生癫痫(IEEE-Std-P1789,2010)。事实上,曾经有动画片中出现闪烁过于强烈的画面,就导致很多看电视的儿童发生癫痫。

第二类:不可见的频闪(Invisible Flicker),大约70-160Hz。这类闪烁虽然人不能感觉到,但是却实际上会被视网膜捕捉到(Veitch-1995),反馈在“视网膜电图”上(ERG,类似脑电图、心电图吧)。这类闪烁会导致人用眼疲劳、头疼、视觉能力下降等副作用。

比160Hz更高的频率,就超出了视网膜反映的速度,因而也没有在ERG中检出。这意味着,160Hz以上的频闪,已经超出了对人体产生影响的范围。也正因此,采用电子镇流器的节能灯虽然也有频闪,但对人是没有影响的。

除了频率,频闪的深度(最暗和最亮照度的比例关系),也对人有一定影响。根据(Bullough-2013):

  • 1000Hz 100%频闪,要优于100Hz 25%频闪,这说明远超过人体感觉能力的频率,哪怕频闪强烈,也比低频率的微弱频闪要好;
  • 100Hz 25%频闪,要优于100Hz 100%频闪,这说明相同的低频率下,更浅的频闪更好。

回忆一下,自己的童年貌似是在学校的老式日光灯管下度过的,怪不得眼睛疲劳学习效率低下呢。。

用手机摄像头测频闪,靠谱吗?

手机目前多采用的是CMOS摄像头,其显著的特点就是“滚动快门(Rolling Shutter)”,相信爱好者对这个现象都非常熟悉。正是利用这个原理,CMOS摄像头可以用来探测人眼看不到的闪烁。

(螺旋桨的Rolling Shutter效果,摘自(Cole))

CMOS摄像头每一行的采样速度通常在5-10微秒量级,因此可以捕捉到高达20-50kHz的闪烁。如果要在拍出的照片中表现出来,那么需要经过一系列软件对图像的滤波和处理。保守估计,这样最高仍然可以拍到5000Hz的闪烁。

因此,CMOS摄像头可以让你看到50-5000Hz的频闪,然而记住,只有160Hz以下的频闪才能真正影响人,而有证据的影响人健康的频闪,是更低的频率。

智能家居厂商的躺枪

这是我手头的测试设备:除了自家的幻腾Nova,还有飞利浦Hue(不小心摔碎了外壳),飞利浦LivingColor,飞利浦灯带,小米YeeLight灯泡,小米网关小夜灯。

(全家福,上排左起:飞利浦LivingColor,小米YeeLight,幻腾Nova,飞利浦Hue(破损版),小米网关夜灯;下排:飞利浦灯带)

如果把亮度开到100%,用手机摄像头查看,所有产品都“一片祥和”。

(从左到右:Nova,YeeLight,亮度100%,一片祥和。至于Hue,因为我把飞利浦网关搞丢了,所以没法演示100%亮度时候的祥和了。。。)

(从左到右:Nova,YeeLight,Hue,小米网关夜灯,亮度低于100%时,均由于PWM产生无害的高频频闪)

(从左到右:Nova,YeeLight,Hue,小米网关夜灯,亮度和上一张图相同,远看一片祥和)

但如果亮度不是100%,所有产品都会出现明显的频闪条纹!难道智能灯们都会影响健康吗?其实不然。

产生频闪条纹是因为,目前LED的数字调光方案,几乎全部是使用“脉宽调制(Pulse-width Modulation, PWM)”来实现的。通俗来讲,就是通过高频率地开关发光器件,实现对亮度地调节。再通俗来讲,就是通过频闪来实现调光。因此,其产生频闪本身是设计所致。

注意到,飞利浦Hue的调光频率是500Hz,YeeLight和幻腾Nova的调光频率都是1000Hz,远高于上面所说的可以对ERG产生影响的160Hz,完全不会对人产生任何影响。也正因此,业界一直采用高频率的PWM进行调光,这已经是LED数字调光的规范。

如果把智能灯调到100%亮度,则不再需要用PWM进行调光,则LED的驱动就是直流,完全没有频闪。

接着,我又试着把手头的一个Nova的PWM频率调到了10000Hz(10kHz),用手机摄像头就看不出任何频闪条纹了。当然,因为Nova的驱动性能非常好,在10kHz的调光频率下仍然可以工作自如,最低可调亮度仍然可以低至千分之4。

(幻腾Nova更新固件,把频率调至10kHz后,用手机无法看到频闪现象了。)

对于其它一些功率更大的驱动电源,如果调光频率过高,可能导致效率降低,或在低亮度情况下不稳定的情况。这就是为什么大部分厂商选择500-1000Hz的调光频率。

究竟怎么判断哪些频闪是有影响的?

还是手机。其实,咱们可以大致通过手机拍摄的条纹宽度,来估计频闪的频率。

(晚会展示的手机图像)

手机摄像头的帧率大约30帧/秒(随手机品牌不同可能不同),即整帧的刷新率是30Hz。因此,如果一幅照片中可以看到大约3个条纹,我们就可以估计,实际闪烁的频率大约是30Hz*3 约 100Hz。

从上面实验用的智能灯照片也可以看出,频率在500Hz-1000Hz的时候,条纹是非常密实的,并不像晚会中展示的那种,一副画面只有3个条纹。

总之,手机看到条纹很宽,闪烁很明显的,那就是工频(100Hz)左右的频闪,是不好的;手机看到条纹很窄很密的,那就是高频(500Hz以上)调光信号,对人没有任何影响。

参考文献

Arnold Wilkins, Jennifer Veitch, Brad Lehman, LED lighting flicker and potential health concerns: IEEE standard PAR1789 update, Energy Conversion Congress and Exposition (ECCE), 2010 IEEE

IEEE Standard P1789, A Review of the Literature on Light Flicker: Ergonomics, Biological Attributes, Potential Health Effects, and Methods in Which Some LED Lighting May Introduce Flicker, 2010 IEEE

Veitch, J.A., McColl, S.L., Modulation of fluorescent light: flicker rate and light source effects on visual performance and visual comfort, Lighting Research and Technology, Vol. 27 No. 4, 1995, pp243-256

John D. Bullough, Nicholas P. Skinner, Kathryn Sweater Hickcox, Visual Task Performance and Perceptions of Lighting Quality Under Flickering Illumination, Journal of Light & Visual Engironment, Vol. 37, No. 4, 2013, pp189-193

Jason Cole, The Math Behind the Rolling Shutter Phenomenon, https://petapixel.com/2014/10/13/math-behind-rolling-shutter-phenomenon/

 

雾霾天,宅在家干什么最环保?

16日-21日,北京雾霾红色预警,单双号限行。出不了车了,这个周末估计很多人都选择宅在家里看电视、刷剧、打游戏。那么宅在家里会不会也危害社会呢?让我来一本正经地算一笔账。

既然看电视、刷剧、打游戏都要用电,那咱们算一算1度电产生的PM2.5。电能是二次能源,电来自于风、水、火、核能等等其它能源。其中产生PM2.5的最主要来源,就是烧煤炭的火力发电。

(下面是艰深的计算,不感兴趣可以快进到=TL;DR=分割线)

那么1度电要烧多少煤?根据《2015年全国电力工业统计快报》,我国2015年总发电量是56045亿度,其中煤电是37649亿度。因此,煤电占我国总发电量达到67.18%。其实这个比例非常高,在美国,化石燃料发电只占40%左右,所以人家的电更清洁,天更蓝。

言归正传,因此每用1度电中,有0.6718度来自烧煤,这要烧多少煤?我们看看《国家能源局发布2015年全社会用电量》,其中说大型火电站的效率是每度电315克煤。因此,我们用的1度电,消耗的煤就是0.6718*315=211.6克。

那么烧这些煤产生多少PM2.5?我找到了一份科技日报的采访《一公斤煤到底产生多少PM2.5?》,其中说到“1公斤常规烟煤中会产生8—12克PM2.5”,“……目前电厂的电除尘器对PM2.5脱除效率大约在95%上下”。我们取中间值,每1公斤煤实际排放的PM2.5大约是10克*5%=0.5克。

这样一来,我们每用1度电,相当于消耗了211.6克煤,这产生了0.2116kg*0.5g/kg=105.8毫克PM2.5。

这是多少PM2.5呢?按照我国标准,空气污染指数是200的“重度污染”雾霾天,PM2.5的浓度是150微克/立方米。105.8毫克PM2.5可以制造105.8/0.15=705立方米地重度污染空气!

====TL;DR分割线====

因此:

如果你是土豪,在北京有一套70平米房子,那么705立方米可以把你的房子填满4次。如果你是屌丝,租一间20平米的合租卧室,那么705立方米可以把你的屋子填满14次。

回到宅在家里刷剧的问题。如果你用一台笔记本电脑刷,笔记本大约功耗是60W。也就是说,每分钟耗电是0.001度电,可以把0.7立方米,即700升空气变成重度污染的雾霾空气。

还不直观?传说中地铁里面PM2.5非常低,是因为地铁人多啊,每个人的肺都是个生物净化器呀。静息情况下,一个人的肺通气量大约是7L每分钟。因此,你刷剧持续产生的PM2.5,够100个人吸,这大约相当于小半截地铁车厢的人。

如果打游戏,你可能不满足于笔记本电脑,而是用一台300W的台式机,那么就可以污染500人的空气。冬天冷,打开空调吧,平均功耗按600W算,那就又污染了1000人的空气。加上你的台式机,整整一趟地铁的人都被祸害了!

电水壶烧1.5L水?污染了100,000升空气。

电热水器洗个澡?污染了800,000升空气。

用手机看现在这篇文章?污染了500升空气。

看到了吧,为了北京的蓝天,别刷剧,别打游戏,别洗澡,别刷朋友圈。。。安安静静发愣吧(请注意别开灯!)。

如果你真的想做点贡献,可以把你的空气净化机放在外面转,一台30W的净化机(CADR=300立方米/小时),每分钟耗电产生350L污染空气,但可以净化5000L的空气,这个还是很划算的!

不太现实?那来点现实的。在办公空间安装“幻腾智能”照明系统,自动根据光照和人员占用调整照明,节约照明用电30%以上,真真切切减少PM2.5。

MagicLeap到底搞啥黑魔法?

最近的科技圈里,一篇关于最神秘的创业公司MagicLeap造假的报道一夜之间传开。甚至在有些媒体的渲染之下,很多吃瓜群众觉得谷歌、阿里巴巴砸的钱打水漂了,MagicLeap一文钱不值了。

其实,报道的原文指出,MagicLeap的demo视频中“至少一条”是特效;而体育场的鲸鱼,只是个“展望未来”的特效,其实也早已是不争的事实。mldemo

(图片来自MagicLeap官网演示视频)

就算MagicLeap目前公布的全部视频都是特效,如果你探究一下MagicLeap究竟想要做的是什么事情,在研究的是什么技术,你就会为这技术的难度而敬畏,为它未来的前景而惊叹,从而不再诟病那几条特效视频了。(当然,很多人相信这技术太难了,以至于10年之内根本不可能达到,从而继续诟病MagicLeap的不切实际。但笔者本人向来是相信所有敢于尝试不可能的人的。)

那么MagicLeap到底要搞啥?不是计算机视觉,不是环境建模,不是图像处理——那些留给软件公司去搞就好。

MagicLeap的核心只有一样,光场显示。

想象一下,如果把你家里的窗户玻璃换成一幅高分辨率的照片,一幅精心调整好大小、比例、亮度和色彩的照片,照片上是原本窗外的景色。请问多长时间你能够发现窗户被动了手脚?你肯定觉得,这不可能瞒得过你的眼镜。

如果把照片换成一块高分辨率显示屏,同时增加眼跟踪功能,画面会根据你眼睛的位置实时渲染,就像《碟中谍4》里面展示的装备那样。那么你多久能发现窗户的破绽?其实如果从远处看,你几乎不会发现破绽,直到你决定走到窗前远眺风景思考人生的时候,或者你和家人两个人一起远眺风景的时候,一定会发现破绽(就像《碟中谍》电影里那样)。

mi44

(带头追踪的伪装投影——图片来自《碟中谍4》)

然而,如果把窗户换成一块光场显示屏,就是MagicLeap想做的那种,那么你可能永远不会发现其中的破绽,即使多人观看也不会。对于文章开始提到的出名的“体育场鲸鱼”视频,如果能在体育场的观众面前放一大块光场显示屏,那么完全可以展示足以乱真的的鲸鱼。

什么是光场显示?

我们先从普通的头显(Head Mount Display,HMD)开始,看看他们是什么原理。从15块钱的纸板头显,到高端的Vive或Rift,其光学原理都是(每只眼睛)一个凸透镜加一个显示屏。

vive

(Vive的一个“眼睛”——图片来自iFixit)

如果回忆一下中学的几何光学,原理如下图所示。由于凸透镜的存在,人眼观察到的是显示屏的一个放大的虚像。虽然显示屏距离人眼只有几厘米,但这个虚像位于几米或者更远的位置,同时其大小超过了人眼转动的范围(eyebox),从而人眼看不到它的边界,好像画面无限大。

display

然而它是在一个固定距离位置的一块虚拟屏幕(平面)。人眼看到的光,全部从这块虚拟屏幕(平面)发出来。如果暂不考虑双目视觉,单用一个眼睛去看,你看到的是一个大平面,毫无立体感。

下面来说光场。

假设你前方的视野中有两个彩色的灯泡(点光源),一个红色,一个绿色,正如下图a)中的情况。它们发出的光线被你的眼睛接收到,从而你看到了两个真实灯泡的存在。请注意,图中只画出了11条光线,这只是示意。实际情况中,点光源发出的光线比图中“密实”的多,完全填满了图中的缝隙。

如果在眼睛和灯泡之间放一个平面,那么透过平面的光线就是图中b)中实线的样子。假设我们去掉灯泡,而是在原来平面的位置模拟出和原来相同的光线(相同的颜色、相同的强度、相同的方向),即那些实线,那么人眼看上去就会认为真的有两个灯泡,而且它们的位置恰好和之前相同。透过平面的光线的颜色、强度、方向,就是光场。能模拟出颜色、强度、方向的平面,就是光场显示器。这就像图中b)的样子。

display

而普通显示器,包括普通HMD中成像在远处的虚拟显示屏,则不是这样工作的。首先,要表现的两个光源会被投影到屏幕所在的平面上(这时因为拍摄图像时,就只记录了一个投影),而光线则是从屏幕平面发出的,就像图中c)那样。

如此的差异,是因为普通显示器只能再现光的强度,而丢失了方向信息。事实上,普通显示器的每一个像素点,只能类似一个点光源那样向所有方向发光。而光场显示器的每一个“像素”,可以向不同的方向发射不同强度和颜色的光线,从而可以完整再现光场原有的样子。

光场显示有什么好处?

首先,如果有一块足够大的光场显示屏(比如你的窗户那么大),那么双目视觉将自动呈现出不同的,物体的遮挡关系会自动随着观察位置的移动而改变。因此,3D眼镜、头部追踪,统统都不需要了。这就是MagicLeap体育场鲸鱼所展望的那样。

可惜,目前貌似还没有像窗户那么大画幅的光场相机,更不要说显示了。看起来MagicLeap目前似乎也只是想开发带有光场显示的HMD。看看MagicLeap展示出来的小片片。

rony-abovitz-magic-leap-750x434

(MagicLeap创始人展示一片神秘的片片——图片来自Wired)

这样一来,虽然头部追踪、双目视觉,还是要靠计算的,但是光场显示仍然可以带来两大好处。

首先,是个不那么重要的,就是光场显示屏可以直接放在距离人眼几厘米的地方,而无需再通过透镜成像。这是因为人眼聚焦的是显示屏显示的虚像,而不是显示屏本身。这使得HMD可以做的非常轻薄,就像普通眼镜一样。

更重要的优势是3D效果。数字叠加的影像的焦距(或“深度”),是可以自由连续变化的。因此,观察者眼睛的焦距(晶状体的焦距)可以更自然的切换于不同深度的虚拟物体上,或者深度相同的虚拟物体与真实的背景物体。你不会感觉虚拟物体好像笔直地悬在空中,而是真正叠加在环境里。这种体验是单纯靠双目视觉无法满足的。(斯坦福SCI组的教授讲,特别是在75cm手臂距离内,焦距和双目视觉相比对3D效果的体验起决定性作用。)

然而,即便是这样小的一块光场显示屏,也足以消耗一群世界上最聪明的头脑,以及数以亿计的资金,才有一丝丝可能完成。况且目前MagicLeap的研发看起来走的并不顺畅。

光场和全息

其实光场的记录和再现,最传统的方式就是全息摄影(Holography)。在一些信用卡或包装盒上,有激光防伪标志,看起来好像一个立体的标志悬浮其中,那就是全息技术。然而全息摄影,只能通过全息胶片作为记录和再现的载体,直到一款光场相机的面世,名为Lytro。

Lytro通过微透镜结构,可以数字化地记录光场。然而,Lytro推出的这么多年,就只有一个杀手锏应用,即拍照时无需调焦距,可以后期调节焦距,选择前景或背景的虚化。遗憾的是,这个功能很快被双目带深度的摄像机加后期处理达到,再后来甚至被通过纯软件实现了。时至今日,恨不能手机都做了个“后期调焦”的功能,美其名曰“光场摄影”。其实那和光场没半毛钱关系,“后期调焦”只是光场的一点点应用罢了。

lytro_illum_light_field_digital_1046808

(Lytro光场相机Illum——图片来自网络)

Lytro的尴尬在于,拍下了完整的光场数据,却苦于没有再现它的手段,只能玩玩“后期调焦”的小把戏。而光场显示技术,正是完成这一闭环的另一片拼图。

有没有其它做光场显示技术的团队?据我查找,还有两个。一是NVIDIA,采用了和Lytro类似的微透镜技术,通过完全相反的光路,实现光场的再现。另一个是斯坦福SCI组利用有一定间距的两层LCD做的系统(http://www.computationalimaging.org/publications/the-light-field-stereoscope/),后面的LCD负责显示,前面的LCD负责调制(类似充当微透镜的作用?)。

光场和HoloLens

很遗憾,据我所知HoloLens和光场没有半毛钱关系,虽然HoloLens的名称和广告中与全息总是挂上联系。

HoloLens的核心在于让现实景物与显示内容合而为一的光学技术(而且此技术中很可能用到了全息技术)。而其数字显示内容,仍然是成像在无穷远的一个平面,而不是带有光线方向信息的光场。

此外,作为软件公司的作品,HoloLens的核心还在于结合了强大机器视觉的具体MR应用。

结语

如果我们能实时精确地跟踪人眼位置、角度,测量人眼内晶状体的焦距,那么我们总是可以通过计算,用普通的显示屏大致模拟一个基本符合认知的图像。然而,光场显示是真正完全再现人眼看到实物的光线的方式。无论人眼距离光场显示屏多进或多远,无论单眼双眼还是多个人多只眼,无论角度位置,只要透过光场显示屏,都能看到真实的画面。

有一天,你的窗户被换成了光场显示器,即使屋外雾霾密布,从屋里看出去仍然阳光明媚。

摩拜单车mobike不为人知的背后

mobike-f-1

最近一周,如果你生活在北京,一定已经注意到了身边很多长相前卫的自行车——亮橙色的车轮、看不见链条的银色车身——这就是号称首个“无桩公共自行车”的摩拜单车。进驻北京仅仅一周,即便不算风靡整个北京城,摩拜单车也着实已经风靡宇宙中心五道口了。用户只要下载App,交押金,租车还车位置随意,彻底摆脱了公租车固定存取车点的局限性。

我在摩拜进京第二天,就体验了整个流程。然而,让我一言不合写下本文的,是一篇新闻报道中这样一句话:“……技术实现手段也不难:在电动车锁里加上传感器、GPS、3G网络和芯片。”

作为一个搞技术的工程师,一项你曾经认为技术不可行的idea,不仅被别人如此漂亮地实现了,还被小白媒体评为“技术实现手段不难”,着实让人大跌眼镜。那么就让我们看看这里究竟有什么黑科技。

—————- 分割线 —————-

首先,摩拜必须解决地第一个问题是——定位。

20111209031118139

在清华大学地校园里有无数自行车,每当晚自习结束,在密密麻麻地自行车海里找到自己的那一辆,实在不是容易事情。无论是出于自己找车的需求,还是为了帮仰慕的女神找自行车(或者是为了跟踪定位仰慕的女神),在我混迹于学校的这几年时间中,据我所知,就有6组个人或团队试图解决“找车难”问题(其中包括我在内)。最终也未见一件像样的解决方案。

难点只有一个——功耗。说通俗了,就是电池续航。

battery

想象一下,你和女神说:“宝贝儿,给你个小装置,装在自行车上,从今往后只要掏出手机,就能看到自行车的位置了,不过这个小装置每天都要拿回寝室充电哟!”

女神一定说“哇大牛你真厉害!” 其实心想:“你个死geek,还不如我在车上多贴两个Hello Kitty标志找起来方便。”

这里先跑个题。大伙一定都在各大谍战电影中看过这样的情节。某大间谍在一号敌人的身上塞了一个小钮扣,或者直接在人体内注射一枚追踪器,之后就能用电脑全球跟踪目标的位置了。

现实生活中,这东西是什么样子呢?就是下面这样。

fbi-tracker-2010-10-08-250

(传送门:https://www.ifixit.com/Teardown/Tracking+Device+Teardown/5250)

这是货真价实的FBI为了跟踪准备请去喝茶的贵客的座驾,所用的装备。不过年头比较古老,貌似是2010年前的。其中最显眼的就是那4节一号电池。那不是普通电池,而是锂亚硫酰氯电池(简称锂亚电池)。这是一种不可充电的能量密度极高的锂电池,一节有13000mAh,相当于iPad2电池能量的近2倍。同时,锂亚电池“保质期”极长,最长可达20年。

EmeuEp3EIKHEAamj.medium

锂亚电池的缺点是放电电流非常小(换句话说,内阻特别大)。所以通常要配以一颗超级电容一并使用。如果你拆过车子里的ETC,就会发现它就是这样的原理。此外就是,这种电池贼贵(反正FBI不考虑成本)。

跑题了。所以说谍战片里的“跟踪纽扣”,在实际技术中,就是个“跟踪棒槌”。差距这么大,原因就在于,要维持长时间使用,必须要有足够的电能。

—————- 分割线 —————-

回到摩拜单车。一些简单的观察可以大致推断其工作原理。

首先,开锁时只要扫码,不需要对自行车做任何物理操作。这意味着,自行车的电子部分是持续工作的,不需要人工触发唤醒。我测试了几次开锁的延时,大约都在6-9秒左右,这时间远远短于GSM搜索注册网络的时间,因此可以推断它是一直连接在手机网络上的(换句话说,就是手机一直是“开机”的)。

一个更有趣的猜测是,虽然和服务器同步位置信息,几乎肯定会用2G/3G流量。但是,为了省电,开锁应该并不是使用GPRS或3G流量来控制的,因为那样必须要求单车时刻接通流量、并和服务器保持连接。从6-9秒的延时,恰好是短信投递的时间,我推测服务器是通过给自行车发短信(对,最传统的短信)开锁的。

给自行车发个短信就可以开锁,第一次听说哈!

下面咱们更加量化分析一下,究竟通过GSM+GPS的方式,跟踪一辆自行车,需要多少能量。(小白可以跳过这一节,直达下一个分割线)

首先,我们可以暂时不考虑GPS的功耗。这是因为,在摩拜的应用里,我们并不需要实时跟踪位置,只要一段时间更新一个点就可以了(有点像观察美团外卖送餐员的位置)。这个更新时间可能长达30秒-1分钟。此外,当自行车已经锁住归还后,GPS的更新速度可以进一步降低(例如10分钟更新一次)。而目前采用AGPS技术,锁定时间可以控制在2秒之内,因此GPS绝大部分时间都在休眠,平均功耗很低。

那么GSM模块的功耗如何?首先,看看马云爸爸家里的东西。

tracker-taobao tracker-taobao2

可以看到,这款纯基站定位(图中说用GPS是虚假宣传)的小东西,单节锂电池驱动,正常工作的平均电流大约在400mAh / 48h = 8.3mA。

再看看这款再SparkFun上的GSM/GPRS模块:

sparkfun sparkfun2

可见,其正常工作的平均功耗是7mA。这是纯模块,不含外围电路。

事实上,还有个大家更熟悉的估计方法。一台Nokia板砖功能机,使用1020mAh的BL-5C电池,在几乎不操作的情况大约可以待机4-5天。这样也可以大致算出,手机待机的功耗大约在9mA。

综上所属,GSM模块待机的功耗大约是7-10mA。如果加上GPS模块的平均功耗,那么10mA是个比较合理的估计。这里还忽略了开锁的功耗,以及蜂鸣器响声的功耗,因为那些相对其它几项,是很低频率的,平摊下来功耗很小。

#### 10mA:这就是目前我们对摩拜单车总平均功耗的估计。

下面的问题就是,我们要装多大的电池呢?

lock

从摩拜锁机构的尺寸来看,并不能装下很大的电池(除非装车座管里)。事实上,咱们假设摩拜是土豪,装了满满的锂亚电池,足足有30000mAh。那么它可以工作多久?

30000mAh / 10mA = 3000h = 4个月

不给力呀!

咱们的自行车可是按照4年免维护设计的呀!看来纯靠电池是根本不行的。

出路只有一条:发电!(术语叫Energy Harvesting)

如果可以发电,那么电池的容量本身并不很关键。应该考虑的是,正常使用中,发电量是否大于用电量,即能量能否进出平衡。而电池本身,只是能量的缓冲区。更大的电池,可以让系统承受更不稳定的发电量(比如一辆自行车一周没人骑,也不会耗尽电池)。

鉴于全车并没有太阳能板(这是一个很好的选择,因为太阳能本身受地域影响,并且脏了不好维护),发电几乎肯定是靠车轮的转动,也就是下面这种高级货:

dynamo

这是一种装在自行车轮子轴承中的发电机,从数据看,在稳定骑行过程中,可以发出6V/3W的电能,即在6V下大约500mA的输出。考虑电池充电电路的损耗,估计在实际给自行车中的电池充电时,充电电流应该在250mA左右。

充放电比例是:250mA / 10mA = 25。即,系统只要有1/26的时间处于充电状态,就能达到能量进出平衡。换句话讲,每辆摩拜单车,平均每天至少要骑行约50分钟,才能达到能量平衡,从而可以持续工作下去。请注意,实际租用车子过程中,会有很多时间并不是平稳骑行、有效充电的时间,例如等红绿灯。因此,实际租用时间可能需要60分钟以上,才能达到平衡。

#### 60分钟:每辆摩拜单车平均每天至少租用这么久,才能保证能量平衡。

—————- 分割线 —————-

这可不是件容易事情!打开摩拜App看看你家门口那辆车是不是一天没动了?

摩拜团队必须精确控制自行车部署的密度和位置。密度低了体验差,导致用户积累慢。密度高了,单个车的平均每天使用时间低于1小时,则无法达到能量平衡,最终导致车辆维护成本飙升。

因此,摩拜必须对自己的用户需求量、分布等进行精确的分析,才能达到最优的用户体验和增长速度,以及让自行车队持久免维护。我想这就是这个项目最核心的技术吧!

(以上数字纯评经验和公开材料,误差正负50%都是合理的)

 

 

为什么幻腾PIXEL系列墙面开关采用火零接线?

如果你曾经关注过遥控墙面开关或智能墙面开关,那么第一个可能让你搞不清楚的概念就是“单火”和“火零”接法(为了和“单火”押韵,也常将后者称为“零火”)。我试着用简单的概念讲述两者的区别,以及为什么火零接法可以避免安全隐患。阅读本文,需要你回忆一下初中物理知识。

PIXEL Classic什么是火线和零线,灯为什么会亮?

两孔的电源插座里的两根线,就是火线和零线。左边是零线,不带电,人摸到也没有大问题;右边是火线,带电的,不小心摸到了就呵呵了。(不要尝试摸零线,因为有些喝醉了的电工有可能把你家电路火零完全接反了。)

当用电器同时接入火线和零线时,就会形成电流,用电器才能正常工作。图中是一个简单的开关、灯泡的电路。当开关断开时,灯泡实际只连接了一条线,没有电流,灯不会亮;当开关闭合时,电流流过灯泡,电灯发光。

普通开关

什么是智能开关的单火、火零接法?

正如上面的图所示,一个传统的开关,利用弹簧和机械结构控制火线的通断,一进一出两根线实际都是火线,这种接法就是“单火接法”。

对于遥控或智能开关,内部有一套精密的控制电路,取代了手动操作的机械结构,来控制线路的通断。但无论开关是通是断,这套控制电路本身都需要电源,以保证持续不断的工作。

如何给控制电路供电?最直接的方法:给它接上电源——火线和零线。既然火线已经接到开关里了,那么只要再接上零线,就万事大吉了。这种接法就是火零接法。

2
火零电子开关共接3根线:火线进,火线出,零线。

但是问题来了。火零接法需要多接一根线,没法兼容传统的机械开关。为了兼容,人们设计出了一种“单火取电”的方式,使得只接进、出两根火线,还能保持控制电路持续工作。兼容性好了,但更多问题随之而来。

6
单火电子开关和传统开关接法相同,只需2根线:火线进、火线出

 

为什么说单火接法的智能开关可能有安全隐患?

预备知识点1:电路消耗的电功率,是电路两端的电压和流过它的电流的乘积。

预备知识点2:串联电路中,各处的电流是相等的。(想象水流,一条河,只要没有枝杈,上下游各处单位时间流过的水量一定一样多。)

单火开关只接进、出火线,不接零线,怎么能保证控制电路持续工作呢?分两种情况:

开关闭合导通时,相同的电流同时流过开关和灯具,假设电流是0.1A。这时,开关“劫持”一部分电压,比如10V,留给灯具的电压剩下220-10=210V。对灯具来讲,电压并没有降低太多,仍然能正常工作;对开关来讲,这救命的10V带给它的电能就是10V×0.1A=1W,足够其控制电路工作。

开关断开时,理应没有电流通过灯具。这时,开关偷偷漏过微弱的电流流经灯具,例如0.0001A,即0.1mA. 如此微弱的电流,灯不能点亮,大部分的电压分在开关两端,接近220V。因此开关的耗能是220V×0.0001A=0.022W,虽然很小,也能勉强维持生计。

3
单火开关导通时(左图),开关上分得部分电压,驱动控制电路;断开时(右图),灯具流过微小的漏电流

综上所述,单火开关求生的秘诀就是:通路时克扣小额电压“收买路钱”,断路时漏过微弱电流“收受贿赂”。那么单火开关的“问题”也就比较明确了:无论通断,都不彻底。

实际应用中,断路时漏电流带来的问题更加严重。举两个例子:

1. 节能灯关灯时闪烁:

假设连接的灯具是功率较小的节能灯或LED灯具。这类灯具的驱动电路初级通常带有一个大电容,用于将交流电转为平滑的直流电。关灯时,如果开关漏过微小电流,就会给这个电容充电。电容电压逐渐升高,一旦达到后续电路启动的电压,就会瞬间将储存的能量释放到后续电路,灯具就会闪一下,然后电容重新充电,准备下一次闪灯。

灯具功率越小,点亮后续电路需要的能量越少,灯闪的就越明显,越频繁。因此,单火开关通常要求灯具功率必须够大,闪烁才不明显,不会察觉。

2. 触电危险:

如果灯具坏了需要更换,这时老灯具卸下来,线路完全断了,漏电流没处漏,单火开关就不工作了。不过这时如果你装新灯时恰好碰到了电极,那么呵呵,你的身体就提供了漏电流的通道。你就可以体验麻酥酥的快感了。

更危险的是,单火开关里面也有个大电容,刚刚开始工作时需要比较大的漏电流,尽快给它充电。这时的电流远远大于了人体能承受的安全值。

5
即使单火电子开关处于关闭状态,损坏或断路的灯具两端,仍有触电危险。

 

事实上,根据墙面开关的国家标准:GB 16915.1-2014中,表15对于断开时绝缘性的要求,在2000V或1250V电压下,仍应该保证至少2兆欧的绝缘电阻。市面上大多数单火智能开关,根本无法在断开时承受如此的高压,更无从完成这个测试。

电器强度截图
摘自墙面开关的通用国家标准GB 16915.1-2014,表15

火零接法解决了这些问题吗?

是的。虽然以技术的发展速度,我们不能说火零是唯一的解法,但它是目前最靠谱的一种解法。

当开关闭合时,灯具与控制电路并联,两者的供电是彼此独立互不影响的。当开关断开时,控制电路需要的微弱电流直接流经火线和零线,不流经灯具。灯具完全与火线断开。

4
控制电路与灯具独立。闭合时,灯具完全供电;断开时,灯具完全断路,不管灯具是否安装,是否损坏。

只剩最后一个问题,控制部分一直工作,会不会太费电?如果你真的担心费电,建议你夏天把空调调高一度,冬天把暖气降低一度。因为空调少启动1小时,足够一个智能开关工作半年。

 

 

Stick’N’Press诞生志

2013年末,在幻腾推出一套产品之际,我写了这样两篇文字,介绍了我心里的Nova和Stick'N'Press。近日,应公司同事的要求,把这两篇文字找出来。不求完整的介绍两款产品(毕竟两款产品都已有了相应的升级),但求让大家了解两款产品的设计初衷。

SNP随心开关

在你需要的地方等着你

Stick’N’Press随心开关正如其名字所述的一样——随贴随按,完全无线。你可以在家里任何地方安装随心开关以控制Nova灯,不用开墙布线,不用请装修工人。你可以坐在客厅的沙发上,用贴在茶几上的随心开关调节客厅的灯光;可以躺在床上,用贴在床头的随心开关调节卧室或洗手间的灯光;可以在刚刚打开家门时,用门口的随心开关打开卧室的灯光,或在离开时关闭所有的灯光。当然,我们也建议在你已经按了十多年的传统墙面开关旁边贴一个随心开关,这样,享受全新生活方式的同时,你不需要改变养成已久的使用习惯。

不是遥控器,胜似遥控器

说到遥控器,人们会想到电视遥控器、空调遥控器,它们都有很多按钮,一个遥控器控制一个电器,会被丢在沙发上、餐桌上、床上等任何角落了。而Stick’N’Press随心开关虽然可以控制Nova灯,但从其它各个意义上来说,都不像遥控器。

电视节目快要开始了,却怎么也找不到电视遥控器,你是否有过这样的经历?Stick’N’Press随心开关被设计成贴在人们最经常驻足的各个地方,固定不动。一旦养成习惯,即使漆黑的深夜也能毫不费力地使用。

Nova灯有着复杂多变的情景模式,而随心开关却有着简单至极的用户界面:一个轻触按钮,以及简单至极的操作方式:按一下。通过幻腾智能手机APP,你可以配置随心开关的功能:开灯,关灯,或切换情景模式。配置过程全部通过手机和云端完成,一旦配置完成,即使是玩不转手机的爷爷奶奶们,也可以轻松使用。

一个电视遥控器智能控制一台电视,而每一个随心开关都可以控制家中任意的Nova灯,每一个Nova灯都可以被任意的随心开关控制。随心开关和Nova灯的配对关系同样可以通过幻腾智能手机APP进行设置。

魔法源于精心设计

得益于幻腾智能无线网络对于低功耗设备的支持,随心开关的待机功耗仅为3微安,这使得一节内置的纽扣电池可以支持其约5年或150,000次操作的电力。在如此低的耗电量下,随心开关仍能和网络中的所有节点进行双向通讯,从而随时接收和更新配置。

随心开关对Nova灯的控制基于幻腾智能无线网络,而不依赖于互联网和云端。因此,一旦配置正常,即使家里的网络出现不可预期的中断,也不影响随心开关的使用。

我们为随心开关设计了最纤薄的身躯,以便其轻便地贴在任何表面都不显厚重。63mm边长的方形表面与普通墙面开关大小相仿,大小和力度都恰好适合一只手三指并排按压,符合人体工学原理。

Nova诞生志

2013年末,在幻腾推出一套产品之际,我写了这样两篇文字,介绍了我心里的Nova和Stick'N'Press。近日,应公司同事的要求,把这两篇文字找出来。不求完整的介绍两款产品(毕竟两款产品都已有了相应的升级),但求让大家了解两款产品的设计初衷。

Nova2

新星的诞生

Nova,在天文学中意为新星,是最亮的星体之一。Nova灯,正取了新星的“新”和“亮”这两重含义。在幻腾智能的照明系统中,Nova是第一个研发成功并投入生产的,也是首批投入市场的产品,更是笔者接到写产品介绍的任务后,第一个开始写的产品。

爱迪生改进发明白炽灯已有2个世纪的历史。这200年间,人们常用的照明光源由延续百年至今的钨丝白炽灯,到传统镇流器驱动的荧光灯,到电子镇流器驱动的荧光灯,到反激恒流源驱动的发光二极管(LED)灯。技术在进步,而人们使用灯光的习惯却没有改变——开关咔嗒一响,切换白昼和黑夜。

在这日复一日的咔嗒声中,你是否曾期待灯光不是生硬的来去,而是柔和的变化;期待开关不只在那个固定的位置,而是在你需要的地方等你;期待睡前不必离开被窝关灯,再摸黑上床;期待晚上起夜不被刺眼的灯光晃得睡意全无;期待独自努力工作时有清晨般明亮干净的灯光,而陪爱人共进晚餐时有烛光般浪漫柔和的灯光……Nova在这些期待中诞生了。

柔性的灯光

从外观来看,Nova是一颗有着铝质散热外壳的螺口灯泡。E27螺口(最常见的大螺口)意味着Nova可以兼容最常见的传统灯具。作为用户,你不需要对家里原来的灯具做任何工程改动。那么更换一个Nova灯需要几个人?答曰:全家人。一人更换灯泡,而全家人没有人愿意错过这个时刻。(换灯泡笑话)

Nova是一颗LED灯,这意味着它继承了所有LED灯的先天优势——节能。虽然能耗只有5W左右,但Nova的最大亮度相当于一枚60W的传统钨丝白炽灯,或者一个中等大小的紧凑型荧光灯(节能灯)。和其它LED灯的生硬灯光不同的是,Nova的灯光亮度和光线的冷暖都可以调节。可以说,Nova的灯光是“柔性”的,可以根据人们对环境的需要而改变。

如何改变Nova的光线呢?这依赖于Nova内置的幻腾无线网络功能。您可以通过幻腾Stick’N’Press随心开关,在家中各处控制Nova的灯光;也可以通过幻腾智能手机APP在全世界任何可以访问互联网的地方控制家中的Nova。

清晨,Nova可以在闹钟响起前,通过一束柔和的暖色光线将您从深度睡眠中唤醒。白天的时光,Nova以明亮的正白光线伴您工作,令您精力充沛。傍晚,Nova以烛光般的暖色陪伴您和爱人共进晚餐。睡前,您不必下床,就可以通过手机或Stick’N’Press随心开关关灯。深夜起床,将Nova开到夜间亮度,既不会打消您的睡意,也不会影响爱人和孩子。

Nova给人们带来的全新可能性,完全由Nova内部的微处理器进行全数字控制。而你无需对原有的灯具做任何改造,就能开始享受这样的柔性灯光。

魔法源于精心设计

Nova简洁的外表下面,是幻腾开发人员的精心设计。我们通过调节通过LED的平均电流来达到对发光亮度的精确调节。为了适应人眼对于亮度的感知特点,我们特意为Nova的亮度调节设计了指数调光曲线。我们将正白色和暖白色的高质量5730 LED光源并排放在一起,并分别控制平均电流,从而达到了对于光线色温的调节。有趣的是,苹果iPhone 5S的闪光灯也使用了和Nova类似的色温调节技术。

就像每颗新星内部都在进行炽热的核聚变反应,每颗Nova灯内,都有一个强大的核心——一颗32位微处理器。如果倒退20年,这颗微处理器的性能可以秒杀任何一台个人计算机。处理器精确控制两路LED的电流,精度达到5600级,远远超过人眼可以感知的级别。

Nova灯内部的2.4G无线通讯芯片,和所有其他幻腾智能产品共同构建了一个无线网络。不必担心无线的辐射,因为它实际辐射的能量比WIFI网络还小,是手机通话的1/20一下。顺便说一句,担心WIFI的辐射也是没有必要的。由于无线信号的衰减和距离的平方成正比,离开无线路由器1m远,其信号强度就和空中无处不在的其它信号(比如收音机)不相上下了。

Nova灯由其中的一颗高效直流电源提供电力。直流电源一方面为处理器逻辑电路提供稳定的直流电,另一方面也保证了LED发光的稳定无闪烁。每一颗Nova灯在出厂前,都要经过高温老化测试,保证其工作稳定。为了延长LED灯珠的寿命,我们在每颗Nova内实际安装了可达6W的LED元件,却让它们只工作到极限的85%。对灯珠好一点,它们就会亮得持久很多。

所有的魔法,都被隐藏在LED光源之下的导热灌封胶中,露出表面的只有一小截白色天线,以及Nova带来的无限可能。