chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

您將需要

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

一個(gè)Raspberry Pi(任何型號(hào)都可以使用)。

1 x 220歐姆電阻。

1 x 1K歐姆電阻。

3 x 10K歐姆電阻。

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

1 x LED。

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

面包板。

連接線。

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

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

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

入門

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

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

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

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

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

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

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

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

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

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

測(cè)試設(shè)置

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

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

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

nano test.py

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

#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í)的屏幕。兩個(gè)按鈕具有下拉電阻,因此按下時(shí)它們報(bào)告為高電平。只要其隨附的磁鐵閉合,磁簧開關(guān)就會(huì)報(bào)告為HIGH。

運(yùn)行程序:

python test.py

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

現(xiàn)在我們可以編寫一個(gè)簡(jiǎn)單的程序設(shè)置,觸發(fā)和重置我們的門傳感器。我們將遍歷各部分的代碼,并簡(jiǎn)要說明每個(gè)部分的功能,但是如果您想向下滾動(dòng)完整的代碼以查看完整的內(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)大庫(kù)。

我們將使用名為 active 的變量決定我們的系統(tǒng)是否處于活動(dòng)狀態(tài)。讓我們定義幾個(gè)為我們執(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

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

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

現(xiàn)在,我們可以定義一個(gè)函數(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)

我們?cè)谶@里創(chuàng)建了另一個(gè)名為 playing 的變量-只是為了阻止程序嘗試在出現(xiàn)以下情況時(shí)反復(fù)開始播放

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

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

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

現(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)站上的許多音樂均已獲得知識(shí)共享(Creative Commons)的許可,并且有很多充分的理由將這些許可的內(nèi)容用于您的項(xiàng)目。

回到我們的代碼中,我們需要啟動(dò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))

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

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

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

這就是我們要做的一切啟動(dòng)并運(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()

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

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    121

    文章

    2009

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

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

    樹莓分類器:用樹莓識(shí)別不同型號(hào)的樹莓!

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

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

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

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

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

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

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

    使用TLV320AIC3254EVM-U用PPS控制時(shí)候播放音樂,突然中斷,然后又恢復(fù),為什么?

    我使用TLV320AIC3254EVM-U 用PPS 控制時(shí)候播放音樂,突然中斷,然后又恢復(fù)。出現(xiàn)頻率很高。用TI的固件并用CS軟件播放時(shí)候沒有出現(xiàn)這個(gè)問題。 請(qǐng)問大家我需要做什么部分參數(shù)設(shè)置?power tune or 其他?
    發(fā)表于 11-01 07:15

    TPA3116加了MUTE電路后播放音樂音量開到最大喇叭出現(xiàn)雜音怎么解決?

    TPA3116加了MUTE電路后播放音樂音量開到最大喇叭出現(xiàn)雜音(低音最明顯)
    發(fā)表于 10-24 07:23

    樹莓gpio有什么用,樹莓gpio接口及編程方法

    一、樹莓GPIO的用途 樹莓(Raspberry Pi)是一款小巧、功能強(qiáng)大的單板計(jì)算機(jī),廣泛應(yīng)用于編程教育、物聯(lián)網(wǎng)項(xiàng)目、家庭媒體中心等領(lǐng)域。GPIO(General Purpos
    的頭像 發(fā)表于 10-22 18:09 ?2683次閱讀

    什么是樹莓樹莓是什么架構(gòu)的

    什么是樹莓 樹莓(Raspberry Pi,簡(jiǎn)寫為RPi,別名為RasPi/RPI)是由英國(guó)“Raspberry Pi 慈善基金會(huì)”開發(fā)的一款為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?5848次閱讀

    TAS5733L按照初始化的寄存器配置,播放音樂無聲是怎么回事?

    按照貴司提供的初始化的寄存器配置(如附件)設(shè)置,讀取0x05,0x06也是設(shè)定的值。播放音樂此時(shí)仍然無聲。 請(qǐng)問,是否還有額外的寄存器需要配置? 謝謝!
    發(fā)表于 10-21 07:41

    樹莓的功能用途是什么

    、科研、工業(yè)控制、物聯(lián)網(wǎng)、多媒體播放、家庭自動(dòng)化等領(lǐng)域。 樹莓(Raspberry Pi)是一種小型、低成本的單板計(jì)算機(jī),由英國(guó)的Raspberry Pi基金會(huì)開發(fā),其功能和用途非常廣泛。以下是
    的頭像 發(fā)表于 08-30 18:01 ?4619次閱讀

    TPA3116在播放音樂時(shí),聲音非常大時(shí)會(huì)啪啪響,請(qǐng)問有辦法解決嗎?

    TPA3116在播放音樂時(shí),聲音非常大時(shí)(已出現(xiàn)截止失真)會(huì)啪啪響,請(qǐng)問有辦法解決么? 用TCD-781曲目測(cè)試發(fā)現(xiàn),當(dāng)播放曲目3,4,5時(shí)(17hz/0db正弦波),推挽輸出幅度只要超過最大
    發(fā)表于 08-13 08:32