tag 标签: engine

相关博文
  • 热度 29
    2015-6-12 18:17
    1583 次阅读|
    0 个评论
    “When I was a boy of 14, my father was so ignorant I could hardly stand to have the old man around. But when I got to be 21, I was astonished at how much the old man had learned in seven years.” — Mark Twain   When I was a young parent I knew pretty much everything about raising children. As time passed life and circumstances challenged many of those core beliefs. One of the most remarkable things about guiding kids from birth to adulthood is just how much the parent learns.   One of those key principles was that none of our kids would have a car in high school. Sure, they could use ours, but I felt owning a car would be a distraction that could lead to no good. After all, I wasn’t allowed to own a car till college, and what was good enough for me…   Yet some of my friends in high school had parents who were more tolerant. We worked on their cars. A lot. Rebuilt engines, swapped transmissions, did the brakes, etc. I learned an enormous amount about machinery by getting my hands greasy.   When he turned 16 my son asked if he could buy an old VW microbus. Hey, I had one in my twenties and even lived in it for a year while saving for a boat. My initial negative response was met with a carefully-reasoned argument about how much he would learn, and that, after all, these were so old they’d probably never run. Then he said he had saved $1200 doing summer jobs so could afford this.   I relented. He bought two junkers with a little financial help from us, both 1977 vintage, both with seized engines, one with a bad transmission, and both with lots of other problems.   In 1980, living in an apartment, I realized there were three VW engines in the living room and porch, all of which I was rebuilding for friends and family. After finishing those I swore I’d never do another. Now we had my son’s engines in the basement. The two of us spent a winter companionably rebuilding one, using parts from the other as well as new parts where needed (cylinders and pistons). We turned the two dead vehicles into one working one over the course of a year.   His friends all predicted failure; the bus would never be done. They saw those boxes of parts and couldn’t imagine how a working engine could emerge from the chaos. I kept telling him it was just an engine; we were a lot smarter than it. Each part has a purpose, a place, each bolt gets a certain torque, and the pieces, one at a time, would come together to form a working whole.   Parents of teenagers know how hard it can be to maintain a civil relationship with those morons young people. This project bound us closer and kept us talking in a positive way.   Today Graham is a physicist. Last year he replaced the engine and transmission in his jeep. He has a mastery of the intellectual domain as well as the mechanical world. The bus project was a big part of what gave him the knowledge and confidence to understand this technical world and to fix things.   I’d like to say, per the title of this piece, that all teenagers need this sort of experience, but the truth is that kids differ. My daughter never had the slightest interest in anything technical or mechanical. Despite the same opportunities, today she doesn’t know which end of a screwdriver to hold.   Over the last couple of months I’ve gotten a lot of “kids these days” emails from readers, lamenting a variety of problems with youth who are victims of technology rather than competent masters of it. Some complain about young engineers with little mechanical aptitude, or an attitude that if Google can’t return an answer quickly, there is no answer. I’m not keen on “kids these days” grumbling, as every generation has had the same complaint. Kids these days are, well, kids, and are still learning. In the workplace it’s our job to mentor them. In the family we need to provide them with learning opportunities.   For me ham radio, TV repair, and the like were gateways into electronics. But working on cars gave me mechanical competence. The maker movement, Arduino, and the like are wonderful ways to teach young folks about modern electronics. I do think a rounded individual should also understand how stuff works in general. How a piston does its thing. How air conditioning works. The difference between torque and horsepower.   The teenage years are very formative. Try to give your youngster opportunities to develop mastery of this very complex world, to feel confident about breaking out a toolbox rather than calling a handyman or AAA when something goes wrong.
  • 热度 24
    2015-4-14 23:30
    1512 次阅读|
    0 个评论
    引言 据媒体报道,我国由于后视镜盲区造成的交通事故约占30%。而且,随着“考驾照”热不降温的现象出现,未来的汽车后视镜盲区问题更是不容小觑。数字社会的形成为数字化实时监控提供了契机,汽车后视场景的数字化实时监控成为解决后视镜盲区问题的研究热点。 目前,市场上已经出现了一些数字化的汽车监控系统,常见的有分屏显示的监控系统、有缝拼接的监控系统和第8代“卫星”全景行车安全系统。分屏显示的监控系统只是对图像进行简单的分屏显示,不能实时地将车辆周围的景象显示在屏幕上;有缝拼接的监控系统不是将图像简单地叠加,而是对图像拼接处理,形成中间是车子,周围是图像的全景图,缺点在于四个图像拼接之处存在明显的拼接缝;第8代“卫星”全景行车安全系统采用超广角摄像头,它能够更好地消除图像拼接之处的拼接缝,形成汽车全景俯视图。 Android系统具有平台开放性,而且谷歌的“开放汽车联盟(OAA)”致力于实现汽车与Android设备的无缝连接以及直接在汽车上内置Android车载系统;DM3730 集成了1GHz的ARM Cortex-A8核和800MHz的TMS320C64x+ DSP核,DSP在数字信号处理上具有无可比拟的优势,更适合进行图像处理。因此,基于Android和DM3730设计的车载分布式视频监控系统有着广阔的应用前景。 车载分布式视频监控系统集成了Android平台的开放性、ARM+DSP的高性能、以太网的可扩展性和USB摄像头的即插即用性,对实现汽车数字化实时监控有研究意义和应用价值。 1系统的整体设计 车载分布式视频监控系统由视频采集模块、视频传输模块、视频拼接模块和视频显示模块四个模块组成。图1展示了系统的整体设计,图2展示了系统各模块之间的硬件接口。 图1 车载分布式视频监控系统整体设计示意图 图2 车载分布式视频监控系统硬件接口框图 ① 视频采集模块:AM3715开发板通过USB-HOST接口外接USB摄像头,通过Android操作系统的Java本地调用接口 (JNI)和V4L2 (video 4 linux 2)视频驱动框架实时采集视频并显示。 ② 视频传输模块:两个(或多个)AM3715和DM3730开发板之间通过以太网相连,利用RTP组播协议和自定义同步机制将USB摄像头采集的图像实时传输至DM3730开发板的ARM端。 ③ 视频拼接模块:DM3730开发板的ARM端运行嵌入式Linux操作系统(或Android操作系统),通过TI Codec Engine模块同时在ARM端和DSP端映射共享内存,使得同步接收的两幅(或多幅)图像能够被ARM和DSP同时访问。针对车载应用扩充嵌入式计算视觉库(EMCV),并移植和优化SURF开源项目OpenSURF,DSP端能够实时拼接两幅(或多幅)图像,最后将拼接结果由共享内存返回ARM端。 ④ 视频显示模块:视频显示是通过跨平台多媒体库SDL(Simple DirectMedia Layer)来完成的。其中,AM3715开发板显示分离的USB摄像头图像,DM3730开发板显示拼接完成的图像。 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析 2 视频采集传输和显示 2.1 Android V4L2视频采集模块 V4L2从Linux 2.5.x版本的内核开始出现,为使能UVC驱动和V4L2编程框架,首先需检查Android内核配置选项,以生成视频设备文件/dev/videoX(X表示次设备号)。 利用V4L2进行USB摄像头视频采集的流程 包括:(1)打开视频设备文件;(2)检查设备属性;(3)设置视频格式;(4)帧缓冲区管理;(5)循环采集视频;(6)关闭视频设备。 V4L2介于应用程序和硬件设备之间,应用程序可以通过三种方式访问内核层的数据:直接读/写方式、内存映射方式和用户指针方式。直接读/写方式需要在用户空间和内核空间不断拷贝数据,效率低下;内存映射方式把内核地址映射到用户地址空间,进程可以直接读写内存,避免了数据的拷贝,具有较高的效率;用户指针方式的内存片段是由应用程序自己分配的。 车载分布式视频监控系统采用效率较高的内存映射方式,系统调用mmap()能够将内核地址映射到用户地址空间。 2.2 RTP视频传输模块 鉴于以太网具有高速的传输能力和良好的可扩展性能,车载分布式视频监控系统通过RTP组播的方式在Android系统与嵌入式Linux系统之间传输USB摄像头采集的图像。文献 描述了利用RTP库JRTPLIB实现视频实时传输的过程。为了确保两个AM3715开发板与DM3730开发板之间图像传输的同步性,车载分布式视频监控系统设计了同步传输协议,协议描述如下: (1)发送端 ① 每个发送端等待来自接收端的视频帧请求命令’R’,否则不执行发送操作。 ② 收到帧请求命令后,发送端首先向组播地址发送视频帧传输开始标识0xFE,以标识一帧视频传输的开始。 ③ 将YUY2格式的图像依次向组播地址传输,每次传输m行,传输n次,并在每个RTP数据包的首字节位置添加RTP包传输序号(序号从0开始,依次增1)。假设YUY2图像宽度为width,高度为height,由于平均一个像素占2B,所以每次传输的RTP包数据大小为(2m*width+1)B,传输次数n = height/m。 ④ 传输结束时,向组播地址发送视频帧传输结束标识0xFF,以标志一帧视频传输的结束。 (2)接收端 ① 接收端向组播地址发送帧请求命令’R’,然后启动软件电子狗,并处于阻塞等待状态。 ② 若软件电子狗计时结束时仍未被喂狗,说明网络通信出现故障,重新向组播地址发送帧请求命令’R’,并重启软件电子狗。 ③ 依次接收来自每个发送端的RTP数据包,并根据IP地址和RTP包传输序号还原每帧视频,直至收到视频帧传输结束标识0xFF。 2.3 SDL视频显示模块 YUV格式在存储方式上分为打包格式(Packed Format)和平面格式(Planner Format),打包格式的Y、U、V三个分量连续交叉存储,而平面格式的Y、U、V三个分量分开存储。实验中USB摄像头采集的图像格式是YUY2格式,而经过拼接完成的图像是YV12格式。YUY2格式是一种打包格式,以4:2:2方式打包,每个像素保留Y分量,而UV分量在水平方向上的采样率仅为Y分量的1/2,即存储顺序为 …… 。YV12是一种平面格式,UV分量在水平方向和垂直方向上的采样率均为Y分量的1/2。特殊地,YV12格式在UV提取时,需先将图像划分为若干个2 x 2的方阵,然后在每个方阵上提取一个U分量和一个V分量。例如,对于6x4的图像,YV12的采样方式如下图所示,其存储顺序为 。 YV12采样方式示意图 SDL支持FrameBuffer,利用SDL可以在Android和Linux上直接显示YUY2和YV12格式的图像,不需要经过YUV格式到RGB格式的转换。不同的是,标准Linux的FrameBuffer设备文件为/dev/fb0,而Android Linux的FrameBuffer设备文件是/dev/graphics/fb0。利用SDL显示YUV格式图像的流程包括:(1)初始化视频设备;(2)设置视频显示模式;(3)创建YUV覆盖层;(4)轮询事件处理;(5)绘制YUV覆盖层;(6)显示YUV覆盖层;(7)释放YUV覆盖层;(8)退出SDL。 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析 3 ARM+DSP双核视频拼接模块 3.1 Codec Engine双核通信设计 Codec Engine是ARM和DSP通信的桥梁,采用远程过程调用(RPC)的思想。ARM端作为客户端,DSP端作为服务器端,ARM和DSP之间的通信链路是共享内存,通信协议是DSP Link。Codec Engine有专门的内存管理驱动CMEM来管理ARM和DSP之间的共享内存,CMEM以内存池或内存堆的方式管理一个或者多个连续的物理块内存并提供地址转换(虚拟地址和物理地址之间的转换)功能。 Codec Engine有核心引擎接口和VISA接口。核心引擎接口包括引擎的初始化接口、引擎运行状态的控制接口和内存的系统抽象层接口;VISA接口包括视频编/解码接口、音频编/解码接口、图像编/解码接口和语音编/解码接口。VISA接口的使用分为VISA创建、VISA控制、VISA处理和VISA删除四部分,图3展示了通过VISA控制/处理的流程。 图3 VISA 控制/处理示意图 Codec Engine的使用分为创建应用程序、实现Codec算法和集成Codec Server三部分。应用程序运行在ARM端,通过调用核心引擎接口和VISA接口与DSP进行通信;对于符合XDM(eXpressDSP Digital Media)规范的Codec算法,Codec Engine的VISA接口不需要附加条件就能支持远端运行,对于符合XDAIS(eXpressDSP Algorithm Interface Standard)规范的非XDM算法,必须提供Codec Engine的存根和骨架中间件才能支持远端运行;Codec Server运行在DSP端,负责管理调度不同的Codec算法。 车载分布式视频监控系统接收端使用视频编码接口(VIDENC_)实现ARM端调用DSP端基于SURF的图像拼接算法。应用程序的执行流程如图4所示。 图4 车载分布式视频监控系统接收端应用程序流程图 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析 3.2基于SURF的视频拼接 系统采用SURF算法检测特征点和描述特征点。SURF具有尺度和旋转不变性,对光照和视点变换具有不错的鲁棒性,并且经过优化后可以满足实时性要求。根据特征点之间的欧氏距离进行粗匹配,使用RANSAC(随机一致性)方法去除错匹配点,计算图像之间的透视变换矩阵,最终采用渐入渐出平均法融合图像。 针对本系统,可以对算法进行进一步的优化,提高系统的实时性。由于系统中摄像头的位置相对固定,因而可以预先计算图像之间的重叠位置,不需检测完全没有图像重叠的区域;同时,由于摄像头相对位置不变,图像之间的透视变化矩阵不会变化,因此可以只计算一次透视变化矩阵,后续拼接使用第一次的透视变化矩阵,可进一步提高实时性。 (1)SURF特征点检测 SURF特征点检测是在尺度空间中进行的,并使用Hessian矩阵行列式值检测特征点,尺度为σ的点X(x,y)的Hessian矩阵H(X,σ)定义如式(3-1),其中L xx (X,σ),L xy (X,σ),L yy (X,σ)为在尺度σ下的高斯函数的二阶偏导数在图像点X处的卷积。 SURF使用基于积分图的盒型滤波器(box filter)近似此高斯卷积过程,图3-2所示为9*9盒型滤波器对分别对x,y,xy方向的二维高斯滤波的近似。通过近似,将在点X(x,y)的二维高斯卷积转化为对其周围的加权计算过程,在此加权计算过程中,使用积分图计算图3-2中黑色矩形区域和白色矩形区域灰度值之和,将高斯滤波中的大量的乘法运算转换为简单的加减运算。 设对x,y,xy方向的二维高斯卷积的近似分别用D xx ,D yy ,D xy 表示,则可以通过式(3-2)近似Hessian矩阵H(X,σ)行列式值,其中w通常取0.9。当Det(H(X,σ))0时,D xx 0时,点X(x,y)为局部极小值点;D xx 0时,X(x,y)为局部极大值点。找到极值点后,在3×3×3空间中判断点X(x,y)是否比它周围的26个点都大或者小,如果是,则该点被视作候选特征点,然后对候选特征点在尺度空间中进行亚像素级插值,得到特征点的坐标。 图3-2 9×9的x方向,y方向,xy方向盒型滤波器 Det(H(X,σ))≈D xx *D yy -(w*D xy ) 2 (3-2) (2)SURF特征点描述 特征点描述主要分两步:第一步是获取特征点的主方向,主要目的是为了保证旋转不变性。第二步是生成64维的特征点描述符,主要目的是描述特征点的特征。 为了获取特征点的主方向,计算以特征点为中心,半径为6σ(σ为特征点所在的尺度)内的所有点在x,y方向的Harr小波响应。并选取一个大小为60度的扇形窗口旋转整个圆形区域,将窗口内所有x,y方向的响应值相加得到一个新矢量,最终以最长的矢量所在的方向作为特征点的主方向。 特征点描述需要将坐标轴旋转到主方向上,并将以特征点为中心的边长为20σ的区域划分为4×4个子窗口,每个子窗口分为5×5个采样点,计算每个采样点的沿主方向和垂直主方向的Harr小波响应,记为d_x和d_y,最终生成一个4维矢量v=(∑d x ,∑d y ,∑|d x |,∑|d y |),并将其归一化。总共4×4个子窗口,生成64维的描述符。 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析 3.3 SURF在DM3730上的移植和优化 (1)SURF的移植 SURF算法实现基于OpenCV1.0,OpenCV库针对x86架构作了许多优化,在DSP上的执行效率难以得到保证。EMCV是一个可运行在DSP上的OpenCV库,但只实现了部分OpenCV的数据结构和库函数。因此,车载分布式视频监控系统需要扩充EMCV库,以支持SURF在DM3730上的运行。扩充的库函数包括:cvAdd、cvAddWeighted、cvConvertScale、cvCvtColor、cvGEMM、cvInvert、cvMerge、cvResetImageROI、cvResize、cvSVD、cvSetImageROI、cvSplit、cvWarpPerspective。 为了便于EMCV库的扩充和优化,EMCV库通过CCS(Code Composer Studio)软件以lib静态库的形式提供给Codec算法使用,如下所示: packageti.sdo.ce.examples.codecs.videnc_mosaic.emcv{ } functiongetLibs(prog){ var name = null; if (prog.build.target.isa == "64P") { var name = "emcv.lib"; print(" will link with " + this.$name + ":" + name); } return (name); } 此外,为了消除SURF对C++标准模板库的依赖,车载分布式视频监控系统设计了专门的容器结构和相应的操作,主要代码如下: typedefstruct _Vector{ void *pdata; // 数据块首地址 int count; // 数据块元素数目 int size; // 数据块已用大小 int totalSize; // 数据块总大小 }Vector; #define PRE_CALLOC_SIZE 20 // 预分配元素个数 /* 添加nElem个元素,每个元素大小elSize */ intvector_pushback( Vector *pVector, intnElem, intelSize ){ int n = nElem PRE_CALLOC_SIZE? nElem:PRE_CALLOC_SIZE; if(pVector-size + nElem*elSize= pVector-totalSize ){ pVector-size += nElem*elSize; pVector-count += nElem; return 0; }else{ // 预分配的内存不足,需重新分配内存 pVector-totalSize += n*elSize; void *pNewData = (void*)realloc( pVector-pdata, pVector-totalSize ); if(pNewData ){ pVector-pdata = pNewData; pVector-size += nElem*elSize; pVector-count += nElem; return 0; }else{ // 内存分配失败 return -1; } } } /* 销毁容器,释放内存 */ voidvector_destroy( Vector*pVector ){ if(pVector-pdata ){ free(pVector-pdata ); pVector-pdata = NULL; } pVector-size = pVector-count = pVector-totalSize = 0; } (2)SURF在DM3730上的优化 SURF在DM3730上的优化分为项目级优化、指令级优化和缓存优化三个方面。项目级优化是通过合理地选择和配置相关的编译器优化选项,主要包括:调试模式选项(Debugging Model)、优化等级选项(opt_level)、代码大小选项(opt_for_sapce)、代码速度选项(opt_for_speed)、程序级优化(-op)等。为了最大限度地提高代码的执行效率,车载分布式视频监控系统选择的编译器优化选项为-o3、-ms0、-mf5、-op2、-mt、-mh、-mw。指令级优化包括选择合适的数据类型,消除指令和数据之间的相关性,使用内联(intrinsic)函数以及改善软件流水等。缓存优化是将CPU近期访问过的数据或者程序放置在Cache中,以提高CPU的执行速度。 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析 4 测试结果及分析 图6展示了车载分布式视频监控系统的拼接效果,表1比较了SURF和SIFT算法在DM3730和PC机上的拼接效率。从拼接效果可以看出,车载分布式视频监控系统能适应图像的平移、旋转和缩放等特性。图6中的两幅待拼接的图像存在明显的旋转特性,并且拼接完成的图像有一定的缩放效果。从表1中可以看出,车载分布式视频监控系统在视频采集、视频传输和视频显示上总耗时约为257ms,远远小于视频拼接所需时间3264ms。这是由于视频拼接模块使用了许多EMCV和OpenCV库函数,它们在DM3730处理器上还有待进一步被优化。作为SIFT算法的加速版,SURF算法的执行效率要远远大于SIFT算法的执行效率。从本次测试结果看,在DM3730上,SURF算法的执行效率是SIFT算法执行效率的3.68倍左右;而在以Intel Core2 Duo T5870为处理器的PC机上,SURF算法的执行效率是SIFT算法执行效率的1.40倍左右。 在摄像头相对位置固定情况下,图像之间的透视变化矩阵固定,因此只需计算一次透视变化矩阵,后续的图像拼接只需进行图像配准和融合。表2中列出了DM3730上SURF算法的时间组成,其中SURF算法透视变换矩阵计算时间占95%以上,实际的图像拼接时间为图像配准和如何时间,平均时间约为66ms。 结语 本文从视频采集、视频传输、视频拼接和视频显示等四个方面详细阐述了基于Android和DM3730的汽车分布式视频监控系统的设计原理和优势。从测试结果看,车载分布式视频监控系统基本上能达到实时采集、实时传输、实时显示,经过优化后,图像拼接的效率基本能满足实时性要求,但系统整体性能还有待提高,可以采用多核处理器代替单核处理器,进一步提高系统的实时性。 参考文献 Google launches the Android-based Open Automotive Alliance with Audi, Honda, GM, and more, The Verge, January 6, 2014. Instruments T. DM3730, DM3725 Digital Media Processors . Tech. Rep. July, 2011. Lee Y H, Chandrian P, Li B. Efficient java native interface for android based mobile devices //Trust, Security and Privacy in Computing and Communications (TrustCom), 2011 IEEE 10th International Conference on. IEEE, 2011: 1202-1209. 龚泽挚, 蓝晓柯, 郑雅羽. 基于 Android 和 DM3730 的视频编码软件开发 . 电视技术, 2013, 37(17): 76-79. 胡楠. EMCV 库扩充及车辆检测系统的嵌入式实现 . 大连海事大学, 2011. 于海. OpenSURF在TI DM642上的移植 . 电子科技, 2012, 25(5): 133-136. 王飞, 孔聪. 基于 V4L2 的 Linux 摄像头驱动的实现 . 电子科技, 2012, 25(2): 86-87. 赵学良. 基于 Android 的流媒体引擎设计与实现 . 电子科技大学, 2012. Bay H, Tuytelaars T, Van Gool L. Surf: Speeded up robust features //Computer Vision–ECCV 2006. Springer Berlin Heidelberg, 2006: 404-417. 杨小辉, 王敏. 基于 ASIFT 的无缝图像拼接方法 . 计算机工程, 2013, 39(2): 241-244. 刘旭. 多图像全景拼接技术研究 . 武汉理工大学, 2012. 【分页导航】 第1页: 系统的整体设计 第2页: 视频采集传输和显示 第3页: ARM+DSP双核视频拼接模块 第4页: 基于SURF的视频拼接 第5页: SURF在DM3730上的移植和优化 第6页: 测试结果及分析
  • 热度 22
    2015-3-27 14:07
    1404 次阅读|
    0 个评论
    It's strange how things sometimes seem to come at you in waves. For example, I've recently been inundated with messages from friends pointing me at incredible mechanisms that make me squeal "Ooh, Shiny!" in a high-pitched voice (I'm not proud of doing it; I'm working on self-control).   Let's start with my chum Joe in the UK. He sent me this link saying: "Here’s one that will have you drooling..." He was right!     Next, we have this video of the most amazing Fletcher Capstan Table. All I can say is that this is a thing of beauty and a joy to behold. I would love to build something like this, but I fear it is far beyond my capabilities.     Well, I was still drooling over the table when my chum Jay pointed me toward this video of a mind-boggling James Bond-esque cabinet (if James had lived in the 16th century). The real magic is how hidden weights are used to power the various mechanisms. Once again, I would love to create something that had a fraction of this beauty's capabilities.     Last but not least, for the moment, we have another offering from Jay -- this video of the most incredible model engine. The engine starts off running slowly -- then speeds up -- then speeds up again. As you will see, this little scamp boasts incredibly high precision; I only wish my truck engine was half as balanced.     So, what do you think? You have to admit that these are all rather tasty. Which impressed you the most? And which would you most like to own if you got the chance?
  • 热度 17
    2013-10-25 19:24
    1183 次阅读|
    0 个评论
    I grew up in a city large enough to rightly call itself a city, yet small enough that kids still had considerable freedom to roam the streets. During the summer, we lacked much in the way of formal activities, but we found all kinds of unusual things to keep us busy. One favourite past time was to follow the garbage truck around on trash day. My home town didn't have trucks (actually still doesn't!) that grab the trash cans and automatically dump the trash into the storage area. Instead, a couple of bouncer-sized guys muscled around the trash by themselves. It was in piles by the roadside. It was fascinating to see what sorts of things people threw out. Each of the neighbourhood kids was after a different kind of treasure. I was always on the lookout for anything that I could take apart. By following the garbage truck, I learned about all sorts of things like TVs, cassette decks, toys, and occasionally even handheld electronic games. Through the course of my adventures with the garbage truck, I came across a discarded lawn mower. I think that there was something wrong with the wheels, so I decided to walk it back to my house for further investigation. In retrospect, my parents were remarkably tolerant of me bringing other people's rubbish home, but I guess it beat the alternative of having their son dismantle things they owned that were in perfectly good working order. Over the next few days I tore apart the mower to find out exactly what made it tick. For the most part, I was able to figure out the basic operating principles. But my dad had to explain how the spark was made, and I doubt that that either of us really knew how the carburetor worked. After poking around as much as I could, I put the mower back together to see if it would actually run. It took some fiddling around with the carburetor but after many pulls on the starter rope, it roared to life. The mower sat in our back yard for a few weeks until I got the idea that maybe I could try making some money with it. So I started talking to my neighbours, and I found one who was interested in having me mow his lawn. I should note here that my home town gets a lot of rain in the summer and grass can grow pretty quickly. This particular neighbour liked to let his grass grow until it was about a foot tall before he would call me to come over and mow. I guess it was a cost saving measure, but the first few times that I mowed his lawn, it was a real beast to get through his wet jungle of a yard. Still, I was young and with seemingly all the time in the world I would eventually triumph over every blade. But the novelty quickly wore off, and I decided to see if I couldn't make my work a little easier. The lawn mower had a governor, which consisted of a plastic vane that was moved by a blower on the top of the engine. In theory, this should have kept the mower at a nice, even speed when greater resistance was put on the engine. But in reality, the mower would bog down and stall if I wasn't careful. I was curious to see what would happen if I removed the governor completely. On the first start, I slowly revved the engine while making sure that I wasn't in range of where I thought the piston would fly should the engine fail. As it turned out, the engine didn't fail. In fact, I could now rev it to about triple its previous speed. I was ecstatic, but I didn't stop there. I figured that if I was going to make my job easier, I might as well try sharpening the blade to a fine point. It was pretty dull, but after acquainting it with my dad's bench grinder for about fifteen minutes, I now had a blade that I was sure could tear through even the densest vegetation. That lawn mower didn't let me down. Not only did it make quick clippings of my neighbour's lawn, it also shreddred the odd toys that his kids left on the lawn. A ground mole or two may also have suffered unintended harm. Pretty soon word got around about me and my miracle mower, and I took on many more clients in the neighbourhood. For a few years, that lawn mower put enough money in my pockets that I was able to go out with friends and do things without the burden of a real job. Jack Buffington, Graduate Student, submitted this article as part of Frankenstein's Fix, a design contest hosted by EE Times (US).  
