久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4753|回復(fù): 26
收起左側(cè)

兒童玩具電鋼琴改裝成拉弦電子琴(日記)

  [復(fù)制鏈接]
ID:283954 發(fā)表于 2023-9-5 17:40 | 顯示全部樓層 |閱讀模式
      一個(gè)月前在某一個(gè)寶看到一臺兒童電鋼琴,37鍵,是2.2M標(biāo)準(zhǔn)鋼琴琴鍵,很便宜,于是買了一臺打算改進(jìn)成拉弦電子琴,我的第一款拉弦電子琴已經(jīng)制作成功,還搬上舞臺表演,并申請了中國專利,已經(jīng)收到受理通知書,原本打算再買一批來改裝,但廠家倒了,買不到,只好再買一款,從頭做起,并打算把改裝過程在論壇與大家分享,也歡迎大家來提意見。

37KEY2.jpg

拆開后:

無標(biāo)題121.jpg

芯片大頭照:

無標(biāo)題122.jpg

打算把主控芯片換掉,用STC8代替,完成掃描后輸出MIDI碼,待續(xù)。。


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-9-6 03:57 | 顯示全部樓層
電路分析:此琴用三顆電池供電,電壓為4.5V,通過兩個(gè)硝基二級管降壓,并防止電池反接,總共有8X5條掃描線,A0-A7隔著二極管與B3-B7連接,A端接二極管正極,B端接二極管負(fù)極,掃描時(shí)讓B口的每一位輪流輸出低電位,并檢查A端的8位數(shù)據(jù),該位若為0則表示相應(yīng)的按鍵被按下,經(jīng)查表可得到該鍵的排列號碼。

選用STC8作為掃描芯片,這是畫好的板,打樣回來后就可編程了。

MIDISCAN.jpg


回復(fù)

使用道具 舉報(bào)

ID:1013588 發(fā)表于 2023-9-6 11:57 | 顯示全部樓層
占個(gè)沙發(fā),關(guān)注樓主后續(xù)
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-9-6 15:37 | 顯示全部樓層
龍小白 發(fā)表于 2023-9-6 11:57
占個(gè)沙發(fā),關(guān)注樓主后續(xù)

歡迎一起來玩,我這臺也一定能成功改造完成,將來到國內(nèi)推行電子琴弦樂隊(duì)也用這一款。
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-9-6 16:22 | 顯示全部樓層
拆除主控芯片:芯片用黑膠封住,什么都看不到,應(yīng)該是很成熟的方案,除了掃描線輸入,還有四條DATA線,但不知道是什么功能,如果是輸出MIDI碼,那就好辦,不必搞自己的掃描版,這臺機(jī)到我家還不到一小時(shí)就被拆了,連一個(gè)音都沒有聽到,我想如果再來一臺,可以用邏輯分析儀去看看到底是什么來的,也許只是輸入端,總之自己掌握了鍵盤掃描技術(shù)就能用一粒MCU直搗龍門,與按鍵直連,不必廠家提供資料,什么琴都能改裝成功。

用銅箔覆蓋芯片四周,用350攝氏度的熱風(fēng)器吹,讓主控芯片板與琴骨肉分離,讓新板入住。


scan1.jpg

scan2.jpg

也可以用恒溫臺來拆,但要把整片板與塑料支架分離,必須拆8顆螺絲,很累,就用吹算了。如果能找到平面很小的恒溫臺就好了。


回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-9-29 18:26 | 顯示全部樓層
終于把板子給焊上了,之所以會這么久是因?yàn)樽龊玫腜CB還必須集運(yùn)才送來,得十天八天,影響開發(fā)速度,軟件方面就容易得多,因?yàn)槲抑耙呀?jīng)做了兩款掃描電子琴琴鍵的軟件,有88鍵的,包含力度感應(yīng),相當(dāng)復(fù)雜,當(dāng)初幸好有網(wǎng)友yzwzfyz指點(diǎn)一番,不然還真做不出來。

