91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

怎樣使樹莓派進入房間時播放音樂

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-29 11:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

您是否曾經想過個人歡迎回家?有了Raspberry Pi和一些簡單的組件,您就可以!在這個簡單的項目中,我們將使用簧片開關在門打開時觸發(fā)主題曲。盡管您可以使用相同的電路在該項目中使用幾乎任何其他微控制器,但在這里我們將使用Raspberry Pi作為控制器。這是一個演示。

您將需要

您可能已經擁有制作所需的所有零件,除了簧片開關(大約$ 2-3),或者您可以得到一包5個,剛好超過8美元。

一個Raspberry Pi(任何型號都可以使用)。

1 x 220歐姆電阻。

1 x 1K歐姆電阻。

3 x 10K歐姆電阻。

1 x磁簧開關。

1 x LED。

2個按鈕開關。

面包板。

連接線。

電腦揚聲器或類似產品。

進入房間后,我們將使用Raspberry Pi播放歌曲,并在面包板上設計帶有按鈕的電路以延遲激活它,并停止程序。

該項目雖然主要是為了娛樂,但它涵蓋了DIY家庭自動化以及DIY家庭安全中許多應用程序的基礎。

入門

讓我們從制作電路開始。確保您的Pi沒電,并按如下所示設置電路:

怎樣使樹莓派進入房間時播放音樂

LED連接到我們pi的引腳7。兩個按鈕開關分別連接到引腳11和13,簧片開關連接到引腳15。我們的電源流向引腳1(3v3)和引腳6(Gnd)。

請確保檢查所有內容均在正確的位置。

在測試該項目時,它可能有助于將簧片開關置于您的面前,以便您輕松切換它打開或關閉。在這種情況下,舌簧開關已經安裝在門上方。項目啟動并運行后,您可以使用磁帶將開關暫時連接到門上,或者如果您更有信心,可以將其更永久地連接以用于將來的項目中!

將Pi的3.5mm插孔輸出連接到揚聲器系統(tǒng)。一旦所有內容放在一起,它應該看起來像這樣:

請注意,此處使用的面包板具有電源軌,與Fritzing圖相反

現在打開您的Pi的電源,并使用SSH訪問它,以便我們可以訪問終端。如果您不確定如何執(zhí)行此操作,本指南可以為您提供幫助。如果您將Raspberry Pi與顯示器,鼠標和鍵盤一起使用,請?zhí)^此步驟并打開終端。

在開始之前,值得檢查您是否最新。在終端中輸入sudo apt-get update。

現在我們可以繼續(xù)讓Pi與電路進行通訊了。

測試設置

開始,讓我們使用一個簡單的程序檢查電路。如果您確信到目前為止一切都正確,您可以跳過此步驟,盡管我建議您這樣做,因為這樣可以避免以后出現頭痛。

如果您以前從未使用過Python編程并且感到有點畏縮,有很多很棒的網站可以幫助您入門。

在終端中,創(chuàng)建一個新腳本:

nano test.py

打開后,將此代碼添加到文件中,然后按Ctrl-C退出,并遵循保存對話框:

#This code was written for an article on www.MakeUseOf.com by Ian Buckley.

import RPi.GPIO as GPIO

import time

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7,GPIO.OUT)

GPIO.setup(11,GPIO.IN)

GPIO.setup(13,GPIO.IN)

GPIO.setup(15,GPIO.IN)

while True:

GPIO.output(7,GPIO.HIGH)

if (GPIO.input(11)==1):

print(“Button on GPIO 11”)

time.sleep(1)

if (GPIO.input(13)==1):

print(“Button on GPIO 13”)

time.sleep(1)

if (GPIO.input(15)==1):

print(“Button on GPIO 15”)

time.sleep(1)

GPIO.cleanup()

此代碼讀取按鈕的值并打印到當它們改變時的屏幕。兩個按鈕具有下拉電阻,因此按下時它們報告為高電平。只要其隨附的磁鐵閉合,磁簧開關就會報告為HIGH。

運行程序:

python test.py

當您按下兩個按鈕并將磁鐵從簧片開關上拉開時,您應該會看到LED亮起,并向屏幕報告。如果您在按按鈕時沒有收到反饋,請再次檢查電路,并確保一切均已連接。完成測試后,請按 CTRL-C 停止程序。

現在我們可以編寫一個簡單的程序設置,觸發(fā)和重置我們的門傳感器。我們將遍歷各部分的代碼,并簡要說明每個部分的功能,但是如果您想向下滾動完整的代碼以查看完整的內容,則可以使用。

我們需要從導入一些模塊開始:

import Rpi.GPIO as GPIO

import pygame.mixer

import time

