自從我上次寫了一篇樹莓派入門攻略之後,我的樹莓派就閑置了,我的意思是,我雖然寫了一篇閱讀量很大的入門攻略,致使可能不少人都把我當成高手,但我的水平也僅僅是入門而已,每天都有不少人來看我的這篇文章,時間長了,我還是感覺到有點不好意思,自己水平不夠,大家卻來看你的教程,這未免有誤人子弟的嫌疑,因此,最近我又摸出了角落裡的樹莓派,打算好好鼓搗鼓搗。

本來我打算做一個智能機器人,但卡在了語音識別上面,我用python的百度語音RESTAPI來做識別,但識別率出奇的低,而錄的音聽上去很清楚,且百度官方的demo用著還是挺能識別的,所以我懷疑是python的wave庫的問題或者編碼或者上傳的問題。但總之,我遇到了問題,遺憾的是,這個問題現在還存在,所以你不會看到一篇如何用樹莓派做智能機器人的教程,不過我不保證以後我的博客不會出現這篇教程,但我可以保證的是,如果哪天出了這個教程,那它教你做的東西,一定酷的翻天。

好了,現在我們來看看,如何用樹莓派做一個定時提醒機,提醒機這個名字應該是我發明的,這樣聽上去厲害一點,但它的主要作用就是在你定好的時間,說出一句話,比如每隔半個小時說一次「認真看書!」或者每天早上的六點半自動開始放一曲提神的鳳凰傳奇。

我白天要去一家好玩的公司實習,樹莓派在家裡,每隔一個小時就會提醒我女朋友喝水,每隔一個半小時會提醒她認真學習,還會不定時的說一些好玩的話給她聽,這讓她覺得非常有意思,她甚至還表示可能會愛上樹莓派,當然我對此表示懷疑,樹莓派雖然在程序的控制下顯得很可愛,但誰也很難對著一塊電路板產生感情。

說了這麼多廢話,下面開始正式一點講教程了。

首先我默認你擁有一塊樹莓派,並且你安裝好了Linux操作系統,連上了網路,如果你還沒有完成上述任務,請先查看我的上一篇教程:樹莓派菜鳥入門攻略

好了,現在你擁有一塊安裝好操作系統,能夠上網的樹莓派了,我們開始吧。

要能夠說話,首先要有嘴巴,對於樹莓派來講,這就意味著揚聲器,因此,我們要給樹莓派裝一個揚聲器,樹莓派的要求並不高,大多數揚聲器都能滿足要求且能夠工作,我就是用的隨便翻出的一對USB小喇叭。

裝上了揚聲器之後,我們還需要相應的軟體去播放聲音,我使用的軟體是mpg123,mpg123是一個非常便捷高效的Linux命令行播放器,安裝mpg123的命令是:

sudo apt-get install mpg123

輸入完之後會問你是否繼續,輸入Y繼續

接著它滾動一番,然後就裝好了,裝好之後就可以通過輸入命令mpg123來播放聲音了,具體的用法可以通過命令

man mpg123

來查看,我們可以試試這個命令,如果能聽到悠揚的歌聲,則說明你的mpg123 以及揚聲器工作正常

mpg123 「http://music.baidutt.com/up/kwcawskw/dscskw.mp3」

我不會告訴你這是一首非常非主流的音樂。

播放聲音的部分搞定了,下面我們要做語音合成,語音合成,就是你聽到的死板的電腦聲音,雖然死板,但有時候聽著卻很好玩,我用的是百度的語音合成,百度的語音合成能夠自定義音調,語速,男女聲,這能夠做出很多好玩的聲音,百度語音的地址是:http://yuyin.baidu.com

你需要註冊賬號,註冊一個新應用,獲得一個id和key,然後用這個id和key獲取token,然後就可以通過拼接url的方式來合成語音了,具體的拼接方式是:

http://tsn.baidu.com/text2audio?tex=大家好我是機器人&lan=zh&per=0&pit=9&spd=9&cuid=***&ctp=1&tok=xxxxxxx

tex是要合成的語音內容,per是聲音的性別,1是男,0是女,默認是女,pit是音調,spd是語速,調節範圍都是1-9,最後的tok是你通過你的id和key獲取到的token,具體的獲取方式見百度語音的文檔。總之,現在你直接在瀏覽器打開這個鏈接,就可以聽到合成的語音了,你在樹莓派裡面輸入命令

mpg123 「http://tsn.baidu.com/text2audio?tex=大家好我是機器人&lan=zh&per=0&pit=9&spd=9&cuid=***&ctp=1&tok=xxxxxxx」

