欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 多功能点击器(文末附Gitee源码)——光遇自动弹奏

多功能点击器(文末附Gitee源码)——光遇自动弹奏

2024/10/25 14:25:06 来源:https://blog.csdn.net/lonelyxxyo/article/details/142823081  浏览:    关键词:多功能点击器(文末附Gitee源码)——光遇自动弹奏

之前提到的多功能点击器,使用场景比较多,之前玩光遇喜欢在里面弹琴,想到用这个点击器也能自动弹琴,跟别的自动弹琴脚本不一样,这个比较简单容易操作。

借这个光遇自动弹琴使用教程再讲解一下这个多功能点击头的使用方法。

1.粘触控头

打开你的光遇乐器,把15个点击头依次粘在相应位置上

2.改谱子

需要将简谱改写为对应的接头谱

以《最后的电影》这个乐谱为例(流行歌曲的简谱基本各大网站都有)

ps:不是音乐方面的专业人士,只是演示一下作参考~

该简谱每小节分为8拍,每拍占一秒(每个音符按下抬起总共占一秒)

把你需要的简谱对照图片,改成接口号的谱子

 下面是我改的,可以不按照我这个形式,只要下面能把脚本修改好也是一样的

3.改脚本代码

针对改好的谱子上面的顺序来编辑代码

import serial
import timeSERIALOBJ = None#'@'工作模式字典
type2Pins = {1:['0','1'],2:['2','3'],3:['4','5'],4:['6','7'],5:['8','9'],6:['a','b'],7:['c','d'],8:['e','f'],9:['g','h'],10:['i','j'],11:['k','l'],12:['m','n'],13:['o','p'],14:['q','r'],15:['s','t'],16:['u','v']}def sendcmd(t,cmd):sendstr = cmdprint(sendstr)s = t.write(sendstr.encode())t.flush()def touch(p):global SERIALOBJpstr = type2Pins[p][0]sendcmd(SERIALOBJ, pstr)def untouch(p):global SERIALOBJpstr = type2Pins[p][1]sendcmd(SERIALOBJ, pstr)def touchpin(n):if n == 0:n = 10touch(n)time.sleep(0.5)untouch(n)time.sleep(0.5)
def main():global SERIALOBJt = serial.Serial('com12',115200,timeout=1)SERIALOBJ = tif t:print(t.name)               #串口名print(t.port)               #串口号print(t.baudrate)           #波特率print('-'*10)time.sleep(1)sendcmd(t, '@')#谱子脚本t.close()else:print('串口不存在')if __name__ == '__main__':main()

主要参数

触控头分为抬起untouch(p)和放下touch(p)两个动作。

一次点击行为:放下——抬起

这里也定义了这个行为

def touchpin(n):if n == 0:n = 10touch(n)time.sleep(0.45)untouch(n)time.sleep(0.45)

time.sleep()可以控制点击动作的间隔时间,单位秒

示范

以下我只写了一部分乐谱,做示范。

import serial
import timeSERIALOBJ = None#'@'工作模式字典
type2Pins = {1:['0','1'],2:['2','3'],3:['4','5'],4:['6','7'],5:['8','9'],6:['a','b'],7:['c','d'],8:['e','f'],9:['g','h'],10:['i','j'],11:['k','l'],12:['m','n'],13:['o','p'],14:['q','r'],15:['s','t'],16:['u','v']}def sendcmd(t,cmd):sendstr = cmdprint(sendstr)s = t.write(sendstr.encode())t.flush()def touch(p):global SERIALOBJpstr = type2Pins[p][0]sendcmd(SERIALOBJ, pstr)def untouch(p):global SERIALOBJpstr = type2Pins[p][1]sendcmd(SERIALOBJ, pstr)def touchpin(n):if n == 0:n = 10touch(n)time.sleep(0.5)untouch(n)time.sleep(0.5)
def main():global SERIALOBJt = serial.Serial('com12',115200,timeout=1)SERIALOBJ = tif t:print(t.name)               #串口名print(t.port)               #串口号print(t.baudrate)           #波特率print('-'*10)time.sleep(1)sendcmd(t, '@')for i in range(1):#第一小节touchpin(8)time.sleep(1)touchpin(9)time.sleep(1)#第二小节#同时11,5,1touch(11)touch(5)touch(1)time.sleep(0.45)            untouch(11)untouch(5)untouch(1)time.sleep(0.45)time.sleep(1) touchpin(10)touchpin(10)#同时5,1touch(5)touch(1)time.sleep(0.45)            untouch(5)untouch(1)time.sleep(0.45)time.sleep(3)t.close()else:print('串口不存在')if __name__ == '__main__':main()

如果你想单独把谱子写到一个文件里,再调用(beat.py)这个文件也可以,这样就能把你想要的脚本都写好保存后,运行的时候直接改这个地方代码调用不同的脚本文件。

脚本写好,插上板子连接你的手机/pad

参数配置

修改你的main文件中的端口号

如何查看端口号?

此电脑——右键——属性

这里串口com3

所以代码那个地方com12就应该改成com3

修改完成后,保存,运行代码。

触控头就会根据你的脚本内容,在游戏中自动演奏你想要的乐谱了。

代码内容可以根据自己需要来优化,这里不做过多说明。

点击进入: Gitee源码地址

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com