電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>可編程音樂(lè)盒的構(gòu)建

可編程音樂(lè)盒的構(gòu)建

2023-06-28 | zip | 0.45 MB | 次下載 | 2積分

資料介紹

描述

動(dòng)機(jī)

我一直很喜歡玩八音盒,實(shí)際上在家里也有收藏。能夠按下一個(gè)按鈕,或者轉(zhuǎn)動(dòng)幾圈曲柄,然后突然在你的手中播放音樂(lè),這真是太新奇了!這個(gè)可編程音樂(lè)盒是仿照一個(gè)更“傳統(tǒng)”的音樂(lè)盒(以這個(gè)為例。當(dāng)您購(gòu)買(mǎi)傳統(tǒng)的可編程音樂(lè)盒時(shí),您會(huì)得到一個(gè)基于曲柄的音樂(lè)盒、特殊紙張和用于在該紙張上打孔的特殊打孔器。你在紙上打孔的地方“抓住”每根弦,因?yàn)樗┻^(guò)音樂(lè)盒,這就是你發(fā)出聲音的方式。

但是,問(wèn)題在于這些可能有點(diǎn)貴。而且,除此之外,你還需要特殊的紙,一旦你用完了那張紙,你就得買(mǎi)更多。我想做一些你可以在家里用便宜的零件建造的東西,而且你不需要特殊的紙!

概述

如上所述,這個(gè)音樂(lè)盒的運(yùn)作機(jī)制與上面的音樂(lè)盒類(lèi)似;您可以通過(guò)在紙上打孔然后將其送入盒子來(lái)選擇播放的音符。但是,有幾個(gè)主要區(qū)別:

1.這里不是使用手動(dòng)曲柄送紙,而是通過(guò)連續(xù)旋轉(zhuǎn)伺服來(lái)完成,可以通過(guò)按下按鈕來(lái)打開(kāi)和關(guān)閉!這種變化主要是因?yàn)槲艺娴南朐谶@個(gè)項(xiàng)目中使用伺服。

2.每個(gè)孔的檢測(cè)方式如下。首先,將 2 根電線焊接到銅板的每一端,以便將其接地。然后,將7根線放在銅板的頂部;這些線連接到 PocketBeagle 上它們自己的模擬輸入引腳(每個(gè)音符一個(gè):A、B、C、D、E、F、G)。打孔紙穿過(guò)銅板的頂部,以及這些電線的下方;當(dāng)銅板和這些導(dǎo)線之間有紙時(shí),模擬輸入引腳讀取的值會(huì)隨機(jī)上下浮動(dòng)。當(dāng)有孔時(shí),電線將暫時(shí)與接地銅板接觸,因此模擬輸入引腳將讀取 0(或接近該值的某個(gè)位置)。

因此,您所要做的就是將紙放在銅板上,按下按鈕開(kāi)始,然后觀看音樂(lè)開(kāi)始播放!

初步圖表和規(guī)劃

在開(kāi)始把這個(gè)項(xiàng)目放在一起之前,我首先列出了我希望音樂(lè)盒具有哪些功能:

1.多個(gè)揚(yáng)聲器一次播放多個(gè)聲音

2.一個(gè)開(kāi)/關(guān)按鈕

3.伺服驅(qū)動(dòng)紙張

4. LCD 顯示八音盒狀態(tài)

這些都在下面的框圖中進(jìn)行了可視化:

poYBAGN2_mKAKnH_AAFXs9ulxOU343.png
系統(tǒng)框圖
?
pYYBAGN2_mWAGujpAAJyB83Olo8514.png
電源框圖
?

請(qǐng)注意,只有 6 根線連接到模擬輸入引腳,而之前提到了 7 個(gè)引腳(AG 之間的每個(gè)音符一個(gè))。不幸的是,由于 PocketBeagle 只有 6 個(gè) AIN 1.8V 引腳,因此必須省略其中一個(gè)注釋。

所有這些組件的實(shí)際接線可以在下面的 Fritzing 示意圖中看到:

poYBAGN2_mmAKOv1AAWavd16KWc996.png
音樂(lè)盒的 Fritzing 示意圖
?

構(gòu)建說(shuō)明:硬件組件

揚(yáng)聲器

音樂(lè)盒包括 3 個(gè)揚(yáng)聲器,這意味著音樂(lè)盒最多可以同時(shí)播放 3 個(gè)音符。如下圖所示:

