樹莓派,不玩不知道(一)

2021-02-25 奇舞精選

本文作者:劉觀宇,360 奇舞團高級前端工程師、技術經理,曾參加 360 導航、360 影視、360 金融、360 遊戲等多個大型前端項目。關注 W3C 標準、IOT、人工智慧與機器學習的最新進展,W3C CSS 工作組成員。

何處望神州?滿眼風光北固樓。千古興亡多少事?悠悠。不盡長江滾滾流。年少萬兜鍪,坐斷東南戰未休。天下英雄誰敵手?曹劉。生子當如孫仲謀。 ——宋·辛棄疾《南鄉子·登京口北固亭有懷》

源起

2016 年前後,在技術論壇裡面看到 Raspberry Pi(樹莓派)的廣告的時候,這種小巧、廉價、便攜的設備,深深打動了筆者。積習慢慢侵襲,二話不說果斷地入手一臺。在短暫的折騰了一陣之後,就放在了一邊。近期,WoT 大潮正以迅雷不及掩耳之勢席捲而來,筆者想到這個躲在角落吃灰的玩意兒,立馬翻出來,吹一吹上面的灰塵.

半個小時後,當塵煙漸漸散去,一個乾淨如新的 Raspberry Pi 2 躍然眼前,雖然型號已經有一些過時,但是,鑑於硬體架構是類似的,這個「中年」還是可以充分發揮餘熱的。是的,正如網上流行的觀點,「不要大聲責罵年輕人,他們會立刻辭職的,但是你可以往死裡罵那些中年人」。那吾輩在此,不妨往死裡糙磨這個「中年」樹莓派。

但是,這番折騰,還是需要一些目標的。這樣,我們就可以不斷地從目標的達成中,獲得正反饋,進而給堅持不斷探索以堅實的理由——在用拖把擦拭地板時候,我這樣想。

創意總是豐富的,搜索知乎上可以找到不少相關的問題,比如這個:有哪些對樹莓派的有趣改造和擴展應用1。筆者從這裡找到很多好玩的創意,非常希望能將這些創意在樹莓派上實現。為此,開設這個系列,希望能夠記錄一些小創意的動手實現過程,並且給讀者今後做這些應用一些借鑑。

認識樹莓派

樹莓派,最早由英國劍橋某實驗室由物理學家埃本·阿普頓花費六年時間研製,於 2012 年 3 月開始正式發售。樹莓派外形僅有一張信用卡大小,卻具有電腦的所有基本功能。

大多數的樹莓派都支持多個 USB 接口,以及乙太網接口。樹莓派的 CPU 架構為 ARM,與傳統意義上的個人電腦的 x86 架構不同。這篇文章2詳述了兩種架構的區別。體積小、低功耗、低成本的 ARM 架構 CPU 在行動裝置、單片機等設備上已經得到了廣泛使用。ARM 架構的這些優點也正是和樹莓派的研發目的高度契合的。

樹莓派最新的版本是 3B+,有著更強勁的處理器,更快的網絡支持,同時直接整合了藍牙適配器,支持藍牙 4.2 協議。目前很多物聯網的研究也基於樹莓派實現。

作為一個單板計算機,樹莓派有很多作業系統可供使用。這裡推薦樹莓派官方的 Raspbian,這個系統基於 Linux 的發行版 Debian 進行了深度定製。安裝上這個系統,你的樹莓派可以獲得 Linux 的系統能力、基礎設備的驅動,以及浩如煙海的高質量軟體包。

樹莓派包含有 40 組 GPIO 輸入輸出引腳,通過高低電平的變化感知,可以與傳感器配合做出一系列非常有意思的應用。很多高級語言(環境)如 C/C++、Python 和 NodeJS 都支持對 GPIO 操控的封裝。這也是樹莓派的一個非常吸引人的特色。

除了樹莓派,還有很多類似的單板計算機產品,如香蕉派、Arduino 等,有興趣的讀者可以延伸閱讀相關資料。

需要購置的最少設備

讓我們開始我們的樹莓派之旅。

不同於其他的軟體實踐,第一個攔路虎就是需要購置一定的設備。還是之前的原則,新手上路,可以循序漸進。先讓樹莓派「跑起來」,然後在不斷的正向反饋中,慢慢入坑。

