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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4466|回復: 26
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
      一個月前在某一個寶看到一臺兒童電鋼琴,37鍵,是2.2M標準鋼琴琴鍵,很便宜,于是買了一臺打算改進成拉弦電子琴,我的第一款拉弦電子琴已經制作成功,還搬上舞臺表演,并申請了中國專利,已經收到受理通知書,原本打算再買一批來改裝,但廠家倒了,買不到,只好再買一款,從頭做起,并打算把改裝過程在論壇與大家分享,也歡迎大家來提意見。



拆開后:



芯片大頭照:



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


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂2 踩
回復

使用道具 舉報

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

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




回復

使用道具 舉報

板凳
ID:1013588 發表于 2023-9-6 11:57 | 只看該作者
占個沙發,關注樓主后續
回復

使用道具 舉報

地板
ID:283954 發表于 2023-9-6 15:37 | 只看該作者
龍小白 發表于 2023-9-6 11:57
占個沙發,關注樓主后續

歡迎一起來玩,我這臺也一定能成功改造完成,將來到國內推行電子琴弦樂隊也用這一款。
回復

使用道具 舉報

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

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






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


回復

使用道具 舉報

6#
ID:283954 發表于 2023-9-29 18:26 | 只看該作者
終于把板子給焊上了,之所以會這么久是因為做好的PCB還必須集運才送來,得十天八天,影響開發速度,軟件方面就容易得多,因為我之前已經做了兩款掃描電子琴琴鍵的軟件,有88鍵的,包含力度感應,相當復雜,當初幸好有網友yzwzfyz指點一番,不然還真做不出來。

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

1. 向某一條Y線送出0, 其他保持1,讀取X線的值(8位),這8位有某個按鍵被按下,該位是0。
2. 由于8位連接的按鍵會同時被按下,所以得用移位逐個檢測每個位,并結合Y的值算出是琴上的那個鍵被按下。
3. 確定被按下的鍵必須在記憶區相應的位置設定標記1,然后送出NOTEON的MIDI碼。
4. 沒有按下的鍵也必須在其記憶區相應的位置檢查標記,若為1表示之前已經送出NOTEON,所以必須送出NOTEOFF的MIDI碼,再把標記設為0.
5. 按鍵不必有防抖程序,因為每一次掃描會有間隔,不會出現連續開關的情況,經過測試的確如此。

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


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


回復

使用道具 舉報

7#
ID:283954 發表于 2023-10-5 22:56 | 只看該作者
原來的琴沒有功放,于是采用了TDA7297功放模塊,想起很多年前我還在用2N3055/2n2955做功放,現在實在太方便了,實測結果聲音很大,不過靜態電流也很大,電池很快就會耗盡,打算改用數字功放,靜態電流20MA,由于我的音源模塊是立體聲的,必須有兩個喇叭,要在底座開多一個喇叭孔就麻煩了,暫時就這么用,掃描板的串口輸出直接接上一個藍牙模塊,用PC版的藍牙接收模塊,就可以彈進電腦了。




回復

使用道具 舉報

8#
ID:105534 發表于 2023-10-6 09:06 | 只看該作者
匯編大師,單片機匯編全還給老師了
回復

使用道具 舉報

9#
ID:444392 發表于 2023-10-6 11:19 | 只看該作者
這么改會不會麻煩了些?為什么不直接用MIDI模塊來做呢?
回復

使用道具 舉報

10#
ID:283954 發表于 2023-10-6 15:48 | 只看該作者
msold5 發表于 2023-10-6 11:19
這么改會不會麻煩了些?為什么不直接用MIDI模塊來做呢?

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

使用道具 舉報

11#
ID:444392 發表于 2023-10-6 16:02 | 只看該作者
dalaoshi 發表于 2023-10-6 15:48
沒找到適用的器材,得自己做,單單MIDI模塊也做不了這事的。

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

使用道具 舉報

12#
ID:1083996 發表于 2023-10-6 18:34 | 只看該作者
不錯的思路,成品玩具琴很好買,可以做多種改裝啊
回復

使用道具 舉報

13#
ID:283954 發表于 2023-10-6 22:26 | 只看該作者
本帖最后由 dalaoshi 于 2023-10-7 20:12 編輯

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

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



51hei.jpeg (359.05 KB, 下載次數: 109)

51hei.jpeg
回復

使用道具 舉報

14#
ID:283954 發表于 2023-10-6 22:31 | 只看該作者
量子工業 發表于 2023-10-6 18:34
不錯的思路,成品玩具琴很好買,可以做多種改裝啊

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

使用道具 舉報

15#
ID:444392 發表于 2023-10-14 22:54 | 只看該作者
dalaoshi 發表于 2023-10-6 22:26
要做的是一臺能現場演奏的弦樂電子琴,用四人組成樂隊來表演,用普通電子琴無法表現弦樂的拉弓技巧,所 ...

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

使用道具 舉報

16#
ID:283954 發表于 2023-10-15 02:05 | 只看該作者
msold5 發表于 2023-10-14 22:54
你改得很好,我不是說用電子琴有問題,我是說用電子琴不如直接用MIDI芯片直接,電子琴里不也是調用的MIDI ...

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

使用道具 舉報