我們將使用 Pygame 模塊播放音樂。它是Raspbian Jessie的標準配置,并且是編寫Python游戲和許多其他出色項目所需的一切的強大庫。

我們將使用名為 active 的變量決定我們的系統(tǒng)是否處于活動狀態(tài)。讓我們定義幾個為我們執(zhí)行此操作的函數:

def activeSetup():

global active

active=0

print(“Currently Not Active”)

def activeState():

global active

if active==1:

active=0

GPIO.output(7,GPIO.LOW)

print(“Currently Not Active”)

elif active==0:

print (“Activating in 10 seconds”)

for x in range(0,10):

GPIO.output(7,GPIO.HIGH)

time.sleep(0.5)

GPIO.output(7,GPIO.LOW)

time.sleep(0.5)

active=1

GPIO.output(7,GPIO.HIGH)

print(“Currently Active”)

else: return

此處的第一個函數創(chuàng)建一個名為 active 的變量,并將其設置為0。給活動狀態(tài)一個數值意味著,如果您打算以后擴展程序以具有不同的活動狀態(tài),則可以對它們進行相應編號。盡管它可能不是世界上最好的Python編程,但對于這個項目來說已經足夠了。

調用時的第二個函數檢查系統(tǒng)是否處于活動狀態(tài)(或 active == 1 )。如果是,它將設置系統(tǒng)為非活動狀態(tài)( active == 0 ),關閉LED并打印到控制臺。如果不是,那么它會為您提供10秒鐘的倒數時間,使其離開LED閃爍的房間,然后繼續(xù)顯示系統(tǒng)處于活動狀態(tài)。

現在,我們可以定義一個函數來觀察我們的磁簧開關:

def watchDoor():

global playing

playing = False

while True:

if active==1 and GPIO.input(15)==1 and playing == False:

playing=True

pygame.mixer.music.play()

if GPIO.input(13)==1:

print(“Stop button pressed: Exiting”)

pygame.mixer.music.stop()

break

if GPIO.input(11)==1:

activeState()

time.sleep(0.5)

我們在這里創(chuàng)建了另一個名為 playing 的變量-只是為了阻止程序嘗試在出現以下情況時反復開始播放

在while循環(huán)中,第一個if語句開始播放音樂(我們還沒有音樂,但不用擔心,它來了)。僅當系統(tǒng)處于活動狀態(tài),簧片開關打開且尚未播放時,音樂才能開始播放。

第二個if語句用于退出按鈕。如果按下此按鈕,音樂將停止并且程序將退出。

第三個if語句用于切換系統(tǒng)是否處于活動狀態(tài)。此處的 time.sleep 功能是防止在按下按鈕時讀取多個按鈕。

現在是時候設置Pi的引腳了。

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.OUT,initial=GPIO.LOW)

GPIO.setup(11,GPIO.IN)

GPIO.setup(13,GPIO.IN)

GPIO.setup(15,GPIO.IN)

如果您在使用Pi之前已經做過任何實驗,那么您應該已經熟悉了。引腳7設置中的 initial = GPIO.LOW 參數將在初始化后立即將其設置為低電平。

現在,我們可以調用函數,將系統(tǒng)設置為不

activeSetup()

音樂大師!

這時,我們應該開始考慮要播放的音樂。您可以選擇所需的任何音樂文件,但是我們現在將選擇適合所有人的內容。如果您觀看YouTube,您可能已經很熟悉Kevin MacLeod的音樂。讓我們下載他的一首美妙的樂曲,稱為“獨眼大師”。這些內容以及他網站上的許多音樂均已獲得知識共享(Creative Commons)的許可,并且有很多充分的理由將這些許可的內容用于您的項目。

回到我們的代碼中,我們需要啟動Pygame混音器并加載我們的音樂。

pygame.mixer.init(44100,-16,2,1024)

pygame.mixer.music.set_volume(1.0)

name = “One-eyed Maestro.mp3”

pygame.mixer.music.load(name)

print(“Loaded track - ”+ str(name))

此塊的第一行啟動 Pygame 混音器。括號中的最后一個參數是緩沖區(qū),該緩沖區(qū)控制播放聲音的延遲。如果以后播放音樂時出現斷斷續(xù)續(xù)的播放,請嘗試將此數字增加到4096。在Pi 3上可以正常使用的設置。

如果將音樂文件下載到其他目錄,您的 door.py 程序,定義名稱變量時需要在方括號內提供完整路徑。

現在剩下要做的就是建立一個循環(huán)

while True:

if(GPIO.input(13)==1):

print(“Stop button pressed: Exiting”)

pygame.mixer.music.stop()

break

if(GPIO.input(11)==1):

activeState()

time.sleep(0.5)

