CUPT乒乓球实验报告

合集下载

CUPT乒乓球实验报告 ppt课件

CUPT乒乓球实验报告 ppt课件
﹡在录制的视频中找出它们的第N次最高点,记 录数据。
5
• 实验数据处理与分析
1.乒乓球第一次弹起的高度与所装水的体积的关系 如下表所示
水体 积ml
2.7
5
10
20
22. 5
25
27. 5
30
full
空 球
高度 /cm
39
35
14
10
20
25
35
55
65
70
将上表格中的数据在坐标纸上描绘出来如下图所示
6
7
数据分析: 由图表可以看出随着水体积的增加,
乒乓球第一次弹起的高度以先减小,后 增大趋势进行的,如果把水的量细分的 话,那么图像将呈“对号”的形状。 而且可以看出图像的最低点大约在小球 体积一半的位置处,即16.75ml处。 ★理论分析:当球内装的液体V<16.75ml
8
时,在球撞击地的时候,由于小球的壳有一个由扩张 到收缩而引起的振动,并且水有一个动能和势能相互 交换而引起的振动,所以这两部分振动会消耗一部分 整个小球的能量,而且在球升起的时候,水的部分动 能会转化为中央水柱的势能,但是,在水柱最高的时 候,也不会触及球顶。因此,随着水体积的增加,振 动消耗的能量会越来越大,水柱也会逐渐的升高,当 水的V= 16.75ml的时候,振动消耗的能量会达到一个 最大值,并且水柱刚好和球顶接触,此时,球的第一 次弹起来的高度有一个极小值;当V> 16.75ml时,振 动消耗的能量会慢慢减小,所以乒乓球会持续上升。 同样,随着水体积的增加,振动消耗的能量会越来越 少,因此乒乓球的高度越来越high,直到乒乓球内充满 水,这时水的高度将达到最大值。
9
2.球内装不同体积(V>16.75ml)的液体 对球弹起高度的影响

plc乒乓电路实验报告

plc乒乓电路实验报告

plc乒乓电路实验报告实验名称:PLC乒乓电路实验实验目的:1. 了解PLC控制器的基本原理和应用方式2. 掌握PLC的硬件组成结构3. 学会PLC程序编写和下载,及其调试方法4. 通过乒乓球控制案例,学会PLC的实际应用实验原理:PLC的硬件组成结构分为五部分:1. 中央处理器CPU:PLC的核心部件,负责控制、计算和通信。

2. 输入/输出模块I/O:接受外部信号输入与输出信号输出,与被控对象连接。

3. 记忆器:存储PLC程序和数据。

4. 电源装置:提供稳定的工作电压。

5. 外壳:将上述部分装配在一起形成完整的PLC。

乒乓球控制实验案例:硬件:1. PLC可编程逻辑控制器2. 可编程控制器编程线3. 可编程控制器通信线4. 电源线5. 开关、电机等元件6. 乒乓球控制机构软件:1. PLC编程软件2. 仿真软件实验流程:1. 硬件组装:按照实验要求将硬件组合连接。

2. 编写程序:编写PLC程序,以操纵控制机构模拟乒乓球控制运动。

3. 下载程序:将编写好的程序通过编程线下载到PLC中。

4. 调试程序:通过仿真软件模拟实验过程,完成程序的调试。

5. 实验验证:运行实验,验证PLC程序的正确性和应用价值。

实验结果:通过本次实验,我们成功了解了PLC的基本原理、硬件组成结构和应用方式,熟练掌握了PLC程序编写和下载的方法和调试技巧,并通过乒乓球控制实验案例,深入掌握了PLC的实际应用。

结论:PLC控制器是一种现代化、全自动化的物理装置,具有可编程、多功能、集成化和可靠性高等特点,是现代工业控制领域的主力军之一。

在实际应用中,PLC可根据需要进行编程,控制机构模拟各种复杂的运动状态,如乒乓球控制。

PLC控制器的操作灵活,具有自动、半自动和手动控制等多种工作模式,具备广泛的应用前景。

PLC控制器的应用越来越广泛,在各种行业的自动化设备中已经占据了重要地位。