現(xiàn)在這個(gè)就非常簡單了,只用到8條X線,5條Y線,可檢測40個(gè)鍵,所以把舊軟件簡化,用了兩晚就解決了,編程思路如下:

1. 向某一條Y線送出0, 其他保持1,讀取X線的值(8位),這8位有某個(gè)按鍵被按下,該位是0。
2. 由于8位連接的按鍵會同時(shí)被按下,所以得用移位逐個(gè)檢測每個(gè)位,并結(jié)合Y的值算出是琴上的那個(gè)鍵被按下。
3. 確定被按下的鍵必須在記憶區(qū)相應(yīng)的位置設(shè)定標(biāo)記1,然后送出NOTEON的MIDI碼。
4. 沒有按下的鍵也必須在其記憶區(qū)相應(yīng)的位置檢查標(biāo)記,若為1表示之前已經(jīng)送出NOTEON,所以必須送出NOTEOFF的MIDI碼,再把標(biāo)記設(shè)為0.
5. 按鍵不必有防抖程序,因?yàn)槊恳淮螔呙钑虚g隔,不會出現(xiàn)連續(xù)開關(guān)的情況,經(jīng)過測試的確如此。

注:Y線是連接二極管的負(fù)極,X線是連接二極管的正極。

無標(biāo)題123.jpg
SCANNER:               ;鍵盤掃描主程序
;LCALL DELAY3        ;這個(gè)試驗(yàn)時(shí)可開,但正式使用要關(guān)。

SCANP1:                 ;輸出到P1,其中一列是0,然后從P2讀入,8位代表列,如某行有按下則為0,否則為1,8行都有可能同時(shí)按下。
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           ;保留進(jìn)50H,下次再用
MOV P1, A             ;輸出到P1
;MOV P1, #11101111B   ;第一步:這個(gè)用來檢測每一根輸出線(逐個(gè)放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,代表是那一列被設(shè)為0,與監(jiān)測到0的行相乘就得到掃描號碼。      
PUSH PSW
MOV 34H, #8         ;8行檢測
MOV 33H, A           ;A 是由P2 讀來的8BIT,每個(gè)BIT代表一個(gè)掃描線與P1那個(gè)被設(shè)定為0之間的按鍵是否有按下,按下則為零。

EACHDATA1:           ;8次重復(fù)由34H控制
MOV A, 33H
LCALL COUNTPOSITION  ;先算出當(dāng)前鍵的位置
MOV 3EH, A                  ;回來后A是按鍵數(shù)目

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       ;保存區(qū)相應(yīng)位置放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        ;標(biāo)志為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        ;標(biāo)志為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:    ;這個(gè)算法不一般
PUSH PSW
MOV A, 32H        ;列ROW POSITION 1-8
MOV B, #8         ;8 CONTACT POINT FOR EACH ROW
MUL AB            ;得到的數(shù)字是 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:           ;由于此款排列順序,無需查表,直接運(yùn)算
MOV A, #50H       ;從小變大!
CLR C
SUBB A, 3EH
RET


回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-5 22:56 | 顯示全部樓層
原來的琴沒有功放,于是采用了TDA7297功放模塊,想起很多年前我還在用2N3055/2n2955做功放,現(xiàn)在實(shí)在太方便了,實(shí)測結(jié)果聲音很大,不過靜態(tài)電流也很大,電池很快就會耗盡,打算改用數(shù)字功放,靜態(tài)電流20MA,由于我的音源模塊是立體聲的,必須有兩個(gè)喇叭,要在底座開多一個(gè)喇叭孔就麻煩了,暫時(shí)就這么用,掃描板的串口輸出直接接上一個(gè)藍(lán)牙模塊,用PC版的藍(lán)牙接收模塊,就可以彈進(jìn)電腦了。

MIDI-WOOD.jpg


回復(fù)

使用道具 舉報(bào)