if(active==1):

watchDoor()

break

GPIO.cleanup()

此while循環(huán)等待來自任一按鈕的輸入,然后退出或將狀態(tài)更改為活動狀態(tài)相應地。如果活動狀態(tài)變?yōu)?,則將調用我們之前定義的 watchDoor 函數,并且在下次打開門時將播放我們的樂曲。我們還調用 GPIO.cleanup()來重置退出時的引腳,這通常是對Raspberry Pi上所有編程的一個好習慣。

這就是我們要做的一切啟動并運行該項目,下面是完整的代碼:

import RPi.GPIO as GPIO

import pygame.mixer

import time

def activeSetup():

global active

active=0

print(“Currently Not Active”)

def activeState():

global active

if active==1:

active=0

GPIO.output(7,GPIO.LOW)

print(“Currently Not Active”)

elif active==0:

print (“Activating in 10 seconds”)

for x in range(0,10):

GPIO.output(7,GPIO.HIGH)

time.sleep(0.5)

GPIO.output(7,GPIO.LOW)

time.sleep(0.5)

active=1

GPIO.output(7,GPIO.HIGH)

print(“Currently Active”)

else: return

def watchDoor():

global playing

playing = False

while True:

if active==1 and GPIO.input(15)==1 and playing == False:

playing=True

pygame.mixer.music.play()

if GPIO.input(13)==1:

print(“Stop button pressed: Exiting”)

pygame.mixer.music.stop()

break

if GPIO.input(11)==1:

activeState()

time.sleep(0.5)

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.OUT,initial=GPIO.LOW)

GPIO.setup(11,GPIO.IN)

GPIO.setup(13,GPIO.IN)

GPIO.setup(15,GPIO.IN)

activeSetup()

pygame.mixer.init(44100,-16,2,1024)

pygame.mixer.music.set_volume(1.0)

name = “One-eyed Maestro.mp3”

pygame.mixer.music.load(name)

print(“Loaded track - ”+ str(name))

while True:

if(GPIO.input(13)==1):

print(“Stop button pressed: Exiting”)

pygame.mixer.music.stop()

break

if(GPIO.input(11)==1):

activeState()

time.sleep(0.5)

if(active==1):

watchDoor()

break

GPIO.cleanup()

如果您在此處向下滾動以立即獲取完整的代碼,請記住您仍然需要將音樂下載到您的Pi上以使其正常工作!

現在,您應該可以正常運行歡迎的主題音樂了!將簧片開關安裝到門上,然后嘗試一下。令人尷尬的跳舞是可選的,但建議這樣做。

該項目涵蓋了各種形式的家庭監(jiān)控,安全性和自動化的基礎知識,希望它也很有趣!

