键盘中国

 找回密码
 注册

QQ登录

只需一步,快速开始

扫码快捷登录

搜索
baidu
查看: 5009|回复: 29

儿童玩具电钢琴改装成拉弦电子琴

[复制链接]
发表于 2023-12-17 15:24 | 显示全部楼层 |阅读模式
一个月前在某一个宝看到一台儿童电钢琴,37键,是2.2M标准钢琴琴键,很便宜,于是买了一台打算改装成拉弦电子琴,我的第一款拉弦电子琴已经制作完成,还搬上舞台表演,原本打算再买一批来改装,但厂家倒了,买不到,只好再买一款,从头做起,并打算把改装过程在论坛与大家分享,这款琴已经存在有些年,打开之后发现连琴键的弹簧也生锈了,这样也好,保证不倒,改装定型之后再买100台来改装,分发给各地的乐队,再找人负责维修,国内邮递系统很发达,很便宜,完全可行。

37键琴,2.2mm 琴键,价格298元:



内部结构:无力度响应,弹簧配重。



主控芯片:黑胶封装。



打算用国产STC单片机取代。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1琴币 +3 收起 理由
乐龙 + 3 热心会员

查看全部评分

温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-18 01:24 | 显示全部楼层
大佬有空多交流指导哈,我帖子里还有不少迷惑待解
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-18 09:49 | 显示全部楼层
这咋技术上能做到吗?看着很悬
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-18 14:40 | 显示全部楼层
coeus88 发表于 2023-12-18 01:24
大佬有空多交流指导哈,我帖子里还有不少迷惑待解

交流很好,指导就不敢,搞设计的排除自己的问题就很容易,修理别人的往往就是从聋医到哑哈。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-18 14:42 | 显示全部楼层
神鹰小子 发表于 2023-12-18 09:49
这咋技术上能做到吗?看着很悬

那些琴键才是最难做的事,要开模才行,电子板就很容易,很便宜就能做到。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-18 19:30 | 显示全部楼层
本帖最后由 coeus88 于 2023-12-18 19:32 编辑
大老师啦a 发表于 2023-12-18 14:40
交流很好,指导就不敢,搞设计的排除自己的问题就很容易,修理别人的往往就是从聋医到哑哈。

第一个问题 一个单片机一般就1-3个timer中断,怎么处理多个按键
255的中断算力度1,按比例2个中断算一个力度差嘛, 还是 128的中断算力度127的起点
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-18 21:07 | 显示全部楼层
coeus88 发表于 2023-12-18 19:30
第一个问题 一个单片机一般就1-3个timer中断,怎么处理多个按键
255的中断算力度1,按比例2个中断算一个 ...

这问题我刚玩单片机时也想不通,后来问了人,一点就通了,就用一个定时器中断,每一个中断去检查每一个已经按下第一个触点的键对应的记忆单元,把其值增加1,如果加到255了,第二触点还未接触,力度就是最小了,如果即刻就有第二触点的接触,力度就是最大了。MIDI只允许到127,把该记忆单元的值除2就行了。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-19 01:59 | 显示全部楼层
大老师啦a 发表于 2023-12-18 21:07
这问题我刚玩单片机时也想不通,后来问了人,一点就通了,就用一个定时器中断,每一个中断去检查每一个已 ...

这相当于最大255次扫描,逻辑上说第二触点接通就要去发送 note on midi信号,一个状态字节 两个数据字节 这就要3个320us , 中断和发信的时间协调是怎么处理的?
一个中断时间段大概是多长?
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-19 02:02 | 显示全部楼层
这种导电橡胶的碳触点要不要像一些编程书里写的哪种,做防抖处理
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-19 13:13 | 显示全部楼层
用铜箔保护芯片周围的元件:




用热风枪让芯片与底板骨肉分离:



另外设计一个底板用来鹊巢鸠占:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-19 13:24 | 显示全部楼层
coeus88 发表于 2023-12-19 01:59
这相当于最大255次扫描,逻辑上说第二触点接通就要去发送 note on midi信号,一个状态字节 两个数据字节  ...

这逻辑说起来很简单,但实际做起来相当复杂,必须真正上机编程实验调试,当然包括要去抖动,而且是两个触点,88个键,同时按下都要发声,我那些程序做好后再过一段时间自己一时也看不懂,但可以用就好了。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-21 01:34 | 显示全部楼层
焊接后安装在原来琴的底板上,用UART口编程:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-21 01:38 | 显示全部楼层
SCANNER:               ;键盘扫描主程序
;LCALL DELAY3        ;这个试验时可开,但正式使用要关。

