飞思卡尔单片机中中二值化问题
飞思卡尔单片机各种问题汇结
飞思卡尔问题汇结一、flash/EEPROM的操作Tips:a、HC08系列MCU中,很多Monitor ROM中固化了对flash操作的函数,用户只需调用即可,参考AN2874等应用笔记b、HCS08系列和HCS12系列MCU对flash的操作十分类似,可以参考 AN21401、FLASH操作函数 (HCS08系列)/dispbbs.asp?boardID=3&RootID=111907&ID= 1119072、如何将flash中的程序copy至ram中/dispbbs.asp?boardID=3&RootID=104074&ID= 1040743、S12内部寄存器的映射/dispbbs.asp?boardID=3&RootID=103261&ID= 1032614、S12EEPROM的使用、 INITRG,INITRM,INITEE寄存器的说明/dispbbs.asp?boardID=3&RootID=102260&ID= 1022605.INITRM寄存器的使用/dispbbs.asp?boardID=3&RootID=103214&ID= 103214二、编程技巧Tips:a、一般Codewarrior用引导生成工程的话,器件的头文件中都定义好了各个位,C语言编程只需找到对应的位进行操作即可b、用户自定义变量进行位操作,可以参考Codewarrior的格式1、CW位操作定义结构/dispbbs.asp?boardID=3&RootID=87784&ID=8 77842、HCS08系列单片机软件复位/dispbbs.asp?boardID=3&RootID=112903&ID= 112903三、Codewarrior 的使用Tips:a、尽量采用最新版本的CW进行编译开发b、尽量采用引导创建工程1、C语言和汇编语言之间共用常量/dispbbs.asp?boardID=3&RootID=101651&ID= 1016512、编译出现L1923 no DWARF debug info警告信息/dispbbs.asp?boardid=3&rootid=108124&id= 108124&star=四、ZigbeeTips:a、/zigbee 该网站中有freescale在zigbee方面的资料五、芯片各个模块的使用ADC1、序列通道AD转换/dispbbs.asp?boardID=3&RootID=80853&ID=8 08532、AD左右对齐/dispbbs.asp?boardID=3&RootID=83010&ID=8 3010PWM1、MON08调试PWM的注意事项/dispbbs.asp?boardID=3&RootID=33087&ID=3 30872、关于PWM的一篇好文章(网友推荐)/dispbbs.asp?boardID=3&RootID=43413&ID=4 34133、DSP56F8346的PWM程序/dispbbs.asp?boardID=3&RootID=59802&ID=5 98024、S12DG128B的PWM程序/dispbbs.asp?boardID=3&RootID=76420&ID=7 6420CAN1.9S08DZ CANdemo程序/dispbbs.asp?boardID=3&RootID=113744&ID= 113744RTI1.stop模式下,唤醒MCU(S12XDP512)/dispbbs.asp?boardID=3&RootID=115287&ID= 115287六调试工具Tips:a. HC08系列MCU的调试接口为MON08,用MON08 Multilinkb. HCS08、RS08和HCS12系列内置BDM模块,用BDM Multilinkc. 上述调试工具都是P&E公司提供的,另外该公司的Cyclone Pro 支持HC08/HCS08/HCS12系列MCU的调试。
飞思卡尔单片机程序调试方法说明
飞思卡尔单片机程序调试方法说明对于飞思卡尔单片机编程,常用的调试方法有3种:调试方法1:在线调试法(Debug模式)CodeWarrior 10.3 开发环境下,可启动Debug模式,利用step into, step over, step return ,run to line 按钮,程序中设置断点,修改变量的值,查看寄存器的值等,进行调试。
有关调试窗口的按钮定义和调试方法,可查看帮助中debug View 和Debug information的说明。
调试方法2:串口调试法通过将程序运行过程中的数据、变量值等发送到PC机上查看,同时也可从PC机上通过串口发送数据到单片机,修改程序运行的参数(或步骤)进行调试。
智能车运行过程中常用用串口调试的方法。
调试方法3:硬件调试法通过连接在芯片外部的硬件或电路的变化或响应,查看程序运行的结果或状态(例如,在程序的某一位置点亮小灯、开蜂鸣器、发数据到LCD等)。
理解和掌握概念:单步调试相信任何调试人员对单步调试非常的熟悉。
CodeWarrior(与Eclipse基本一致)提供step into、step over、step return三个命令来支持单步调试。
三者的具体区别是:step into(快捷键F5)就是单步执行,遇到子函数就进入并且继续单步执行;step over(快捷键F6)是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。
step return(快捷键F7)就是单步执行到子函数内时,用step return就可以执行完子函数余下部分,并返回到上一层函数。
说的通俗点就是,step into:进入子函数,step over:越过子函数,但子函数会执行,step return:跳出子函数。
此外,Eclipse还提供了Run to line(快捷键Ctr + R)功能,从开始处运行程序,到正在执行的断点暂停。
飞思卡尔智能车摄像头组技术报告 (2)
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告摘要本文设计的智能车系统以K60微控制器为核心控制单元,基于CCD摄像头的图像采样获取赛道图像信息,提取赛道中心线,计算出小车与黑线间的位置偏差,采用PD方式对舵机转向进行反馈控制。
使用PID控制算法调节驱动电机的转速,结合特定算法分析出前方赛道信息实现对模型车运动速度的闭环控制。
为了提高模型车的速度和稳定性,我们用C++开发了仿真平台、蓝牙串口模块、SD卡模块、键盘液晶模块等调试工具,通过一系列的调试,证明该系统设计方案是确实可行的。
关键词:K60,CCD摄像头,二值化,PID控制,C++仿真,SD卡AbstractIn this paper, we will design a intelligent vehicle system based on MC56F8366 as the micro-controller unit. using the CCD image sensor sampling to the track image information to extract the track line center, to calculate the positional deviation between the car with the black line, the use of PD on the rudder. The machine turned to the feedback control. We use PID control algorithm to adjust the speed of the drive motor, combined with specific algorithms to achieve closed-loop control of the movement speed of the model car in front of the track. In order to improve the speed and stability of the model car, we use the C++ to develop a simulation platform, Bluetooth serial module, SD card module, keyboard, LCD modules, debugging tools. Through a series of debugging, the system design is feasible.Key words: K60,CCD_camera, binaryzation, PID control, C++ simulation, SD card目录第1章引言................................................................................... - 1 - 第2章系统总体设计................................................................ - 2 - 2.1 系统分析..................................................................................... - 2 - 2.2 车模整体布局............................................................................. - 3 - 2.3 本章小结....................................................................................... - 4 - 第3章系统机械设计及实现................................................... - 5 - 3.1 前轮定位的调整......................................................................... - 5 -3.1.1主销内倾..............................................................................- 6 -3.1.2 后倾角.................................................................................- 6 -3.1.3 内倾角.................................................................................- 7 - 3.2 舵机安装....................................................................................... - 8 -3.2.1 左右不对称问题的发现与解决........................................- 10 - 3.3 编码器的安装............................................................................ - 10 - 3.4 摄像头安装.................................................................................- 11 -3.4.1 偏振镜的使用......................................................................- 12 -3.4.2 摄像头的标定......................................................................- 12 - 3.5 摄像头的选用.............................................................................- 13 - 3.6 红外接收装置.............................................................................- 14 -3.7 防止静电复位.............................................................................- 15 - 3.8 本章小结.......................................................................................- 15 - 第4章硬件电路系统设计及实现 ...................................... - 16 -4.1 硬件设计方案............................................................................- 16 - 4.2 电源稳压......................................................................................- 17 - 4.3 电机驱动......................................................................................- 18 - 4.4 图像处理部分............................................................................- 19 -4.4.1 摄像头升压电路.............................................................- 19 -4.4.2 视频分离电路.................................................................- 19 -4.4.3 硬件二值化.....................................................................- 19 - 4.5 灯塔电路......................................................................................- 21 - 4.6 本章小结......................................................................................- 21 -第5章系统软件设计.............................................................. - 22 -5.1 软件流程图...............................................................................- 22 - 5.2 算法新思路...............................................................................- 23 -5.2.1中心线提取.......................................................................- 23 -5.2.2 直角检测........................................................................... - 24 -5.2.3 单线检测......................................................................... - 24 - 5.3 舵机控制.....................................................................................- 25 - 5.4 速度控制.....................................................................................- 26 - 5.5 PID算法....................................................................................- 26 - 5.6 路径优化.....................................................................................- 31 -第6章系统联调...................................................................... - 33 - 6.1 开发工具.................................................................................... - 33 - 6.2 无线调试蓝牙模块及蓝牙上位机..........................................- 33 - 6.3 键盘加液晶调试......................................................................- 34 - 6.4 TF卡调试模块.........................................................................- 34 -6.4.1 TF卡.............................................................................- 34-6.4.2 SDCH卡 .........................................................................- 35 -6.4.3 软件实现.......................................................................- 36 - 6.5 C++上位机设计........................................................................- 36 - 6.6 电源放电模块...........................................................................- 38-6.6.1 镍镉电池记忆效应…………………………………….. - 39-6.6.2 放电及电池性能检测设备…………………………….. - 39- 6.7 本章小结....................................................................................- 40 - 第7章模型车技术参数........................................................ - 41 - 第8章总结............................................................................... - 42 - 参考文献...................................................................................... - 44 -第1章引言在半导体技术日渐发展的今天,电子技术在汽车中的应用越来广泛,汽车智能化已成为行业发展的必然趋势。
[电子教案(PPT版本)]“飞思卡尔”杯智能汽车设计与实例教程 (3)[72页]
低频段 基本相同
用PWM波代替正弦半波
用一等幅不等宽的脉冲来代替 一个正弦半波
把正弦半波N等分,看成N个相
连的脉冲序列,宽度相等,但 幅值不等;
用矩形脉冲代替,等幅,不等 宽,中点重合,面积(冲量) 相等,宽度按正弦规律变化
相关概念
占空比:高电平保持的时间与该PWM 时钟周期的时间之比
分辨率:指占空比最小值 频率 双斜率/单斜率
单片机需要一个稳定的电压保持平稳工作,所以供电 最好设计为独立供电,避免与其他负载并联导致负载变化时 影响单片机供电引起问题。 推荐使用“三端固定式集成稳压器”来为单片机提供降压稳
压供电。
正 输 入 电 压
C1、C3 滤波电容
C2、C4 抑制芯片 自激振荡
常用的稳压芯片有78系列、LM2940、AMS1117 等系列。由于78系列的稳压芯片发热量较大,不作推 荐。在5V稳压方案中使用LM2940进行讲解,在3.3V 稳压方案中则使用AMS1117-3.3。
5V传感器获取的信号要经过缓冲芯片变换为 3.3V的信号输入到单片机中
2.2 电动机驱动电路设计
电动机的速度是根据传感器的反馈 随时调整的
脉宽调制(PWM) 需要驱动模块来放大单片机输出的
信号 PWM信号的占空比决定电动机的转速
,故电动机的调速可通过改变PWM信 号的占空比来实现 欲实现双向控制,就要使用H桥。H 桥可以实现电动机的双向调速
LM2940S(TO-263-3)
AMS1117-3.3(SOT-223)
思考题:总结常用的稳压芯片,列出他们的异同点
滤
波
检测稳
电
压IC是
容
否有正
LM2940S 5V稳压电路示例
飞思卡尔单片机RAM与flash相关问题
飞思卡尔单片机RAM与flash相关问题删除最近在做飞思卡尔16位单片机的在线升级bootloader程序。
有2个问题不太清楚,请教下论坛里的高人。
1.bootloader程序中,对存放应用程序的flash空间进行擦除和写入新的应用程序以完成升级。
比较特别的是,需要将flash操作代码拷贝到ram中执行,这是为什么?bootloader程序所在flash空间设置为被保护状态,不会误擦除,而且运行到哪个函数自然会把函数压栈到RAM里执行吧?为什么还要特地拷贝到RAM里呢?2.单片机上电初始化后,RAM存储初始化全局变量,这些全局变量是从调试器烧进去的S19文件中获取的吗?每次程序都是从bootloader的main函数开始执行,确定不是升级状态后跳转到应用程序重映射的reset中断向量地址(flash地址)执行。
bootloader和应用程序中有些全局变量分配的ram重合了,有什么影响吗?会在跳转后重新初始化RAM吗?解答如下:(1) Flash操作的那部分,也就是Flash的读写驱动程序是必须放到RAM中执行,原因是当进行Flash擦写时,Flash中的程序就不可以被执行了,这是硬件的限制。
这是Freescale单片机的情况,我不清楚其它单片机会不会有这个限制。
你说的“运行到哪个函数自然会把函数压栈到RAM里执行吧”,不可能把函数压到堆栈里面的,只是在函数调用和函数被中断打断,一些寄存器和一些局部变量等会被压倒堆栈里面。
默认情况下,16位freescale单片机在prm中配置的堆栈大小是0x100字节,很多函数都要比它大。
评论:程序不可能在堆栈中运行,要运行也只能在RAM中或者NORflash中。
(2)"单片机上电初始化后,RAM存储初始化全局变量,这些全局变量是从调试器烧进去的S19文件中获取的吗?" 这是个很好的问题,全局变量和静态变量的初始化值是保存在Flash中的Const段里的,新建一个工程的时候默认有个startup的汇编程序文件,它负责将const段中的初始值付给这些全部变量。
2.二值化——精选推荐
2.⼆值化⼀、⼆值化⼆值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(⿊⾊)或者255(⽩⾊),也就是让整个图像呈现只有⿊和⽩的效果。
在灰度化的图像中灰度值的范围为0~255,在⼆值化后的图像中的灰度值范围是0或者255。
⿊⾊:⼆值化后的R = 0⼆值化后的G = 0⼆值化后的B = 0⽩⾊:⼆值化后的R = 255⼆值化后的G = 255⼆值化后的B = 255那么⼀个像素点在灰度化之后的灰度值怎么转化为0或者255呢?⽐如灰度值为100,那么在⼆值化后到底是0还是255?这就涉及到取⼀个阀值的问题。
三、阈值求取算法1. 傻⽠法2. ⼤律⼆值算法将图像理解成255个图层,每⼀层分布了不同的像素,这些像素垂直叠加合成了⼀张完整的灰度图。
就是找到⼀个合适的灰度值,⼤于这个值的我们将它称之为背景(灰度值越⼤像素越⿊),⼩于这个值的我们将它称之为前景(灰度值越⼩像素越⽩)。
h:图像的宽度w:图像的⾼度(h*w 得到图像的像素数量)t :灰度阈值(我们要求的值,⼤于这个值的像素我们将它的灰度设置为255,⼩于的设置为0)n0:⼩于阈值的像素,前景n1:⼤于等于阈值的像素,背景n0 + n1 == h * ww0:前景像素数量占总像素数量的⽐例w0 = n0 / (h * w)w1:背景像素数量占总像素数量的⽐例w1 = n1 / (h * w)w0 + w1 == 1u0:前景平均灰度u0 = n0灰度累加和 / n0u1:背景平均灰度u1 = n1灰度累加和 / n1u:平均灰度u = (n0灰度累加和 + n1灰度累加和) / (h * w) 根据上⾯的关系u = w0 * u0 + w1 * u1g:类间⽅差(那个灰度的g最⼤,哪个灰度就是需要的阈值t)g = w0 * (u0 - u)^2 + w1 * (u1 - u)^2根据上⾯的关系,可以推出:(这个⼀步⼀步推导就可以得到)g = w0 * w1 * (u0 - u1) ^ 2然后,遍历每⼀个灰度值,找到这个灰度值对应的 g找到最⼤的 g 对应的 t;算法实现Mat Binary_OSTU(Mat img){// get height and widthint width = img.cols;int height = img.rows;Mat out = Mat::zeros(height, width, CV_8UC1);double p0 = 0;double u0 = 0;double p1 = 0;double u1 = 0;double n0 = 0;double n1 = 0;int val;double max_sb = 0, sb = 0;int threshold = 0;for (int k = 0; k < 255; k++){p0 = 0;u0 = 0;p1 = 0;u1 = 0;n0 = 0;n1 = 0;//分为两类for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){val = (int)(img.at<uchar>(i, j));if (val < k){n0++;u0 += val;}else{n1++;u1 += val;}}}//求出概率,均值u0 = u0 / n0; //第⼀类均值u1 = u1 / n1;p0 = n0 / (width* height);p1 = n1 / (width* height);sb = p0 * p1*pow((u0 - u1), 2);if (sb > max_sb){max_sb = sb;threshold = k;}}cout << "threshold: " << threshold << endl;for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){if ((int)img.at<uchar>(i, j) > threshold)out.at<uchar>(i, j) = 255;elseout.at<uchar>(i, j) = 0;}}return out;}参考⽂献:Otsu N. A threshold selection method from gray-level histogram. IEEE Trans,1979;SMC-9;62-66。
一种对图像进行快速二值化处理的方法
本文档下载自文库下载网,内容可能不完整,您可以点击以下网址继续阅读或下载:/doc/3f8ea76e48d7c1c708a145f7.html一种对图像进行快速二值化处理的方法一种对图像进行快速二值化处理的方法武汉华中理工大学自控系(430074)摘王俊杰黄心汉要:对图像进行二值化处理,最重要的工作是选取合适的二值化阈值。
使用直方图同高斯滤波相结合的方法来求取二值化阈值,对图像进行二值化处理,速度快、精度高,适合应用于对速度要求较高的工业控制中。
关键词:直方图二值化阈值高斯滤波随着计算机技术的发展,计算机视觉逐渐应用到工业实际中。
因为图像的数据量非常大,为了得到一幅效果较好的数字化图像,一般情况下需要较长的时间来进行处理,在速度方面无法满足实时性的要求。
为了提高图像处理的速度,工业上一般采用处理过程相对较简单的二值化图像,因此如何合理选取二蚕燃鞴UuI方图,可以发现:原始图像I中,背景较暗,直方图上相I的低段;工件上除孔以外的_I■.1图2原始图像的直方图值化阈值,使之同时满足速度和精度的要求,就成了一个关键的问题。
在实验室条件下,结合机器人插轴入孔的装配作业,通过对多种图像处理算法进行比较,发现使用直方图同高斯滤波相结合的方法来求取二值化阈值,对图像进行二值处理,速度特别快,精度也完全能。
够满足机器人进行装配作业的要求。
1直方图的定义的特性对于数字化后的离散图像,其一阶统计概率密度为:(1)砌)一坐铲对于图1所示的具直方图是图像中象素灰度值的一阶统计概率分布。
其中,SUM为一幅图像所包含的象素总数;His—togram(6)为图像中灰度值为b的象素总数。
设图像的灰度数据存放在数组Image中,直方图数据存放在数组Histogram中,则求取图像直方图的过程用c语言程序描述如下:for(i一/doc/3f8ea76e48d7c1c708a145f7.html0;i<SUM;i++)Histogram[Image[i]]++;有256级灰度的原始图果把二值化阈值取为双L—之一,L1一:∑籼三将工件和背景最大限度图3■■●■■o■_●■io●o■_o_______■●■■o_■____-??____-_____jj●■●■■一d:15时的高斯曲线图像,如果以灰度值b为横坐标,象素数His—togram(6)为纵坐标,可以画出如图2所示的灰度概率为布图,也就是图像的直方图。
基于飞思卡尔K60的二值化图像无线传输
科技风2019年3月DOI:10.19392/ki.1671-7341.2019070604电子信息___________________________基于飞思卡尔K60的二值化图像无线传输陈思宇张倩钱程熊扬扬安徽大学电气工程与自动化学院安徽合肥230601摘要:现代电子信息技术的发展使无线通信技术日趋成熟。
较传统有线传输而言,无线传输可实现远程通信及数据的实时 更新。
本文提出一种集图像采集、处理和无线传输于一体的设计方案。
首先利用MK60DN512VLL10和OV7725摄像头完成图像 采集与二值化处理;接着采用无线蓝牙模块,将图像数据经USB转串口调节芯片传送至上位机;最后编制人机界面,在上位机上实 时显示图像。
实验表明,该方案具有图像传输实时性高、动态性能好等特点,有利于实现现场图像获取及短距离无线通信。
关键词:图像采集;二值化;无线传输;蓝牙;K60普通传感器进行图像识别需处理大量数据,耗时长,造成 实时系统存在滞后性。
在不影响图像特征的基础上,采用二值 化处理,能够大大减小图像数据的存储空间,缩短处理时间,这 使得基于蓝牙的图像信息无线传输成为可能。
1整体设计方案本文采用逐飞OV7725摄像头对目标区域进行监测,输出 二值化图像,MK60DN512VLL10采用DMA方式采集图像,并通 过蓝牙与CH340串口模块将图像信息传送至上位机显示。
整体设计原理如下1图所示。
图1二值化图像蓝牙传输原理图2图像采集与处理为提高单片机工作效率,使用场中断信号VSYNC进行 DMA数据传送。
一般在像素点同步信号PCLK的上升沿采集数据,此时像素点数据较稳定,有利于避开消影区。
在一场像素点采集中,每个PCLK信号上升沿都触发DMA 传输,把摄像头输出的数据读到K6O内存数组里。
假设每帧图 像的像素为I% -,则m% n个PCLK信号就输出一帧图像的 所有像素点数据,此时停止DMA传输,等待下一个VSYNC信 号到来。
二值化图像的灰度处理算法研究
二值化图像的灰度处理算法研究
陈海峰1 丁丽丽2
(1. 广州大学华软软件学院,广东 广州 510990; 2. 广州城建职业学院,广东 广州 510000)
[摘 要] 针对市场上热敏打印机普遍无法打印灰度图像的问题,提出了一种基于二值化图像的灰度处理算法。该算法 通过对原始 RGB 位图进行区域分割、区域灰度处理和区域二值化处理,使得到的二值化图像在视觉上能够呈现出一定的灰度 效果。算法在 STM32 单片机上运行,通过 TFTLCD 显示屏进行显示验证和实际热敏打印机打印测试,结果均表明了该算法的 正确性和可用性。
的位图数据可使热敏纸呈现不同的图案。但这些半导体元 时,能真正反映图像形态特征的分量只有颜色强度分量,即
件仅具有导通与关断两种状态,用户也无法通过控制元件的 灰度值。通常,彩色图像灰度化处理的方法有分量法、最大
导通时间来控制显示色的深度,这一特性导致热敏打印机仅 值法、平均值法和加权平均值法。分量法是选取彩色图像中
的响应具有对数非线性性质,因此,在平均亮度较大的区域, 人眼对灰度误差具有不敏感性。此外,人眼对边缘的灰度误 差亦不敏感。基于此 ,可将原始图像进行区域分割 ,然后通 过计算各区域的平均灰度值 ,来决定该区域中白色像素点 (或黑色像素点)的数量,并使这些像素点按照一定规则分布 于对应的区域 ,从而利用人眼对灰度误差的不敏感 ,使二值 化的图像在整体上呈现出一定的灰度效果。 2.2 区域灰度化与区域二值化
[关键字] 灰度图像;二值化图像;灰度处理;区域分割;二值化处理
中图分类号:TP301.6
文献标识码:A
文章编号:1008 - 6609 (2019) 07 - 0034 - 05
1 引言
使二值化的图像在视觉上呈现出一定的灰度效果。经 TFTLCD 显示验证及普通热敏打印机测试,均表明该算法具
(毕业设计)飞思卡尔智能车及机器视觉
图像处理在智能车路径识别中的应用摘要机器视觉技术在智能车中得到了广泛的应用,这项技术在智能车的路径识别、障碍物判断中起着重要作用。
基于此,依据飞思卡尔小车的硬件架构,研究机器视觉技术应用于飞思卡尔小车。
飞思卡尔智能车处理器采用了MC9S12XS128芯片,路况采集使用的是数字摄像头OV7620。
由于飞思卡尔智能车是是一款竞速小车,因此图像采集和处理要协调准确性和快速性,需要找到其中的最优控制。
因此本设计主要需要完成的任务是:怎样用摄像头准确的采集每一场的图像,然后怎样进行二值化处理;以及怎样对图像进行去噪处理;最后也就是本设计的难点也是设计的核心,怎样对小车的轨迹进行补线。
本设计的先进性,在众多的图像处理技术中找到了适合飞思卡尔智能车的图像处理方法。
充分发挥了摄像头的有点。
经过小车的实际测试以及相关的MATLAB 仿真,最终相关设计内容都基本满足要求。
小车的稳定性和快速性得到显著提高。
关键词:OV7620,视频采集,图像处理,二值化The Application of Image Processing in the Recognition ofIntelligent Vehicle PathABSTRACTCamera Machine vision technology in the smart car in a wide range of applications, the technology identified in the path of the smart car, and plays an important role in the obstacles to judge. Based on this, based on the architecture of the Freescale car, machine vision technology used in the Freescale car. Freescale smart car the processor MC9S12XS128 chip traffic collected using a digital camera OV7620. Freescale's Smart car is a racing car, so the image acquisition and processing to coordinate the accuracy and fast, you need to find the optimal control. This design need to complete the task: how to use the camera to accurately capture every image, and then how to binarization processing; and how to image denoising; last is the difficulty of this design is the design of the core, how to fill line on the trajectory of the car.The advanced nature of the design found in many image processing techniques of image processing methods for Freescale Smart Car. Give full play to the camera a bit. The actual testing of the car and MATLAB simulation, the final design content can basically meet the requirements. The car's stability and fast to get improved significantly.KEY WORDS: OV7620,Video Capture,Picture Processing,Binarization目录前言 (1)第1章飞思卡尔赛车及机器视觉的概述 (2)1.1 智能车的研究背景 (2)1.1.1 智能车的发展历史 (2)1.1.2 应用前景 (2)1.2 智能车设计要求介绍 (3)1.3 机器视觉介绍 (4)1.4 小结 (4)第2章主要思路及技术方案概要 (5)2.1 总体设计主要方法步骤 (5)2.2 摄像头的对比与选择 (5)2.2.1 摄像头的选取 (5)2.2.2 模拟摄像头 (6)2.2.3 数字摄像头 (6)2.2.4 摄像头的选定 (7)2.3 二值化方案的选取 (7)2.3.1 双峰值法 (7)2.3.2 迭代法 (8)2.3.3 大津法 (8)2.3.4 灰度拉伸-一种改进的大津法 (9)2.3.5 二值化方案的最终选定 (9)2.4对图像进行去噪 (9)2.4.1 传统的去噪法 (9)2.4.2 小波去噪 (11)2.4.3 去噪方法的最终确定 (13)2.5小结 (13)第3章硬件设计 (14)3.1 硬件总体方案设计 (14)3.2 核心控制板 (15)3.3 摄像头的安装 (15)3.4 小结 (16)第4章软件设计 (17)4.1 系统软件总体设计方案 (17)4.2 图像二值化软件设计 (17)4.3 去噪设计 (19)4.3.1 实验信号的产生 (19)4.3.2各参数下去噪效果对比 (20)4.4 二值化后补线 (24)4.5 小结 (32)第5 章结果分析 (33)5.1 采集到的灰度值去噪前的MATLAB仿真 (33)5.1.1 去噪前MATLAB函数和仿真结果 (33)5.1.2 去噪后MATLAB仿真结果 (34)5.2 边界扣取 (35)5.2.1 边界扣取函数 (35)5.2.2 边界扣取仿真结果 (36)5.3 补线后效果 (37)5.4 小结 (38)结论 (39)谢辞 (40)参考文献 (41)附录 (42)外文资料翻译 (45)前言机器视觉技术近几十年来已经得到广泛的应用,并且已经取得了巨大的成功,大大改善了人们的日常生活。
北航计控实验--飞思卡尔小车实验报告
成绩《计算机测控系统》实验报告院(系)名称自动化科学与电气工程学院专业名称自动化学生学号学生姓名指导教师董韶鹏2018年06月同组同学实验编号03组一、实验目的1.了解计算机控制系统的基本构成和具体实现方法。
2.学会使用IAR软件的基本功能,掌握K60单片机的开发和应用过程。
3.学会智能小车实验系统上各个模块的使用,掌握其工作原理。
二、实验内容1、了解各模块工作原理,通过在IAR环境编程,实现和演示各个模块的功能。
2、编写程序组合各个模块的功能,让小车能够沿着赛道自行行使。
三、实验原理小车的主板如下图所示:主板上包括Freescale MK60DN512ZVLQ10核心板,J-Link下载调试接口,编码器接口,电机驱动接口,舵机接口,CCD结构等主要功能模块接口,无线模块接口,蓝牙模块接口,OLED接口等主要功能模块和相应的辅助按键和电路。
在本次实验中我们主要使用的接口为编码器接口,CCD接口,舵机接口,电机驱动接口,OLED接口来控制小车运行,采用7.2V电池为系统供电。
我们采用512线mini 编码器来构成速度闭环控制,采用OV7725来进行赛道扫描,将得到的图像二值化,提取赛道信息,并以此控制舵机来进行转向。
四、实验步骤4.1车架及各模块安装4.1.1小车整体车架结构车模的整体结构如上图所示,包含地盘,电机等,为单电机驱动四轮车。
车模为但电机驱动,电机安装位置如下:4.1.2摄像头的固定和安装摄像头作为最重要的传感器,它的固定和安装对小车的影响是十分巨大的,摄像头的布局和安装取决于系统方案,反过来又会影响系统的稳定性与可靠性以及软件的编写。
我们的车模为四轮车,所以摄像头架在车子的中间部分,介于电池和舵机之间,这样节省空间而且也不会让重心偏移太大,而摄像头的角度也很有讲究,角度低的时候能看到很远的赛道信息,但是图像较为模糊,不适合图像处理的编写,角度较高是,能看到的图像信息较少,但是分辨率明显更好,在程序的编写中,我们发现摄像头视野的宽广往往直接影响赛道信息提取的精准度。
【数字图像处理】灰度图像二值化
【数字图像处理】灰度图像⼆值化灰度图像每副图像的每个像素对应⼆维空间中⼀个特定的位置,并且有⼀个或者多个与那个点相关的采样值组成数值。
灰度图像,也称为灰阶图像,图像中每个像素可以由0(⿊)到255(⽩)的亮度值(Intensity)表⽰。
0-255之间表⽰不同的灰度级。
灰度图像⼆值化⼆值化:以⼀个值(阈值)为基准,⼤于(等于)这个值的数全部变为是1(或者0),⼩于等于这个数的就全部将他们变为0(或1)。
⼆值化算法处理飞思卡尔赛道思路:设定⼀个阈值valve,对于图像矩阵中的每⼀⾏,从左⾄右⽐较各像素值和阈值的⼤⼩,若像素值⼤于或等于阈值,则判定该像素对应的是⽩⾊赛道;反之,则判定对应的是⿊⾊的⽬标引导线。
记下第⼀次和最后⼀次出现像素值⼩于阈值时的像素点的列号,算出两者的平均值,以此作为该⾏上⽬标引导线的位置。
摄像头的⼆值化的代码:Void image_binaryzation(){for(int i=0;i{for(int j=0;j{if(Image[i][j] >= Threshold)Image_new[i][j]=1;elseImage_new[i][j]=0;}}}Row是对应采集到的⾏数,Col是列数,Image[i][j]是摄像头采集未⼆值化的数据存放的数组,Img[i][j]是新建的存放⼆值化后的数组。
合适的阈值在阈值⼆值化中,最主要的是选取合适的阈值,这也是⼆值化的难点所在。
常⽤的⼆值化阈值选取⽅法有双峰法、p参数法、⼤律法(Otsu法)、最⼤熵阈值法、迭代法等。
⼤律法(Otsu法)Otsu⽅法⼜名最⼤类间差⽅法,通过统计整个图像的直⽅图特性来实现全局阈值T的⾃动选取,其算法步骤为:1) 先计算图像的直⽅图,即将图像所有的像素点按照0~255共256个bin,统计落在每个bin的像素点数量2) 归⼀化直⽅图,也即将每个bin中像素点数量除以总的像素点3) i表⽰分类的阈值,也即⼀个灰度级,从0开始迭代4) 通过归⼀化的直⽅图,统计0~i 灰度级的像素(假设像素值在此范围的像素叫做前景像素) 所占整幅图像的⽐例w0,并统计前景像素的平均灰度u0;统计i~255灰度级的像素(假设像素值在此范围的像素叫做背景像素) 所占整幅图像的⽐例w1,并统计背5) 计算前景像素和背景像素的⽅差 g = w0*w1*(u0-u1) (u0-u1)6) i++;转到4),直到i为256时结束迭代7)将最⼤g相应的i值作为图像的全局阈值缺陷:OSTU算法在处理光照不均匀的图像的时候,效果会明显不好,因为利⽤的是全局像素信息。
飞思卡尔智能车摄像头组技术报告之欧阳引擎创编
第七届“飞思卡尔”杯全国大学生欧阳引擎(2021.01.01)智能汽车竞赛技术报告(校徽)学校:*********队伍名称:******参赛队员:******************带队老师:******关于技术报告和研究论文使用授权的说明本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:摘要本文以第七届全国大学生智能车竞赛为背景,介绍了智能赛车控制系统的软硬件结构和开发流程。
该比赛采用组委会规定的标准车模,以Freescale 半导体公司生产的16 位单片机MC9S12X128为核心控制器,在CodeWarrior IDE开发环境中进行软件开发,要求赛车在未知道路上完成快速寻线。
整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。
为了提高智能赛车的行驶速度和可靠性,对比了不同方案(如摄像头与光电管检测方案)的优缺点,并结合Labview 仿真平台进行了大量底层和上层测试,最终确定了现有的系统结构和各项控制参数。
它采用摄像头对赛道进行检测,通过边缘提取获得黑线位置,用PID 方式对舵机进行反馈控制。
通过速度传感器获取当前速度,采用增量式数字PID控制实现速度闭环,根据预判信息和记忆信息对速度进行合理分配。
同时采用拨码开关和LCD显示屏实现人机交互系统。
测试结果表明,在该控制系统下,自寻迹机器人小车具有良好的位置跟踪和快速切换速度性能。
关键词:智能车,跟踪寻迹,摄像头,传感器,PID,最优曲率ABSTRACTIn the background of the 7nd National Intelligent Car Contest for College Students, this article introduces the soft hardware structures and the development flow of the vehicle control system. This contest adopting the standard model car prescribed by the contest organization committee, using the16-bit MCU MC9S12X128produced by Freescale Semiconductor Company as the core controller, developing under the CodeWarrior IDE, requires the car track the line fast on the road. The whole system includes the aspects of the mechanism structure adjustment, the sensor circuit design and signal process, controlalgorithm and strategy optimization etc.In order to increase the speed and the reliability of the car, the advantage and disadvantage of the different schemes (such as the camera and photoelectric cell scheme) are compared, and a great number of the bottom layer and the upper layer tests are carried on combined with the Labview simulation platform. At last, the current system structure and each control parameters are determined. It captures the road information through a camera, then abstracts the black line position by edge-detection method. After that, PD feedback control is used on the steering. The system obtains the current speed using a speed sensor, so that it can realize the feedback control of the speed by theincreased digital PID algorithm control method. At the same time, the use of an LCD displays trails information and keyboard is used to achieve the man-machine interaction.According to the pre-judge inform and the memorized inform, it allocates the speed properly. The test results showed that the self-tracing robot car had good position tracking and fast speed switching performance .Key words:intelligentvehicle,line track, camera,sensor, PID, optimalcurvature目录第一章:引言11.1背景介绍11.2发展现状11.3章节安排1第二章:系统整体框架22.1系统框架22.1.1硬件系统22.2.2软件系统32.2方案简介4第三章:机械设计43.1汽车行驶的数学模型43.2整体布局与调整63.2.1车模分析63.2.2 车模布局思想73.3机械结构调整73.3.1前后轮定位73.3.2其他机械模块调整83.3摄像头的安装83.4舵机的安装83.5编码器的安装9第四章:硬件电路设计94.1硬件设计方案94.2传感器的选择104.2.1摄像头104.2.2编码器104.3电路设计方案104.3.1单片机最小系统板114.3.2稳压模块电路114.3.3驱动模块电路12第五章:软件系统设计135.1 软件各功能模块设计145.1.1 时钟模块145.1.2 PWM输出模块145.1.3 ECT模块155.1.4外部中断155.2视频采集与图像处理155.2.1摄像头工作原理155.2.2图像处理165.3路径识别思想195.4舵机转向和速度调节205.4.1PID控制算法介绍205.4.2舵机转向控制225.4.3速度控制225.4.4细节控制23第六章:开发环境、调试工具256.1软件开发平台Codewarrior IDE256.2辅助调试方法266.2.1 Labview调试266.2.2人机交互界面266.2.3无线模块27第七章:结论28参考文献28鸣谢292021.01.01第一章:引言1.1背景介绍智能汽车就是一种无人驾驶汽车,也可以称之为轮式移动机器人,主要依靠车内以计算机系统为主的智能驾驶仪来实现无人驾驶。
盲人智能过街辅助系统设计方案
盲人智能过街辅助系统设计-机械制造论文盲人智能过街辅助系统设计王少华1,2吴向东1潘金平1朱磊1覃人波1(1.天津职业技术师范大学,中国天津300222;2.天津市交通安全与控制协同创新中心,中国天津300222)【摘要】介绍了基于飞思卡尔K60单片机的盲人智能过街辅助系统。
在详细分析盲人过街需求的基础上,采用IAR6.3开发平台进行程序设计,基于飞思卡尔K60芯片设计硬件模块,进行超声波和红外测障测距,通过OV7725鹰眼摄像头实现斑马线视频图像采集。
实验室实验结果表明,该系统能够保证盲人走在斑马线中间区域并可避免与障碍物相撞,可有效应用于盲人过街辅助。
关键词盲人;过街;辅助系统;飞思卡尔K60【Abstract】ThispaperintroducesanintelligentintersectioncrossingassistsystemforThe BlindbasedonFreescaleK60.Onthebasisofadetailedanalysisoftheneedsoft heblindmanwhentheyacrossthestreet,ituseIAR6.3developmentplatformf orprogramming,designbasedonhardwaremodulebasedonFreescaleK60c hip,detectswhetherthereexistobstacleswithinadistanceinfrontbymeansofultr asonicandinfraredandachievezebravideoimagebyOV7725Hawkeyecamer a.TheLaboratorytestresultsshowthatthesystemcouldensurethatblindpeo plecanwalkonthecenterofzebraandavoidobstacles,willbehelpfultoassistbl indpeopletoacrossthestreet.【Keywords】Theblind。
halcon 二值化阈值
halcon 二值化阈值在图像处理中,二值化是一种常见且重要的操作。
通过将图像中的像素灰度值映射为黑白两种颜色,从而将图像转化为只有黑白两种颜色的二值图像。
在Halcon软件中,二值化操作是非常常用的,并且Halcon提供了多种二值化阈值的计算方法,以适应不同的图像处理需求。
一、二值化简介二值化是将一幅图像转换为只有两种颜色的图像的过程。
这两种颜色通常是黑色和白色,也可以是其他两种特定的颜色。
二值化可以分割图像中的目标物体和背景,减少图像中的信息量,提取所需的目标特征,用于后续的图像处理和分析。
二、Halcon二值化方法Halcon提供了多种二值化阈值的计算方法,下面将分别介绍常用的几种方法。
1. 固定阈值法固定阈值法是最简单、最直接的二值化方法之一。
通过选择一个固定的灰度值作为阈值,大于该灰度值的像素设为白色,小于该灰度值的像素设为黑色。
具体操作步骤如下:①使用read_image函数将图像读入Halcon中。
②使用threshold函数进行固定阈值化处理,指定阈值。
③使用write_image函数将二值化后的图像保存。
2. 标准差法标准差法是根据图像灰度值的标准差进行二值化的方法。
通过计算整个图像的灰度标准差,将标准差的一定倍数作为阈值进行二值化。
具体操作步骤如下:①使用read_image函数将图像读入Halcon中。
②使用deviation_image函数计算图像的标准差。
③选择适当的倍数作为阈值放入threshold函数中进行二值化处理。
④使用write_image函数将二值化后的图像保存。
3. 迭代方法迭代方法是根据图像灰度直方图的波峰和波谷进行二值化的方法。
通过找到波峰和波谷之间的最佳阈值,进行二值化处理。
具体操作步骤如下:①使用read_image函数将图像读入Halcon中。
②使用gray_histo函数计算图像的灰度直方图。
③使用regulate函数对灰度直方图进行处理,得到平滑的直方图。
基于单片机系统的二值图像实时处理方法
基于单片机系统的二值图像实时处理方法
原新;隋龙
【期刊名称】《微计算机信息》
【年(卷),期】2009(025)029
【摘要】本文介绍了一种基于单片机系统的二值图像实时采集处理方案.该方案采用了飞思卡尔公司的型号为MC9s12DG128单片机,利用该单片机中的比较捕获模块对二值图像进行采集,同时使用了一种安位存储的方法对二值图像进行存储,降低了图像的存储空间和图像处理的数据量.为图像伺服系统提供了一种低成本可靠性强的图像采集及处理方法.
【总页数】3页(P11-13)
【作者】原新;隋龙
【作者单位】150001,哈尔滨,哈尔滨工程大学自动化学院;150001,哈尔滨,哈尔滨工程大学自动化学院
【正文语种】中文
【中图分类】TP368.2
【相关文献】
1.基于实时多任务操作系统μCOS-Ⅱ的C8051F系列单片机应用系统开发 [J], 黄亮亮;朱欣华
2.ERP系统中基于单片机的数控机床实时监测系统设计 [J], 杜道山;田秀英;李从心
3.基于实时操作系统的单片机应用系统设计 [J], 吴强;黄石红;沈玲玲
4.基于多卫星分布式数据处理系统的高分三号卫星数据实时处理方法 [J], 杨军; 曹
筵东; 孙光才; 邢孟道; 郭亮
5.基于多卫星分布式数据处理系统的高分三号卫星数据实时处理方法 [J], 杨军; 曹筵东; 孙光才; 邢孟道; 郭亮
因版权原因,仅展示原文概要,查看原文内容请购买。
飞思卡尔8位单片机-第10章 IIC
• 数据字节没有限制,但每个字节后都必须跟随一个应答位 数据字节没有限制, 应答信号在第9个时钟位上出现, 应答信号在第9个时钟位上出现,主控发送器必须在被控 接收器发送应答信号前,预先释放对SDA线的控制。 SDA线的控制 接收器发送应答信号前,预先释放对SDA线的控制。接收 器在SDA线上输出低电平为应答信号( ),输出高电平为 SDA线上输出低电平为应答信号 器在SDA线上输出低电平为应答信号(A),输出高电平为 非应答信号( 非应答信号(A)。
• 前提:总线时钟4MHz,IIC的时钟为 前提:总线时钟 的时钟为100KHz; , 的时钟为 ;
MULT = 01,对应 mul = 2; 对应 ; ICR = 0; 对应 SCL分数 保持值 = 总线频率 总线频率(Hz)/ (mul * SCL分频数 分频数) 则波特率 分频数 =4000000/(2*20) =100K; (周期 周期10uS) 周期 总线周期(s) 数据保持时间 = 总线周期 * SDA保持值 保持值 = 1/4000000 * 7 = 1.75uS 如果数据保持时间不够,可以修改ICR的数值 比如设置为7,对应的SCL 的数值, 如果数据保持时间不够,可以修改 的数值,比如设置为 ,对应的 分频数为40, 保持值为10, 修改为1,此时100KHz的波特率不 分频数为 ,SDA保持值为 ,将mul修改为 ,此时 保持值为 修改为 的波特率不 但数据保持时间为2.5uS了。 变,但数据保持时间为 了 配置: 配置: SDA hold time is the delay from the falling edge of the SCL (IIC clo ck) to the changing of SDA (IIC data).
7位呼叫地址,紧接着一个读/写位,读写位告诉从器件数据传 位呼叫地址,紧接着一个读 写位 写位, 位呼叫地址 输的期望方向。 输的期望方向。 1 = 读传输,从发送数据给主。 读传输,从发送数据给主。 0 = 写传输,主发送数据给从。 写传输,主发送数据给从。 正好匹配主器件传输的呼叫地址的从器件通过送回一个应答位 响应。 响应。 从机地址由一个固定的和一个可编程的部分构成。例如, 从机地址由一个固定的和一个可编程的部分构成。例如,某些 器件有4个固定的位( 个可编程的地址位( 器件有4个固定的位(高4位)和3个可编程的地址位(低3位), 那么同一总线上共可以连接8个相同的器件。 那么同一总线上共可以连接8个相同的器件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
局部自适应二值化
局部二值化也有一个缺陷。这个缺陷存在于那个统一阈值的选定。这个阈值是没有经过合理的运算得来,一般是取该窗口的平局值。这就导致在每一个窗口内仍然出现的是全局二值化的缺陷。为了解决这个问题,就出现了局部自适应二值化方法。
编辑本段分类根据阈值选取的不同,二值化的算法分为固定阈值和自适应阈值。 比较常用的二值化方法则有:双峰法、P参数法、迭代法和OTSU法等。[1]
局部自适应二值化,该方法就是在局部二值化的基础之上,将阈值的设定更加合理化。该方法的阈值是通过对该窗口像素的平均值E,像素之间的差平方P,像素之间的均方根值Q等各种局部特征,设定一个参数方程进行阈值的计算,例如:T=a*E+b*P+c*Q,其中a,b,c是自由参数。这样得出来的二值化图像就更能表现出二值化图像中的细节。
编辑本段方法全局二值化
一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个全局的阈பைடு நூலகம்T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色(或者黑色),小于T的像素群的像素值设定为黑色(或者白色)。
全局二值化,在表现图像细节方面存在很大缺陷。为了弥补这个缺陷,出现了局部二值化方法。
一幅图像包括目标物体、背景还有噪声,要想从多值 二值化
的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(BINARIZATION)。
图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。