為了確定最少的設備投入,需要先來確認這一次要做什麼,達成哪些目標。

經過一番審慎的計劃,筆者把這次的目標定為:使用樹莓派,搭建一個內網可以訪問的 NodeJS 網站開發環境。

首先,我們需要一個樹莓派主機,即一塊單板,最新版的是 3B+。筆者這邊是之前的樹莓派 2。

其次,為了保證主機可以免受周圍環境的影響,同時也保證取用放置方便,所以我們需要給主機一個外殼。

再有,為了散熱方便,你可以購置一些散熱片或散熱風扇。考慮散熱效果和操作便利性,建議購買散熱風扇。

另外,樹莓派的系統一般燒錄在 SD 卡上。卡的讀取速度,會影響整個樹莓派的運行效率,因此建議使用高速卡。卡的大小最好大於 4GB(話說現在已經很少見到這個容量以下的卡了,也很少見到低速卡了),同時還需要一個讀卡器。如果筆記本電腦已經配備了讀卡器,則這項開支時可以剩下的。

為了第一次將樹莓派連上網,請準備一條網線。

同時,如果有無線路由器,為了操作方便,建議再購置一個無線網卡。

最後,如果你不想每次關機就大把抓拔電源,可以買一個帶開關的電源。

OK 了,上述東西已經足夠完成這次的目標了。

讀者可以從某寶某東上搜索相關的產品進行購買,或者從官網的購買3連結點擊到對應購買頁面,原則上這些東西 200-400 大洋就能搞定。

來吧,上面這些東西來個開箱照片。

將它們攢起來,還是很妥帖的。

當然,後面我們的系列文章中會出現傳感器、跳線等小元件。筆者感覺周期性的購置那些,才是最燒錢的環節:-)

安裝系統

你的樹莓派和你的小宇宙都準備好爆發了麼?在爆發之前,先把作業系統安好。

如前文所說,建議先安裝官方推薦的 Raspbian。讀者可以去這裡4下載安裝包。目前有兩個版本,一個是包含桌面版的,安裝包比較大,如果你配置好了相關的顯示器和鍵盤滑鼠可以考慮這一版。如果暫時不需要桌面支持(需要時候可以再安裝),可以考慮下載 Lite 版。

這裡,我們以 Lite 版為例。

下載回來的是一個 Zip 包,藉助壓縮包查看工具看到,壓縮包裡面包含一個.img 文件,我們將把它燒錄到 SD 卡上面。

完成這項工作,需要藉助一些工具。這裡,官方推薦的是 Etcher。這個軟體是一個圖形化的寫卡工具,有 Mac、Linux 以及 Windows 的對應版本。讀者遵循下列步驟即可完成燒錄。

從這裡5下載符合你的系統的 Etcher,並安裝之。

連接讀卡器,插入待寫入的 SD 卡

運行 Etcher,選擇剛剛下載的 Zip 文件或解壓過的.img 文件。

選擇待寫入的 SD 卡。

點擊「Flash」,然後去泡一杯茶或者咖啡,等待燒錄完成。

初始化系統確認 IP

裝好了系統之後,我們將其通過網線接入路由器。此時,樹莓派會自動連接上網絡。因為沒有購買顯示屏和鍵盤滑鼠,可以通過 SSH 遠程連接到樹莓派進行操作。現在的問題在於如何確認樹莓派的 IP。