ID:105534 發(fā)表于 2023-10-6 09:06 | 顯示全部樓層
匯編大師,單片機(jī)匯編全還給老師了
回復(fù)

使用道具 舉報(bào)

ID:444392 發(fā)表于 2023-10-6 11:19 | 顯示全部樓層
這么改會不會麻煩了些?為什么不直接用MIDI模塊來做呢?
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-6 15:48 | 顯示全部樓層
msold5 發(fā)表于 2023-10-6 11:19
這么改會不會麻煩了些?為什么不直接用MIDI模塊來做呢?

沒找到適用的器材,得自己做,單單MIDI模塊也做不了這事的。
回復(fù)

使用道具 舉報(bào)

ID:444392 發(fā)表于 2023-10-6 16:02 | 顯示全部樓層
dalaoshi 發(fā)表于 2023-10-6 15:48
沒找到適用的器材,得自己做,單單MIDI模塊也做不了這事的。

沒明白你說的不適合是什么意思,單片機(jī)發(fā)送指令到MIDI,直接調(diào)用MIDI里的彎音滑音功能不是更適合制作弦類樂器嗎?
回復(fù)

使用道具 舉報(bào)

ID:1083996 發(fā)表于 2023-10-6 18:34 | 顯示全部樓層
不錯的思路,成品玩具琴很好買,可以做多種改裝啊
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-6 22:26 | 顯示全部樓層
本帖最后由 dalaoshi 于 2023-10-7 20:12 編輯

msold5 發(fā)表于 2023-10-6 16:02
沒明白你說的不適合是什么意思,單片機(jī)發(fā)送指令到MIDI,直接調(diào)用MIDI里的彎音滑音功能不是更適合制作弦類 ...

要做的是一臺能現(xiàn)場演奏的弦樂電子琴,用四人組成樂隊(duì)來表演,用普通電子琴無法表現(xiàn)弦樂的拉弓技巧,所以必須改裝。

4s.jpg

51hei.jpeg
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-6 22:31 | 顯示全部樓層
量子工業(yè) 發(fā)表于 2023-10-6 18:34
不錯的思路,成品玩具琴很好買,可以做多種改裝啊

改裝是最可行之道,那些琴鍵必須廠家投資才能生產(chǎn)的,電路板就可以自己做,這就是會玩電子的人的好處。
回復(fù)

使用道具 舉報(bào)

ID:444392 發(fā)表于 2023-10-14 22:54 | 顯示全部樓層
dalaoshi 發(fā)表于 2023-10-6 22:26
要做的是一臺能現(xiàn)場演奏的弦樂電子琴,用四人組成樂隊(duì)來表演,用普通電子琴無法表現(xiàn)弦樂的拉弓技巧,所 ...

你改得很好,我不是說用電子琴有問題,我是說用電子琴不如直接用MIDI芯片直接,電子琴里不也是調(diào)用的MIDI功能嗎?
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-15 02:05 | 顯示全部樓層
msold5 發(fā)表于 2023-10-14 22:54
你改得很好,我不是說用電子琴有問題,我是說用電子琴不如直接用MIDI芯片直接,電子琴里不也是調(diào)用的MIDI ...

你是說在琴里面放MIDI芯片,也就是音源芯片SAM2695, VS1053B?這些的音質(zhì)都太差了,所以要將MIDI信號輸出外接高檔音源才行,我還無法找到好的音源SOC呢。
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-16 22:53 | 顯示全部樓層
這是琴的主控板,從以前比較復(fù)雜的板簡化而來,廢除不少按鍵,只剩5個(gè),可用32腳的STC8G2K32S4,比較容易焊,之所以采用S4是因?yàn)橛窒胱銎渌麑?shí)驗(yàn),比如用兩個(gè)音源來產(chǎn)生合奏效果,我曾經(jīng)用了4個(gè)不同牌子的音源同時(shí)演奏一個(gè)聲道,出來的效果和用一個(gè)音源一樣,因?yàn)檫@些音源的采樣都是一樣的,演奏也都很準(zhǔn)確,而真樂器合奏時(shí),會有時(shí)間點(diǎn)誤差,音量變化誤差,音調(diào)準(zhǔn)確度誤差,頻率響應(yīng)誤差,而且都是隨機(jī)的,這樣才有合奏效果,用S4就能夠同時(shí)控制3個(gè)音源,哈!充滿幻想,如果一人吹喇叭就有3支喇叭合奏的結(jié)果,就可以搞電子銅樂隊(duì)了。