現在您已經走了這么遠,為什么停在那里?您可以添加更多軌道,并讓程序從列表中隨機選擇一個。您可以添加一個中繼,并在輸入時觸發(fā)其他對象。如果您有家庭音樂系統(tǒng),為什么不為每個房間都準備主題曲呢?

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 樹莓派
    +關注

    關注

    122

    文章

    2080

    瀏覽量

    110623
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    零成本鋼鐵俠手套!樹莓+OpenCV 秒變手勢遙控器!

    大家好,這是一個樹莓和OpenCV的連載專題。使用樹莓與OpenCV實現姿態(tài)估計和面部特征點追蹤使用樹莓
    的頭像 發(fā)表于 08-16 16:16 ?1420次閱讀
    零成本鋼鐵俠手套!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>+OpenCV 秒變手勢遙控器!

    如何使用樹莓與OpenCV實現面部和運動追蹤的云臺系統(tǒng)?

    大家好,這是一個樹莓和OpenCV的連載專題。使用樹莓與OpenCV實現姿態(tài)估計和面部特征點追蹤使用樹莓
    的頭像 發(fā)表于 08-14 17:45 ?1998次閱讀
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>與OpenCV實現面部和運動追蹤的云臺系統(tǒng)?

    樹莓屏幕怎么選?

    樹莓很多人都用過,但用屏幕的倒不是很多。不少都是直接遠程操作,或者直接接身邊的顯示設備了。但我覺得給開發(fā)板配一個屏幕還是很能提升使用體驗的。這次我就介紹一下樹莓的屏幕怎么選擇。
    的頭像 發(fā)表于 08-08 14:59 ?1611次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>屏幕怎么選?

    你可能從未聽說過 9 款令人驚嘆的樹莓應用!

    強大卻被低估的應用,涵蓋媒體播放器、創(chuàng)意工具到生產力工具等。這些隱藏的寶藏能讓你的樹莓功能更全面、效率更高。我試用過許多超酷的樹莓應用,
    的頭像 發(fā)表于 08-07 18:19 ?1220次閱讀
    你可能從未聽說過 9 款令人驚嘆的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>應用!

    樹莓操作系統(tǒng):版本、特性及設置完整指南!

    樹莓操作系統(tǒng)是什么?樹莓操作系統(tǒng)是由樹莓基金會專為樹莓
    的頭像 發(fā)表于 07-28 18:26 ?1584次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>操作系統(tǒng):版本、特性及設置完整指南!

    樹莓6 傳聞:發(fā)布日期與規(guī)格!

    每當我想再為我的收藏增添一款樹莓時,總會在是立即購買還是等待硬件更強大的下一代之間猶豫不決。但新樹莓型號的發(fā)布往往容易被錯過,尤其是在你的信息流被病毒式傳播的貓咪視頻占據時。因此,
    的頭像 發(fā)表于 07-11 16:21 ?2702次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>6 傳聞:發(fā)布日期與規(guī)格!

    【正點原子STM32MP257開發(fā)板試用】5.播放音樂

    前言 感謝正點原子和電子發(fā)燒友論壇提供的這次機會讓我有機會體驗這款正點原子STM32MP257開發(fā)板,希望可以借這個機會好好學習一下。 環(huán)境搭建 播放音樂有很多Python庫比如pygame
    發(fā)表于 06-28 14:27

    樹莓小技巧:無需鍵盤或顯示器,如何通過WiFi設置樹莓?

    樹莓是一款小巧便攜的USB供電計算機,可以隱藏起來用于小型項目,如網絡服務器或家庭自動化。通常,設置樹莓需要鍵盤和顯示器來編輯和查看樹莓
    的頭像 發(fā)表于 06-26 15:41 ?1706次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>小技巧:無需鍵盤或顯示器,如何通過WiFi設置<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>?

    搭載代碼的樹莓進入國際空間站!

    前言通過歐洲宇航挑戰(zhàn)賽(EuropeanAstroPiChallenge),年輕人通過在國際空間站(ISS)上的樹莓(RaspberryPi)計算機上運行代碼的獨特體驗,參與計算編程。歐洲宇航
    的頭像 發(fā)表于 06-19 17:11 ?1104次閱讀
    搭載代碼的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>進入</b>國際空間站!

    樹莓分類器:用樹莓識別不同型號的樹莓!

    在本教程系列的第一部分中,您將學習如何使用樹莓AI攝像頭來檢測不同的樹莓型號。本系列由DavidPlowman創(chuàng)建,他是樹莓
    的頭像 發(fā)表于 06-13 16:39 ?1422次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>分類器:用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>識別不同型號的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>!

    關于 樹莓5 超頻:你需要知道的一切!

    。超頻樹莓5需修改config.txt啟動設置文件,調整CPU速度設置。但超頻可能縮短Pi5的使用壽命,并使保修失效,因此需謹慎操作。樹莓
    的頭像 發(fā)表于 06-10 17:29 ?2908次閱讀
    關于 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5 超頻:你需要知道的一切!

    樹莓“揪出”家里的耗電怪獸!

    在本應用中,我們將使用樹莓設置一個CE電流監(jiān)測器,并通過網頁界面顯示電路的電流讀數。本項目使用的組件硬件組件樹莓2ModelBx112通道20安培電流監(jiān)測控制器x1項目背景介紹在本
    的頭像 發(fā)表于 06-04 15:33 ?1812次閱讀
    用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹莓“吉尼斯世界記錄”:將樹莓的性能發(fā)揮到極致的項目!

    樹莓是一款功能強大、體積小巧且高度可定制的設備,多年來,我們見證了它被應用于眾多領域。無論是將其裝入3D打印的經典游戲機外殼,還是簡單地將它隱藏起來作為家庭文件服務器,我們都報道過在社區(qū)里用樹莓
    的頭像 發(fā)表于 05-22 16:53 ?1618次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的性能發(fā)揮到極致的項目!

    能夠精準定位的樹莓機器人!

    我為我的自制機器人BigRob(同樣由樹莓驅動)配備了基于樹莓的精準GPS導航系統(tǒng)。本項目所用組件硬件組件NV08C-CSMx1NV08C-CSM是一款集成式衛(wèi)星導航接收器
    的頭像 發(fā)表于 05-17 08:33 ?1384次閱讀
    能夠精準定位的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>機器人!

    樹莓 Zero 打造的智能漫游車!

    使用PXFMini和樹莓Zero打造您自己的自主漫游車。本項目所用組件硬件組件ErleRoboticsPXFmini×1樹莓Zero×1樹莓
    的頭像 發(fā)表于 05-13 16:39 ?1208次閱讀
    用 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車!