在加工制造行业中,PLC控制器主要应用于各种生产线的控制和自动化设备的精密控制,如机器人控制,焊接机控制,流水线控制等。

2017CUPT实验总结报告

2017CUPT实验总结报告

2017CUPT实验总结报告2017CUPT实验总结报I题目真空火箭炮姓名学号指导教师实验地点实验时间 17.04.01-2017.06.25 一、问题综述Vacuum bazookaA ‘vacuum bazooka’ can be built with a simple plasticpipe, a light projectile, and a vacuum cleaner. Build sucha device and maximise the muzzle velocity.用一个塑料管,一个物体和一个真空吸尘器来制作一个真空火箭炮,并且最大化出口速度。

关键词:塑料管、真空吸尘器、最大化、出口速度二、实验原理及初步试验该实验实质上是利用了大气压强差来对管内物体加速,当管内气体被抽出后,管内气压小于外界气压,密封端被打开后物体便会在压强差的作用下加速前进。

如图一所示:试验中的测速我们采用物体长度除以经过光电门时间的方法来进行速度的计算。

光电门由32单片机制作,精度为微秒级别。

二、理论分析模型一:认为物体与管道完美契合,不考虑能量损耗。

假设在水平放置的装置中抛射物质量为m,横截面积为A,空气密度为ρ。

抛射物初始位置为X=0.且靠近小球一段的封口处内外压强差一直为P0,运动时抛射物和其后方的空气柱一起加速。

由动量定理可得:P0At=(m+ρxA)dxdt对该方程进行求解可得出口速度表达式:V(x)=√P0ρ.√1−1(1+Aρxm)2由理想表达式可以看出物体质量、横截面积、管长、初始压强差均对出口速度均有影响。

可对这些因素的影响进行单一变量实验分析。

三、实验&数据分析实验一:物体质量与速度的关系该部分实验在其它条件不变的情况下,通过改变物体质量来探究物体质量与出口速度的关系。

炮弹长:88.20mm 管长:183mmcm 面积:1541mm^2重量/g 20.933.3549.9566.5583.15103.9时间/ms2.4 2.93.5 3.6 3.7 3.7时间/ms2.43.0 3.5 3.7 3.7 3.7时间/ms2.43.2 3.5 3.7 3.7 3.8平均 2.40 3.033.50 3.67 3.73.73速度m/s 36.7528.9225.2 24.0323.8323.65得出结论:相同情况下,物体质量越小,出口速度越大实验二:物体面积与速度的关系该部分实验是在其它情况不变的情况才,通过改变物体受力面积来探究物体面积与出口速度的关系。

乒乓球实验报告

乒乓球实验报告

实验报告1.设计任务要求,实现功能的描述。

两人乒乓游戏机是用8个发光二极管代表乒乓球台,,用发光二极管的移动来代表球的移动。

在游戏机的两侧各设一个开关,用来控制发球和击球。

两人按照比赛规则来按动开关。

当甲方按动开关,甲方的第一盏灯亮,然后发光二极管依次由甲向乙移动。

代表球的移动。

当球过网后到达乙方的倒数第二盏灯时,乙方可击球。

若乙方提前或是没有击中球,则甲方的记分牌自动加分。

然后重新发球,比赛继续进行。

一直进行到有一方的记分牌到达11分,该局结束。

胜方的局数加1。

重新开始一局。

2.设计思路和总体框图.首先,设置了一个可枚举类型的参量,用来控制整个过程。

其中包括未发球时的等待状态,灯顺序点亮的状态,因为灯亮的顺序有两个,一个是向甲方,一个是向乙方。

所以,相应的状态设了两个。

在此参量的控制下,整个程序实现其基本功能。

在各个状态时,实现灯的点亮和判断是否有键按下,再判断是否加分,是否加局数,是否清零。

状态转移图:3.分块电路设计(1)分频与防抖动设计了该程序中需要用到的所有时钟。

注意的是按键的扫描周期一定要高于灯亮的周期。

由于实验中有按键,加了防抖动的程序。

此程序是书中有的。

