樹(shù)莓派綜合項(xiàng)目3:AI視覺(jué)機(jī)械臂小車(一)蜂鳴器

一披粟、介紹

??樹(shù)莓派綜合項(xiàng)目2:智能小車(六)黑線循跡
??樹(shù)莓派基礎(chǔ)實(shí)驗(yàn)
??在樹(shù)莓派項(xiàng)目2中昧诱,我學(xué)到了很多東西腻扇,主要是通過(guò)實(shí)踐掌握了樹(shù)莓派小車的無(wú)線電控制和自動(dòng)化避障控制,雖然不是特別的高深和難懂倒庵,但是增強(qiáng)了我學(xué)習(xí)的動(dòng)力和信心曾棕,萬(wàn)丈高樓平地起,2018年6月買的小車現(xiàn)在才學(xué)習(xí)吸收完革娄,原因還是先學(xué)完基礎(chǔ)實(shí)驗(yàn)內(nèi)容后倾贰,才能學(xué)懂項(xiàng)目2,推及以后更難的內(nèi)容拦惋,若沒(méi)有項(xiàng)目2做鋪墊匆浙,估計(jì)也學(xué)不來(lái),更不用說(shuō)自己創(chuàng)作了厕妖。

??目前我仍處于學(xué)習(xí)的初級(jí)階段首尼,正向?qū)W習(xí)的中級(jí)階段邁進(jìn)。項(xiàng)目2學(xué)習(xí)完后言秸,下一步做什么呢软能?我有兩個(gè)想法:
一是學(xué)物聯(lián)網(wǎng)的自動(dòng)化控制。我對(duì)農(nóng)業(yè)很感興趣举畸,也喜歡養(yǎng)花種菜查排,想做智能溫室的樹(shù)莓派物聯(lián)網(wǎng),但是我家里沒(méi)有院子抄沮,房間也小跋核,做個(gè)mini的都困難;
二是AI視覺(jué)和機(jī)械臂叛买。在各類樹(shù)莓派創(chuàng)客書籍中發(fā)現(xiàn)砂代,視覺(jué)識(shí)別是一個(gè)主要內(nèi)容,是信息輸入的重要方式率挣,而機(jī)械臂是機(jī)器人輸出刻伊、工作的重要方式,比如農(nóng)業(yè)采摘機(jī)器人难礼。

??于是我選擇了繼續(xù)做機(jī)器人娃圆,在網(wǎng)上慢慢選了一個(gè)月的時(shí)間,終于找到一款適合我現(xiàn)在的套件蛾茉。


??做視覺(jué)處理對(duì)硬件的計(jì)算力有要求,為了讓運(yùn)行更流暢撩鹿,我選擇了樹(shù)莓派4B 8G版本谦炬,整個(gè)套件花了我1777大洋,雖然有點(diǎn)心疼节沦,但是投資學(xué)習(xí)是不會(huì)虧的键思。


如果不是4B8G的主板,價(jià)格會(huì)少很多的甫贯,同學(xué)們可以自己選擇吼鳞。或者看我的文章就可以了叫搁,歡迎大家關(guān)注我赔桌,點(diǎn)贊哦供炎!我會(huì)把這套學(xué)習(xí)資料吃透后分享給大家,如果能再開(kāi)發(fā)疾党,做一個(gè)草莓采摘機(jī)器人就更棒了音诫!


與項(xiàng)目2的小車做對(duì)比要大許多,操作升級(jí)雪位、再開(kāi)發(fā)的空間很大竭钝。


二、組件

三雹洗、實(shí)驗(yàn)原理

看過(guò)我項(xiàng)目2的同學(xué)香罐,相信對(duì)小車控制這部分已經(jīng)很熟悉了,但項(xiàng)目2中的python代碼都是我自己寫的时肿,在這個(gè)套件中我們來(lái)學(xué)習(xí)下專業(yè)人士的代碼是怎么寫的庇茫。

這個(gè)課程的第一個(gè)實(shí)驗(yàn)就是蜂鳴器實(shí)驗(yàn),作為開(kāi)局實(shí)驗(yàn)是比較基礎(chǔ)的嗜侮,就是不知道后面的復(fù)雜實(shí)驗(yàn)里是否會(huì)用到蜂鳴器港令。


我的基礎(chǔ)實(shí)驗(yàn)里做過(guò)有源蜂鳴器和無(wú)源蜂鳴器,它的基礎(chǔ)原理大家可以點(diǎn)擊參考:
樹(shù)莓派基礎(chǔ)實(shí)驗(yàn)9:蜂鳴器實(shí)驗(yàn)
本實(shí)驗(yàn)中使用的是無(wú)源蜂鳴器锈颗,和電磁揚(yáng)聲器一樣顷霹,需要接在音頻輸出電路中才能周期性地振動(dòng)發(fā)聲。只要輸出不同頻率的PWM波击吱,即可發(fā)出不同的音符淋淀,不同的音符組合起來(lái)就是一個(gè)曲子了。

樹(shù)莓派功能轉(zhuǎn)接板

在樹(shù)莓派功能轉(zhuǎn)接板上看到覆醇,蜂鳴器是直接焊接在板子上的朵纷,連接的板載模式第11針,不用像基礎(chǔ)實(shí)驗(yàn)中一樣去接線永脓,但初學(xué)者最好看一下基礎(chǔ)實(shí)驗(yàn)9袍辞,學(xué)習(xí)下基本接線方法。

四常摧、實(shí)驗(yàn)步驟

??第1步: 蜂鳴器焊接在板子上搅吁,不用連接電路。這里說(shuō)下樹(shù)莓派4B8G是64位的操作系統(tǒng)落午,與4G谎懦、2G版本不能混用。

