<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>可編程音樂盒的構建

可編程音樂盒的構建

2023-06-28 | zip | 0.45 MB | 次下載 | 免費

資料介紹

描述

動機

我一直很喜歡玩八音盒,實際上在家里也有收藏。能夠按下一個按鈕,或者轉動幾圈曲柄,然后突然在你的手中播放音樂,這真是太新奇了!這個可編程音樂盒是仿照一個更“傳統”的音樂盒(以這個為例。當您購買傳統的可編程音樂盒時,您會得到一個基于曲柄的音樂盒、特殊紙張和用于在該紙張上打孔的特殊打孔器。你在紙上打孔的地方“抓住”每根弦,因為它穿過音樂盒,這就是你發出聲音的方式。

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

概述

如上所述,這個音樂盒的運作機制與上面的音樂盒類似;您可以通過在紙上打孔然后將其送入盒子來選擇播放的音符。但是,有幾個主要區別:

1.這里不是使用手動曲柄送紙,而是通過連續旋轉伺服來完成,可以通過按下按鈕來打開和關閉!這種變化主要是因為我真的想在這個項目中使用伺服。

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

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

初步圖表和規劃

在開始把這個項目放在一起之前,我首先列出了我希望音樂盒具有哪些功能:

1.多個揚聲器一次播放多個聲音

2.一個開/關按鈕

3.伺服驅動紙張

4. LCD 顯示八音盒狀態

這些都在下面的框圖中進行了可視化:

poYBAGN2_mKAKnH_AAFXs9ulxOU343.png
系統框圖
?
pYYBAGN2_mWAGujpAAJyB83Olo8514.png
電源框圖
?

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

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

poYBAGN2_mmAKOv1AAWavd16KWc996.png
音樂盒的 Fritzing 示意圖
?

構建說明:硬件組件

揚聲器

音樂盒包括 3 個揚聲器,這意味著音樂盒最多可以同時播放 3 個音符。如下圖所示:

poYBAGN2_m6AVYZsAAg0XBtLh6w124.jpg
揚聲器設置
?

每個揚聲器的一端接地,而另一端連接到 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 線路配備了適當的上拉電阻,并根據需要連接了電源和接地:

pYYBAGN2_nSAFbLIAAmo0r1WQ3c503.jpg
HT16K33 設置
?

按鈕

如上所述,使用了一個按鈕來允許用戶打開和關閉音樂盒:

pYYBAGN2_nuAE56gAA5g1r3Z7t4744.jpg
按鈕設置
?

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

連續旋轉伺服

如上所述,連續旋轉伺服用作移動紙張通過頁面的“曲柄”。這是典型的接線方式,伺服系統的“信號”引腳連接到 PocketBeagle 上的 PWM0-B 引腳。旋轉速率固定為 400Hz,占空比為 25。

除了硬件組件之外,伺服系統還用橡皮筋包裹著,以確保它可以在旋轉時真正“抓住”并移動紙張。這顯示在下面:

pYYBAGN2_oKAKmhpAArz83PgGEk218.jpg
連續旋轉伺服設置
?

標頭引腳

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

pYYBAGN2_oiANKJdAAz2-Y3AkzY910.jpg
接頭引腳設置
?

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

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

銅版

最后的組件只是一個接地的銅板。使用的銅板與您可能會發現用于 PCB 軋機的銅板相同。我將一根電線焊接到銅板的每一側,然后將每根電線插入 PocketBeagle 上的接地:

pYYBAGN2_pCAQm-wAAzI7HIU0cM175.jpg
焊線到銅板
?

八音盒的物理組裝

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

首先,取銅板,用強力膠粘兩塊硬紙板,形成音樂盒的側面,足夠近,以便插頭銷可以牢固地楔入:

poYBAGN2_peAGJAKAA247HQJC4U143.jpg
?

然后,將連續旋轉伺服系統強力膠粘到音樂盒的一側,高度準確,使伺服“臂”幾乎不接觸銅板:

pYYBAGN2_p6AW6MqAA_EVuUi2ts056.jpg
?

就是這樣,我們完成了!

代碼設置

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.打孔紙獲得想要的歌曲

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

2. 將紙張送入八音盒,足夠遠,使其部分位于連續旋轉伺服下方

poYBAGN2_q6AM84qABFo5eyhIC4453.jpg
?

3.打開PocketBeagle,等待30秒讓程序自動啟動

4.按下按鈕開機,享受音樂!

pYYBAGN2_rSARt7EAAs5v2LtWKY580.jpg
?

。

?

。

?

  • 有時,大頭針在孔上停留的時間過長,這會記錄為多個音符
  • 當多個音符注冊在一起太快時,這會在積壓中為揚聲器創建一個緩沖區,這會在音樂盒和正在播放的實際聲音之間產生延遲

這些將是該項目需要的兩個主要修復。我想為這個項目做的其他改變,繼續前進,是:

  • 為設備創建更堅固的外殼(使用激光切割機或 3D 打印機)
  • 減少音樂盒檢測到孔的時間和揚聲器播放時間之間的延遲
  • 找到一種合并更多音符的方法(即包括帶有臨時記號的音符)
  • 添加音量控制
  • 添加一種控制連續旋轉伺服速度的方法

致謝

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


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

評論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>