WOOD.jpg





回復(fù)

使用道具 舉報(bào)

ID:108361 發(fā)表于 2023-10-25 12:49 | 顯示全部樓層
大佬啊,居然直接上手匯編開發(fā),雖然我現(xiàn)在也還能看懂51匯編,但是要我動手寫已經(jīng)不行了,用太久的C,匯編已經(jīng)退化
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-25 22:14 | 顯示全部樓層
powerdruy 發(fā)表于 2023-10-25 12:49
大佬啊,居然直接上手匯編開發(fā),雖然我現(xiàn)在也還能看懂51匯編,但是要我動手寫已經(jīng)不行了,用太久的C,匯編 ...

我是走投無路才呆在匯編的,當(dāng)年第一次玩單片機(jī)時(shí)51C還不曾出現(xiàn),第二次玩單片機(jī)時(shí)已經(jīng)是C的天下,反正做都是自己的項(xiàng)目,就不想學(xué)C了。
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-10-31 02:15 | 顯示全部樓層
這是電源供應(yīng)板,功放板直接用12V,聽從論壇大佬的勸告,用78M05作為穩(wěn)壓,不要用LDO,避免過沖,由于擔(dān)心鋰電池沒有過放保護(hù),所以設(shè)計(jì)了一個(gè)電壓檢測器,用PMOS作開關(guān),HT7050做電壓檢測器,用四個(gè)發(fā)光二極管降壓,可檢測5V以上的電壓,當(dāng)電壓過低時(shí)關(guān)斷PMOS,發(fā)光二極管可用不同的顏色組合以便獲得需要檢測的電壓,我用四顆紅LED可檢測11.2V電壓,3顆可檢測9.8V電壓。另外做了個(gè)混音放大器一混合兩個(gè)音源的輸出。

LED的電壓:通常所說的LED是正向電壓,就是說LED的正極接電源正極,負(fù)極接電源負(fù)極。電壓與顏色有關(guān)系,紅、黃、黃綠的電壓是1.8—2.4v之間。白、藍(lán)、翠綠的電壓是3.0—3.6v之間。

power.jpg

power-pcb.jpg


回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-11-3 01:14 | 顯示全部樓層
這是焊好的主控板,輕觸開關(guān)用到24MM的柄,才能夠穿過厚后的木板,由于這個(gè)琴鍵沒有力度感應(yīng),必須用電阻式壓力傳感器,ADC后產(chǎn)生壓力參數(shù),控制電子琴音量的大小。

正面:

wood1.jpg

反面:

wood2.jpg

回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2023-11-15 00:43 | 顯示全部樓層
     終于完成整機(jī)的組裝,比較困難的就是那個(gè)拉弦模擬器的外殼,必須把所有接線都隱藏在內(nèi),現(xiàn)在還有一個(gè)接頭外露,等下次改板再說把,另外經(jīng)過測試,必須重新安排電阻壓力傳感器的位置,否則拉弦時(shí)要轉(zhuǎn)換為彈撥很難操作,接下來就是寫軟件了。

整機(jī):

無標(biāo)題1.jpg

控制部分:

無標(biāo)題2.jpg

掃描MCU:

無標(biāo)題3.jpg


回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2024-5-27 02:24 | 顯示全部樓層
第三款掃描板正反面。

無標(biāo)題34.jpg

