掌控板之仿真电子沙漏

沙漏也叫做沙钟,是一种古老的时间测量装置。一般由两个玻璃球和一个狭窄的连接管道组成的。沙子从充满了沙子的上部玻璃球穿过狭窄的管道流入下部玻璃球,每次流完所需的时间是相对固定的,这样一个沙漏就可以对应一个固定的时间值了。影响时间的因素包括填充物的多少、玻璃球内壁的曲线形状、颈部管道的宽度、填充物的类型和质量等因素。

我们利用掌控板的仿真功能,一起来制作一个仿真版的掌控板电子沙漏吧(图1)。

掌控板之仿真电子沙漏

在利用编写电子沙漏程序代码的前,我们需要明确几个知识点。

1.OLED屏能显示多少字

掌控板屏幕的分辨率是128*64,显示分辨率就是屏幕上显示的像素点个数,一个汉字要占用12*16个像素,一个英文占用8*16个像素。按照这个屏幕分辨率,长度是128,128/12=10.67,也就是一排最多显示10个汉字。高度是64,64/16=4,也就是最多显示4排,也就是一屏最多40个汉字。同样最多可以显示4排英文,共64个字母(图2)。

掌控板之仿真电子沙漏

2.正切值

正切值是指是直角三角形中,某一锐角的对边与另一相邻直角边的比值,tanα=b/a。

对于任意一个实数x,都对应着唯一的角,而这个角又对应着唯一确定的正切值tanx与它对应,按照这个对应法则建立的函数称为正切函数。正切是tanα=b/a,一个角的正切值永远是不变的(图3)。

掌控板之仿真电子沙漏

3.掌控板三轴加速度

最后需要了解的是掌控板的三轴(X、Y、Z)三轴加速度,由于掌控板内置拥有加速度传感器,能够测量由于重力引起的加速度,我们可以利用mPython软件仿真模拟掌控板的运动过程。X:向前和向后倾斜,Y:向左和向右倾斜,Z:上下翻转。由于电子沙漏只需要使用到上下翻转我们便需要用到Z轴加速度。

以上这些便是我们制作电子沙漏需要用到的知识点,理解透彻之后,我们可以动手开始编写代码程序了。我们需要先确定沙漏的外形外貌以及漏沙的过程,如图3所示。在掌控板界面中我们绘制了上下两个相对的等腰三角形,确定五个点的坐标:左上(0,0)、右上(127,0)、左下(0,63)、右下(127,63)和中心(63,31)。

确定角α的正切值,就是tanα=32/64=0.5,由于整个大三角形是等腰三角形,所以它的对角正切值也就是0.5,当Y等于1时,X就是等于2,这样可以把所有三角形的三个顶点坐标推算出来(图4)。

掌控板之仿真电子沙漏

通过mPython软件进行代码的编写,首先绘制两条对角线形成一个X形状,这样上下就会形成两个三角形,其次通过循环对两个三角形中的内容进行填充,通过循环的方式给两个三角形(两部分主要是沙漏上半部分和沙漏下半部分)进行绘制填充,图4给大家提供了掌控板的Z轴加速度为正数时电子沙漏成正立变化关系图,当掌控板的Z轴加速度为负数时候,电子沙漏成倒立关系,小陈老师已经列出沙漏正立关系变化图,看看聪明的你能不能也表示出倒立关系图呢(图5)。

掌控板之仿真电子沙漏

具体代码如图6:

掌控板之仿真电子沙漏

通过掌控板的仿真工具我们完成了沙漏的计时过程,效果还是非常逼真的,小陈老师这里追加一个思考题,如果想控制沙漏滴漏的过程时长为1分钟,该如何实现此效果呢?聪明的你快来动手尝试吧。

期待你们能够给我带来惊喜。

来源:电脑报评论

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月21日
下一篇 2022年2月21日

相关推荐