有幾種方案,這裡介紹一種最簡便的方案:用手機或 PC(如果沒有.,那還是給樹莓派配上顯示器和鍵盤滑鼠吧)打開路由器的管理界面(不了解這個界面的,可以諮詢路由器廠商。如果沒有特殊設置過,一般是 http://192.168.0.1/admin ),並轉到設備管理頁面,此時會發現名為 raspberry 設備,此時可以記下它的 IP (如 192.168.0.10)

用戶設置

現在可以用 SSH 客戶端連接樹莓派,如果讀者使用的是 Mac 或者 Linux ,系統會自帶 SSH 連接終端,如果是 windows,請讀者下載安裝 Putty 等 SSH 連接軟體。

如果樹莓派的 SSH 服務沒有打開,在燒錄好鏡像之後,在boot分區中新建一個名為ssh的文件夾,正常開機,通過 SSH 即可連接到樹莓派。

默認地,樹莓派分配了一個用戶 pi,默認密碼是:raspberry。因為是默認的,為了安全第一步應該把登錄上去把它的密碼修改掉。

ssh pi@192.168.0.10

在提示符下我們可以輸入 raspberry 完成登錄。立即修改密碼。

passwd

此時,根據彈出的提示,修改掉默認的密碼。這樣可以在一定程度上,提高樹莓派的安全性。

另外,建議新建一個用戶作為常用帳戶,如:

sudo adduser leon

sudo passwd leon

這樣就建立了一個名為 leon 的新用戶,同時可以為 leon 設置帳號密碼。

為了能夠進行系統級的操作,可以將 leon 加入 sudoer。

sudo visudoer

在編輯界面下,將 leon 加入列表並保存。以後,SSH 登錄樹莓派就可以使用 leon 作為用戶名了。

配置工具

樹莓派本身也提供一個配置工具界面。在命令行下鍵入命令sudo raspi-config。顯示如下圖。

更換源

在中國大陸的同學,建議更換國內的源,以保證更快的下載速度。這裡使用阿里的源,如果讀者有更好的源,可以類似地更換。

因為我們安裝的系統是以 Debian 發行版作為基礎。所以 Debian 的軟體包管理工具在這裡是可用的。同理可知,換源的方法也是類似的。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vim /etc/apt/sources.list

下面,注釋掉原來的源,添加以下兩行

deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib

這裡需要注意的是,不同的 Raspbian 系統版本, wheezy這一列可能會變成 Jessies。造成這種變化的原因是,基於不同的 Debian 系統,系統的名稱不同。穩妥的辦法是參照原來的源的寫法,僅僅修改掉域名即可。

修改完畢後,可以運行sudo apt-get upgrade完成軟體包資源索引的更新。成功更新後,就可以高速下載對應的軟體了。

關於中文亂碼

解決的辦法是安裝中文字庫和輸入法,同時修改系統的默認字符集。

sudo apt-get install ttf-wqy-zenhei

sudo apt-get install scim-pinyin

在上面所說的配置工具中,選擇第 5 項,根據提示進行配置。接下來的屏幕,選擇 Change Locale

在接下來的屏幕中,去掉 en_GB.UTF-8 UTF-8,選中「en_US.UTF-8 UTF-8」、「zh_CN.UTF-8 UTF-8」和「zh_CN.GBK GBK」。並在下一屏幕默認語言選 zh_CN.UTF-8。

重啟樹莓派,使得結果生效。

更換時區

默認地,樹莓派的時區是 UTC0,對於時間相關的應用會造成問題。中國大陸位於東八區,我們可以通過sudo raspi-config來設置。

選擇 亞洲 > ShangHai 切回主頁面後按 Finish 保存退出。 即可完成設置。

無線網卡配置

如果你沒有移動樹莓派的需求,那麼插著網線就能解決網絡的問題了,如果是這種情況,讀者可以跳過這一節。不過,如果今後有想法做需要移動的應用,或者不喜歡插網線,還是推薦裝好無線網卡。

首先,你需要確認你的無線網卡已經被正確驅動。可以通過連接樹莓派,輸入ifconfig命令查看所有樹莓派的網絡設備。不能找到網卡的情況很少見,如果不幸遇到,請先確認網卡可用,並尋找對應的驅動程序安裝。

下面,準備好相應的 WIFI 信息。編輯wpa_supplicant.conf文件。sudo vim /etc/wpa_supplicant/wpa_supplicant.conf,在此文件結尾增加,如下代碼:

network={

  ssid="WIFI名稱"

  key_mgmt=WPA-PSK

  psk="WIFI密碼"

}

這裡注意:

ssid 名稱不推薦中文

最好不要帶有.等特殊符號

此時即可重啟網絡 /etc/init.d/networking restart

可以再次使用ifconfig查看網絡。同時可以打開上面提到的路由器管理頁面,查看是否有新設備加入。如果你的無線網卡被發現了,你就可以:

放心的拔掉網線

連接 IP,使用無線網卡的 IP。

安裝 Web 伺服器軟體

上面我們已經把系統的主要功能做了配置。下面我們開始進行 Web 伺服器軟體的配置。這裡我們使用 Nginx 作為伺服器軟體。

因為系統是基於 Debian 的,並且已經配置了較快的軟體源,所以下面的操作是比較愉快的。

sudo apt-get install nginx -y

此時,Nginx 的默認 www 根目錄在/usr/share/nginx/www,你可以修改 /etc/nginx/sites-available/default 來配置網站的目錄、埠、代理等等。

配置 NodeJS 開發環境

理論上,可以通過sudo apt-get install nodejs來安裝。但是,這種方法安裝的 NodeJS 版本可能會比較舊。如果從源碼安裝,鑑於樹莓派的處理能力比較弱,故而不推薦。

這裡推薦一種比較省力和完善的方法。

使用uname -a 查詢系統版本,找到 arm***字樣。

打開 https://nodejs.org/dist/latest/ 找到符合這個「arm」的軟體包,下載之。

解壓縮。

將解壓過的 node 文件夾,如「node-v10.10.0-linux-armv7l」移動到/usr/local/目錄下,將其重命名為 node。

運行echo PATH=$PATH:/usr/local/node/bin >> ~/.bashrc; source ~/.bashrc

如此即可完成 NodeJS 的安裝。

安裝完成後,我們就可以自由發揮創造力來構建基於 NodeJS 的網站。這裡推薦一下奇舞團出品的 NodeJS 框架 ThinkJS,最新的版本是 3.2.8。官網是:https://www.thinkjs.org/ 。我們基於這個框架可以快速的搭建網站。

看,下面就是 ThinkJS 的表演時間,美滋滋 :-)

