blockly实现通过按键控制led灯的开关

介绍 Blockly是Google在2012年发布了一种完全可视化的编程语言,类似MIT的儿童编程语言Scratch, 你可以通过类似玩乐高玩具的方式用一块块图形对象构建出应用程序。每个图形对象都是代码块,你可以将它们拼接起来,创造出简单功能,然后将一个个简单功能 组合起来,构建出一个程序。整个过程只需要鼠标的拖曳,不需要键盘敲击。 Blockly一种在网页上运行的图形化编程语言。使用者以拖拽拼图的方式开发出应用程序,不需要任何的代码编写。 近日,我们用Blockly实现了对连接到LinkSpriteIO云端的设备,进行远程编程,即用完全可视化的编程语言来对物联网中的设备进行编程,实现我们想要的一些功能。 下面我们将用LinkNode D1作为节点设备,然后连接到LinkSpriteIO的IoT云上。Blockly Editor会从LinkSpriteIO上获取节点设备的按键状态,并可以控制节点设备上的LED灯。 通过这样一个实例,详细介绍Blockly如何编程,如何实现对LinkSpriteIO上的设备进行编程。 在LinkSpriteIO上创建设备 登陆账号,进入设备列表页面 点击右上角的Create DIY Device按钮,进入创建设备 选择Device Type为”00″(Custom device type)自定义设备 输入Device Name和Group Name,记住设备名称 设备创建成功后,创建“switch”(按键)和“light”(灯)两个字段(控制和判断状态) 设备创建成功,点击右上角的Blockly,进入blockly编程模块 在Blockly中设定要编程的设备 点击右上角“Web Demo area”选择Web和blockly交换页面 将Choose切换到LinkspriteIO就可以获取到当前所有的设备列表 注意:对于设备列表LinkSpriteIO–> LED的控制,对应于LinkSpriteIO的LED设备; 而Web Demo–>Click Buttion–>light相关的控制模块,对应于上图的图片中的灯泡。通过编程可以实现对图片的灯泡以及实际的LED设备进行编程。 通过Group和Device Name选择要编程的设备,就可以将当前的blockly切换到当前设备下,此时就可以对设备进行编程了 Blockly图像化编程 根据下图,从左侧栏中拖出各种模块,进行编程 程序解读:当服务器链接成功后,将led变量设置成LED属性,将button设置成Button属性。每隔1s去查询一次button的值,当状态为on时,将led灯设为on,否则将led灯设为off。即用button去控制LED的开关,当然还可以添加其他的逻辑实现想要的功能。 blockly编程完成后,就可以点击右上角的运行按钮,运行编写的程序 验证编程的结果 在刚才创建的设备上, 输入参数名switch,数值为0或1,然后点击Set来输入参数,查看light的状态。是否跟着switch的状态一起变化? 解说各个模块 【链接】“LinkspriteIO” 【作用】与服务器建立链接 【链接】“LinkspriteIO”->”Led” 【作用】获取Led灯 【链接】“LinkspriteIO”->”Button” 【作用】获取按钮 【链接】“LinkspriteIO”->”Led” 【作用】设置Led的状态,on/off(开/关) 【链接】“LinkspriteIO”->”Led” 【作用】当Led状态为on/off时,执行的流程 【注意】因为此处为紧接着led状态改变后执行的操作,所以此处不能执行死循环或耗时操作,否则程序将进入假死状态[…]

如何用OpenCV和Python实践卷积

