跳至主要内容

樹莓派 Raspberry Pi

Raspberry Pi 是一塊單板計算機。您可以使用各種設備和生態系統添加感應器和驅動器,在這些課程中,將使用名為 Grove 的硬體生態系統。您將使用 Python 代碼編寫 Pi 並存取 Grove 感應器。

Raspberry Pi 4

設置

如果您使用 Raspberry Pi 作為您的 IoT �硬體,您有兩種選擇 - 您可以直接在 Pi 上完成所有這些課程並直接編寫代碼,或者您可以遠程連接到 'headless' Pi 並從您的電腦編寫代碼。

在開始之前,您還需要將 Grove Base Hat連接到您的 Pi。

任務 - 設置

在您的 Pi 上安裝 Grove base hat 並配置 Pi

  1. 將 Grove base hat 連接到您的 Pi。帽子上的插座可以覆蓋 Pi 上所有的 GPIO 鈕,滑動所有釘子,使其稳固地坐在基座上。它蓋在 Pi 上,覆蓋它。

    安裝 grove 蒐集器帽子

  2. 說明您想要如何編程 Pi,然後參考以下相關部分:

直接在 Pi 上工作

如果您想要直接在 Pi 上工作,您可以使用 Raspberry Pi OS 的桌面版本並安裝您需要的所有工具。

任務 - 直接在 Pi 上工作

為開發設定您的 Pi。

  1. 輔助參考 Raspberry Pi 設置指南 以設定您的 Pi,將其连接到鍵盤/鼠標/顯示器,将其连接到您的 WiFi 或以太網網絡,並更新軟件。

使用 Grove 感應器和驅動器編程 Pi,您需要安裝一個編輯器以允許您编写設備代碼,還需要安裝與 Grove �硬體交互的各種庫和工具。

  1. 一旦您的 Pi 重啟,單擊頂部菜單上的 Terminal 圖標,或選擇 菜單 -> 套件 -> Terminal 創建終端。

  2. 执行以下命令以確保操縱系統和安裝的软件是最新的:

    sudo apt update && sudo apt full-upgrade --yes
  3. 执行以下命令以安裝 Grove �硬體所需的所有庫:

    sudo apt install git python3-dev python3-pip --yes

    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .

    sudo raspi-config nonint do_i2c 0

    此命令首先安裝 Git 和 Pip 以安裝 Python 軟件包。

    Python 的強大功能之一是安裝 Pip 軟件包 - 這些是其他人編寫並上傳到互聯網的代碼包。您可以使用一個命令在您的電腦上安裝 Pip 軟件包,然後在您的代碼中使用該軟件包。

    Seeed Grove Python 對象需要從源代碼安裝。這些命令將克隆包含此包源代碼的存储庫,然後在本地上安裝它。

    💁 默默地安裝軟件時,它將在您的電腦上所有地方可用,這可能會導致與軟件版本相关的問題 - 例如,一個應用程序依賴於包的一個版本,但當您為另一個应用程序安裝新的版本時會出問題。為了解決這個問題,您可以使用 Python 虛擬環境,簡單來說,就是在專門的資料夾中複製 Python,當您安裝 Pip 軟件包時,它們只會安裝到該資料夾。您在 Pi 上不使用虛擬環境。Grove 安裝腳本全局安裝 Grove Python 對象,因此如果您要使用虛擬環境,您需要設置虛擬環境然後手動在該環境中重新安裝 Grove 對象。這樣做更容易,特別是作為許多 Pi 開發者會為每個項目擦除全新的 SD 卡。

    最後,這啟用了 I2C 界面。

  4. 使用菜單或終端中的以下命令重启 Pi:

    sudo reboot
  5. 重新啟動 Pi 之後,重新啟動終端並運行以下命令以安裝 Visual Studio Code (VS Code) - 您將使用這個编辑器在 Python 中编写設備代碼。

    sudo apt install code

    此命令安裝之後,VS Code 將在頂部菜單中可用。

    💁 您可以使用任何 Python IDE 或编辑器進行這些課程,如果您有偏好的工具,但這些課程將基於使用 VS Code 的指導。

  6. 安裝 Pylance。這是 VS Code 的扩展,可提供 Python 語言支持。參考 Pylance 扩展文檔 以瞭解如何將此扩展安裝到 VS Code 中。

遠程訪問編程 Pi