(2)状态的描述。

根据可枚举型的参变量作为敏感信号。

根据他的变化决定灯的走向和判断是否有键按下。

(3)状态的输出根据状态描述的状态决定灯的亮否,以及设计了一个标志信号f,用它来判断是否满足加分的条件。

因为数码管显示的是两位的数,用一个内嵌循环来计数。

(4)显示控制和译码输出利用片选信号决定选通哪一个数码管。

并且,给共阴极七段数码赋值显示数字。

4.总体电路图(图形法)5.仿真波形6.源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pingpang isport(clk,sa,sb:in std_logic;ball: buffer std_logic_vector(0 to 7);score:out std_logic_vector(0 to 6);con:buffer std_logic_vector(0 to 3));end pingpang;architecture tennis of pingpang issignal clk1 : std_logic;signal tmp1: integer range 0 to 100000;signal clk2 : std_logic;signal tmp2: integer range 0 to 24;signal flag: std_logic;type states is(s0,s1,s2,s3,s4,s5,s6);signal state:states;signal stop,s,ql:std_logic;signal scorea1,scorea2,scoreb1,scoreb2:std_logic_vector(0 to 3); signal dd:integer range 0 to 100;beginp1:process (clk)beginif(clk'event and clk='1')thenif(tmp1=100000) thentmp1<=0;clk1<=not clk1;elsetmp1<=tmp1+1;end if ;end if ;end process p1;p2:process (clk1)beginif(clk1'event and clk1='1')thenif(tmp2=24) thentmp2<=0;clk2<=not clk2;elsetmp2<=tmp2+1;end if ;end if ;end process p2;p3:process(clk2)variable ballvar:integer range 0 to 9; beginif(clk2'event and clk2='1')thenif(stop='1') thenif(flag='0') thenif (ballvar<8)thenballvar:=ballvar+1;else ballvar:=0;end if ;elseif(ballvar>1)thenballvar:=ballvar-1;else ballvar:=9;end if;end if;elseballvar:=0;end if;case ballvar iswhen 1=>ball<="10000000";when 2=>ball<="01000000";when 3=>ball<="00100000";when 4=>ball<="00010000";when 5=>ball<="00001000";when 6=>ball<="00000100";when 7=>ball<="00000010";when 8=>ball<="00000001";when others=>ball<="00000000";end case;end if;end process p3;p4:process(clk1)beginif(clk1'event and clk1='1')thencase state iswhen s0=>stop<='0';if(ql='1')thenscorea1<="0000";scorea2<="0000";scoreb1<="0000";scoreb2<="0000";ql<='0';elseif(dd=100)thendd<=0;if (sa='1' and sb='0')thenstate<=s1;elsif(sa='0' and sb='1') thenstate<=s4;else state<=s0;end if;else dd<=dd+1;end if;end if;when s1=>stop<='1';if (sa='1' and sb='0')thenstate<=s1;end if;flag<='0';if(sa='0' and sb='1' ) thenstate<=s3;elsif(ball="00001000")thenstate<=s2;else state<=s1;end if;when s2=>stop<='1';flag<='0';if (sa='1' and sb='0' and ball/="00001000")then state<=s6;elsif(sa='0' and sb='1') thenstate<=s4;elsif(ball="00000000") thenstate<=s3;else state<=s2;end if;when s3=>stop<='0';if(scorea2="0001" and scorea1="0001")thenql<='1';elseql<='0';if(scorea1="1001")thenscorea2<=scorea2+1;scorea1<="0000";elsescorea1<=scorea1+1;end if;end if;state<=s0;when s4=>stop<='1';if (sa='0' and sb='1')thenstate<=s4;end if;flag<='1';if(sa='1' and sb='0') thenstate<=s6;elsif(ball="00010000") thenstate<=s5;else state<=s4;end if;when s5=>stop<='1';flag<='1';if (sa='0' and sb='1' and ball/="00010000")then state<=s3;elsif(sa='1' and sb='0') thenstate<=s1;elsif(ball="00000000") thenstate<=s6;else state<=s5;end if;when s6=>stop<='1';if(scoreb2="0001" and scoreb1="0001")thenql<='1';elseql<='0';if(scoreb1="1001")thenscoreb2<=scoreb2+1;scoreb1<="0000";elsescoreb1<=scoreb1+1;end if;end if;state<=s0;end case;end if;end process p4;p5:process(clk1)variable count:integer range 0 to 3; beginif(clk1'event and clk1='1')thenif(count<3)thencount:=count+1;else count:=0;end if;case count iswhen 0=>con<="0111";when 1=>con<="1011";when 2=>con<="1101";when 3=>con<="1110";end case;end if;end process p5;p6:process(con)variable s:std_logic_vector(0 to 3); beginif(con="0111")thens:=scorea1;elsif(con="1011")thens:=scorea2;elsif(con="1101")thens:=scoreb1;elsif(con="1110")thens:=scoreb2;end if;case s iswhen "0000"=>score<="1111110";--0 when "0001"=>score<="0110000";--1when "0010"=>score<="1101101";--2when "0011"=>score<="1111001";--3when "0100"=>score<="0110011";--4when "0101"=>score<="1011011";--5when "0110"=>score<="1011111";--6when "0111"=>score<="1110000";--7when "1000"=>score<="1111111";--8when "1001"=>score<="1111011";--9when others=>score<="0000000";end case;end process p6;end tennis;7.故障及问题分析(1)延时设置不正确,导致数码管无法正常显示,后来发现是把数码管相关的两个延时概念搞混了,把数码管本身的显示延时和数字刷新延时搞反了,导致数码管无法正常显示.(2)一开始没设置防抖程序,结果发现在某些特定的时刻波动开关就会造成程序不正常运行.后来在必要位置加上防抖程序才使程序基本正常运行,看来防抖很必要啊.(3)在最后验收的时候老师竟然发现了一个逻辑错误,哎,至今没发现原因及解决方案……8.总结和结论该次实验,使我对一些语句的执行有了更深的体会。

微机综合实践-模拟乒乓球比赛

微机综合实践-模拟乒乓球比赛

一、实践环节任务与要求选题:模拟乒乓球比赛设备:单脉冲电路,可编程并行接口8255,可编程定时计数器8253,LED流水灯,七段数码管,开关等。

要求:1.利用实验仪上的单脉冲电路模拟参赛者击球,LED流水灯表示乒乓球移动,一方击球后,球立即向对方移动,一方失误则丢分,用数码管分别计分。

2.球移动速度用8253 芯片来定时;可通过拨动开关设定不同击球速度。

二、实验原理1.8253定时器选用方式0,实现定时功能。

两个七段数码管要实现连续显示,必须每隔5~10ms刷新一次,而灯移动速度为300~500ms。

设定定时周期为5ms,当计数停止,8253输出高电平时,分别显示比分的高位和低位。

经过一定数量的定时周期后,再进行灯移动的操作。

2.8255并行接口A口B口分别用来控制LED流水灯及数码管的显示,C 口则用于读入各开关状态及输出数码管片选信号。

3.单脉冲开关模拟击球,当8255读入脉冲信号为高电平时,通过判断灯当前移动方向和击球者,来确定灯下一次的移动方向。

4.LED流水灯表示乒乓球移动,灯每次移动应留有足够的时间给操作者拨动调速开关,或按下脉冲开关。

5.七段数码管与比赛同步显示比分,显示0~f相应的16进制控制数为0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7b,0x71。

三、 硬件接线图280H288H+5V 2Mz 时钟脉冲四、程序框图out击球判断子函数:五、源程序程序源代码如下:(含注解)#include <stdio.h>#include <conio.h>#include <string.h>#include <iostream.h>#include "ApiEx.h"#pragma comment(lib,"ApiEx.lib") int pa=0x280;int pb=0x281;int pc=0x282;int pn1=0x283;int p0=0x288;int p1=0x289;int p2=0x28a;int pn2=0x28b;ints[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7b,0x71}; // 0 1 2 3 4 5 6 7 8 9 a b c d e f void leddic(unsigned char &led, int f) //灯移动函数{int x=led;if(f==0) x=x/2; //若方向向右,灯向右移动一个else if(f==1) x=x*2; //若方向向左,灯向左移动一个else printf("Error!");led=x;}void speed(int &s) //球速控制,从8255C口读入开关状态,{ //若为高电平,调整速度为高速unsigned char data;int x,y,z;PortReadByte(pc,&data);x=data;y=data;z=data;x=x&4;y=y&0;z=z&1;if(x==0){{ if(y==0) s=200;}{ if(z==0) s=20; }else {{ if(y==0) s=100;}{ if(z==0) s=5; }}}void scorem(int m) //通过数码管显示比分{unsigned char data;data=s[m];PortWriteByte(pc,0x20); //选择数码管高位PortWriteByte(pa,data); //显示甲得分}void scoren(int n){unsigned char data;data=s[n];PortWriteByte(pc,0x10); //选择数码管低位PortWriteByte(pa,data); //显示乙得分}void start(unsigned char &led, int &f,int &s,int m,int n) //发球子函数{unsigned char data;int x;PortWriteByte(pn2,0x57); //8253计数器1初始化,低八位,方式3,控制字01010111B PortWriteByte(p1,0x10); //8253计数器1计数初值10for(;1<2;){speed(s);PortReadByte(pc,&data);x=data;x=x&1;if(x==1) //若甲发球,灯从左往右{led=0x80;f=0;break;}x=data;x=x&2;if(x==2) //若乙发球,灯从右往左{led=0x1;f=1;break;}x=data;x=x&8;if(x==1) //当8253输出为高电平时,显示甲得分{scorem(m);}else //当8253输出为低电平时,显示乙得分scoren(n);}}void out(unsigned char &led, int &f,int &m,int &n) //判断球是否出界,即选手得分{if(f==1) //球向左运动时{if(led==0x0) //球超出左边界{printf("乙得分!\n");n++;printf("比分:");printf("%d-%d",m,n);printf("\n\n");}}else //球向右运动时{if(led==0x0) //球超出右边界{printf("甲得分!\n");m++;printf("比分:");printf("%d-%d",m,n);printf("\n\n");}}if(((m==11)&&(m-n>=2))||((m>11)&&(m-n>=2))) //判断整局比赛的胜负{printf("此局甲获胜!重新计分!\n\n\n");m=n=0;}else if(((n==11)&&(n-m>=2))||((n>11)&&(n-m>=2))){printf("此局乙获胜!重新计分!\n\n\n");m=n=0;}}void attack(unsigned char &led,int &s, int &f,int &m,int &n) //击球子函数{unsigned char data;int x,y;STA:printf("请发球!\n");start(led,f,s,m,n);PortWriteByte(pn2,0x51); //8253计数器1初始化,低八位,方式0,控制字01010001B Red:PortWriteByte(pb,led);for(int i=1;i<=s;i++){PortWriteByte(p1,5); //8253计数器1计数初值5Goo:PortReadByte(pc,&data);x=data;y=data;y=y&8;if(y==0) goto Goo; //当8253未输出高电平时,继续读入if(i%2==1)scorem(m);else scoren(n);if(f==1) //球向左运动{x=x&1;if((x==1)&&(led>=0x10)) //球靠近甲且甲击球{f=0; //调整球的运动方向为向右}}else //球向右运动{x=data;x=x&2;if((x==2)&&(led<=0x8)) //球靠近乙且乙击球{f=1; //调整球的运动方向为向左}}}leddic(led,f);out(led,f,m,n);if(led==0x0){PortWriteByte(pb,led);goto STA;}goto Red;}void main(){unsigned char led;int f=1,s=0; //f为灯移动方向,默认向右;s为灯移动速度int m=0,n=0; //m为甲得分,n为乙得分Startup(); //打开设备PortWriteByte(pn1,0x81); //8255初始化,A口B口输出,//C口高位输出,低位输入,控制字10000001B PortWriteByte(pn2,0x27); //8253计数器0初始化,高八位,方式3,控制字00100111B PortWriteByte(p0,0x20); //8253计数器0计数初值2000attack(led,s,f,m,n); //调用击球子函数Cleanup(); //关闭设备}六、结论实现了能够计分、同步显示比分的模拟乒乓球比赛。

模拟乒乓球比赛实验报告

模拟乒乓球比赛实验报告

实验原始记录专业、班级_______ 姓名_______ 同组人姓名_________ 课程名称__________________ 实验名称________________ 实验记录:实验日期任课教师一、实验目的:培养综合运用数字电子技术知识进行简易数字电子系统设计,及利用EWB软件进行仿真的能力。

二、实验任务:1.选题:模拟乒乓球比赛电路模拟乒乓球比赛通过设计,采用数字芯片实现乒乓球左右移动、选手击球、得分、累计得分到9分报警等功能。

该设计三个双向开关S1、S2、S3分别作为裁判和两选手的击球动作,同时选手可以从译码显示器上直接读出自己的得分,具有操作简单、结构清晰的优点。

2.设计目标:该模拟乒乓球比赛电路主要有4块电路:时钟信号产生电路、球台驱动电路、控制电路和计分电路。

其中球台电路主要实现选手击球完毕后球的左右移动显示位置功能;控制电路实现选手击球、裁判功能;计分电路具有当选手击球有效时加分和当选手的分数累计到9分时报警功能。

3.设计要求:1)用8个发光二极管表示球,将8个发光二极管排成一条直线,以中点为界,两边各代表参赛双方的位置,其中点亮的发光二极管代表“乒乓球”的当前位置,点亮的发光二极管依次由左向右或由右向左移动。