前言 换一个角度来看的话,图像其实就是一个多维矩阵。不过跟你在学校里学到的传统矩阵不一样的是,图像还有深度,即图像中的通道数。一个标准的RGB图像有3个深度,分别为红、绿、蓝3个通道。 有了上述认识后,我们就不难理解模糊、锐化、边缘检测等这些基本的图像处理,其实就是图像这个大矩阵和一个小矩阵(内核)卷积的结果这一事实了。这个小矩阵或者说是内核从原始图像左上角开始,从左到右、从上到下依次滑过图像的每一个像素点,在每个像素点处都要进行卷积运算。 通常,我们会手动定义内核,这样我们可以获得各种自己想要的图像处理函数。你可能已经很熟悉模糊(平均平滑,高斯平滑,中值滤波等)、边缘检测(拉普拉斯,Sobel,,Scharr,Prewitt等)、以及锐化操作了,其实这些操作都是通过手动定义内核来实现的。 所以问题来了,有什么办法能自主学习这些各式各样的滤波器吗?能将这些滤波器用于图像分类和目标检测吗? 答案是肯定的。 但是在那之前,我们需要先了解一点内核和卷积的知识。 内核 让我们再次想象一下,原始图像是一个大矩阵,而内核是一个很小的矩阵(相对于原始图像): 如上图所示,我们沿着原始图像,让内核从左到右、从上到下滑动。 在原始图像的每个(X,Y)坐标像素点处,内核中心点与该像素点重合,原始图像(X,Y)坐标周围与内核重合的像素点区域,与内核区域做卷积运算,得到一个输出值。这个输出值将被存储在输出图像中的(X,Y)坐标处。 如果你觉得这听起来有点乱,不用担心,稍后我将会举一个浅显易懂的例子,但在此之前,让我们先来看看什么是内核: 上面我们定义了一个3×3的内核(猜猜这个内核可以用来做什么?) 内核可以是M×N的任意大小,但M和N必须是奇整数。 注意:很多常见的内核都是N×N大小的方形矩阵。 我们使用奇数尺寸的内核,是为了保证在图像的中心,(X,Y)坐标是有效的: 上图中左边是一个3×3的矩阵。若矩阵的左上角为原点,且坐标是零索引的,那么,很显然,矩阵的中心位于(1,1)坐标处。而右边的2×2矩阵,其中心位于(0.5,0.5)处。但是,如我们所知,除非使用插值,否则不可能出现(0.5,0.5)这样的像素坐标,也就是说,我们的像素坐标必须是整数!这也就是为什么我们必须用奇数的内核尺寸的原因。 卷积 现在,我们已经基本了解了什么是内核,再来看看卷积吧。 在图像处理中,卷积需要三个元素: 一幅输入图像 一个内核矩阵(将与输入图像做卷积) 一幅输出图像(用于存储输入图像与内核卷积的结果) 卷积其实非常的简单。我们只需要: 从原始图像中选取一个(X,Y)坐标 将内核的中心点放到(X,Y)坐标处 输入图像中与内核重叠区域,与内核逐元素相乘,然后将这些乘法运算的值累加得到一个单一的值。这些乘积的总和称为内核输出 将步骤3获得的结果存储在输出图像中,存储位置与步骤1中的(X,Y)坐标相同 下面是一个卷积的例子,用之前定义的3 x 3大小内核对一幅图像的3 x 3区域进行模糊处理: 因此: 卷积之后,我们把输出结果 Oi,j = 126 存储到输出图像的(i,j)坐标处。 这一切就是这么简单! 卷积其实就是内核与输入图像中内核覆盖区域之间逐像素的乘积和。 用OpenCV和Python实践卷积 之前我们已经做了有关内核和卷积的有趣讨论。现在让我们去看一些代码,来了解一下内核和卷积是怎样被实现的。这些源代码也会对你了解卷积如何应用于图像处理有所帮助。 首先,打开一个新文件,将其命名为convolutions.py,写入以下内容: 第2-5行导入一些必要的Python包。你的系统上应该已经安装了NumPy和OpenCV,但你可能没有安装scikit-image。只需用pip就可完成安装: ? 1 $ pip install -U scikit-image 接下来,我们就可以定义卷积了 卷积函数convolve有两个输入参数:灰度图像image和内核kernel。 在第10和11行,分别获取了image和kernel的尺寸(宽和高)。 在继续之前,理解内核kernel滑动经过原始图像image的每一个像素点,逐点进行卷积运算,并将卷积结果存储到一幅输出图像相应位置的这一过程是很重要的。 为什么呢?[…]