而不是直接在 Pi 上編程,它可以運行 'headless',即未連接到鍵盤/鼠標/顯示器,並使用 Visual Studio Code 在您的電腦上配置和編程。

設置 Pi OS

要遠程編程,Pi OS 需要安裝在 SD 卡上。

任務 - 設置 Pi OS

設定無頭 Pi OS。

  1. Raspberry Pi OS 軟件頁面 下载 Raspberry Pi Imager 並安裝它。

  2. 插入 SD 卡到您的電腦,如果需要使用無損後援器。

  3. 打開 Raspberry Pi Imager。

  4. 在 Raspberry Pi Imager 中,選擇 CHOOSE OS 按鈕,然後選擇 Raspberry Pi OS (Other),然後選擇 Raspberry Pi OS Lite (32-bit)

    Raspberry Pi Imager 裡選擇 Raspberry Pi OS Lite

    💁 Raspberry Pi OS Lite 是 Raspberry Pi OS 的版本,沒有桌面 UI 或 UI 基於的工具。這些對无头 Pi 都不是必需的,並使安裝更小,開機速度更快。

  5. 選擇 CHOOSE STORAGE 按鈕,然後選擇您的 SD 卡。

  6. 打開 高級選項,按 Ctrl+Shift+X。這些選項允許在將操作系統映像繪製到 SD 卡之前預配置 Raspberry Pi OS。

    1. Enable SSH 复選框,並設置 pi 用户的密碼。這是您稍後用於登錄 Pi 的密碼。

    2. 如果您打算通過 WiFi 連接到 Pi,選擇 Configure WiFi 复選框,然後輸入您的 WiFi SSID 和密碼,以及選擇您的 WiFi 國家。如果您將使用以太網纜,則不需要這麼做。確保您連接的網絡與您的電腦在相同的網絡上。

    3. 選擇 Set locale settings 复選框,並設置您的國家和時區。

    4. 選擇 SAVE 按鈕。

  7. 適用 WRITE 按鈕以將操績系统写入 SD 卡。如果您在使用 macOS,您将需要輸入您的密码,因此寫入磁盤映像的工具需要管理員權限。

操作系統將寫入 SD 卡,並在完成後由操作系統弹出並通知您。從您的電腦中移除 SD 卡,插入 Pi,上電並等待大約 2 钟鐘鍾,以便其正確啟動。

連接到 Pi

下一步是遠程訪問 Pi。您可以使用 ssh 做這件事,它是 macOS、Linux 和較新版本的 Windows 上可用的。

任務 - 連接到 Pi

遠程訪問 Pi。

  1. 打開終端或命令提示符,並輸入以下命令以連接到 Pi:

    如果您在 Windows 上使用较老版本的 Windows 且未安裝 ssh,您可以使用 OpenSSH。您可以在 OpenSSH 安裝文檔 中找到安裝指令。

  2. 它應該連接到您的 Pi 並請求密碼。

    使用 <hostname>.local 來查找您的網絡上的電腦是一個相較較新的 Linux 和 Windows 新增功能。如果您使用的是 Linux 或 Windows,并且您收到任何關於找不到主機名的錯誤,您需要安裝額外软件來启用 ZeroConf 網絡(Apple 也稱之為 Bonjour):

    1. 如果您使用 Linux,使用以下命令安裝 Avahi:

      sudo apt-get install avahi-daemon
    2. 如果您使用 Windows,最簡單的方法是安裝 Bonjour Print Services for Windows。您也可以安裝 iTunes for Windows 以獲得有用的工具(該工具不獨立提供)。

    💁 如果您無法使用 raspberrypi.local 進行連接,則可以通過 Pi 的 IP 地址訪問它。參考 Raspberry Pi IP 地址文檔 以獲取获取 IP地址的指導。

  3. 輸入您在 Raspberry Pi Imager 高級選項中設置的密碼。

在 Pi 上配置軟件

一旦您連接到 Pi,您需要確保操縱系統是最新的,並安裝與 Grove �硬體交互的各種庫和工具。

任務 - 在 Pi 上配置軟件