用两个开关和2个发光二极管分别表示AB两个球员的球拍;2)一方发球后,球以固定的速度向另一方运动(发光二极管依次逐个点亮),当球达到另一方的最后一个二极管时,参赛者应立即按下自己一方的按钮,即表示击球,若击中,则“球”向相反方向运动,若未击中,则对方得1分。

A、B各有一个数码管计分。

3)裁判有一个按钮,用来对使选手准备,每次得分后按下一次。

三、设计注意事项:1)选用Workbench含有的芯片。

2) 原理设计时不要用芯片管脚图连线。

3)仿真时SSI 选用理想器件,不要用芯片连线。

4)仿真时电路中用到的CP 脉冲, 要求用555设计CP 脉冲源。

四、 电路设计:2. 时钟信号:由555定时器构成多谐振荡器用来产生时钟信号:1121213()ln0.7()23cc ccw cc ccV V t R R C R R C V V -=+≈+-22223l n 0.713ccw ccV t R C R C V =≈U3脉冲周期:12120.7(2)w w T t t R R C=+=+重复频率:121.431(2)f TR R C=≈+ 占空比:11212(2)w t R R q TR R C+==+最终使用该电路产生频率1Hz 的时钟信号。

乒乓球实验报告

乒乓球实验报告

东南大学《乒乓球比赛》微机课程设计实验报告姓名:王祎学号: 08008401 专业:自动化实验室:计算机硬件技术实验时间: 2010年10月26日报告时间: 2010年10月28日评定成绩:审阅教师:目录一、实验目的与内容 (2)二、总方案设计及原理 (3)(一)比赛规则 (3)(二)面板设计 (3)(三)方案流程图 (3)三、方案实现与测试 (5)(一)各模块硬件设计 (5)(二)整体硬件连线图 (6)(三)系统框图 (7)(四)主程序设计 (7)(1)主程序流程图 (7)(2)主要程序片段 (9)(五)子程序设计 (11)(1)延时子程序 (11)(2)屏幕显示子程序 (12)(3)数码管扫描比分子程序 (13)(4)移动速度选择子程序 (16)(5)规定等待时间选择子程序 (17)四、程序设计中遇到的问题及解决方法 (18)五、分析与总结 (18)附录 (19)一. 实验目的与内容1)基本要求用8个LED 发光管(红黄绿)的来回滚动显示来模拟打乒乓球时乒乓球在两边球台上的来回运动。

