点击题目地址,得到一个压缩包,解压后会发现有12个音频,和两张图片。
这是什么鬼,我读了一遍题:
运行轨迹?这是什么鬼。果断百度一下:这事红帽杯的题,突然,就兴奋了。不过,看的有的吗,懵逼。
现在想想学长天天说自己什么也不会,说自己是misc选手。这就是赤裸裸的炫耀啊。这道题应该有些步进电机驱动的东西,反正我是搜的是L298N(就是图片上的名字),看的我是一脸懵逼。
我反正是先走一步看一步。先把音频转化换成二进制吧。大概原理就是让高音是1,低音是0;
我使用python编写的,因为C语言不会读取文件;在python中用wav库就可以了,像这样:“rb”是读取二进制,千万不要用“r”,用r就错了,前面的引号里面是路径,转义符号要用两个\,用一个它直接转义了读取不到\。
我们在获取这个音频的参数:getparams是获取音频信息,也就是这个:
我们再把提取的信息分开:
我们需要用程序来帮我们写出1和0,用字符串比较合适,数字的话,有些麻烦,字符串只要整一个加号就可以了。
我们提取出来的的频率是连续的,但我们人耳听见的是一会儿高,一会低,中间从高到低的过程是直接忽略的,这就要在这个过程中加一个间隔,也就是频率。
我们再把频率提取出来:
readframes是:short:
我们把这个程序运行一下:在这个路径会出现一个文件:其他的音频也想这样做。
之后,百度一下图片的文件名,那是小车的运行原理,我们会找这张图:而,我们的的0和1会发现只有三种类型,EN——是一类,A_,是一类,B——是一类。EN对应着图中ENA,A对应IN1,B对应IN2,我们根据这个把这些编码转化成前进,后退,左转,右转的形式。
然后,我们就需要调用turtle库,来帮我们画出小车的运动轨迹,用法是:编写一个差不多这样的程序:
运行一下:
这看的有点蒙。不过,还是能看出来的。
我们需要把下面的边缘拉一下
发现拉不出来后面的东西。哎,调整一下方向(小声比比,参考了一下答案,不参考就做不出来)
转换一下角度。再运行一下,之后拉一下边缘:
最后,再注意一下大小写,就完成了。
玩具车
最新推荐文章于 2023-03-26 23:28:58 发布