17#
ID:283954 發表于 2023-10-16 22:53 | 只看該作者
這是琴的主控板,從以前比較復雜的板簡化而來,廢除不少按鍵,只剩5個,可用32腳的STC8G2K32S4,比較容易焊,之所以采用S4是因為又想做其他實驗,比如用兩個音源來產生合奏效果,我曾經用了4個不同牌子的音源同時演奏一個聲道,出來的效果和用一個音源一樣,因為這些音源的采樣都是一樣的,演奏也都很準確,而真樂器合奏時,會有時間點誤差,音量變化誤差,音調準確度誤差,頻率響應誤差,而且都是隨機的,這樣才有合奏效果,用S4就能夠同時控制3個音源,哈!充滿幻想,如果一人吹喇叭就有3支喇叭合奏的結果,就可以搞電子銅樂隊了。







回復

使用道具 舉報

18#
ID:108361 發表于 2023-10-25 12:49 | 只看該作者
大佬啊,居然直接上手匯編開發,雖然我現在也還能看懂51匯編,但是要我動手寫已經不行了,用太久的C,匯編已經退化
回復

使用道具 舉報

19#
ID:283954 發表于 2023-10-25 22:14 | 只看該作者
powerdruy 發表于 2023-10-25 12:49
大佬啊,居然直接上手匯編開發,雖然我現在也還能看懂51匯編,但是要我動手寫已經不行了,用太久的C,匯編 ...

我是走投無路才呆在匯編的,當年第一次玩單片機時51C還不曾出現,第二次玩單片機時已經是C的天下,反正做都是自己的項目,就不想學C了。
回復

使用道具 舉報

20#
ID:283954 發表于 2023-10-31 02:15 | 只看該作者
這是電源供應板,功放板直接用12V,聽從論壇大佬的勸告,用78M05作為穩壓,不要用LDO,避免過沖,由于擔心鋰電池沒有過放保護,所以設計了一個電壓檢測器,用PMOS作開關,HT7050做電壓檢測器,用四個發光二極管降壓,可檢測5V以上的電壓,當電壓過低時關斷PMOS,發光二極管可用不同的顏色組合以便獲得需要檢測的電壓,我用四顆紅LED可檢測11.2V電壓,3顆可檢測9.8V電壓。另外做了個混音放大器一混合兩個音源的輸出。

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






回復

使用道具 舉報

21#
ID:283954 發表于 2023-11-3 01:14 | 只看該作者
這是焊好的主控板,輕觸開關用到24MM的柄,才能夠穿過厚后的木板,由于這個琴鍵沒有力度感應,必須用電阻式壓力傳感器,ADC后產生壓力參數,控制電子琴音量的大小。

正面:



反面:



回復

使用道具 舉報

22#
ID:283954 發表于 2023-11-15 00:43 | 只看該作者
     終于完成整機的組裝,比較困難的就是那個拉弦模擬器的外殼,必須把所有接線都隱藏在內,現在還有一個接頭外露,等下次改板再說把,另外經過測試,必須重新安排電阻壓力傳感器的位置,否則拉弦時要轉換為彈撥很難操作,接下來就是寫軟件了。

整機:



控制部分:



掃描MCU:




回復

使用道具 舉報

23#
ID:283954 發表于 2024-5-27 02:24 | 只看該作者
第三款掃描板正反面。



回復

使用道具 舉報

24#
ID:283954 發表于 2024-12-28 13:37 | 只看該作者
經過8年的網上學習和咱們的強大供應鏈,終于開始制作100臺拉弦電子琴了。

這是最后的控制板:







回復

使用道具 舉報

25#
ID:463443 發表于 2025-1-22 17:14 | 只看該作者
我就是電子琴這個行業的,不過是負責打螺絲的
回復

使用道具 舉報

26#
ID:283954 發表于 2025-2-13 21:38 | 只看該作者

好不容易找了個兒童來演示拉弦電子琴

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



回復

使用道具 舉報

27#
ID:338503 發表于 2025-2-14 09:56 | 只看該作者
這個嘗試非常難能可貴,做的非常好。
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人cao| 日本免费一区二区三区 | 亚洲一区二区三区在线播放 | 精品一区二区三区在线视频 | 四虎永久影院 | 国产一区二 | 久久99精品久久久久久国产越南 | 91久久国产综合久久 | 一二三四在线视频观看社区 | 做a视频| 国产精品揄拍一区二区 | 久久99精品久久久久婷婷 | 国产精品18久久久久久久 | 精品丝袜在线 | 91久久精品国产免费一区 | 国产日产精品一区二区三区四区 | 亚洲国产成人精品久久 | 免费视频一区二区 | 国产精品久久久久aaaa九色 | 国产精品视频一区二区三区四区国 | 欧美一区二区三区小说 | 亚洲麻豆 | 亚洲电影在线播放 | 天天干天天操天天看 | 97人澡人人添人人爽欧美 | 欧美亚洲综合久久 | 精品国产乱码久久久久久丨区2区 | aaaaaaa片毛片免费观看 | 最新国产在线 | 免费观看一级特黄欧美大片 | 国产 日韩 欧美 在线 | 精品久久久久久久久久久久 | 毛片一级片 | 久久国内精品 | 日韩欧美视频网站 | 亚洲成人一级 | 中文字幕在线免费视频 | 亚洲欧美国产毛片在线 | 日韩国产一区二区三区 | 国产一区久久久 | 欧美精品一区二区三区一线天视频 |