SCANP1:                 ;输出到P1,其中一列是0,然后从P2读入,8位代表列,如某行有按下则为0,否则为1,8行都有可能同时按下。
MOV 35H, #0          ;THIS WILL ADD TO ROW TO MAKE 0-7
MOV 32H, #5          ;8 BITS TO SHIFT
MOV 50H, #11111111B  ;THIS BYTE FOR SHIFT AND OUTPUT TO P1
MOV P1, #11111111B   ;CLEAR P1 AFTER EVERY BIT SCAN
LCALL DELAY1   
CLR C                    ;PUSH A ZERO INTO 50H AT FIRST ROTATE
SCANP1A:
MOV A, 50H
RLC A                    ;改用左移,第一次(C=0)被推入,变成11111110,而C变成1,第二次移0被左移,变成11111101
MOV 50H, A           ;保留进50H,下次再用
MOV P1, A             ;输出到P1
;MOV P1, #11101111B   ;第一步:这个用来检测每一根输出线(逐个放0,只有5根线BIT0-BIT4)

LCALL DELAY0          ;稍等   

MOV A, P2            ;READ FROM P2

;LCALL SENTONEBYTE1

LCALL EACHDATA

SETB C                        ;BEFORE LOOP SET C FOR SHIFT ONE TO 50H
MOV P1, #11111111B   ;CLEAR P1 AFTER EVERY BIT SCAN
LCALL DELAY1
;LCALL DELAY3

DJNZ 32H, SCANP1A     ;5 TIME LOOP

JMP SCANNER


EACHDATA:            ;32H 从8逐渐减到1,代表是那一列被设为0,与监测到0的行相乘就得到扫描号码。      
PUSH PSW
MOV 34H, #8         ;8行检测
MOV 33H, A           ;A 是由P2 读来的8BIT,每个BIT代表一个扫描线与P1那个被设定为0之间的按键是否有按下,按下则为零。

EACHDATA1:           ;8次重复由34H控制
MOV A, 33H
LCALL COUNTPOSITION  ;先算出当前键的位置
MOV 3EH, A                  ;回来后A是按键数目

LCALL KEYMAP              ;查表得到该按键在键盘上的排列号码

MOV 3AH, A                 ;保存键盘号码到3AH

MOV A, 33H           
RLC A                         ;向左移,检查C看是1还是0
MOV 33H, A               ;SAVE BACK FOR NEXT ROTATE

JNC DOKEY1              ;CONTACT POINT NOT CONTACT GO NOTEOFF SUBROTINE
LCALL NOTEOFFLAH    ;NOTE OFF SUBROUTINE
JMP DOKEY2
DOKEY1:
MOV A, 3AH                 ;按键码  
;LCALL SENTONEBYTE1
LCALL NOTEONLAH       ;保存区相应位置放1
DOKEY2:

DJNZ 34H, EACHDATA1   ;8 LOOP NEEDED
DOKEYEXIT:
POP PSW
RET

NOTEOFFLAH:
MOV DPH, #0
MOV DPL, 3AH
MOVX A, @DPTR     ;READ OLD DATA
JZ NOTEOFFX
MOV A, #0
MOVX @DPTR, A        ;标志为1
LCALL SENTNOTEOFF ;送出NOTEOFF,只限一次
NOTEOFFX:
RET


NOTEONLAH:
MOV DPH, #0
MOV DPL, 3AH
MOVX A, @DPTR        ;READ OLD DATA
JNZ NOTEONX
MOV A, #1
MOVX @DPTR, A        ;标志为1
LCALL SENTNOTEON  ;送出NOTEON,只限一次
NOTEONX:
RET

SENTNOTEOFF:
MOV A, #10000000B   ;MIDI NOTEOFF CHANNEL1
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
MOV A, 3AH
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
MOV A, #0
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
RET

SENTNOTEON:
MOV A, #10010000B    ;MIDI NOTEON CHANNEL1
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
MOV A, 3AH
ANL A, #01111111B    ;MASKING BIT7 音符  
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
MOV A, #7FH           ;力度
LCALL SENTONEBYTE1
LCALL SENTONEBYTE2
RET


COUNTPOSITION:    ;这个算法不一般
PUSH PSW
MOV A, 32H        ;列ROW POSITION 1-8
MOV B, #8         ;8 CONTACT POINT FOR EACH ROW
MUL AB            ;得到的数字是 8,16,24,32,40.......128
CLR C
SUBB A, #8        ;MAKE A 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120
ADD A, 34H        ;加上34H 1-8 行COLUME
POP PSW
RET

KEYMAP:           ;由于此款排列顺序,无需查表,直接运算
MOV A, #50H       ;从小变大!
CLR C
SUBB A, 3EH
RET

评分

参与人数 1琴币 +3 收起 理由
乐龙 + 3 热心会员

查看全部评分

温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2023-12-21 19:52 | 显示全部楼层
哈哈 7FH
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-24 02:04 | 显示全部楼层
组装:采用D类功放,静态电流小,12V锂电能提供比较大的功率,主控板采用STC8G。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2023-12-26 15:48 | 显示全部楼层
整机组装后,重3.37公斤.



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2024-1-3 02:47 | 显示全部楼层
请教一下,发送midi 信息的格式 是3帧嘛 1on/off 2音符 3力度
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-1-5 11:08 | 显示全部楼层
coeus88 发表于 2024-1-3 02:47
请教一下,发送midi 信息的格式 是3帧嘛 1on/off 2音符 3力度