小結

本篇文章中,筆者帶大家簡單了解了樹莓派,並詳述了系統安裝和一些系統初始化配置,安裝了網站伺服器環境和 NodeJS 開發環境,建立了一個 NodeJS 網站開發環境。藉此完成了樹莓派的新手上路。有關傳感器等更加有趣的內容,將在今後的系列文字中不斷出現。筆者也會加緊時間,給大家呈現更有意思的樹莓派。

致謝

感謝何文力為本文提出的修改建議。設計師王旋mm,為本文設計的精美題圖,在此一併表示誠摯的謝意。

文內連結

https://www.zhihu.com/question/20697024/answer/15888489

http://m.elecfans.com/article/678193.html

https://www.raspberrypi.org/products/#buy-now-modal

https://www.raspberrypi.org/downloads/raspbian/

https://etcher.io/

關於奇舞周刊

《奇舞周刊》是360公司專業前端團隊「奇舞團」運營的前端技術社區。關注公眾號後,直接發送連結到後臺即可給我們投稿。

相關焦點

  • 玩機-樹莓派
    昨天說到ngrok內網穿透,我弄了個樹莓派,今天就說說,如何樹莓派入門。
  • 樹莓派4B的夏天
    不知道你們的樹莓派是否又進入吃灰的狀態了??是否你們已經學會了樹莓派的各種騷操作?熱血沸騰,冒著被老爸吊打的危險,一遍遍的裝作學習的模樣,偷偷嘗試對抗AI,那時候技術太差,電腦的性能也太差,電腦一開始卡頓,我就知道敵人出兵了,眼睜睜看著被推平,一遍遍被虐,重來,繼續被虐。。。但,樂在其中。如今突然看到開源的OpenRA,心中也是一激動,然後想是否有人已經嘗試過在樹莓派上運行了呢?我一查,還真有人已經玩兒的不亦樂乎了!
  • 我終於擁有了樹莓派
    至於如何獲得樹莓派的ip地址,可以在控制端使用ifconfig或ip addr命令來查看,當然也可以像我一樣直接在路由器後臺找這裡我遇到的小問題是我之前不知道輸入密碼的時候系統是沒有顯示的,好幾次都以為是網絡卡了。。。當你的客戶端出現如下的綠色字符,就代表連接上了。
  • PiSwitch:用樹莓派製作 Switch 遊戲機
    我建議將導線用熱熔膠粘合在樹莓派的底部,同時底部的接口能固定細線,並保護它們免受損壞和短路。焊接樹莓派:這有一張樹莓派的圖片。從PowerBoost上取出一根黑線將其焊接到樹莓派圖片上的黑點。從PowerBoost上取出一根紅線將其焊接到樹莓派圖片上的紅點。測試:請小心確保剩餘的黑線來自PowerBoost,和來自PowerBoost的紅線不會觸及任何東西。
  • 我用樹莓派兩個小時造了一臺電腦
    我一開始聽同事說到這個名稱還以為是可以吃的派。其實樹莓派晶片是一款針對電腦業餘愛好者、教師、小學生以及小型企業等用戶的迷你電腦晶片,上面預裝著Linux系統,體積僅信用卡大小。很多技術咖都在樹莓派上開發了各種好玩的項目。魔鏡魔鏡誰是世界上最美的女人? 一塊雙面鏡 + 廢舊顯示屏 + 樹莓派 = Smart Mirrow 市面上的好的智能鏡子價格不菲,甚至有上萬的,買一個35美金的樹莓派自己DIY 一面鏡子的確非常有意義。
  • 用樹莓派從零打造一臺街機
    RetroPieRetropie可以將你的樹莓派或者PC變成一臺復古遊戲機模擬器。RetroPie在樹莓派上提供了SD卡的鏡像文件,只需要刻錄到SD卡後,就可以運行各種不同的模擬器,傳輸Roms到樹莓派後就可以開始回味經典遊戲了。
  • 用樹莓派製造一支敲擊樂隊
    它可以讓你可以通過樹莓派或同一網絡上的任何其他設備(手機,平板或計算機)以交互方式控制你的機器鼓。稍後我會在樹莓派上安裝它。在這裡可以預覽:http://pibeat.banjowise.com/代碼在 GitHub 提供下載:https://github.com/mnkii/pibeat2、編碼擊鼓模式的 Python 腳本。
  • 樹莓派4散熱風扇發布,售價 5 美元
    樹莓派基金會今天為樹莓派4發布了一款外設散熱風扇,售價 5 美元,旨在解決樹莓派4運行過程中過熱的問題。
  • 電路城樹莓派試用活動第一周:開發環境的搭建(一)
    這次的開發是準備將原先單片機的一個應用進行升級改造,對於這種項目來說,樹莓派的板子主要是替代單片機進行GPIO口操作,同時建立一個友好的人機互動界面,所以一開始規劃就從這兩點出發,新增外設儘可能簡單,不考慮外接顯示器,一切都用WiFi無線功能,搭建Windows下遠程連接進行開發的環境。
  • 「樹莓派+1萬塊樂高」打造樂高分類器,樹莓派官方轉發,網友:我想借來用兩天
    這個分類器由樹莓派和1萬塊樂高積木組成,耗時2年打造,真的是「用樂高搞定樂高」,堪稱最硬核的「套娃」。我們先來感受一下它龐大的外形:最近,如此硬核的設備也得到了樹莓派官方轉發。Daniel的技術是在前人的基礎上完成,但更加先進:它可以識別出所有曾經使用過的樂高積木,甚至是從未見過的積木。
  • 挑戰樹莓派:RISC-V 微型計算機 PicoRio 發布
    RIOS 方面表示,PicoRio 對標的正是基於 ARM 架構的開源微型計算機系統 Raspberry Pi (樹莓派)。挑戰樹莓派作為最成功的微型計算機,開源的樹莓派在技術圈和學術界一直廣受編程愛好者的好評,各路大神基於樹莓派製作的新奇玩意兒層出不窮,圍繞這款微型計算機已經形成了一種獨特的 DIY 文化,相關的開源軟體生態建設也十分豐富。據統計,截至 2019 年 12 月,樹莓派的全球銷量已經突破 3000 萬套 。
  • 新的樹莓派 400:一臺藏身於鍵盤內微型計算機 | Linux 中國
    https://linux.cn/article-12793-1.html作者:Ankush Das譯者:Xingyu.Wang樹莓派是什麼已經無需介紹。這臺起初是為 DIY 愛好者打造的低規格電腦,現在可以作為全功能桌面使用了。隨著樹莓派 400 的發布,使得它更加適合作為家庭電腦使用。樹莓派 400 基本上是一臺藏身於鍵盤內微型計算機。
  • 樹莓派4推出8GB內存版,售價75美元
    IT之家5月28日消息 根據外媒TechPowerUp的消息,今天樹莓派官方宣布8GB內存版本的樹莓派4即將上市,定價為75美元,約合人民幣536元。IT之家曾報導,去年6月份,樹莓派(Raspberry Pi)基金會正式發布了第四代樹莓派Raspberry Pi 4 Model B,售價35美元起。樹莓派4搭載博通BCM2711處理器,1.5GHz,採用ARM Cortex-A72架構,LPDDR4內存,發布時擁有1GB、2GB和4GB三個版本。
  • 學安全 樹莓派+Kali Linux:建一個偷WiFi密碼的黑客站
    你得先弄臺便攜黑客站,並熟悉下Kali Linux和樹莓派(樹莓派)。不會沒有關係,我來教你!這篇文章是Lifehacker邪惡周項目的一部分,這一星期我們會教你們使壞。不過任何邪惡都是相對的,如果我們能熟悉它們,就能更好地戰勝邪惡。工欲善其事,必先利其器,開始之前,先來介紹下我們的工具吧。
  • 樹莓派「小霸王學習機」來了,一個自帶鍵盤的電腦,售價不到500元
    和樹莓派4相比,值不值得入手? 今天,外媒arstechnica率先拿到樣品,展開了一番評測。 各位看官,且來共同「品鑑」。 拆箱樹莓派400 拆箱之前需要聲明一點,70美元的價格是指單獨一個「鍵盤電腦」。 若是入手完整套件,則需要100美元(約669元)。
  • 樹莓派|NextCloud搭建專屬私有同步雲盤
    百度網盤限速大家都懂沒有會員的痛,手機拍的照片太多,又想隨時方便歸檔瀏覽,今天小壹教大家樹莓派搭建私有雲盤,讓你方便管理文件照片。效果:環境準備樹莓派 4B+4G系統:Raspberry Pi OS (32-bit) with desktop網盤軟體:NextCloud18.0.4LAMP環境搭建1.環境搭建APACHE: Apache/2.4.25 (Raspbian)MYSQL: Ver 15.1 Distrib 10.3.22
  • 樹莓派4最新8 GB版本售價75美元
    在樹莓派4(Raspberry Pi 4)上市將近一年之後,官方現在推出了版本更新,提供8 GB的快閃記憶體版本,而2 GB版本則從原本的45美元降低至35美元,另外,作業系統也更名成為Raspberry Pi OS。
  • 個頭小本事大:13種20 美元以下的樹莓派 Zero 替代品
    這裡,我將給出樹莓派 Zero 和樹莓派 Zero W 的一些替代品。 樹莓派 Zero 替代品:應用於物聯網和嵌入式項目的超小單板計算機 受益於開源設計和開源軟體棧,我們有為不同項目提供的具有各種功能集的優秀替代品。所有這些板子運行的都是嵌入式 Linux 的各種變體。
  • 最新一批樹莓派 4 已修復Type C接口問題
    大受歡迎的樹莓派4自從去年上市以來,其實一直都有一個小缺憾,跟其USB C接口有關,而新一批出廠的樹莓派 4已經解決了這個問題。有用過Type C接口的朋友應該都知道,Type C接口在不少設置上都是作為充電口的存在,樹莓派 4就是一個例子。不過問題是,如果此前用戶是用USB 3.1規格的Type C線材來為樹莓派 4充電的話,很可能會發現充不上電,而USB 2.0的Type C線材卻可以正常充電。
  • 就能用樹莓派製作一臺復古遊戲機
    實際上,你只需一部樹莓派和一些簡單的工具便可製作一部復古遊戲機,整個過程非常簡單。如果你對此感興趣,不妨通過本文的指南動手嘗試。步驟5:開啟樹莓派將SD卡插入到樹莓派,連接HDMI線、網線、手柄/鍵盤和電源,然後開啟顯示器/電視,最後在開啟樹莓派。