回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2024-12-28 13:37 | 顯示全部樓層
經(jīng)過8年的網(wǎng)上學(xué)習(xí)和咱們的強(qiáng)大供應(yīng)鏈,終于開始制作100臺拉弦電子琴了。

這是最后的控制板:

無標(biāo)題89.jpg
無標(biāo)題GH.jpg




回復(fù)

使用道具 舉報(bào)

ID:463443 發(fā)表于 2025-1-22 17:14 | 顯示全部樓層
我就是電子琴這個(gè)行業(yè)的,不過是負(fù)責(zé)打螺絲的
回復(fù)

使用道具 舉報(bào)

ID:283954 發(fā)表于 2025-2-13 21:38 | 顯示全部樓層
拉弦電子琴1.jpg
好不容易找了個(gè)兒童來演示拉弦電子琴

成功學(xué)有一個(gè)經(jīng)典故事:有個(gè)推銷員被派到非洲推銷鞋子,回來報(bào)告說:“非洲人是不穿鞋的,鞋子沒有市場",上司說:“非洲人還沒穿鞋?市場很大!”,問題在于;如何讓非洲人從不穿鞋變成穿鞋?一是砸錢搞吹銷穿鞋的好處,二是收買酋長命令必須穿鞋否則不準(zhǔn)走路,三是用國際開發(fā)署的辦法發(fā)錢給專家寫研究報(bào)告說不穿鞋容易腳底生癌,得趕快穿鞋,如果這些辦法還是不能讓非洲人穿鞋,那就等天來幫忙,把地表溫度升高到不穿鞋就被燙到,非洲人就得穿鞋了,市場很大,發(fā)財(cái)了。
拉弦電子琴目前還處在“非洲人不穿鞋”的狀態(tài),琴是造出來了,卻還賣沒人要,因?yàn)檎y(tǒng)藝術(shù)界是不用電子琴的,正如非洲人是不穿鞋的,要讓他們接受電子琴,還得努力。不過,得自我審核,究竟要推廣的東西是否有用?比如鞋子,的的確確能保護(hù)雙腳,那就值得推廣。拉弦電子琴有用嗎?用四個(gè)鍵盤手就能組成弦樂隊(duì),替代幾十個(gè)提琴手組成的交響樂隊(duì)弦樂組,演奏技巧包含拉弓,強(qiáng)弓,顫弓,跳弓,撥弦等效果,還能一鍵轉(zhuǎn)調(diào),肯定是有用的東西,因此值得推廣。



回復(fù)

使用道具 舉報(bào)

ID:338503 發(fā)表于 2025-2-14 09:56 | 顯示全部樓層
這個(gè)嘗試非常難能可貴,做的非常好。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲三级在线 | 曰韩三级 | 日韩精品1区2区3区 爱爱综合网 | 91久久精品 | 午夜私人影院 | 一区二区高清 | 久久99网站| 精品一区二区av | 久久久久亚洲 | 午夜一区二区三区 | 日韩在线一区二区三区 | 特级毛片www | 国产九一精品 | 亚洲国产精品久久久 | 欧美日韩亚洲国产 | 天天插天天射天天干 | 日本免费一区二区三区视频 | 亚洲成人av在线播放 | 久婷婷| 国产精品日韩欧美一区二区三区 | 精品国产免费一区二区三区五区 | 99re热精品视频 | 懂色一区二区三区免费观看 | 亚洲日韩中文字幕一区 | 成人av一区 | 欧美影院 | 最近最新中文字幕 | 亚洲 中文 欧美 日韩 在线观看 | 精品国产一区二区三区在线观看 | 五月激情婷婷六月 | 欧美激情国产精品 | 免费在线一区二区三区 | 有码一区| 黄色一级免费看 | 一级片免费在线观看 | 日韩一级 | 中文字幕av一区 | 日本 欧美 三级 高清 视频 | 亚洲精品视频免费 | 伊人中文字幕 | 免费在线日韩 |