比赛双方用按钮/开关(双方各用1个按钮/开关)来模拟发球与接球,即发球方按动其控制的按钮/开关,球从发球方一侧向另一方运动(LED发光管从发球方到对方逐个点亮,滚动显示),当球运动至接球方时,接球方立即按动其控制的按钮/开关,“击球”使球“弹回”发球方一侧,如此周而复始,直至在规定的击球时间内有一方未能完成击球动作,从而对方得一分,然后继续比赛。

比赛规则可参照一般的乒乓球比赛规则。

要求:(1) 球以每0.5秒滚过1个LED的速度移动;(2) 回球需在球到达后的0.5秒内进行(按下按钮),否则按失球计;(3) 球未到达提前按下按钮按失球处理,不起回球作用;(4) 在PC机上显示比赛过程,同时用2个八段数码管显示比分(按10进制计数,初始值 0:0,可自行设计显示及规则,可简化为0-9,也可为0-99);(5) 要求精确计时。

乒乓球实验报告

乒乓球实验报告

乒乓球游戏机实验报告课程名称:测控技术设计与开发姓名:班级: 10101121指导教师:张启升一、实验目的用指定的msp430 平台构造一个乒乓球游戏机。

系统结构如图所示,msp430通过两条I/O 信号输出两组脉宽调制波,经过低通滤波器提取脉宽调制的均值电压,输入到双通道示波器中。

