資料介紹
描述
動機
我一直很喜歡玩八音盒,實際上在家里也有收藏。能夠按下一個按鈕,或者轉動幾圈曲柄,然后突然在你的手中播放音樂,這真是太新奇了!這個可編程音樂盒是仿照一個更“傳統”的音樂盒(以這個為例)。當您購買傳統的可編程音樂盒時,您會得到一個基于曲柄的音樂盒、特殊紙張和用于在該紙張上打孔的特殊打孔器。你在紙上打孔的地方“抓住”每根弦,因為它穿過音樂盒,這就是你發出聲音的方式。
但是,問題在于這些可能有點貴。而且,除此之外,你還需要特殊的紙,一旦你用完了那張紙,你就得買更多。我想做一些你可以在家里用便宜的零件建造的東西,而且你不需要特殊的紙!
概述
如上所述,這個音樂盒的運作機制與上面的音樂盒類似;您可以通過在紙上打孔然后將其送入盒子來選擇播放的音符。但是,有幾個主要區別:
1.這里不是使用手動曲柄送紙,而是通過連續旋轉伺服來完成,可以通過按下按鈕來打開和關閉!這種變化主要是因為我真的想在這個項目中使用伺服。
2.每個孔的檢測方式如下。首先,將 2 根電線焊接到銅板的每一端,以便將其接地。然后,將7根線放在銅板的頂部;這些線連接到 PocketBeagle 上它們自己的模擬輸入引腳(每個音符一個:A、B、C、D、E、F、G)。打孔紙穿過銅板的頂部,以及這些電線的下方;當銅板和這些導線之間有紙時,模擬輸入引腳讀取的值會隨機上下浮動。當有孔時,電線將暫時與接地銅板接觸,因此模擬輸入引腳將讀取 0(或接近該值的某個位置)。
因此,您所要做的就是將紙放在銅板上,按下按鈕開始,然后觀看音樂開始播放!
初步圖表和規劃
在開始把這個項目放在一起之前,我首先列出了我希望音樂盒具有哪些功能:
1.多個揚聲器一次播放多個聲音
2.一個開/關按鈕
3.伺服驅動紙張
4. LCD 顯示八音盒狀態
這些都在下面的框圖中進行了可視化:
請注意,只有 6 根線連接到模擬輸入引腳,而之前提到了 7 個引腳(AG 之間的每個音符一個)。不幸的是,由于 PocketBeagle 只有 6 個 AIN 1.8V 引腳,因此必須省略其中一個注釋。
所有這些組件的實際接線可以在下面的 Fritzing 示意圖中看到:
構建說明:硬件組件
揚聲器
音樂盒包括 3 個揚聲器,這意味著音樂盒最多可以同時播放 3 個音符。如下圖所示:
每個揚聲器的一端接地,而另一端連接到 PWM 輸出。特別是,我使用了 PocketBeagle 上的 PWM0-A、PWM1-A 和 PWM2-B 引腳。這很好,除了一個小問題:由于某種原因,我的 PocketBeagle 上的 PWM0-A 引腳無法以 400 Hz 以外的頻率輸出信號。上網查了一下,這似乎是一個非常罕見的問題,沒有明確的解決方案。鑒于此,我決定離開第三位演講者,希望嘗試這個項目的任何其他人都不太可能遇到同樣的問題。
另請注意,我們只有 3 個揚聲器,這意味著一次只能播放 3 個音符。如果八音盒讀取的音符超過 3 個(即連續打孔過多),代碼設置為隨機選擇 3。
4位7段顯示器
4 位 7 段顯示器的目的是讓用戶可以知道設備是打開還是關閉。音樂盒關閉時顯示屏將顯示“off”,如果音樂盒打開則顯示“go”(選擇“go”而不是“on”,因為 7 段顯示屏無法顯示“n”)。在我的設置中,該顯示器連接到 PocketBeagle 上的 I2C1 引腳,并為 SDA 和 SCL 線路配備了適當的上拉電阻,并根據需要連接了電源和接地:
按鈕
如上所述,使用了一個按鈕來允許用戶打開和關閉音樂盒:
按鈕的一個端子連接到上拉電阻以及 PocketBeagle 上的 GPIO 59,在下面的代碼中已將其配置為 GPIO_IN 引腳。另一端接地。因此,未按下按鈕時,GPIO 引腳將讀取“1”,按下按鈕時將讀取“0”。因此,代碼可以簡單地檢測“0”以查看按鈕是否被按下。
連續旋轉伺服
如上所述,連續旋轉伺服用作移動紙張通過頁面的“曲柄”。這是典型的接線方式,伺服系統的“信號”引腳連接到 PocketBeagle 上的 PWM0-B 引腳。旋轉速率固定為 400Hz,占空比為 25。
除了硬件組件之外,伺服系統還用橡皮筋包裹著,以確保它可以在旋轉時真正“抓住”并移動紙張。這顯示在下面:
標頭引腳
整個設置中最重要的部分是檢測音符的實際電線!這些線中的每一條都連接到不同的模擬輸入引腳;特別是,使用的引腳為 P1_19、P1_21、P1_23、P1_25、P1_27、P2_36。這些電線連接到插頭引腳,以便它們可以輕松固定到位。如下圖所示:
(請注意,圖片中有 7 根電線,而實際上只有 6 根連接到 PocketBeagle —— 第 7 根額外的電線主要是為了保持間距而留下的)。
如前所述,由于這些電線大部分時間都沒有連接到任何東西,所以只是浮動。但是,當它們與接地銅板接觸時,它們所連接的 Analog-in 將顯示為 0!
銅版
最后的組件只是一個接地的銅板。使用的銅板與您可能會發現用于 PCB 軋機的銅板相同。我將一根電線焊接到銅板的每一側,然后將每根電線插入 PocketBeagle 上的接地:
八音盒的物理組裝
連接所有電氣元件后,就可以將所有東西組裝到實際的音樂盒中了!
首先,取銅板,用強力膠粘兩塊硬紙板,形成音樂盒的側面,足夠近,以便插頭銷可以牢固地楔入:
然后,將連續旋轉伺服系統強力膠粘到音樂盒的一側,高度準確,使伺服“臂”幾乎不接觸銅板:
就是這樣,我們完成了!
代碼設置
1. 使用來自 BeagleBoard.org 的最新 PocketBeagle 映像
2. 從這個 repo下載這個 project_01 文件夾,解壓,然后移動到你自己的 PocketBeagle 上的 Cloud9 IDE
3. 確保您在本地安裝了 Python 以及 Python AdaFruit_BBIO 包。如果沒有,執行的步驟是:
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.導航到project_01文件夾,并更改運行腳本的權限
chmod 755 run
5. 使用 Chron 以便程序在以下步驟中自動啟動時運行
- 導航到您的本地 cloud9 文件夾
- 鍵入“mkdir 日志”
- 輸入“sudo crontab -e”
- 添加到文件末尾:
@reboot sleep 30 && sh 'run' script> > /var/lib/cloud9/logs/cronlog2>&1
6.重啟PocketBeagle,等待30秒后代碼會自動運行!
操作說明
1.打孔紙獲得想要的歌曲
2. 將紙張送入八音盒,足夠遠,使其部分位于連續旋轉伺服下方
3.打開PocketBeagle,等待30秒讓程序自動啟動
4.按下按鈕開機,享受音樂!
。
。
?
- 有時,大頭針在孔上停留的時間過長,這會記錄為多個音符
- 當多個音符注冊在一起太快時,這會在積壓中為揚聲器創建一個緩沖區,這會在音樂盒和正在播放的實際聲音之間產生延遲
這些將是該項目需要的兩個主要修復。我想為這個項目做的其他改變,繼續前進,是:
- 為設備創建更堅固的外殼(使用激光切割機或 3D 打印機)
- 減少音樂盒檢測到孔的時間和揚聲器播放時間之間的延遲
- 找到一種合并更多音符的方法(即包括帶有臨時記號的音符)
- 添加音量控制
- 添加一種控制連續旋轉伺服速度的方法
致謝
最后,特別感謝 Erik Welsh 教授 ( https://www.hackster.io/welsh ) 為使這個項目成為可能提供的所有幫助!
- 單片機制作音樂盒
- 頭腦風暴音樂盒開源構建
- 夜光音樂盒開源分享
- 現場可編程門陣列簡介 76次下載
- 使用51單片機實現音樂盒的設計論文 115次下載
- 使用51單片機實現音樂噴泉頻譜彩燈音樂盒播放器的源代碼免費下載 108次下載
- 使用51單片機自制音樂盒的詳細資料和程序及電路圖免費下載
- 如何使用單片機設計音樂盒進行播放小蘋果的C語言程序免費下載 21次下載
- 使用單片機進行音樂盒的設計資料合集免費下載 49次下載
- 使用51單片機設計音樂盒的程序資料免費下載 15次下載
- 51單片機音樂盒梁祝的proteus匯編程序和電路圖免費下載 32次下載
- 蜂鳴器唱歌 電子琴protues仿真 51音樂盒仿真 基于51的 63次下載
- 基于單片機的音樂盒設計 43次下載
- 簡單的音樂盒 8次下載
- 電子音樂盒設計
- 什么是現場可編程邏輯陣列?它有哪些特點和應用? 485次閱讀
- 可編程片上系統的基本特征和主要應用 403次閱讀
- 可編程片上系統是什么意思 399次閱讀
- 現場可編程門陣列的原理和應用 457次閱讀
- 現場可編程門陣列是什么 2217次閱讀
- 簡單認識現場可編程門陣列 681次閱讀
- 可編程邏輯器件測試方法 1160次閱讀
- 可編程電源的結構 可編程電源的使用事項 856次閱讀
- 可編程電源的原理 可編程電源的優缺點 2150次閱讀
- 如何使用數字電位計構建可編程振蕩器 1052次閱讀
- 可編程控制器的特點有哪些 8439次閱讀
- diy音樂盒制作 2w次閱讀
- 可編程電源應用與選型詳解 1.3w次閱讀
- 可編程控制器基本知識_可編程控制器原理及應用 5.8w次閱讀
- 可編程電源簡介 2067次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多