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

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

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

3天內(nèi)不再提示

怎樣使樹莓派進(jìn)入房間時(shí)播放音樂

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

掃碼添加小助手

加入工程師交流群

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

您將需要

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

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

1 x 220歐姆電阻

1 x 1K歐姆電阻。

3 x 10K歐姆電阻。

1 x磁簧開關(guān)。

1 x LED。

2個按鈕開關(guān)。

面包板。

連接線。

電腦揚(yáng)聲器或類似產(chǎn)品。

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

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

入門

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

怎樣使樹莓派進(jìn)入房間時(shí)播放音樂

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

請確保檢查所有內(nèi)容均在正確的位置。

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

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

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

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

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

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

測試設(shè)置

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

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

在終端中,創(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()

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

運(yùn)行程序:

python test.py

當(dāng)您按下兩個按鈕并將磁鐵從簧片開關(guān)上拉開時(shí),您應(yīng)該會看到LED亮起,并向屏幕報(bào)告。如果您在按按鈕時(shí)沒有收到反饋,請?jiān)俅螜z查電路,并確保一切均已連接。完成測試后,請按 CTRL-C 停止程序。

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

我們需要從導(dǎo)入一些模塊開始:

import Rpi.GPIO as GPIO

import pygame.mixer

import time

我們將使用 Pygame 模塊播放音樂。它是Raspbian Jessie的標(biāo)準(zhǔn)配置,并且是編寫Python游戲和許多其他出色項(xiàng)目所需的一切的強(qiáng)大庫。

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

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

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

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

現(xiàn)在,我們可以定義一個函數(shù)來觀察我們的磁簧開關(guān):

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 的變量-只是為了阻止程序嘗試在出現(xiàn)以下情況時(shí)反復(fù)開始播放

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

第二個if語句用于退出按鈕。如果按下此按鈕,音樂將停止并且程序?qū)⑼顺觥?/p>

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

現(xiàn)在是時(shí)候設(shè)置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之前已經(jīng)做過任何實(shí)驗(yàn),那么您應(yīng)該已經(jīng)熟悉了。引腳7設(shè)置中的 initial = GPIO.LOW 參數(shù)將在初始化后立即將其設(shè)置為低電平。

現(xiàn)在,我們可以調(diào)用函數(shù),將系統(tǒng)設(shè)置為不

activeSetup()

音樂大師!

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

回到我們的代碼中,我們需要啟動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 混音器。括號中的最后一個參數(shù)是緩沖區(qū),該緩沖區(qū)控制播放聲音的延遲。如果以后播放音樂時(shí)出現(xiàn)斷斷續(xù)續(xù)的播放,請嘗試將此數(shù)字增加到4096。在Pi 3上可以正常使用的設(shè)置。

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

現(xiàn)在剩下要做的就是建立一個循環(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)等待來自任一按鈕的輸入,然后退出或?qū)顟B(tài)更改為活動狀態(tài)相應(yīng)地。如果活動狀態(tài)變?yōu)?,則將調(diào)用我們之前定義的 watchDoor 函數(shù),并且在下次打開門時(shí)將播放我們的樂曲。我們還調(diào)用 GPIO.cleanup()來重置退出時(shí)的引腳,這通常是對Raspberry Pi上所有編程的一個好習(xí)慣。

這就是我們要做的一切啟動并運(yùn)行該項(xiàng)目,下面是完整的代碼:

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上以使其正常工作!

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    122

    文章

    2080

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

    樹莓屏幕怎么選?

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

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

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

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

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

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

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

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

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

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

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

    搭載代碼的樹莓進(jìn)入國際空間站!

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

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

    在本教程系列的第一部分中,您將學(xué)習(xí)如何使用樹莓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>!

    關(guān)于 樹莓5 超頻:你需要知道的一切!

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

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

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

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

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

    能夠精準(zhǔn)定位的樹莓機(jī)器人!

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

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

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