資料介紹
描述
動(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 根電線(xiàn)焊接到銅板的每一端,以便將其接地。然后,將7根線(xiàn)放在銅板的頂部;這些線(xiàn)連接到 PocketBeagle 上它們自己的模擬輸入引腳(每個(gè)音符一個(gè):A、B、C、D、E、F、G)。打孔紙穿過(guò)銅板的頂部,以及這些電線(xiàn)的下方;當(dāng)銅板和這些導(dǎo)線(xiàn)之間有紙時(shí),模擬輸入引腳讀取的值會(huì)隨機(jī)上下浮動(dòng)。當(dāng)有孔時(shí),電線(xiàn)將暫時(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)行了可視化:
請(qǐng)注意,只有 6 根線(xiàn)連接到模擬輸入引腳,而之前提到了 7 個(gè)引腳(AG 之間的每個(gè)音符一個(gè))。不幸的是,由于 PocketBeagle 只有 6 個(gè) AIN 1.8V 引腳,因此必須省略其中一個(gè)注釋。
所有這些組件的實(shí)際接線(xiàn)可以在下面的 Fritzing 示意圖中看到:
構(gòu)建說(shuō)明:硬件組件
揚(yáng)聲器
音樂(lè)盒包括 3 個(gè)揚(yáng)聲器,這意味著音樂(lè)盒最多可以同時(shí)播放 3 個(gè)音符。如下圖所示:
每個(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 線(xiàn)路配備了適當(dāng)?shù)纳侠?a target='_blank' class='arckwlink_none'>電阻,并根據(jù)需要連接了電源和接地:
按鈕
如上所述,使用了一個(gè)按鈕來(lái)允許用戶(hù)打開(kāi)和關(guān)閉音樂(lè)盒:
按鈕的一個(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è)面的“曲柄”。這是典型的接線(xiàn)方式,伺服系統(tǒng)的“信號(hào)”引腳連接到 PocketBeagle 上的 PWM0-B 引腳。旋轉(zhuǎn)速率固定為 400Hz,占空比為 25。
除了硬件組件之外,伺服系統(tǒng)還用橡皮筋包裹著,以確保它可以在旋轉(zhuǎn)時(shí)真正“抓住”并移動(dòng)紙張。這顯示在下面:
標(biāo)頭引腳
整個(gè)設(shè)置中最重要的部分是檢測(cè)音符的實(shí)際電線(xiàn)!這些線(xiàn)中的每一條都連接到不同的模擬輸入引腳;特別是,使用的引腳為 P1_19、P1_21、P1_23、P1_25、P1_27、P2_36。這些電線(xiàn)連接到插頭引腳,以便它們可以輕松固定到位。如下圖所示:
(請(qǐng)注意,圖片中有 7 根電線(xiàn),而實(shí)際上只有 6 根連接到 PocketBeagle —— 第 7 根額外的電線(xiàn)主要是為了保持間距而留下的)。
如前所述,由于這些電線(xiàn)大部分時(shí)間都沒(méi)有連接到任何東西,所以只是浮動(dòng)。但是,當(dāng)它們與接地銅板接觸時(shí),它們所連接的 Analog-in 將顯示為 0!
銅版
最后的組件只是一個(gè)接地的銅板。使用的銅板與您可能會(huì)發(fā)現(xiàn)用于 PCB 軋機(jī)的銅板相同。我將一根電線(xiàn)焊接到銅板的每一側(cè),然后將每根電線(xiàn)插入 PocketBeagle 上的接地:
八音盒的物理組裝
連接所有電氣元件后,就可以將所有東西組裝到實(shí)際的音樂(lè)盒中了!
首先,取銅板,用強(qiáng)力膠粘兩塊硬紙板,形成音樂(lè)盒的側(cè)面,足夠近,以便插頭銷(xiāo)可以牢固地楔入:
然后,將連續(xù)旋轉(zhuǎn)伺服系統(tǒng)強(qiáng)力膠粘到音樂(lè)盒的一側(cè),高度準(zhǔn)確,使伺服“臂”幾乎不接觸銅板:
就是這樣,我們完成了!
代碼設(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.打孔紙獲得想要的歌曲
2. 將紙張送入八音盒,足夠遠(yuǎn),使其部分位于連續(xù)旋轉(zhuǎn)伺服下方
3.打開(kāi)PocketBeagle,等待30秒讓程序自動(dòng)啟動(dòng)
4.按下按鈕開(kāi)機(jī),享受音樂(lè)!
。
。
?
- 有時(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)目成為可能提供的所有幫助!
- 單片機(jī)制作音樂(lè)盒
- 頭腦風(fēng)暴音樂(lè)盒開(kāi)源構(gòu)建
- 夜光音樂(lè)盒開(kāi)源分享
- 現(xiàn)場(chǎng)可編程門(mén)陣列簡(jiǎn)介 76次下載
- 使用51單片機(jī)實(shí)現(xiàn)音樂(lè)盒的設(shè)計(jì)論文 115次下載
- 使用51單片機(jī)實(shí)現(xiàn)音樂(lè)噴泉頻譜彩燈音樂(lè)盒播放器的源代碼免費(fèi)下載 108次下載
- 使用51單片機(jī)自制音樂(lè)盒的詳細(xì)資料和程序及電路圖免費(fèi)下載
- 如何使用單片機(jī)設(shè)計(jì)音樂(lè)盒進(jìn)行播放小蘋(píng)果的C語(yǔ)言程序免費(fèi)下載 21次下載
- 使用單片機(jī)進(jìn)行音樂(lè)盒的設(shè)計(jì)資料合集免費(fèi)下載 49次下載
- 使用51單片機(jī)設(shè)計(jì)音樂(lè)盒的程序資料免費(fèi)下載 15次下載
- 51單片機(jī)音樂(lè)盒梁祝的proteus匯編程序和電路圖免費(fèi)下載 32次下載
- 蜂鳴器唱歌 電子琴protues仿真 51音樂(lè)盒仿真 基于51的 63次下載
- 基于單片機(jī)的音樂(lè)盒設(shè)計(jì) 43次下載
- 簡(jiǎn)單的音樂(lè)盒 8次下載
- 電子音樂(lè)盒設(shè)計(jì)
- 什么是現(xiàn)場(chǎng)可編程邏輯陣列?它有哪些特點(diǎn)和應(yīng)用? 485次閱讀
- 可編程片上系統(tǒng)的基本特征和主要應(yīng)用 403次閱讀
- 可編程片上系統(tǒng)是什么意思 399次閱讀
- 現(xiàn)場(chǎng)可編程門(mén)陣列的原理和應(yīng)用 457次閱讀
- 現(xiàn)場(chǎng)可編程門(mén)陣列是什么 2217次閱讀
- 簡(jiǎn)單認(rèn)識(shí)現(xiàn)場(chǎng)可編程門(mén)陣列 681次閱讀
- 可編程邏輯器件測(cè)試方法 1160次閱讀
- 可編程電源的結(jié)構(gòu) 可編程電源的使用事項(xiàng) 856次閱讀
- 可編程電源的原理 可編程電源的優(yōu)缺點(diǎn) 2150次閱讀
- 如何使用數(shù)字電位計(jì)構(gòu)建可編程振蕩器 1052次閱讀
- 可編程控制器的特點(diǎn)有哪些 8439次閱讀
- diy音樂(lè)盒制作 2w次閱讀
- 可編程電源應(yīng)用與選型詳解 1.3w次閱讀
- 可編程控制器基本知識(shí)_可編程控制器原理及應(yīng)用 5.8w次閱讀
- 可編程電源簡(jiǎn)介 2067次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多