相关资源
  • 所需E币: 1
    时间: 2023-4-26 14:32
    大小: 88.31MB
    SurfaceElectromyography-Physiology,Engineering,andApplications,IEEEPress
  • 所需E币: 1
    时间: 2023-4-23 22:54
    大小: 10.28MB
    上传者: EPTmachine
    A.J.MARTYR,MAPLINT-EngineTesting,FourthEdition_TheDesign,Building,ModificationandUseofPowertrainTestFacilities-Butterworth-Heinemann(2012).pdf
  • 所需E币: 0
    时间: 2022-5-7 10:26
    大小: 6.42MB
    2001年韦恩州立博士论文:activedampingofengineidlespeedoscillationbyapplyingadaptivepidcontrol
  • 所需E币: 0
    时间: 2022-5-5 15:54
    大小: 149.75KB
    CodingTipsforLatticeSynthesisEngine(LSE)(lattice)
  • 所需E币: 0
    时间: 2022-3-4 21:14
    大小: 118.6KB
    上传者: samewell
    DM6446的CodecEngine原理及应用.pdf
  • 所需E币: 4
    时间: 2022-1-6 08:37
    大小: 176.95KB
    上传者: ZHUANG
    基于AreGIS+Engine的GIS开发的系统设计与实践
  • 所需E币: 0
    时间: 2020-8-18 22:40
    大小: 2.34MB
    上传者: LGWU1995
    TI-DLP5531-Q1LightEngineEvaluationModuleUser'sGuide
  • 所需E币: 4
    时间: 2020-4-7 11:48
    大小: 793.11KB
    上传者: wsu_w_hotmail.com
    an4855GPSreceiverengineGP2000GPSReceiverHardwareDesignApplicationNoteAN4855ISSUE2.0October1999ThisApplicationsnoteshouldbeusedinconjunctionwiththefollowingliterature(availablefromwww.zarlink.com)DataSheetReferenceDS4056DS4374DS4077DS3553DS4808PartNoDescriptionGP2010GP2015GP2021P60ARM-BGPSOrionGPSRFFrontEndGPSRFFrontEnd12ChannelCorrelatorARM60-B32BitRISCprocessor12ChannelGlobalPositioningSystem-ReceiverDesignDescriptionThisapplicationnoteshowshowtoconstructacomplete12-channelGPSreceiverengineusingtheGP2000chipsetfromZarlinkSemiconductor.TheGPSOrionisusedasthereferenceforthisenginedesign.ThecriticalpartofthereceiverdesigninvolvestheplacementoftheRFreceivercomponentsinrelationtothedigitalcomp……
  • 所需E币: 5
    时间: 2019-12-25 12:48
    大小: 668.31KB
    上传者: 238112554_qq
    Opna:手机应用软件开发平台DESIGNSTRATEGIESANDMETHODOLOGIESOpna:手机应用软件开发平台作者:手机平台软件是大势所趋因此,有越来越多的业内人士认为,田雨苗手机平台软件对于产品多样化和新技术的眼下的手机市场,总是给人一产品经理支持,极大地满足了手机厂商对于产品快种“乱花渐欲迷人眼”的感觉。音乐手北京博动科技有限公司机、商务手机、游戏手机,各种功能层出速上市的需求,它在手机产业链中的异军不穷。手机的风格更是让人目不暇接,有突起实是大势所趋。关键词:时尚的、简约的、奢华的等等。而手机厂手机软件平台客户化商要应对当前手机市场林林总总的变化,PollexOpna1.8就是在这样一种行……
  • 所需E币: 3
    时间: 2019-12-25 11:21
    大小: 19.12KB
    上传者: 978461154_qq
    MiniGUI体系结构之四图形抽象层和输入抽象层及NativeEngine的实现(二)……
  • 所需E币: 4
    时间: 2019-12-25 11:21
    大小: 23.94KB
    上传者: givh79_163.com
    MiniGUI体系结构之四图形抽象层和输入抽象层及NativeEngine的实现(一)……
  • 所需E币: 3
    时间: 2019-12-24 21:39
    大小: 193.28KB
    上传者: 二不过三
    帮您快速入门TI的CodecEngine帮您快速入门TI的CodecEngine德州仪器半导体技术(上海)有限公司通用DSP技术应用工程师崔晶德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了。继DM644x之后,TI又陆续推出了DM643x,DM35x,DM6467,OMAP353x等一系列ARM+DSP或ARM+视频协处理器的多媒体处理器平台。很多有很强DSP开发经验或ARM开发经验的工程师都转到达芬奇或通用OMAP(OMAP353x)平台上开发视频监控、视频会议及便携式多媒体终端等产品。大家都面临着同一个问题,那就是如何实现ARM和DSP或协处理器的通信和协同工作?TI的数字视频软件开发包(DVSDK)提供了CodecEngine这样一个软件模块来实现ARM和DSP或协处理器的协同工作。有很多工程师反馈这个软件模块非常好用,节省了很多开发时间,也有工程师认为TI提供的资料太多,不知如何快速上手。本文将从一个第一次接触CodecEngine的工程师角度出发,归纳TI提供的相关资源(文d档,例程和网络资源)并介绍相关开发调试方法帮您快速入门CodecEngine。1.CodecEngine概述rete如图1所示,CodecEngine是连接ARM和DSP或协处理器的桥梁,是介于应用is层(ARM……
  • 所需E币: 4
    时间: 2019-12-24 19:48
    大小: 93.26KB
    上传者: 2iot
    Abstract:Thisarticlediscussestherequirementsanddesignconsiderationsforautomotiveapplications,includingthoseforenginecontrol,infotainment,andbodyelectronics.ItalsodiscussesseveralMaximdevicesthatareidealforautomotivepowerapplications.Maxim>DesignSupport>TechnicalDocuments>ApplicationNotes>Automotive>APP5346Maxim>DesignSupport>TechnicalDocuments>ApplicationNotes>Power-SupplyCircuits>APP5346Keywords:automotive,powercontrol,infotainment,bodyelectronics,enginecontrol,powertrain,ISO9000,TS16949Apr02,2012APPLICATIONNOTE5346PowerControlforAutomotiveApplicationsBy:MasayukiNakagawaApr02,2012Abstract:Thisarticlediscussestherequirementsanddesignconsiderationsforautomotiveapplications,includingthoseforenginecontrol,infotainment,andbodyelectronics.ItalsodiscussesseveralMaximdevicesthatareidealforautomotivepowerapplica……
  • 所需E币: 4
    时间: 2019-12-24 17:59
    大小: 375.42KB
    上传者: quw431979_163.com
    摘要:本应用笔记讨论了一个计算引擎(CE)的代码,支持目前谐波电压,电流和功率信号测量。进行跟踪带通滤波器,其中心频率可编程的测量功能。从的宽带VARh计算的数字全通滤波器用于改善的VARh测量的频率响应。此CE的代码包含Teridian公司/马克西姆71M6531数据表中所述的标准CE代码的所有其他功能。71M6531AMaximIntegratedProductsBrandAPPLICATIONNOTEAN_6531_017MARCH2011CE31A06-HarmonicAnalysisIntroductionMaximisintroducinganewcomputeengine(CE)codethatsupportsmeasuringharmonicspresentonthevoltage,current,andthepowersignalstouseforanalysis.Themeasurementfunctionsareperformedbyatrackingband-passfilterwhosecenterfrequencyisprogrammable.AbroadbandVARhcalculationusingadigitalall-passfilterisutilizedinthisCEcodetoimprovethefrequency……
  • 所需E币: 5
    时间: 2019-12-24 17:55
    大小: 354.59KB
    上传者: givh79_163.com
    摘要:本应用笔记讨论共同偶尔78M6612,78M6618,78M6613电能计量集成电路的示范GUI安装和使用时遇到一些困难。主题包括:FTDI设备驱动程序没有正确安装;NI运行时引擎库没有正确安装的NI-VISA库没有正确安装;GUI停止更新的GUI提供了奇怪的测量数据和GUI的反应是缓慢的。这些困难的解决方案。78M661xAMaximIntegratedProductsBrandGUITroubleshootingAPPLICATIONNOTEAN_661x_043September2010IntroductionCommondifficulties(andtheirrespectiveresolutions)encounteredwhileinstallingandusingtheDemonstrationGUIarepresentedbelow.Thefirstthreeitemsareinstallationissuesandmustbeverifiedoperationalintheirorderofpresentation(i.e.……
  • 所需E币: 5
    时间: 2020-1-13 14:10
    大小: 761.43KB
    上传者: 16245458_qq.com
    AudioEngineAudioEngine功能介绍与市场应用YAMAHASemiconductorDivision2006.AprilCONFIDENTIAL手机的流行趋势1.游戏“中国的手机游戏产业伴随网络环境的不断改善,以及WAP、JAVA、BREW等技术平台的开发、完善和拓展,手机游戏产业已逐渐呈现规模化趋势”-摘自CCID2.音乐-音乐手机低端的音乐手机-(仅支持MP3)注重成本,少量的音效效果音乐手机-功能更强大,更专业,音质效果出众CONFIDENTIALApril2006音乐手机的要求1.内存容量,128M,256M……雅马哈的优势2.能长时间播放MP3音质效果3.CONFIDENTIALApril2006ProductRoadmapseriesMultiAudiocodecAE-273i7BDAMPDAMPLowpowerconsumption7i7128CODECfunctionDAMP5Si25SiAudio-inWidestereo5i25i5S64Audio-in555352BMP3,AACdecoderMP3decoder53+WMA,OggdecoderMP3,AAC,HEAAC,eHEAACdecoderDAMPAnalogless5D53D321416ADPCM5251MP3,AAC,HEAACdecoderWidestereoBasic40FM+PCMAudiodecoderincludedCONFIDENTIALApril20064产品命名规则MA-?(……