就可以從樹莓派的喇叭裡面聽到它說這句話了。

為了讓說話這件事更簡單方便一點,我們寫一個python文件來調用,文件名為read.py,python文件代碼如下:

# -*- coding: utf-8 -*-

import os

import sys

url = 「http://tsn.baidu.com/text2audio?tex=」+sys.argv[1]+」&lan=zh&per=1&pit=1&spd=7&cuid=***&ctp=1&tok=xxxxxxx」

#print url

os.system(『mpg123 「%s」『%(url))

這樣一來,我們只需要輸入命令

python read.py 合成文字內容

來很方便的合成語音了

最後我們要解決的問題是定時,這個Linux系統本身就有很好的解決方案:crontab

我們輸入命令

sudo crontab -e

來打開這個定時器,我給你們看看我的比如第一個,就是每隔一個小時,執行一次後面的命令,第三個是每天的九點四十五,執行一次。

關於crontab的更多用法,你可以自行Google,另外,我並不是秀恩愛,我是滿懷著憂傷寫的,因為此刻我女朋友正在跟我生氣不理我。

好了,這就是本次教程,希望大家能夠玩的愉快。


1.樹莓派是一個基於ARM版本的一個linux開發板。說白了就是一塊主板

2.我們基於這塊主板可以安裝的系統有官方的Raspbian、OpenELEC版的XBMC媒體中心、Fedora版的Pidora Linux、Arch Linux 的ARM 版本、Kali 、Centos、Ubuntu MATE 的ARM 版本以及Windows 10 IoT 物聯網版本 等等

3.我們基於這些系統可以做什麼呢

可以作為「骨灰級」遊戲玩家

可以作為家庭的機頂盒

組裝成一台玩具小車

接上屏幕鍵鼠成為一台小電腦,學習LINUX、Python等

不過,我把它接了塊硬碟。安裝了Centos7系統,開啟samba 作為文件伺服器 。家庭網盤還是比較實用的

下面是我自己做的Samba服務,設備實拍圖