poYBAGN2_m6AVYZsAAg0XBtLh6w124.jpg
揚(yáng)聲器設(shè)置
?

每個(gè)揚(yáng)聲器的一端接地,而另一端連接到 PWM 輸出。特別是,我使用了 PocketBeagle 上的 PWM0-A、PWM1-A 和 PWM2-B 引腳。這很好,除了一個(gè)小問(wèn)題:由于某種原因,我的 PocketBeagle 上的 PWM0-A 引腳無(wú)法以 400 Hz 以外的頻率輸出信號(hào)上網(wǎng)查了一下,這似乎是一個(gè)非常罕見(jiàn)的問(wèn)題,沒(méi)有明確的解決方案。鑒于此,我決定離開(kāi)第三位演講者,希望嘗試這個(gè)項(xiàng)目的任何其他人都不太可能遇到同樣的問(wèn)題。

另請(qǐng)注意,我們只有 3 個(gè)揚(yáng)聲器,這意味著一次只能播放 3 個(gè)音符。如果八音盒讀取的音符超過(guò) 3 個(gè)(即連續(xù)打孔過(guò)多),代碼設(shè)置為隨機(jī)選擇 3。

4位7段顯示器

4 位 7 段顯示器的目的是讓用戶(hù)可以知道設(shè)備是打開(kāi)還是關(guān)閉。音樂(lè)盒關(guān)閉時(shí)顯示屏將顯示“off”,如果音樂(lè)盒打開(kāi)則顯示“go”(選擇“go”而不是“on”,因?yàn)?7 段顯示屏無(wú)法顯示“n”)。在我的設(shè)置中,該顯示器連接到 PocketBeagle 上的 I2C1 引腳,并為 SDA 和 SCL 線路配備了適當(dāng)?shù)纳侠?a target='_blank' class='arckwlink_none'>電阻,并根據(jù)需要連接了電源和接地:

pYYBAGN2_nSAFbLIAAmo0r1WQ3c503.jpg
HT16K33 設(shè)置
?

按鈕

如上所述,使用了一個(gè)按鈕來(lái)允許用戶(hù)打開(kāi)和關(guān)閉音樂(lè)盒:

pYYBAGN2_nuAE56gAA5g1r3Z7t4744.jpg
按鈕設(shè)置
?

按鈕的一個(gè)端子連接到上拉電阻以及 PocketBeagle 上的 GPIO 59,在下面的代碼中已將其配置為 GPIO_IN 引腳。另一端接地。因此,未按下按鈕時(shí),GPIO 引腳將讀取“1”,按下按鈕時(shí)將讀取“0”。因此,代碼可以簡(jiǎn)單地檢測(cè)“0”以查看按鈕是否被按下。

連續(xù)旋轉(zhuǎn)伺服

如上所述,連續(xù)旋轉(zhuǎn)伺服用作移動(dòng)紙張通過(guò)頁(yè)面的“曲柄”。這是典型的接線方式,伺服系統(tǒng)的“信號(hào)”引腳連接到 PocketBeagle 上的 PWM0-B 引腳。旋轉(zhuǎn)速率固定為 400Hz,占空比為 25。

除了硬件組件之外,伺服系統(tǒng)還用橡皮筋包裹著,以確保它可以在旋轉(zhuǎn)時(shí)真正“抓住”并移動(dòng)紙張。這顯示在下面:

pYYBAGN2_oKAKmhpAArz83PgGEk218.jpg
連續(xù)旋轉(zhuǎn)伺服設(shè)置
?

標(biāo)頭引腳

整個(gè)設(shè)置中最重要的部分是檢測(cè)音符的實(shí)際電線!這些線中的每一條都連接到不同的模擬輸入引腳;特別是,使用的引腳為 P1_19、P1_21、P1_23、P1_25、P1_27、P2_36。這些電線連接到插頭引腳,以便它們可以輕松固定到位。如下圖所示:

pYYBAGN2_oiANKJdAAz2-Y3AkzY910.jpg
接頭引腳設(shè)置
?

(請(qǐng)注意,圖片中有 7 根電線,而實(shí)際上只有 6 根連接到 PocketBeagle —— 第 7 根額外的電線主要是為了保持間距而留下的)。

如前所述,由于這些電線大部分時(shí)間都沒(méi)有連接到任何東西,所以只是浮動(dòng)。但是,當(dāng)它們與接地銅板接觸時(shí),它們所連接的 Analog-in 將顯示為 0!