??第2步: 編寫程序溃斋。原始代碼為python2版本界拦,為適應(yīng)發(fā)展,我還是轉(zhuǎn)換成了python3版本梗劫,并有中文注釋享甸,更詳細(xì)講解請(qǐng)參考樹(shù)莓派基礎(chǔ)實(shí)驗(yàn)9:蜂鳴器實(shí)驗(yàn)截碴。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

Buzzer = 11

CL = [0, 131, 147, 165, 175, 196, 211, 248]     # 低音C調(diào)音符對(duì)應(yīng)的頻率

CM = [0, 262, 294, 330, 350, 393, 441, 495]     # 中音C調(diào)音符對(duì)應(yīng)的頻率

CH = [0, 525, 589, 661, 700, 786, 882, 990]     # 高音C調(diào)音符對(duì)應(yīng)的頻率

song_1 = [  CM[3], CM[5], CM[6], CM[3], CM[2], CM[3], CM[5], CM[6], # 歌曲1的音符
            CH[1], CM[6], CM[5], CM[1], CM[3], CM[2], CM[2], CM[3], 
            CM[5], CM[2], CM[3], CM[3], CL[6], CL[6], CL[6], CM[1],
            CM[2], CM[3], CM[2], CL[7], CL[6], CM[1], CL[5] ]

beat_1 = [  1, 1, 3, 1, 1, 3, 1, 1,             # 歌曲1的節(jié)拍, 1 指 1/8 拍
            1, 1, 1, 1, 1, 1, 3, 1, 
            1, 3, 1, 1, 1, 1, 1, 1, 
            1, 2, 1, 1, 1, 1, 1, 1, 
            1, 1, 3 ]

song_2 = [  CM[1], CM[1], CM[1], CL[5], CM[3], CM[3], CM[3], CM[1], # 歌曲2的音符
            CM[1], CM[3], CM[5], CM[5], CM[4], CM[3], CM[2], CM[2], 
            CM[3], CM[4], CM[4], CM[3], CM[2], CM[3], CM[1], CM[1], 
            CM[3], CM[2], CL[5], CL[7], CM[2], CM[1]    ]

beat_2 = [  1, 1, 2, 2, 1, 1, 2, 2,             # 歌曲2的節(jié)拍, 1 指 1/8 拍
            1, 1, 2, 2, 1, 1, 3, 1, 
            1, 2, 2, 1, 1, 2, 2, 1, 
            1, 2, 2, 1, 1, 3 ]

def setup():
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)        # 根據(jù)物理位置對(duì)gpio進(jìn)行編號(hào)
    GPIO.setup(Buzzer, GPIO.OUT)    # 設(shè)置引腳模式為輸出
    global Buzz                     # 指定一個(gè)全局變量來(lái)替換GPIO.PWM
    Buzz = GPIO.PWM(Buzzer, 440)    # 440 是初始頻率
    Buzz.start(50)                  # 啟動(dòng)蜂鳴器PWM50%的占空比

def loop():
    while True:
        print('\n    Playing song 1...')
        for i in range(1, len(song_1)):     # 播放歌曲1
            Buzz.ChangeFrequency(song_1[i]) # 沿著歌曲的音符改變頻率
            time.sleep(beat_1[i] * 0.5)     # 一個(gè)節(jié)拍為0.5s的時(shí)長(zhǎng)
        time.sleep(1)                       # 

        print('\n\n    Playing song 2...')
        for i in range(1, len(song_2)):     
            Buzz.ChangeFrequency(song_2[i]) 
            time.sleep(beat_2[i] * 0.5)     

def destory():
    Buzz.stop()                 # 停止PWM
    GPIO.output(Buzzer, 1)      # 將蜂鳴器引腳設(shè)置為輸出高電平
    GPIO.cleanup()              # 釋放資源

if __name__ == '__main__':      # 程序從這里開(kāi)始
    setup()
    try:
        loop()
    except KeyboardInterrupt:   # 當(dāng)輸入'Ctrl+C'時(shí), 函數(shù)destroy()會(huì)被執(zhí)行
        destory()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市枪萄,隨后出現(xiàn)的幾起案子隐岛,更是在濱河造成了極大的恐慌,老刑警劉巖瓷翻,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聚凹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡齐帚,警方通過(guò)查閱死者的電腦和手機(jī)妒牙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)对妄,“玉大人湘今,你說(shuō)我怎么就攤上這事〖袅猓” “怎么了摩瞎?”我有些...
    開(kāi)封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)孝常。 經(jīng)常有香客問(wèn)我旗们,道長(zhǎng),這世上最難降的妖魔是什么构灸? 我笑而不...
    開(kāi)封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任谬返,我火速辦了婚禮揩懒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懂算。我一直安慰自己麦萤,他們只是感情好嗡髓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布混滔。 她就那樣靜靜地躺著枢冤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寂拆。 梳的紋絲不亂的頭發(fā)上锹锰,一...
    開(kāi)封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音漓库,去河邊找鬼。 笑死园蝠,一個(gè)胖子當(dāng)著我的面吹牛渺蒿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彪薛,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茂装,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怠蹂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起少态,我...
    開(kāi)封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤城侧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后彼妻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嫌佑,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年侨歉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屋摇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡幽邓,死狀恐怖炮温,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牵舵,我是刑警寧澤柒啤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站畸颅,受9級(jí)特大地震影響担巩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜重斑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一兵睛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窥浪,春花似錦祖很、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至骨稿,卻和暖如春笨鸡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坦冠。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工形耗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辙浑。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓激涤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親判呕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倦踢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容