• 【资讯】天啦鲁,这十余款创客设计居然由FPGA搞定 [转]


    按理说‘高大上’的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)处理居多。

    图:赛灵思全球高级副总裁汤立人先生在创客活动现场。
    图:赛灵思全球高级副总裁汤立人先生在创客活动现场。

    6款FPGA典型创客实例

    话不多说,先看两款机器视觉的应用案例:

    1.智能交互机器人

    图2

    小巧可爱、能与人互动的“Nao”机器人具备有一定水平的人工智能,能够与人亲切的互动。其使用基于Zynq Z7010的NI myRIO,实时控制Nao的走动,同时借助基于Spartan-6 FPGA的处理能力,帮助机器人实现智能立体视觉。使用NAO SDK for NI LabVIEW即可快速地编写机器人应用程序,将它打造成一个物联网的人机交互入口。

    2.智能人脸识别摄像头

    图3

    人脸检测、识别以及跟踪可以说是应用最广泛的一种视频分析应用。传统的解决方案通常是将视频回传到后台或上传到云端,利用后台服务器的强大性能对视频进行分析和处理。而基于Zynq的智能摄像头方案,可以提供最小体积功耗的人脸识别解决方案,直接嵌入摄像头内部完成相应处理,大大节约了处理时间,节省了服务器的处理资源。这是一个来自瑞为技术的智能摄像头解决方案。ZynqSoC在这个应用中完成了视频图像的预处理以及基于DNN(深度神经网络)算法的智能人脸检测识别,ZynqSoC的架构辅以高度优化的人工智能算法使得这个解决方案的性价比很高。这样一个高度集成的智能摄像头可以实时处理720p高清,30帧/秒的视频,同时可以最多识别32张人脸。

    麦迪观察:很多时候机器视觉是和机器控制配合使用,开发者可以选择独立的FPGA芯片,但创客们更适合采用带有FPGA的第三方开发板,或是直接使用带有FPGA内核的单芯片(SoC)进行开发。采用诸如ZynqSoC(ARM+FPGA异构单芯片)进行开发,能有较好的体积和功耗优势。

    下面是两款视频方面的典型案例:

    3. 3D头戴显示设备(来自某知名品牌)

    图4

    这是一款为3D而生的头戴式观影设备。内置5.5寸2K屏幕,虚拟屏幕可以达到15米远,1000英寸大小的效果。支持800度近视调节,单眼清晰度高达280x1440。在这一案例中,赛灵思的ZYNQ器件主要用来实现高清图像的视频旋转、缩放、畸变矫正、色差补偿等功能。

    4. CarmVision-智能电子显微镜

    该智能电子显微镜通过图像采集,处理,可完成高分辨率的图像显示,测量和细节检查。其中,ZynqSoC由于其内部拥有双核的Cortex A9处理器,在完成复杂的图像处理之余,还能完成操作界面(UI),菜单等操作系统的工作。

    图5

    麦迪观察:由于FPGA应用于视频领域已比较成熟,很多视频应用案例都是来自于已商用的展示。不同于原型开发,这类商用产品中多选择像ZynqSoC(ARM+FPGA的SoC),受访人表示,这对于提高产品集成度,实现快速上市会有很大助益。

    再来看两款年轻创客的FPGA作品,主要用在运动控制

    5. 爬墙机器人

    图6

    东南大学学生此次展示的爬墙机器人是在开源硬件大赛中产生的优秀获奖作品,这一项目为降低高空作业的潜在危险提供了方案。此次展示的爬墙机器人能够在墙壁上吸附和移动,并且能够改变方向,实现墙面二维运动。该设计采用Artix-35T FPGA具备丰富的I/O接口及硬件逻辑资源,可以完成十个以上的步进电机控制,实现了本设计的完整解决方案。

    6. Ancient Wall – E

    机器人瓦力现身,这个机器人演示是东南大学学生利用Basys3开发板的作品。机械手通过读取人手佩戴的传感器信息,实时操控机械手臂,完成模仿人手的某些动作。它实现了远程对机器人机械臂的体感控制,也可用于按固定程序抓取、搬运物件或操作工具。在工业生产中可用于在危险环境下工作,提高人的安全性。其基于赛灵思Artix-7 FPGA完成,Artix-7在IO数量、外设接口方面的优势使得单芯片可以同时支持16路电机的控制,快速精准地完成对机械手臂的控制。

    图7

    麦迪观察:据上述两个方案的设计者表述,采用FPGA进行机器控制的主要优势在于其拥有丰富I/O口,可以实现多路并行控制,一般串口难以实现。这也极大丰富了他们设计的可拓展性。例如在爬墙机器人设计中,机器人可以控制‘脚’位移,同时控制机械臂执行诸如擦玻璃的操作。虽然这些学生作品看上去还有些简单甚至是简陋,但也欣喜的看到FPGA的开发应用已经真实走进了校园,未来的创客们已经借助于FPGA的平台将他们的想法展现在了众人面前。

    关注2:如何能用好FPGA?

    这个问题和FPGA开发难度相关。

    一般我们会认为创客可能缺乏软硬件基础,做相关开发会有难度。但没想到,对这个顾虑,汤立人先生反倒给出出人意料的答案,“我个人更看好创客的技术实力。很多创客来自初创型公司或完全是一个人,在这些公司中,个人的开发能力和项目控制能力往往更强,一般软件或硬件都会懂一些,会很适合FPGA的编程。当然更重要的是,对于赛灵思而言,目前全面推出的全可编程(All Programmable)器件,就更进一步降低了硬件编程的难度。因为其所有编程环境(例如全新的SDSoC开发环境)都是基于C语言的环境,能完成‘软件定义硬件’‘软件定义系统’的开发。这样做的好处是打破了原先只有少数硬件工程师才能使用FPGA的门槛。很多创客工程师是软件工程师,懂C语言,就能进行编程开发。这点从好多大学生利用我们的器件进行开发就可以看到,他们很多并没有FPGA的相关开发经验。”

    汤立人进一步表示,“从大环境来看,软件定义会是趋势,几乎现在每个系统都在呼唤可编程,从可编程的数据中心,到可编程的智能汽车开发。所以为了方便来自各领域的开发者使用,赛灵思在工具和开发环境方面花了很大的精力完善,把编程开发门槛降到最低。当然硬件方面,为了方便开发者使用,我们也和许多具体的参考板设计公司合作,开发适合各领域应用的具体板子给到大家,我们有一面开发板墙(下图),上面有很多合作方的开发板,入门的开发者可以通过这些板子或合作方得到技术支持。”

    图:来自Xilinx和其合作伙伴的开发板墙。
    图:来自Xilinx和其合作伙伴的开发板墙。

    最后,汤总也开玩笑地对麦迪说:“你在大学里学过C语言,也能来试试。”(对此,麦迪表示压力仍大。)

    附:所有其他9个基于FPGA的创客实例展示

    由于当天带的实例太多,麦迪就不多一一解释了,毫无保留的列在下面,想看实例的小伙伴们请随意吧。

    7.极米(Gimi)微型投影仪

    看电视不需要屏幕了!这款极米微型投影仪作为便携式投影系统,不但具备传统投影仪的投影功能,其本身还是一部轻便的家庭影院系统,有上万种片源可供选择观看。

    赛灵思Spartan-6系列FPGA在整个系统中主要完成接口扩展,系统外设整合及视频校正的功能。借助可编程逻辑的特性,完美地支持了产品的高集成度及快速上市周期。

    图9

    8.智能象棋对弈机器人

    本演示利用Basler相机进行图像采集,并基于Compact RIO、NI SoftMotion、NI Vision等平台进行图像分析处理,可以完成象棋识别、抓取和移动,并结合智能象棋算法实现自动布局、人机对战等功能。

    基于Xilinx Kintex-7 FPGA 的NI Compact RIO平台实现机器视觉和运动控制,完成对棋子的抓取和移动功能。

    应用领域:机器视觉和运动控制可以应用于工程领域的各行各业,比如机械制造、医药医疗、电子电气、自动测量等等。

    图10

    9.高清无线图形传输模块

    实现高清图像的远距离(1~50公里)双向传输,同时可以提供数据传输通道,可广泛应用于无人机图传、宽带无线电台、广电视频中继等领域。

    Zynq芯片中逻辑部分完成无线通信的物理层调制解调信号处理功能,处理器部分实行MAC层协议和网络层协议。单芯片完成整个通信系统功能。

    利用Zynq单芯片代替传统通信ASIC,实现动态调整通信体制、频段、带宽的具备认知功能的智能无线通信系统。

    图11

    10.智能PAD 示波器

    将电路信号的波形呈现在手机或者平板电脑上,用于智能硬件产品的调试,也可以应用于K12青少年课外科技活动的辅助工具。

    Zynq芯片完成对高速数模转换器(ADC)的数据采集,分析和处理,然后利用其中的ARM处理器支持无线WiFi网络,与手机或平板电脑通信。

    利用Zynq单芯片代替传统的FPGA+ARM或DSP+ARM模式,产品体积减小为原来的50%,性能提升20%

    图12

    11.魔方机器人

    东南大学学生的优秀作品。系统通过完全闭环的运动控制,识别魔方各个面的颜色实现魔方还原步骤的解算,并控制舵机精确还原魔方。

    Artix-35T器件实现了图像采集、颜色识别及计算处理功能,同时提供多路PWM信号完成对舵机的驱动控制

    图13

    12.智能工业相机

    高度集成化的微小型机器视觉系统,将图像的采集、处理与通信功能集成于单一相机内,从而提供了具有多功能、模块化、高可靠性、易于实现的机器视觉解决方案。

    基于Zynq单芯片的工业相机方案,不仅可以完成复杂的图像处理功能,还能同步实现运动控制、轨迹跟踪、总线通信等功能,实现一体化机器视觉解决方案

    应用领域:工业机器视觉产品广泛应用于运动控制、机器人控制、印刷设备、包装机械、自动分检、自动识别等多个领域。该公司产品不仅包括工业相机,还提供视频分析以及相关的运动控制等一体化解决方案。

    图14

    13.SDN软件定义网络阵列

    借助Zynq芯片单板的堆叠阵列实现四个千兆端口的软件定义网络设备,可用于软件定义网络系统开发,以及定制化小型网络产品开发,可组合成专用可编程计算加速阵列。

    Zynq芯片中逻辑部分实现软件定义网络系统的OpenFlow数据面,ARM处理器部分实现软件定义网络系统的控制面。单芯片实现一个完整的软件定义网络设备。利用Zynq将计算和网络融合在一起,用户可以用软件编程的方式快速实现特定的网络设备,比如路由器和防 火 墙等

    图15

    14.智能老鼠迷宫

    图16

    这是华中科技大学的作品。智能电脑鼠可自行寻找最佳路径,快速完成路径规划。操控者也可选择为电脑鼠采用红外传感器或视觉传感器。该设计基于Zynq芯片上的可编程逻辑部分可快速完成100帧/秒以上的高速图像处理、低延时的红外传感器数据获取、以及快速的电机控制确保电脑鼠的运动速度。同时Zynq的Cortex-A9双核可完成判断等算法和对外通讯,以及后续智能应用。

    15.智能书法器

    机器人也能写书法?没错,东南大学学生利用FPGA驱动控制毛笔写字,将书法这一中国特色传统文化同现代科技巧妙结合在了一起。

    Artix-35T器件内存储了相应的字库信息,在书写时读取字库,并计算出毛笔的位移、轻重等信息,产生PWM信号控制步进电机,进而控制毛笔移动完成智能书写器。

    图17

    ————转自EDNchina

  • 相关阅读:
    cocos2dx游戏开发——别踩白块学习笔记(二)——经典模式的实现
    cocos2dx游戏开发——别踩白块学习笔记(一)——Block类
    《数据结构与算法分析》学习笔记(三)——链表ADT
    《数据结构与算法分析》学习笔记(二)——算法分析
    cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建
    cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架
    cocos2dx游戏开发——微信打飞机学习笔记(一)——开发准备
    《数据结构与算法分析》学习笔记(一)——递归思想!
    好的博客mark
    [uart]理解线路规程的作用
  • 原文地址:https://www.cnblogs.com/tony-ning/p/5060046.html
Copyright © 2020-2023  润新知