{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "12b7848844b23cb94720491fab27de64", "vname": "", "vid": "c07ed387456c458785cc92b2e4003af0", "thumb_width": 640, "video_size": {"high": {"duration": 175.64, "h": 480, "subjective_score": 0, "w": 854, "file_size": 12182518}, "ultra": {"duration": 175.64, "h": 720, "subjective_score": 0, "w": 1280, "file_size": 26231892}, "normal": {"duration": 175.64, "h": 360, "subjective_score": 0, "w": 640, "file_size": 8076258}}, "src_thumb_uri": "608c000bb775ab59c9e4", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/5ff20005cb458a6e4cdf", "vu": "c07ed387456c458785cc92b2e4003af0", "duration": 175.64, "thumb_url": "5ff20005cb458a6e4cdf", "thumb_uri": "5ff20005cb458a6e4cdf", "md5": "12b7848844b23cb94720491fab27de64"} --}

娛樂時樹莓派是一個掌機

編程時可以是一個語音助手或者是一個智能魔鏡。開發時又可以做人臉識別的門禁。

{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "211e4d0e2bb9eaca52ecadab703fcd18", "vname": "", "vid": "62dbcd9ab33e4df6a4940f97460a8346", "thumb_width": 640, "video_size": {"high": {"duration": 11.24, "h": 480, "subjective_score": 0, "w": 854, "file_size": 1518753}, "ultra": {"duration": 11.24, "h": 720, "subjective_score": 0, "w": 1280, "file_size": 3009305}, "normal": {"duration": 11.24, "h": 360, "subjective_score": 0, "w": 640, "file_size": 979461}}, "src_thumb_uri": "608b000d39fe7fcb0e80", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/5ff30001a00e98e99075", "vu": "62dbcd9ab33e4df6a4940f97460a8346", "duration": 11.24, "thumb_url": "5ff30001a00e98e99075", "thumb_uri": "5ff30001a00e98e99075", "md5": "211e4d0e2bb9eaca52ecadab703fcd18"} --}

可以控制ws2812之類的rgb燈條

{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "bdb174f0682d59f5f096143d56f6e974", "vname": "", "vid": "942c343de81d478a8e30d85b5c3be340", "thumb_width": 640, "video_size": {"high": {"duration": 50.28, "h": 480, "subjective_score": 0, "w": 854, "file_size": 4966761}, "ultra": {"duration": 50.28, "h": 720, "subjective_score": 0, "w": 1280, "file_size": 10629568}, "normal": {"duration": 50.28, "h": 360, "subjective_score": 0, "w": 640, "file_size": 3199239}}, "src_thumb_uri": "608c000bb1b96c8f17a7", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/5ff30001a04098177e55", "vu": "942c343de81d478a8e30d85b5c3be340", "duration": 50.28, "thumb_url": "5ff30001a04098177e55", "thumb_uri": "5ff30001a04098177e55", "md5": "bdb174f0682d59f5f096143d56f6e974"} --}

作為智能家居的主控控制電器開關 門鎖窗帘。結合語音功能用語音控制。


{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "fc9f4a53031c28bab397f897425397e2", "vname": "", "vid": "6b005b5fb1034bb7acc5796fcac7a966", "thumb_width": 636, "video_size": {"high": {"duration": 8.48, "h": 480, "subjective_score": 0, "w": 848, "file_size": 1104354}, "ultra": {"duration": 8.48, "h": 544, "subjective_score": 0, "w": 960, "file_size": 1485646}, "normal": {"duration": 8.48, "h": 360, "subjective_score": 0, "w": 636, "file_size": 714089}}, "src_thumb_uri": "608c000bad97f94ba689", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/5ff00005c9174b054c74", "vu": "6b005b5fb1034bb7acc5796fcac7a966", "duration": 8.48, "thumb_url": "5ff00005c9174b054c74", "thumb_uri": "5ff00005c9174b054c74", "md5": "fc9f4a53031c28bab397f897425397e2"} --}

可以做一個天氣時鐘

{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "9181b237b399433c468b1e3d19c3de07", "vname": "", "vid": "5cff1482072b48698de92ed6983edd67", "thumb_width": 640, "video_size": {"high": {"duration": 10.074, "h": 480, "subjective_score": 0, "w": 854, "file_size": 871960}, "ultra": {"duration": 10.074, "h": 540, "subjective_score": 0, "w": 960, "file_size": 1155641}, "normal": {"duration": 10.074, "h": 360, "subjective_score": 0, "w": 640, "file_size": 574272}}, "src_thumb_uri": "60900001ede2be100b40", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/5ff30001a082501d28a9", "vu": "5cff1482072b48698de92ed6983edd67", "duration": 10.074, "thumb_url": "5ff30001a082501d28a9", "thumb_uri": "5ff30001a082501d28a9", "md5": "9181b237b399433c468b1e3d19c3de07"} --}

做一個相機


樹莓派雖小,但五臟俱全和普通電腦無異。

電腦能做的大部分事情,在樹莓派上都能做,而樹莓派以其低能耗、移動便攜性、GPIO等特性,很多在普通電腦上難以做好的事情,用樹莓派卻是很適合的。

在這裡舉幾個例子拋磚引玉(因為配不了圖,只好純文字描述)

>>用樹莓派搭建BT下載伺服器

好處是不言而喻的,有了它,你就不用開著電腦下載長達幾小時甚至幾天的文件了,當然如果你的路由有自動下載的話當我沒說過~~

想做到這一點,只要安裝 transmission 就可以了,更棒的是它還可以通過 Web 界面控制!

1.首先安裝 transmission:

sudo apt-get install transmission-daemon

2.然後創建下載目錄,一個是下載完成的目錄,一個是未完成的目錄,具體目錄根據你的情況決定:

mkdir -p /home/pi/incomplete # for incomplete downloads

mkdir /home/pi/complete # finished downloads

3.還要配置目錄的許可權:

sudo usermod -a -G debian-transmission pi

如果是 fat 格式的移動硬碟無需下面這麼改,mount的時候指定用戶和讀寫許可權就行

這個是對 SD 卡上的目錄而言的

chgrp debian-transmission /home/pi/incomplete

chgrp debian-transmission /home/pi/complete

chmod 770 /home/pi/incomplete

chmod 770 /home/pi/complete

4.修改配置文件 /etc/transmission-daemon/settings.json ,這是一個 json 格式的文件,配置項很多,但重點改下面這些:

下載目錄位置:

"download-dir": "/home/pi/complete",

未完成的下載目錄

"incomplete-dir": "/home/pi/incomplete",

允許Web訪問的白名單地址

"rpc-whitelist": "192.168.1.*",

5.最後,配置好之後重啟 transmission,注意以下兩個命令按順序執行,單獨 restart 的話配置不會保存:

sudo service transmission-daemon reload

sudo service transmission-daemon restart

現在就好了,在瀏覽器中訪問 IP 加 9091埠:比如: http://192.168.1.3:9091/ 。訪問時輸入用戶名和密碼,默認都是:transmission 。

你現在已經有了一個獨立的 BT 下載伺服器了!

>>用樹莓派製作一個探測特定區域內生物活動熱度的儀器!

它的作用是利用了人體紅外熱釋電感測器,探測生物(包括人)活動,並採集形成特定時間的熱度圖,可以用來分析生物活躍度喔!

想做到這一點,可以按這個步驟製作:

1.安裝原生的Debian系統

建議安裝帶圖形界面的Debian,這樣如果你接個顯示器,可以直接看到展示效果

2.準備一個人體紅外熱釋電感測器並接在樹莓拍的GPIO上

按感測器線序要求,一次接上5V、GND和信號線

3.安裝pi4j

這個是用來支持Java訪問GPIO的開發庫,可以上官網下到最新版(如果你用的是樹莓派3,記得要下最新版,否則會出現不支持的現象)

4.安裝Redis和MongoDB

Redis是用來實時記錄感測器採集到的數據

MongoDB則用來定時把Redis的數據保存到資料庫中,用來做後面的數據分析和展示

這2個都是輕量級的應用,特別適合用在樹莓派這種設備上

5.寫一個數據採集程序

有了pi4j你又懂Java的話就可以用Java寫一個採集程序出來,當然如果你會用C或Python也是可以的

6.找一個熱度圖顯示插件把數據展示出來

最後數據採集出來後,用個前端的WEB組件來顯示熱度圖,比如可以用RGraph,免費使用的一個第三方H5圖表插件,非常好用,推薦試用

樹莓派可以做的事情太多,如果想知道具體怎麼做,歡迎關注我一起探討


樹莓派作為物聯網玩家必備工具,基於此硬體可開發的應用非常多:太陽能發電控制、魔鏡、面部識別/車輛識別/車牌號識別、表情燈光桌、智能家居遠程控制、機器人控制、攝像頭控制、家庭影院(完全消除了該死的視頻廣告)總之,無所不能!

{!-- PGC_VIDEO:{"thumb_fingerprint": 15578929682701393750, "vid": "28427467dec645f8b454d0e9af2ef058", "vu": "28427467dec645f8b454d0e9af2ef058", "duration": 277, "thumb_height": 360, "thumb_neardup_id": 8776601544730105398, "neardup_id": 17366256302500757203, "video_size": {"high": {"duration": 277.52, "h": 480, "subjective_score": 0, "w": 854, "file_size": 15852892}, "ultra": {"duration": 277.52, "h": 720, "subjective_score": 0, "w": 1280, "file_size": 31234327}, "normal": {"duration": 277.52, "h": 360, "subjective_score": 0, "w": 640, "file_size": 11373586}}, "vname": "Pi-01.mp4", "hash_id": 17366256302500757203, "status": 0, "media_id": 1574314475587598, "thumb_width": 640, "external_covers": [{"mimetype": "webp", "source": "dynpost", "thumb_height": 360, "thumb_url": "7992000382bcdef82776", "thumb_width": 640}], "item_id": 6542642539529241096, "user_id": 3860804332, "thumb_url": "pgc-image/1523326957447693d5aa40f", "md5": "ef528c2057419d705213ab3a97e8d175", "vposter": "http://p0.pstatp.com/origin/pgc-image/1523326957447693d5aa40f", "sp": "toutiao", "group_id": 6542642539529241096} --}


這玩意其實就是一台特殊的微型低功耗電腦,它可以外接很多適配的標準硬體,譬如顯示屏幕,usb設備,等等。。。電腦嘛,首先你得跟它刷入特殊的系統,有了系統,那就要軟體了,譬如你可以刷個安卓系統,在刷入一些在線視頻軟體,刷入一些相應硬體的驅動,你就可以做成一個視頻盒子,當然你也可以接個屏幕,那就成了個可以播放視頻軟體的平板了

你也可以安裝linux系統,接入滑鼠鍵盤,那就是一台電腦,當然也可以外接一些控制器,並通過軟體控制譬如無人機電動機的轉速啥的,這樣一台可遙控的無人機就誕生了。。。不過這都考驗動手能力和軟硬體編程和應用能力!


可以用來控制一些硬體,它代表的不僅僅是一台微型電腦。在電子電路中,也有模擬信號和數字信號,它也是電子電路的高階級,數字信號的代表。

具體來講,它可以通過編程,當成一個可控晶元,做很多很多的事情,基本上是你能想到,它就能實現。


給大家推薦一個簡單實用的用途,把樹莓派改裝成一個智能音箱。大家可以搜索一下叮噹智能音箱。這個是github上一個開源的項目。只需要連接一個普通音箱上去就可以,大家就可以做自己的小愛同學了。


推薦閱讀:
相关文章