人脸识别系统准确性有赖于训练库中的种族偏向

        前言:现有证据表明,人脸比对系统并非对所有种族都有相同的比对准确性。        从目前我们所得知的情况来看,美国联邦调查局(FBI)和警察使用的面部识别系统可能存在种族偏差。这是该系统在设计和训练时采用不全面的数据库长期积累的结果,并非刻意所为。但它无疑会带来一定的问题,执法机构在刑事调查中对这类工具的依赖性越来越大,很大程度上增加了错判的风险。         执法部门并没有就他们如何使用人脸识别系统提供过多的细节,但在6月份,政府问责局发布的一份报告显示,FBI并没有对其所用系统的准确性进行严格测试,也没有将那些海量的国家人脸比对数据库资源包含进训练库。         目前美国最先进的人脸比对系统,对面部图像数据库中数据,能达到95%的准确性。这些照片都是在可控环境下,以普通大众为对象拍摄的。在不太理想的环境下(如不良照明、抓拍的怪异姿势和面部表情)拍摄的图像均可能会导致比对错误。         密歇根州立大学的生物识别技术研究小组负责人Anil Jain称,人脸识别系统的不完善的训练方法也会导致其出现比对偏差。为了让系统完成人脸比对,人脸比对系统必须首先学会人脸识别,这借助于一个训练数据集,集中的一组图像从不同的角度告诉软件人脸是什么样的。如果训练集中缺少某一性别、某一年龄段或某一种族的典型数据,必将影响系统对该种群的比对准确性。         2012年,Jain和几个同事用佛罗里达州皮内拉斯县警署的一组嫌疑犯照片来检测几种市售人脸识别系统,这其中包括执法机构的供应商的一套系统。这些系统在对女性、非裔美国人和年轻人等几类群体的面部进行比对时,结果均不太准确。Jain称,显然,这些系统对上述几类群体的代表性数据训练做得还不够。         “如果数据集中某一种族的人脸数据量比较大,则算法在识别该种族人脸方面会做得好一些,”得克萨斯大学达拉斯分校面部知觉研究实验室的负责人Alice O’Toole说。2011年,O’Toole和几个同事发现,西方国家的人脸识别算法在识别白人面孔方面的性能比东亚人面孔要好。同样的,东亚国家的算法在识别东亚人面孔方面比白人面孔要好。         自此以后的几年里,市售系统的准确性在众多领域内得到了显著改善,Jain称,人脸比对系统对不同性别、种族之间比对偏差应该是越来越小了。但可用的系统测试信息太少了,我们难以深入了解。比较新的人脸识别方法,如谷歌和Facebook开发的深度学习系统,如果没有完备的训练集,很可能会出现同样的问题。         Jonathon Phillips,美国国家标准与技术研究所的一位电子工程师,从事市售人脸识别系统的性能测试工作。他说,完全可以设计一个测试实验来评判人脸比对系统存在的种族偏差问题。事实上,信息安全专家均主张进行该种测试。         MorphoTrust,FBI面部识别系统的供应商,没有回答麻省理工大学科技评论(MIT Technology Review)的邮件提问,即他们是否对其系统在各种种族、性别和年龄群体下准确性做了测试。  […]

DeepMind的首个研究型医药项目将借助人工智能(AI)来诊断眼病

前言:谷歌的人工智能部DeepMind计划通过研究超过100万的眼球扫描数据,来帮助医生找出视力退化的早期迹象。   伦敦的Moorfields眼科医院每周要进行3000次光学相干断层扫描来诊断视力问题。这种扫描利用散射光来构造高分辨率的三维视网膜图像,这个过程中会产生大量数据。对这些数据进行分析是相当耗时的,这需要经过训练的、经验丰富的人眼来判别具体场景下的具体问题,这使得医生几乎没有时间去分析那些更具广泛意义的人眼病变走向,而这可以让早期诊断变得更容易。 上述问题只能通过人工智能来解决。因此,当谷歌的DeepMind决定和医院合作,将机器学习应用到眼病诊断中,并将此作为其健康工程的一部分时,并不奇怪。这个项目中,DeepMind的软件对超过100万的眼球扫描数据(包括光学相干断层扫描和传统的视网膜成像)进行了研究,以确定在眼病发作初期,眼睛会发生哪些变化。 最开始时DeepMind将重点放在:如何自动诊断因糖尿病和年龄相关性黄斑部退化而带来的视觉问题上。糖尿病患者是非糖尿病患者失明概率的25倍。在英国,年龄相关性黄斑部退化是失明的最常见原因。这两种情况中,早发现都有助于进行更有效的治疗。 由于这是一个全新的进程,并且是通过机器学习去判别那些人眼不易鉴别的数据形式,因此这项技术实现的一些具体细节我们还不甚清楚。尽管如此,DeepMind称其计划探寻视觉退化的早期迹象,以便医生提早介入治疗。 这是DeepMind实施的第一个纯粹研究型的健康工程。在早期与伦敦北部的Royal Free医院的合作中,DeepMind开发了一款称为Streams的智能手机APP,以监测肾脏病患者的健康状况。 然而,New Scientist的一份报告指出:该项目自主提交多达160万患者的记录到DeepMind,公众对此信息安全表示担忧。 为此Moorfields提供的眼球扫描数据将是匿名的。 DeepMind称,根据这些数据找出其中的一位患者是不可能做到的,且这项技术“只对今后的医药关怀有用,而不会对任何病人现在享受的医药关怀有影响。”Royal Free医院事件已经促使DeepMind这一次更加谨慎行事。 这不是深度学习在健康领域的首次尝试。例如,IBM的Watson超级计算机,目前正通过60万的医学证明材料、150万的病人病历和临床试验,来帮助医生为癌症患者制定更好的治疗方案。同时,U.K.-based startup Babylon正在开发一款软件,获取用户的症状并为用户提供一个治疗方案。 然而,对于这些存在更为普遍的问题,可能还需要很长的时间才能给出有效的解决方案。既然已经有了一个明确的目标,DeepMind应该能够扩展人工智能,使其可以检查那每周3000次的扫描,以帮助眼科医生在眼病发作初期做出诊断,避免造成严重的后果。让我们拭目以待。 图:视网膜扫描图像