配置安裝的 Pi 軟件和安裝 Grove 库。

  1. ssh 過程中,運行以下命令以更新並重启 Pi:

    sudo apt update && sudo apt full-upgrade --yes && sudo reboot

    Pi 會更新並重启。當 Pi 重啟時,ssh 過程將結束,所以讓它停頓約 30 秒然後重新連接。

  2. 在重新連接的 ssh 過程中,運行以下命令以安裝 Grove 硬體所需的所有庫:

    sudo apt install git python3-dev python3-pip --yes

    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .

    sudo raspi-config nonint do_i2c 0

    此命令首先安裝 Git 和 Pip 以安裝 Python 軟件包。

    Python 的強大功能之一是安裝 Pip 軟件包 - 這些是其他人編寫並上傳到互聯網的代碼包。您可以使用一個命令在您的電腦上安裝 Pip 軟件包,然後在您的代碼中使用該軟件包。

    Seeed Grove Python 對象需要從源代碼安裝。這些命令將克隆包含此包源代碼的存储庫,然後在本地上安裝它。

    💁 默默地安裝軟件時,它將在您的電腦上所有地方可用,這可能會導致與軟件版本相关的問題 - 例如,一個應用程序依賴於包的一個版本,但當您為另一個应用程序安裝新的版本時會出問題。為了解決這個問題,您可以使用 Python 虛擬環境,簡單來說,就是在專門的資料夾中複製 Python,當您安裝 Pip 軟件包時,它們只會安裝到該資料夾。您在 Pi 上不使用虛擬環境。Grove 安裝腳本全局安裝 Grove Python 對象,因此如果您要使用虛擬環境,您需要設置虛擬環境然後手動在該環境中重新安裝 Grove 對象。這樣做更容易,特別是作為許多 Pi 開發者會為每個項目擦除全新的 SD 卡。

    最後,這啟用了 I2C 界面。

  3. 运行以下命令重启 Pi:

    sudo reboot

    ssh 過程將在 Pi 重啟時結束。您不需要重新連接。

配置 VS Code 的遠程訪問

一旦您的 Pi 已配置,您就可以使用 Visual Studio Code (VS Code) 在您的計算機上遠程連接到它 - 該計算機是一個免費的開發者文本编辑器,您將使用它來在 Python 中编写設備代碼。

任務 - 配置 VS Code 的遠程訪問

安裝所需的软件並遠程連接到您的 Pi。

  1. 通過 VS Code 文檔 安裝 VS Code。

  2. 輔助參考 VS Code Remote Development using SSH 文檔 以安裝需要的功能

  3. 根據相同的指導,使用 VS Code 遠程連接到 Pi

  4. 連接後, seuraavalla linkillä löytyvät ohjeet managing extensions 以遠程安裝 Pylance 扩展 到 Pi 上

Hello World

當您開始使用新的編程語言或技術時,傳統上是創建一個 'Hello World' 專案 - 一個小的專案,它會輸出像文本 "Hello World" 這樣的內容,以顯示所有工具都已正確配置。

Pi 的 Hello World 專案將確保您已正確安裝 Python 和 Visual Studio code。

此專案將在名為 nightlight 的資料夾中,並將在這個作業的後面的部分用不同的代碼重新使用以構建夜燈應用程序。

任務 - Hello World

創建 Hello World 專案。

  1. 打開 VS Code,直接在 Pi 上或使用遠程 SSH 扩展連接到 Pi 的電腦上。

  2. 打開 VS Code 终端,選擇 Terminal -> 新終端 或按 CTRL+ `。

  3. 运行以下命令以為您的代碼創建一個資料夾,並在該資料夾中創建一個名為 app.py 的 Python 文件:

    mkdir nightlight
    cd nightlight
    touch app.py
  4. 通過選擇 File -> Open... 然後選擇 nightlight 資料夾,然後選擇 OK 來在 VS Code 中打開此資料夾。

    VS Code 打開對話框顯示夜燈資料夾

  5. 在 VS Code 探索器中打開 app.py 文件並添加以下代碼:

    print('Hello World!')

    print 函數將打印您傳遞給它的任何內容到控制台。

  6. 在 VS Code 终端中運行以下命令來運行您的 Python 專案:

    python app.py

    💁 您可能需要明確呼叫 python3 以運行此代碼,如果您除 Python 3 外還安裝了 Python 2。如果您安裝了 Python2,則呼叫 python 將使用 Python 2 而不是 Python 3。由於最新的 Raspberry Pi OS 版本僅安裝了 Python 3,因此這是一種普遍的做法。

    以下輸出將出現在終端:

    pi@raspberrypi:~/nightlight $ python3 app.py
    Hello World!

💁 您可以在 code/pi 資料夾中找到此代碼。

😀 您的 'Hello World' 程序成功了!