銅版

最后的組件只是一個(gè)接地的銅板。使用的銅板與您可能會(huì)發(fā)現(xiàn)用于 PCB 軋機(jī)的銅板相同。我將一根電線焊接到銅板的每一側(cè),然后將每根電線插入 PocketBeagle 上的接地:

pYYBAGN2_pCAQm-wAAzI7HIU0cM175.jpg
焊線到銅板
?

八音盒的物理組裝

連接所有電氣元件后,就可以將所有東西組裝到實(shí)際的音樂(lè)盒中了!

首先,取銅板,用強(qiáng)力膠粘兩塊硬紙板,形成音樂(lè)盒的側(cè)面,足夠近,以便插頭銷(xiāo)可以牢固地楔入:

poYBAGN2_peAGJAKAA247HQJC4U143.jpg
?

然后,將連續(xù)旋轉(zhuǎn)伺服系統(tǒng)強(qiáng)力膠粘到音樂(lè)盒的一側(cè),高度準(zhǔn)確,使伺服“臂”幾乎不接觸銅板:

pYYBAGN2_p6AW6MqAA_EVuUi2ts056.jpg
?

就是這樣,我們完成了!

代碼設(shè)置

1. 使用來(lái)自 BeagleBoard.org 的最新 PocketBeagle 映像

2. 從這個(gè) repo下載這個(gè) project_01 文件夾,解壓,然后移動(dòng)到你自己的 PocketBeagle 上的 Cloud9 IDE

3. 確保您在本地安裝了 Python 以及 Python AdaFruit_BBIO 包。如果沒(méi)有,執(zhí)行的步驟是:

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus-y
sudo apt-get install python-pip
sudo apt-get install python3-pip
sudo pip install Adafruit_BBIO

4.導(dǎo)航到project_01文件夾,并更改運(yùn)行腳本的權(quán)限

chmod 755 run

5. 使用 Chron 以便程序在以下步驟中自動(dòng)啟動(dòng)時(shí)運(yùn)行

  • 導(dǎo)航到您的本地 cloud9 文件夾
  • 鍵入“mkdir 日志”
  • 輸入“sudo crontab -e”
  • 添加到文件末尾:
@reboot sleep 30 && sh 'run' script> > /var/lib/cloud9/logs/cronlog2>&1

6.重啟PocketBeagle,等待30秒后代碼會(huì)自動(dòng)運(yùn)行!

操作說(shuō)明

1.打孔紙獲得想要的歌曲

pYYBAGN2_qOAPklaAAgx97H1gjE572.jpg
(很明顯我沒(méi)有打孔器)
?

2. 將紙張送入八音盒,足夠遠(yuǎn),使其部分位于連續(xù)旋轉(zhuǎn)伺服下方

poYBAGN2_q6AM84qABFo5eyhIC4453.jpg
?

3.打開(kāi)PocketBeagle,等待30秒讓程序自動(dòng)啟動(dòng)

4.按下按鈕開(kāi)機(jī),享受音樂(lè)!

pYYBAGN2_rSARt7EAAs5v2LtWKY580.jpg
?

?

。

?

  • 有時(shí),大頭針在孔上停留的時(shí)間過(guò)長(zhǎng),這會(huì)記錄為多個(gè)音符
  • 當(dāng)多個(gè)音符注冊(cè)在一起太快時(shí),這會(huì)在積壓中為揚(yáng)聲器創(chuàng)建一個(gè)緩沖區(qū),這會(huì)在音樂(lè)盒和正在播放的實(shí)際聲音之間產(chǎn)生延遲

這些將是該項(xiàng)目需要的兩個(gè)主要修復(fù)。我想為這個(gè)項(xiàng)目做的其他改變,繼續(xù)前進(jìn),是:

  • 為設(shè)備創(chuàng)建更堅(jiān)固的外殼(使用激光切割機(jī)或 3D 打印機(jī))
  • 減少音樂(lè)盒檢測(cè)到孔的時(shí)間和揚(yáng)聲器播放時(shí)間之間的延遲
  • 找到一種合并更多音符的方法(即包括帶有臨時(shí)記號(hào)的音符)
  • 添加音量控制
  • 添加一種控制連續(xù)旋轉(zhuǎn)伺服速度的方法

致謝

最后,特別感謝 Erik Welsh 教授 ( https://www.hackster.io/welsh ) 為使這個(gè)項(xiàng)目成為可能提供的所有幫助!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)