我家有很多臺舊款的MIDIcontroller, 就是不會發聲的電子琴,彈奏是只能發出MIDI碼輸入音源發出聲音,只所以買這么多臺是因為想用來組織樂隊,用幾個人彈多個聲部變成樂隊的形式,但這些年來沒有什么進展,直到低功耗藍牙LE出現,似乎又有些希望,有名廠推出無線藍牙MIDI,可以把MIDI彈進IPHONE或IPAD,似乎掀起一陣熱潮,民間也興起土制的國產品,有些連殼也沒有也在賣,但很快又冷了回去,畢竟這是少數人的愛好,形成不了市場規模,我也試制了一款,但是為了用來給自己組織樂隊用,所以不必考慮與其他產品兼容,可以任意設計。
制作這款藍牙無線MIDI發射模塊最大的挑戰就是省電,MIDI接口只能提供大概7-8MA的電流,5V電源通過一個220R電阻供應電流,而低功耗藍牙模塊也就需要幾MA而已,因此是可行的,市面賣的成品是把這些電儲存在大電容里為藍牙模塊供電。這些產品必須與apple制定的標準兼容,對我一點也沒有用,我希望我的琴能夠彈進PC電腦,或者硬體音源,因此只能DIY。
市面上買的廉價模塊的波特率并沒有31250BPS的,只有標準的38400BPS,因此從MIDI接口收到的信號得用單片做轉換才能用藍牙模塊發射出去,要用7-8MA的電流去驅動單片機幾乎是不可能的,因此得用充電鋰電池,而電池必須單靠MIDI插口那7-8MA的電流來充電維持電量,這就是這個設計難和有趣的地方,我這設計采用幾個方法來解決:
1。 采用低功耗的CPU,查過有專門的低功耗CPU,但我STC12才學不久不可能再去學別的,因此還是用STC12,首先是要用低的振蕩頻率,從18M降到3.6M, 耗電果然低了很多。
2. 采用設計優秀的藍牙模塊,必須容易休眠,又容易喚醒。
3. STC12單片機運作時要十幾個MA,停機時有幾個MA,但關機時才幾個UA, 利用玩電子琴的習慣在幾個模式里轉換,爭取向電池充電。比如開機時先進入關機模式,讓電池充電,需要彈奏前先按啟動的鈕,進入開機模式,這時電池出電,電壓慢慢降低,每當完成一個MIDI輸出,若無新鍵被按就進入停機,這時有少量電流流進電池,若有一分鐘以上沒彈琴,則進入關機,讓電池充電,若要重新彈琴,得再按啟動鈕。
實驗證明此法可行,但應該應付不了不斷彈琴幾個小時不休息的鍵盤達人哈,那還得另想辦法了,由于這設計非常奇怪,也被我發現STC12單片機的一個特性,當我把新寫的,一開機就進入關機狀態的碼用市售的自動冷啟動燒錄器燒進單片機后,燒錄軟件就再也無法檢測的單片機了,是怎么回事呢?折騰了半天才發現,由于單片機一開始就進入關機狀態,耗電太低,當燒錄器關閉單片機電源準備冷啟動時,單片機靠那兩個10u的電容還能茍活不死,冷啟動以失敗告終,燒錄也失敗。怎么辦呢?在電源的正負極焊上一個4.7K的電阻故意耗電,就能夠再燒錄了。
底板設計圖:左邊是電源板,右邊是CPU板
midi-low-j.jpg (497.35 KB, 下載次數: 100)
下載附件
2018-11-6 02:37 上傳
STC單片機
DSC00779a.jpg (69.75 KB, 下載次數: 89)
下載附件
2018-11-6 02:38 上傳
兩板疊加:
DSC00783a.jpg (43.57 KB, 下載次數: 95)
下載附件
2018-11-6 02:38 上傳
燒錄時得在電源加消耗電阻
DSC00776a.jpg (64.43 KB, 下載次數: 103)
下載附件
2018-11-6 02:39 上傳
|