示波器工作在X/Y 模式。

示波器屏幕上的光电代表乒乓球。

乒乓球在X/Y 电压的控制下在屏幕上移动。

图1 系统结构示意图二、实验要求2.1基本要求:1.构造两组无源低通滤波器,达到用脉宽调制方式控制球的目标2.制作放大器,使运动范围在示波器的 X轴,Y轴方向上可调3.实现乒乓球左右弹射并能控制落点位置发挥部分:1.使用两个按钮分别控制左侧击球和右侧击球2.建立成败机制,并用 LED灯光表示3.建立记分机制,并用串口显示比分4.连续按键产生高抛球5.利用片内 flash加入比分断电自保存功能2.2 MSP430 介绍MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。

称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。

该系列单片机多应用于需要电池供电的便携式仪器仪表中。

名为LaunchPad 的MSP-EXP430G2 低成本试验板是一款适用于TI 的MSP430G2xx 系列产品的完整开发解决方案。

其基于USB 的集成型仿真器可提供为全系列MSP430G2xx 器件开发应用所必需的所有软、硬件。

LaunchPad 具有集成的DIP 目标插座,可支持多达20 个引脚,从而使MSP430 器件能够简便地插入LaunchPad 电路板中。

三、实验原理PWM波实现波形产生:由MSP430的产生2路PWM波,分别有P2.1口和P2.4口输出,P2.1口输出的是占空比按抛物线形(采集抛物线码表)变化的PWM波,经过低通滤波器滤波之后,就可以产生抛物线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
2.球内装不同体积(V>16.75ml)的液体 对球弹起高度的影响
数据如下表所示
第N次
1
2
3
4
5
体积
27.5ml 53
16
6
30.0ml 55
22
13
8
4
Full (满水)
62
33
20
9
5
10
• 绘制的图表如下:
11
数据分析: 有图表可以看出: ☆ 在同一N次时,含水体积多的球处于一个较
高的位置。所以,液体体积对球的影响,不 仅仅是只作用于第一次弹起来的高度,而且 在以后的最大高度都会相似的影响。 ☆ 不同体积的液体对第N次最大高度的影响不 同。随着次数的增多,三个小球的第N次高 度的差距是减小的。
• 实验器材 照相机、乒乓球、水、洗洁精、注射器、 米尺、胶水
实验装置图:
4
一、乒乓球第N次弹起的最大高度与所装水的体 积的关系:
﹡分别准备含水体积为2.7、5、10、20、22.5、 25、27.5、30、full(ml)的9个乒乓球和一 个空球
﹡将这九个球分别于高于地面100cm处释放,用 录像机记录下他们的运动过程
﹡在录制的视频中找出它们的第一次最高点,记 录数据。
13
3.乒乓球第一次弹起的最大高度与所装液体黏度之 间的关系;
数据如下表所示:
洗洁精与
水的体积
0:5
1:4
2:3
3:2
4:1
5:0