没错,大多数信息都是3个字节,但也有少数是2字节的,如program(音色)。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2024-1-5 18:26 | 显示全部楼层
大老师啦a 发表于 2024-1-5 11:08
没错,大多数信息都是3个字节,但也有少数是2字节的,如program(音色)。

我编辑 持续发送各种3帧, 但是在电脑上用midi OX软件 啥也看不到
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-1-6 14:36 | 显示全部楼层
coeus88 发表于 2024-1-5 18:26
我编辑 持续发送各种3帧, 但是在电脑上用midi OX软件 啥也看不到

你是用什么设备发送的?必须有MIDI界面。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2024-1-6 20:02 | 显示全部楼层
大老师啦a 发表于 2024-1-6 14:36
你是用什么设备发送的?必须有MIDI界面。

pic的单片机 啥叫midi界面, midiOX就是在电脑上接受midi信号的软件,手里有琴输出可以正常显示
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-1-7 02:24 | 显示全部楼层
coeus88 发表于 2024-1-6 20:02
pic的单片机 啥叫midi界面, midiOX就是在电脑上接受midi信号的软件,手里有琴输出可以正常显示

MIDI信号只有两个要素,一个是三码,如 90 30 70(16进制),一个是 31250 BPS 串口速率,如果不行就是接线的问题。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-1-7 15:10 | 显示全部楼层
上面那台电子琴的改装工作已经完成,但也已经放弃,原因是没有生产厂家的信息,无法批量定制,另外其款式过于老旧,机箱的木板很厚,很难找到适合的按钮,指示灯和插座,需开大孔安装,很不美观,另外键盘的弹簧拉力过紧,弹奏需要用大力,不适合弦乐演奏,本来还打算去定制弹力较小的弹簧,后来浏览时又看到一款同样类型的琴,买一台回来拆看后发现好到流口水,机箱非常美观,有专门设计的插座接口,可用最常用的零件,又有两个喇叭口,对我的立体声音源的效果很重要,于是又设计配合的底板,开始新的改装。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-2-1 16:36 | 显示全部楼层
本帖最后由 大老师啦a 于 2024-2-1 16:39 编辑

编程中:

这款的键盘扫描线不规则,共有8X6条线,可有48个键,但本机只用了37个,必须用查表法纠正键盘次序,首先要获得扫描所得的码,用255个记忆体,在该码的记忆体位置置放键盘的号码所代表的音即可。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-2-14 19:11 | 显示全部楼层
编程已经完成,现在只缺少一片面板,演奏效果出奇的好,有更大的动态音量,用薄片电阻压力传感器却换弹拨音色。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-12-27 16:49 | 显示全部楼层



最后定型,为了容易修理,会公开线路图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2024-12-30 09:12 | 显示全部楼层
厉害,这可不是一般人能做的
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2024-12-30 13:14 | 显示全部楼层
jltyljw 发表于 2024-12-30 09:12
厉害,这可不是一般人能做的

谢谢夸奖。

这琴必须有5台,分别演奏弦乐中的第一小提琴,第二小提琴,中提琴,大提琴,低音提琴才能达到最佳效果,我明年会做100台分发给国内的乐队,再找一个人来维修,就大功告成了。
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

发表于 2025-1-3 21:42 | 显示全部楼层
这个真不错!!!
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

 楼主| 发表于 2025-2-13 00:01 | 显示全部楼层
本帖最后由 大老师啦a 于 2025-2-13 21:33 编辑




成功学有一个经典故事:有个推销员被派到非洲推销鞋子,回来报告说:“非洲人是不穿鞋的,鞋子没有市场",上司说:“非洲人还没穿鞋?市场很大!”,问题在于;如何让非洲人从不穿鞋变成穿鞋?一是砸钱搞吹销穿鞋的好处,二是收买酋长命令必须穿鞋否则不准走路,三是用国际开发署的办法发钱给专家写研究报告说不穿鞋容易脚底生癌,得赶快穿鞋,如果这些办法还是不能让非洲人穿鞋,那就等天来帮忙,把地表温度升高到不穿鞋就被烫到,非洲人就得穿鞋了,市场很大,发财了。
拉弦电子琴目前还处在“非洲人不穿鞋”的状态,琴是造出来了,却还卖没人要,因为正统艺术界是不用电子琴的,正如非洲人是不穿鞋的,要让他们接受电子琴,还得努力。不过,得自我审核,究竟要推广的东西是否有用?比如鞋子,的的确确能保护双脚,那就值得推广。拉弦电子琴有用吗?用四个键盘手就能组成弦乐队,替代几十个提琴手组成的交响乐队弦乐组,演奏技巧包含拉弓,强弓,颤弓,跳弓,拨弦等效果,还能一键转调,肯定是有用的东西,因此值得推广。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
温馨提示: 发帖标题请概括内容,回帖请勿使用无意义字符或纯表情。积极参与发帖回帖交流能提高会员等级(提升下载权限)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

微信公众号|领红包|举报|黑屋|手机|Archiver|官方QQ群:777694204|键盘中国 ( 粤ICP备19059169号-1 )

GMT+8, 2025-6-15 14:33 , Processed in 0.071046 second(s), 82 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表