按理说‘高大上’的FPGA,多出如今航天航空(如火星探测器)、通讯(如基站、数据中心)、测试测量等高端应用场景。但麦迪却也发现,近期,在不少创客的做品内部都有FPGA的影子。这或许也从侧面看出,打从总理先生的“双创”态度以来,开发者们踊跃的态度,创客们的智能硬件做品已经再也不是小打小闹,更多的向尖端技术靠拢,也更贴近产业化应用。前端
但毕竟,FPGA在开发者心目中有着‘开发入门难’、‘贵’等等初印象,对于FPGA在创客做品中的开发与应用,麦迪想从两个角度和你们探讨:“什么时候考虑在本身的设计中应用FPGA?”、“如何能用好FPGA?”算法
别看这两个问题简单,要想在天马行空的创客做品中造成具体的答案却也是极为不易的。因此麦迪也特别邀请到了赛灵思(赛灵思公司是FPGA的发明者,)全球高级副总裁汤立人先生陪着咱们一块儿寻找答案。这位华裔高级副总裁是技术出身,在赛灵思工做了20余年,身怀好几个相关领域专利,因此他的看法绝对有权威性。固然这位高级副总裁也没空手来,还带来了十几款在创客活动上被围观的FPGA基因的做品,但愿借由实例多给你们些许启发。编程
关注1:什么时候考虑在本身的设计中应用FPGA?后端
对于第一个问题,汤立人先生认为:首先FPGA在算法处理、计算性能和功耗方面有软件和其它硬件不具有的能力。目前看来FPGA或者说赛灵思当前所侧重的全可编程(All Programmable)器件,在最前沿技术领域的应用集中在如下几类:数据融合和图像处理;控制和分析一体化人机界面;加密/安全/实时控制;从传感器/机器到互联网的无缝链接等方面。通俗来讲能够应用在可视化、智能分析、感知和反应等过程当中。安全
应用场景则主要集中在:视频/视觉(8K显示;无人机;沉浸式显示);ADAS(环视系统;自主泊车;半自动化驾驶);5G无线(海量MIMO;云RAN);工业物联网(智能电网;电机控制;M2M)等方面。服务器
“就ADAS为例,”汤立人先生解释道:“目前全球范围内参与ADAS或无人驾驶的项目中,大多都采用了全可编程FPGA进行摄像头前端的视频实时数据处理和控制。目前看来,ADAS摄像头对高速环境、高像素、行人侦测追踪、等方面有较高要求,若是有传输延迟可能形成重大交通事故。因此将FPGA放在摄像头端能够快速实时进行视频处理直接对车辆或者驾驶员发布控制信号,无需对获取的信息进行二次分析和处理,因此大大减小了传输延迟问题,同时减轻了后端处理资源消耗。”网络
对于创客们参与的开发,也有相似的应用场景。目前看来主要集中在机器视觉、智能机器人、虚拟现实、机器控制、运动控制等方面。其中尤以视频和视觉(Video/Vision)处理居多。架构
图:赛灵思全球高级副总裁汤立人先生在创客活动现场。ide
6款FPGA典型创客实例模块化
话很少说,先看两款机器视觉的应用案例:
1.智能交互机器人
小巧可爱、能与人互动的“Nao”机器人具有有必定水平的人工智能,可以与人亲切的互动。其使用基于Zynq Z7010的NI myRIO,实时控制Nao的走动,同时借助基于Spartan-6 FPGA的处理能力,帮助机器人实现智能立体视觉。使用NAO SDK for NI LabVIEW便可快速地编写机器人应用程序,将它打形成一个物联网的人机交互入口。
2.智能人脸识别摄像头
人脸检测、识别以及跟踪能够说是应用最普遍的一种视频分析应用。传统的解决方案一般是将视频回传到后台或上传到云端,利用后台服务器的强大性能对视频进行分析和处理。而基于Zynq的智能摄像头方案,能够提供最小体积功耗的人脸识别解决方案,直接嵌入摄像头内部完成相应处理,大大节约了处理时间,节省了服务器的处理资源。这是一个来自瑞为技术的智能摄像头解决方案。ZynqSoC在这个应用中完成了视频图像的预处理以及基于DNN(深度神经网络)算法的智能人脸检测识别,ZynqSoC的架构辅以高度优化的人工智能算法使得这个解决方案的性价比很高。这样一个高度集成的智能摄像头能够实时处理720p高清,30帧/秒的视频,同时能够最多识别32张人脸。
麦迪观察:不少时候机器视觉是和机器控制配合使用,开发者能够选择独立的FPGA芯片,但创客们更适合采用带有FPGA的第三方开发板,或是直接使用带有FPGA内核的单芯片(SoC)进行开发。采用诸如ZynqSoC(ARM+FPGA异构单芯片)进行开发,能有较好的体积和功耗优点。
下面是两款视频方面的典型案例:
3. 3D头戴显示设备(来自某知名品牌)
这是一款为3D而生的头戴式观影设备。内置5.5寸2K屏幕,虚拟屏幕能够达到15米远,1000英寸大小的效果。支持800度近视调节,单眼清晰度高达280x1440。在这一案例中,赛灵思的ZYNQ器件主要用来实现高清图像的视频旋转、缩放、畸变矫正、色差补偿等功能。
4. CarmVision-智能电子显微镜
该智能电子显微镜经过图像采集,处理,可完成高分辨率的图像显示,测量和细节检查。其中,ZynqSoC因为其内部拥有双核的Cortex A9处理器,在完成复杂的图像处理之余,还能完成操做界面(UI),菜单等操做系统的工做。
麦迪观察:因为FPGA应用于视频领域已比较成熟,不少视频应用案例都是来自于已商用的展现。不一样于原型开发,这类商用产品中多选择像ZynqSoC(ARM+FPGA的SoC),受访人表示,这对于提升产品集成度,实现快速上市会有很大助益。
再来看两款年轻创客的FPGA做品,主要用在运动控制
5. 爬墙机器人
东南大学学生这次展现的爬墙机器人是在开源硬件大赛中产生的优秀获奖做品,这一项目为下降高空做业的潜在危险提供了方案。这次展现的爬墙机器人可以在墙壁上吸附和移动,而且可以改变方向,实现墙面二维运动。该设计采用Artix-35T FPGA具有丰富的I/O接口及硬件逻辑资源,能够完成十个以上的步进电机控制,实现了本设计的完整解决方案。
6. Ancient Wall – E
机器人瓦力现身,这个机器人演示是东南大学学生利用Basys3开发板的做品。机械手经过读取人手佩戴的传感器信息,实时操控机械手臂,完成模仿人手的某些动做。它实现了远程对机器人机械臂的体感控制,也可用于按固定程序抓取、搬运物件或操做工具。在工业生产中可用于在危险环境下工做,提升人的安全性。其基于赛灵思Artix-7 FPGA完成,Artix-7在IO数量、外设接口方面的优点使得单芯片能够同时支持16路电机的控制,快速精准地完成对机械手臂的控制。
麦迪观察:据上述两个方案的设计者表述,采用FPGA进行机器控制的主要优点在于其拥有丰富I/O口,能够实现多路并行控制,通常串口难以实现。这也极大丰富了他们设计的可拓展性。例如在爬墙机器人设计中,机器人能够控制‘脚’位移,同时控制机械臂执行诸如擦玻璃的操做。虽然这些学生做品看上去还有些简单甚至是简陋,但也欣喜的看到FPGA的开发应用已经真实走进了校园,将来的创客们已经借助于FPGA的平台将他们的想法展示在了众人面前。
关注2:如何能用好FPGA?
这个问题和FPGA开发难度相关。
通常咱们会认为创客可能缺少软硬件基础,作相关开发会有难度。但没想到,对这个顾虑,汤立人先生反倒给出出人意料的答案,“我我的更看好创客的技术实力。不少创客来自初创型公司或彻底是一我的,在这些公司中,我的的开发能力和项目控制能力每每更强,通常软件或硬件都会懂一些,会很适合FPGA的编程。固然更重要的是,对于赛灵思而言,目前全面推出的全可编程(All Programmable)器件,就更进一步下降了硬件编程的难度。由于其全部编程环境(例如全新的SDSoC开发环境)都是基于C语言的环境,能完成‘软件定义硬件’‘软件定义系统’的开发。这样作的好处是打破了原先只有少数硬件工程师才能使用FPGA的门槛。不少创客工程师是软件工程师,懂C语言,就能进行编程开发。这点从好多大学生利用咱们的器件进行开发就能够看到,他们不少并无FPGA的相关开发经验。”
汤立人进一步表示,“从大环境来看,软件定义会是趋势,几乎如今每一个系统都在呼唤可编程,从可编程的数据中心,到可编程的智能汽车开发。因此为了方便来自各领域的开发者使用,赛灵思在工具和开发环境方面花了很大的精力完善,把编程开发门槛降到最低。固然硬件方面,为了方便开发者使用,咱们也和许多具体的参考板设计公司合做,开发适合各领域应用的具体板子给到你们,咱们有一面开发板墙(下图),上面有不少合做方的开发板,入门的开发者能够经过这些板子或合做方获得技术支持。”
图:来自Xilinx和其合做伙伴的开发板墙。
最后,汤总也开玩笑地对麦迪说:“你在大学里学过C语言,也能来试试。”(对此,麦迪表示压力仍大。)
附:全部其余9个基于FPGA的创客实例展现
因为当天带的实例太多,麦迪就很少一一解释了,毫无保留的列在下面,想看实例的小伙伴们请随意吧。
7.极米(Gimi)微型投影仪
看电视不须要屏幕了!这款极米微型投影仪做为便携式投影系统,不但具有传统投影仪的投影功能,其自己仍是一部轻便的家庭影院系统,有上万种片源可供选择观看。
赛灵思Spartan-6系列FPGA在整个系统中主要完成接口扩展,系统外设整合及视频校订的功能。借助可编程逻辑的特性,完美地支持了产品的高集成度及快速上市周期。
8.智能象棋对弈机器人
本演示利用Basler相机进行图像采集,并基于Compact RIO、NI SoftMotion、NI Vision等平台进行图像分析处理,能够完成象棋识别、抓取和移动,并结合智能象棋算法实现自动布局、人机对战等功能。
基于Xilinx Kintex-7 FPGA 的NI Compact RIO平台实现机器视觉和运动控制,完成对棋子的抓取和移动功能。
应用领域:机器视觉和运动控制能够应用于工程领域的各行各业,好比机械制造、医药医疗、电子电气、自动测量等等。
9.高清无线图形传输模块
实现高清图像的远距离(1~50千米)双向传输,同时能够提供数据传输通道,可普遍应用于无人机图传、宽带无线电台、广电视频中继等领域。
Zynq芯片中逻辑部分完成无线通讯的物理层调制解调信号处理功能,处理器部分实行MAC层协议和网络层协议。单芯片完成整个通讯系统功能。
利用Zynq单芯片代替传统通讯ASIC,实现动态调整通讯体制、频段、带宽的具有认知功能的智能无线通讯系统。
10.智能PAD 示波器
将电路信号的波形呈如今手机或者平板电脑上,用于智能硬件产品的调试,也能够应用于K12青少年课外科技活动的辅助工具。
Zynq芯片完成对高速数模转换器(ADC)的数据采集,分析和处理,而后利用其中的ARM处理器支持无线WiFi网络,与手机或平板电脑通讯。
利用Zynq单芯片代替传统的FPGA+ARM或DSP+ARM模式,产品体积减少为原来的50%,性能提高20%
11.魔方机器人
东南大学学生的优秀做品。系统经过彻底闭环的运动控制,识别魔方各个面的颜色实现魔方还原步骤的解算,并控制舵机精确还原魔方。
Artix-35T器件实现了图像采集、颜色识别及计算处理功能,同时提供多路PWM信号完成对舵机的驱动控制
12.智能工业相机
高度集成化的微小型机器视觉系统,将图像的采集、处理与通讯功能集成于单一相机内,从而提供了具备多功能、模块化、高可靠性、易于实现的机器视觉解决方案。
基于Zynq单芯片的工业相机方案,不只能够完成复杂的图像处理功能,还能同步实现运动控制、轨迹跟踪、总线通讯等功能,实现一体化机器视觉解决方案
应用领域:工业机器视觉产品普遍应用于运动控制、机器人控制、印刷设备、包装机械、自动分检、自动识别等多个领域。该公司产品不只包括工业相机,还提供视频分析以及相关的运动控制等一体化解决方案。
13.SDN软件定义网络阵列
借助Zynq芯片单板的堆叠阵列实现四个千兆端口的软件定义网络设备,可用于软件定义网络系统开发,以及定制化小型网络产品开发,可组合成专用可编程计算加速阵列。
Zynq芯片中逻辑部分实现软件定义网络系统的OpenFlow数据面,ARM处理器部分实现软件定义网络系统的控制面。单芯片实现一个完整的软件定义网络设备。利用Zynq将计算和网络融合在一块儿,用户能够用软件编程的方式快速实现特定的网络设备,好比路由器和防 火 墙等
14.智能老鼠迷宫
这是华中科技大学的做品。智能电脑鼠可自行寻找最佳路径,快速完成路径规划。操控者也可选择为电脑鼠采用红外传感器或视觉传感器。该设计基于Zynq芯片上的可编程逻辑部分可快速完成100帧/秒以上的高速图像处理、低延时的红外传感器数据获取、以及快速的电机控制确保电脑鼠的运动速度。同时Zynq的Cortex-A9双核可完成判断等算法和对外通信,以及后续智能应用。
15.智能书法器
机器人也能写书法?没错,东南大学学生利用FPGA驱动控制毛笔写字,将书法这一中国特点传统文化同现代科技巧妙结合在了一块儿。
Artix-35T器件内存储了相应的字库信息,在书写时读取字库,并计算出毛笔的位移、轻重等信息,产生PWM信号控制步进电机,进而控制毛笔移动完成智能书写器。
————转自EDNchina