第一次弹
起高度
40
51
55
51 41.6 42.3
14
• 数据分析: 由表格数据可以看出随着小球内液体黏 度的增加,小球第一次弹起的最大高度 总体趋势是先增大,后减小的。并且在 2:3时达到一个极大值。
6
7
数据分析: 由图表可以看出随着水体积的增加,
乒乓球第一次弹起的高度以先减小,后 增大趋势进行的,如果把水的量细分的 话,那么图像将呈“对号”的形状。 而且可以看出图像的最低点大约在小球 体积一半的位置处,即16.75ml处。 ★理论分析:当球内装的液体V<16.75ml
8
时,在球撞击地的时候,由于小球的壳有一个由扩张 到收缩而引起的振动,并且水有一个动能和势能相互 交换而引起的振动,所以这两部分振动会消耗一部分 整个小球的能量,而且在球升起的时候,水的部分动 能会转化为中央水柱的势能,但是,在水柱最高的时 候,也不会触及球顶。因此,随着水体积的增加,振 动消耗的能量会越来越大,水柱也会逐渐的升高,当 水的V= 16.75ml的时候,振动消耗的能量会达到一个 最大值,并且水柱刚好和球顶接触,此时,球的第一 次弹起来的高度有一个极小值;当V> 16.75ml时,振 动消耗的能量会慢慢减小,所以乒乓球会持续上升。 同样,随着水体积的增加,振动消耗的能量会越来越 少,因此乒乓球的高度越来越high,直到乒乓球内充满 水,这时水的高度将达到最大值。
﹡在录制的视频中找出它们的第N次最高点,记 录数据。
5
• 实验数据处理与分析
1.乒乓球第一次弹起的高度与所装水的体积的关系 如下表所示
水体 积ml
2.7
5
10
20
22. 5
25
27. 5
30
full
空 球
高度 /cm
39
35
14
10
20
在坐标纸上描绘出来如下图所示
原因分析 :看以由实验现象得出小球的晃
动随着浓度的增大而越来越剧烈。
15
• 小球注入粘度大的液体(这里我们注入的是洗涤精) 与水(粘度较小的液体)的情况是不相同的,当小球 注入粘度大的洗洁精在撞地时,由于粘度较大它很可 能黏在球壁上,液体会沿着球壁运动就会给一个沿乒 乓球表面切向方向的力,这样球便会自旋,也就是液 体的部分能量转为球的自旋动能。我们从实验中可以 看出球再次接触到地面的时候会很快的滚动前进(自 旋小球与地面接触时,受地面一个水平方向的摩擦 力),所以小球的部分能量会传给小球自旋的动能 Ek1,而且黏度大的液体会减弱水的振动,减少振动 引起的能量损失Ek2。这两部分的能量的差值共同影 响球的能量,所以球的高度会随着黏度的不同而改变, 可以得出当我们注入一定比例的水与洗洁精时,它有 一个弹起最大高度,也就是在2:3、3:2之间有一个合 适的黏度,使球的两部分能量差值达到一个最小值不 容易使球可以弹得比较高。
跳动着的小球
1
• 实验目的 1 探究小球谈起的高度和球内所 装液体体积的关系; 2 探究小球弹起的高度和球内所 装液体的浓度的关系; 3 探究液体体积和浓度对小球弹 起高度影响的原因。
2
• 实验假设 乒乓球弹起的高度与球内所装的液体
的体积和黏度有关。 • V球=33.5ml;M球=2.738g
3
16
12
二、乒乓球第一次弹起的最大高度与所装液体黏 度之间的关系:
﹡确定乒乓球内液体的体积为5ml,分别配置洗 洁精与水体积比为0:5、1:4、2:3、3:2、4:1、 5:0六种不同黏度的液体。
﹡分别取上述不同黏度的液体5ml注于六个相同 的乒乓球内
﹡将这六个小球分别于高于地面100cm处释放, 用录像机记录下他们的运动过程
相关文档
最新文档