不用去硅谷,LinkSprite带你去Maker Faire “走马观花”续集

小贴士: MakerFaire是美国Make杂志社举办的全世界最大的DIY聚会。它是一个展示创意、创新与创造的舞台,一个宣扬创客(Maker)文化的庆典,也是一个适合一家人同时参加的周末嘉年华。     小伙伴们,续集来袭,满满的都是激情啊!为期两天半的科技创新盛典,还未结束,就开始怀念了。 闲话不多说,直接进入直播现场:   别问大神都去哪了,Maker Faire等着你   这位大叔,您这车开出去,坦克都没您拉风,玩创意的就是不一样。 听说潜水艇都开来了,这可不是开玩笑 旋转的机翼,起飞的梦想,在Maker Faire玩无人机,就是这么酷! 这个牛掰哄哄的大家伙,看起来有点不一样啊。 直接现场制作,织布的机器人。只有你想不到,没有我们做不到。 会做早餐的机器人。参展的小伙伴们,是不是饿了?别担心,早餐已经做好了。 玩转Maker Faire,创意项目不能停 在google的booth里面发现我们的RS485 shield,求围观 SparkFun的传感器套件,围观的小家伙不少哦 Cool,今天的机械臂不少啊,以后大事小事都有好帮手了。 机甲超人来袭,代表舵机消灭你 传感器的世界你不懂 Arduiboy的展示 创意无界限,娃娃也疯狂。     展会已结束,我们的报导还会继续,敬请期待最后的重磅炸弹。。。。。。。  

不用去硅谷,LinkSprite带你去Maker Faire “走马观花”

    小贴士: MakerFaire是美国Make杂志社举办的全世界最大的DIY聚会。它是一个展示创意、创新与创造的舞台,一个宣扬创客(Maker)文化的庆典,也是一个适合一家人同时参加的周末嘉年华。   2016年5月,MakerFaire再次席卷世界各地的创客圈,来自世界各国的创客们再次齐聚一堂,共襄盛会。你是否还在为无法亲临现场而遗憾吗,是否还在担心无法获得盛会最新资料?今天LinkSprite带你现场直播Maker Faire,先来个小短播,各位看官速来围观 先来看看我们的小伙伴在Maker Faire 嘿,Hello Kitty戴上我们的Pet Kollar(智能宠物项圈)也是毫无违和感的 外国友人的热情挡不住啊,小伙伴们这是收钱收到手抽筋吗,你们目光的驻足,就是我们拼搏的动力。 智能硬件大云集 Marvell的开源项目kinoma 树莓派在这里 Arduino也没有缺席哦 高通96board 3D打印 3D打印火爆中 非常牛的3D打印公司ultimaker 各路英雄汇聚 别惊讶,右手第二个就是我们的 这是在瞅谁呢   Arrow也来了 被Intel收购后的Altera Mcm也来了 Pebble也亮相了 Matlab的人脸识别,可以体验一下   今天来个小预热,明天精彩继续,各位看官别走远了。。。。。。。。