虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

高晋占

  • 高精度自动贴片机视觉对准系统及其图像处理

    摘 要:阐述了高精度自动贴片机视觉对准系统的构成和原理。介绍了利用模式识别理论和图像的不变矩实现定位标志存在性判断的原理及算法和定位标志对准的原理及相关的图像处理算法,以及其中的点模式匹配算法。试验结果表明,定位标志存在性判断算法可以有效地区分不同的定位标志和判断定位标志是否在视场之内;定位标志对准算法在输入图像旋转、平移、定位标志被部分遮挡时,能精确地得到定位标志的位置偏差。关键词:贴片机;自动对准;定位标志;模式识别;不变矩;SUAN滤波;点模式匹配;图像处理

    标签: 高精度 自动 准系统 图像处理

    上传时间: 2013-11-16

    上传用户:qq1604324866

  • 乐高NXT机器人系统C++程序设计

    随着乐高NXT机器人系统在国内中、小学的深入推广,有必要对乐高NXT机器人系统的相关问题尤其是二次开发问题做进一步深入探讨、研究。利用乐高LEGO MINDSTORMS NXT机器人系统的SDK文件FantomSDK,借助C++编程,结合LEGO MINDSTORMS NXT Bluetooth Developer Kit文件,代替NXT-G、RoboLab软件,实现对乐高NXT设备的完全控制,为青少年、科技教师运用乐高NXT机器人系统进行科技创新提供帮助与支持。  

    标签: NXT 机器人 程序设计

    上传时间: 2013-11-04

    上传用户:jinyao

  • Arduino学习笔记4_Arduino软件模拟PWM

    注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言.      2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\   所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-08

    上传用户:dingdingcandy

  • Verilog_实现任意占空比、任意分频的方法

    Verilog_实现任意占空比、任意分频的方法

    标签: Verilog 分频

    上传时间: 2013-11-20

    上传用户:ccxzzhm

  • 如何在STM32上得到高精度的ADC

    如何在STM32上得到高精度的ADC

    标签: STM ADC 32 高精度

    上传时间: 2013-10-11

    上传用户:xdqm

  • 可编辑程逻辑及IC开发领域的EDA工具介绍

    EDA (Electronic Design Automation)即“电子设计自动化”,是指以计算机为工作平台,以EDA软件为开发环境,以硬件描述语言为设计语言,以可编程器件PLD为实验载体(包括CPLD、FPGA、EPLD等),以集成电路芯片为目标器件的电子产品自动化设计过程。“工欲善其事,必先利其器”,因此,EDA工具在电子系统设计中所占的份量越来越高。下面就介绍一些目前较为流行的EDA工具软件。 PLD 及IC设计开发领域的EDA工具,一般至少要包含仿真器(Simulator)、综合器(Synthesizer)和配置器(Place and Routing, P&R)等几个特殊的软件包中的一个或多个,因此这一领域的EDA工具就不包括Protel、PSpice、Ewb等原理图和PCB板设计及电路仿真软件。目前流行的EDA工具软件有两种分类方法:一种是按公司类别进行分类,另一种是按功能进行划分。 若按公司类别分,大体可分两类:一类是EDA 专业软件公司,业内最著名的三家公司是Cadence、Synopsys和Mentor Graphics;另一类是PLD器件厂商为了销售其产品而开发的EDA工具,较著名的公司有Altera、Xilinx、lattice等。前者独立于半导体器件厂商,具有良好的标准化和兼容性,适合于学术研究单位使用,但系统复杂、难于掌握且价格昂贵;后者能针对自己器件的工艺特点作出优化设计,提高资源利用率,降低功耗,改善性能,比较适合产品开发单位使用。 若按功能分,大体可以分为以下三类。 (1) 集成的PLD/FPGA开发环境 由半导体公司提供,基本上可以完成从设计输入(原理图或HDL)→仿真→综合→布线→下载到器件等囊括所有PLD开发流程的所有工作。如Altera公司的MaxplusⅡ、QuartusⅡ,Xilinx公司的ISE,Lattice公司的 ispDesignExpert等。其优势是功能全集成化,可以加快动态调试,缩短开发周期;缺点是在综合和仿真环节与专业的软件相比,都不是非常优秀的。 (2) 综合类 这类软件的功能是对设计输入进行逻辑分析、综合和优化,将硬件描述语句(通常是系统级的行为描述语句)翻译成最基本的与或非门的连接关系(网表),导出给PLD/FPGA厂家的软件进行布局和布线。为了优化结果,在进行较复杂的设计时,基本上都使用这些专业的逻辑综合软件,而不采用厂家提供的集成PLD/FPGA开发工具。如Synplicity公司的Synplify、Synopsys公司的FPGAexpress、FPGA Compiler Ⅱ等。 (3) 仿真类 这类软件的功能是对设计进行模拟仿真,包括布局布线(P&R)前的“功能仿真”(也叫“前仿真”)和P&R后的包含了门延时、线延时等的“时序仿真”(也叫“后仿真”)。复杂一些的设计,一般需要使用这些专业的仿真软件。因为同样的设计输入,专业软件的仿真速度比集成环境的速度快得多。此类软件最著名的要算Model Technology公司的Modelsim,Cadence公司的NC-Verilog/NC-VHDL/NC-SIM等。 以上介绍了一些具代表性的EDA 工具软件。它们在性能上各有所长,有的综合优化能力突出,有的仿真模拟功能强,好在多数工具能相互兼容,具有互操作性。比如Altera公司的 QuartusII集成开发工具,就支持多种第三方的EDA软件,用户可以在QuartusII软件中通过设置直接调用Modelsim和 Synplify进行仿真和综合。 如果设计的硬件系统不是很大,对综合和仿真的要求不是很高,那么可以在一个集成的开发环境中完成整个设计流程。如果要进行复杂系统的设计,则常规的方法是多种EDA工具协调工作,集各家之所长来完成设计流程。

    标签: EDA 编辑 逻辑

    上传时间: 2013-10-11

    上传用户:1079836864

  • WP245 - 使用Virtex-5系列FPGA获得更高系统性能

    Virtex™-5 器件包括基于第二代高级硅片组合模块 (ASMBL™) 列架构的多平台 FPGA 系列。集成了为获得最佳性能、更高集成度和更低功耗设计的若干新型架构元件,Virtex-5 器件达到了比以往更高的系统性能水平。

    标签: Virtex FPGA 245 WP

    上传时间: 2013-10-19

    上传用户:giraffe

  • WP409利用Xilinx FPGA打造出高端比特精度和周期精度浮点DSP算法实现方案

    WP409利用Xilinx FPGA打造出高端比特精度和周期精度浮点DSP算法实现方案: High-Level Implementation of Bit- and Cycle-Accurate Floating-Point DSP Algorithms with Xilinx FPGAs

    标签: Xilinx FPGA 409 DSP

    上传时间: 2013-10-21

    上传用户:huql11633

  • WP280 - 利用FPGA技术解决高端网络设备实现中的难题

      本白皮书分析了业界对更高速率接口(尤其是100 GbE)的迫切需求、向平台添加 100 GbE 时系统架构师所面临的重大风险和问题,并评介几种实现方案,这些方案显示出 FPGA 在解决这些难题方面具有何等独特的地位。

    标签: FPGA 280 WP 高端

    上传时间: 2013-10-10

    上传用户:taiyang250072

  • Xilinx FPGA全局时钟资源的使用方法

    目前,大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了更高的要求。为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。 FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元(CLB)、I/O单元 (IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。为了适应复杂设计的需要,Xilinx的FPGA中集成的专用时钟资源与数字延迟锁相环(DLL)的数目不断增加,最新的 Virtex II器件最多可以提供16个全局时钟输入端口和8个数字时钟管理模块(DCM)。与全局时钟资源相关的原语常用的与全局时钟资源相关的Xilinx器件原语包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、 BUFGMUX、BUFGDLL和DCM等,如图1所示。  

    标签: Xilinx FPGA 全局时钟资源

    上传时间: 2013-11-20

    上传用户:563686540