一道结合电子的密码题

今天咕咕突然在群内发了张L298n的图:

然后说了句:

我仔细观察了下,认真地告诉他:没有

此贴终结(うそです)

然后:

猜测wav是一段只有两个音调的波形,代表高低电平。于是让咕咕把整个题目文件发了过来

对了,忘了说了,题目是这样的:

最后是要提交一串字符串

收到了文件,用au打开,证实了我的猜想

这是截取的一小段

那么,问题来了,我怎么才能把wav的高低波形转换成1和0的高低电平数组呢?

上谷歌,一搜,跳出几个python

那就。。。装python吧

装python不难,但是读wav的代码要用到一个叫“ scipy.io ”的库,装起来挺麻烦,折腾了我差不多一小时,这里就不展开了,网上搜得到

然后,把读取wav文件的代码粘贴了进去,得知这堆文件采样率8000,然后我在au里面看了下波形,得知是以1s为基础时间单位在改变电平的,总音频长度是13:08

也就是说,只要每拿一个数据,跳过7999个,重复13*60+8=788次,就可以知道这13:08的时间内一个io口的信号了

那么,知道了每个信号的高低电平,接下来就要用到电子的知识了(呸,其实就是查个表)

根据此表,只需要同时拿到三组信号数组,就可以分析出来一个电机在干什么

举个栗子:在第一秒的时候:1_A1为0, 1_A2为1, 1_EnA为1,那么在这秒钟内电机正方向转动

保险起见(顺便确认一下这题目方向是不是这样的),我把左侧两个电机的运转表都算了出来对比了下,完全一致

那么,我们现在拿到了左右两侧的电机运转表,接下来,只需要结合实际:

  • 左边往前,右边往后必然是右转
  • 左边往后,右边往前就是左转
  • 两边往前,即为前进
  • 两边往后,即为后退

对了,我看过了数据,不会有一个转一个不转的情况出现,可以排除,那么每次转向就设它转90度吧

然后调用“turtle”库,绘出图形

看起来是字符和数字的镜像,打开ps,镜像回来,顺便转90度(咱今天不治颈椎病)

得到如下:

发给咕咕,过了几分钟

撒花!

python代码下载链接

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注