機器人編程教程3探索Raspberry Pi

来源:https://www.cnblogs.com/testing-/archive/2023/08/13/17622068.html
-Advertisement-
Play Games

前面講了Centos如何安裝telnet遠程,這次分享Ubuntu系統如何安裝遠程telnet,作為咱們運維備用遠程途徑 一、下載和安裝 查看系統版本:Ubuntu 22.04.1 LTS 線上安裝: apt install telnet telnetd openbsd-inetd 離線安裝: 離線 ...


3探索Raspberry Pi

本章將涉及以下主題:

  • 探索 Raspberry Pi 的功能
  • 選擇連接
  • 什麼是 Raspberry Pi OS?
  • 為Raspberry Pi OS 準備 SD 卡

3.1 探索Raspberry Pi的功能

控制器將決定機器人的輸入和輸出類型、電子設備的功率要求、可使用的感測器類型以及運行的代碼。更改控制器可能意味著重寫代碼、重新設計控制器的安裝位置以及更改電源要求。

Raspberry Pi 是一系列專為教育領域設計的小型電腦。它既是一臺完整的電腦,又有用於連接定製硬體的輸入/輸出引腳,因此深受創客(指喜歡製作機器人和小玩意兒等業餘愛好的人)的喜愛。與標準計算設備相比,微控制器的成本相對低廉,體積也較小,這些都有助於實現這一目標。所有型號的 Raspberry Pi 都具有連接攝像頭、顯示器和鍵盤以及網路的功能。

3.1.1 速度和功能

Raspberry Pi 的功能強大,足以處理一些視覺處理任務,如面部識別和跟蹤物體,後期型號的 Raspberry Pi 可以更快地完成這些任務。語音識別任務也是如此。因此,推薦使用速度更快的 4B、3B+ 和 3A+ 型號。Pico、Zero 和 Zero W 型號要慢得多,雖然系統仍能運行,但速度可能會令人沮喪。

Raspberry Pi 是一種單板電腦(SBC Single-Board Computer),其功能強大到足以運行完整的電腦操作系統,特別是 Linux 版本。

一些可用作控制器的替代 SBC 運行 Linux,如 BeagleBone、CHIP、OnionIoT 和 Gumstix Linux 電腦,但這些電腦要麼比 Raspberry Pi 昂貴,要麼功能較弱。只有部分產品集成了攝像頭。雖然 BeagleBone 的模擬 IO 連接性更出色,但 Raspberry Pi 3A+ 更像是一個全能型產品,有許多擴展選項。

3.1.2 連接和網路

Raspberry Pi 3A+ 還配有 USB 埠和 HDMI 埠。我們不打算在本書中使用它們,不過如果出現問題,與機器人失去聯繫,它們在調試時還是很方便的。有鑒於此,我們建議配備額外的屏幕和鍵盤。

Raspberry Pi 4、3 和 Zero W 系列都板載了 Wi-Fi 和藍牙。在本書中,我們將一直使用 Wi-Fi 與機器人連接,因此推薦使用具有 Wi-Fi 功能的機型。Wi-Fi 可用於對機器人進行編程、驅動和啟動代碼運行。

Raspberry Pi 有 I/O 引腳,可以連接到感測器。在 Raspberry Pi 3A+ 中,通用輸入/輸出 (GPIO General Purpose Input/Output) 連接已經焊接到位,可以隨時使用。Raspberry Pi Zero 和 Zero W 型號沒有連接針座。第一代 Raspberry Pi 電路板的 I/O 連接器也不盡相同。這些原因使得 3 和 4 系列 Raspberry Pi 成為最佳選擇。

選擇 Raspberry Pi 3A+ 或Raspberry Pi 4B

以下功能列表可以滿足我們的所有需求:

  • 輸入/輸出
  • 攝像頭介面
  • 可進行視覺和語音處理
  • 板載 Wi-Fi 和藍牙
  • 運行 Python 代碼
  • 預焊接接頭,可連接機器人設備
  • 體積小,價格相對便宜

除此之外,3A+ 還配備了基於 ARM 的四核 CPU,主頻為 1.4 GHz,足以滿足我們的使用要求。以後的 Raspberry Pi 版本可能會以更快的處理速度和更多的功能取代該型號。

3.2 選擇連接

在製作機器人時,我們將使用 Raspberry Pi 提供的部分連接。讓我們來看看這些連接是什麼,以及我們將如何使用它們。。


高亮區域表示使用中的連接:

首先,我們將使用電源介面,標記為電源輸入,位於圖的左下方。它通過微型USB(4B為tpye-c)介面插入,與許多手機上的介面類似。我們可以將 USB 電池組插入這個埠,只要它們能提供適當的電量。

中下部突出顯示的埠是攝像頭(攝像頭串列介面 (CSI))埠;這是用於Pi攝像頭的埠,我們將在準備進行視覺處理時連接攝像頭。

我們將使用Raspberry Pi下方的Micro SD卡插槽來運行代碼。我們將不使用乙太網或 HDMI,因為我們將通過 Wi-Fi與Raspberry Pi通信。


The Raspberry Pi GPIO port (B+, 2, 3, 3B+, Zero, and Zero W)

外部設備可以連接到SPI、I2C、串列和I2S數據匯流排或數字I/O引腳。

3.2.1 電源引腳

5V和3.3V引腳以及標有GND的引腳用於供電。GND是接地的縮寫,相當於電池或電源的負極。5V引腳可用於從電池為Pi供電。5V和3.3V可用於為小型電子設備或感測器供電。

3.2.1.1 數據匯流排

SPI、I2C 和串列匯流排用於在控制器和智能設備之間發送控制和感測器數據。I2S用於在Raspberry Pi之間傳輸編碼數字音頻信號(PCM)。可以通過配置啟用這些數據匯流排的埠,或者在數據匯流排關閉時將這些引腳用作普通數字引腳。

標有SDA和SCL的引腳是I2C數據匯流排。我們將其用於感測器和電機控制板。指令通過該埠發送。

引腳9、10和11組成SPI埠,我們用它來驅動RGB LED。

雖然Raspberry Pi上有一個音頻埠,但它並不適合驅動揚聲器,因此我們將使用 GPIO 埠上的I2S引腳來驅動揚聲器。I2S引腳為 18、19、20 和 21。由於它們也有用於音頻輸入的引腳,因此我們將其用於語音處理。

3.2.1.2 通用IO

其他沒有特定字或陰影類型編號的引腳是通用I/O引腳。通用I/O引腳用於伺服電機、編碼器和超聲波感測器的數字輸入和輸出。

3.2.1 Raspberry Pi HAT

Raspberry Pi HAT(也稱為 Bonnets)是設計用於插入 GPIO 針座的電路板,可方便地將Raspberry Pi連接到電機或感測器等設備。

有些電路板通過GPIO引腳連接更多電路板/連接裝置來使用這些引腳,有些則需要擴展電路板來訪問這些引腳。

HAT將GPIO引腳用於不同的用途;例如,音頻HAT將I2S引腳用於音頻介面,但有些電機控制器 HAT 使用相同的引腳來控制電機。同時使用這些HAT可能會出現問題,因此在使用多個HAT或特定匯流排時要註意這一點。

參考資料

3.3 什麼是 Raspberry Pi OS?

Raspberry Pi OS是我們用來驅動Raspberry Pi的軟體,是我們的代碼將在其中運行的操作系統。它是Raspberry Pi基金會的官方操作系統,附帶的軟體可使Raspberry Pi的工作更輕鬆。Raspberry Pi OS可以支持完整的桌面,也可以支持最小的命令行和純網路系統。

Raspberry Pi 操作系統基於 Debian Linux 發行版。Debian是一個軟體集合,可以一起運行,提供大量功能和多種可能性。這樣的Linux發行版是許多互聯網伺服器、手機和其他設備的基礎。該操作系統的軟體專為Raspberry Pi硬體進行了優化,即內核和驅動程式。它還有一些巧妙的方法來配置Raspberry Pi用戶可能需要的專門功能。

我們將以比台式機更簡約的方式使用它,放棄對鍵盤、滑鼠和顯示器的支持。這個最小版本被稱為Raspberry Pi OS Lite,因為當不需要桌面軟體時,它的下載量要小得多,而且占用的micro SD卡空間也更小。不運行視窗管理器可以釋放記憶體,減少對Raspberry Pi處理能力的使用,使其能夠用於視覺處理等活動。我們將使用用於機器人編程的軟體和工具來擴展Raspberry Pi OS Lite。

在本書的學習過程中,你將主要通過代碼和命令行與機器人進行交互。Linux和Raspberry Pi OS在編寫時考慮到了通過網路使用命令行,這非常適合機器人編程的無頭特性。

我們使用Linux對Python編程語言的強大支持以及Linux提供的網路工具。Raspberry Pi OS在 Raspberry Pi社區被廣泛使用,在需要幫助時也最容易找到答案。它不是 Raspberry Pi的唯一操作系統,但對於剛開始使用Raspberry Pi的人來說,它是最有用的選擇。

準備 SD 卡

要在Raspberry Pi上使用Raspberry Pi OS,需要將軟體以Raspberry Pi可以載入的方式放入微型SD卡中。

Raspberry Pi開發了Raspberry Pi Imager,用於將軟體放到SD卡上。讓我們下載它併在卡上獲得正確的映像:

訪問raspberrypi.org/software上的 Raspberry Pi軟體下載頁面,為你的電腦選擇下載按鈕,如下圖所示:

將微型SD卡裝入讀卡器,插入筆記本電腦的埠。

選擇 Raspberry Pi OS(其他)。由於我們要儘量簡化操作,因此請從該菜單中選擇 Raspberry Pi OS Lite(32 位)。

現在準備寫入。單擊 "寫入 "按鈕:

系統會問你是否確定,點擊 "是 "繼續。下載和寫入圖像需要一些時間。

釘釘或微信號: pythontesting 微信公眾號:pythontesting
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在一個需要用到flag作為信號控制代碼中一些代碼片段是否運行的,比如"--flag True"或者"--flag False"。 但是古怪的是無法傳入False,無論傳入True還是False,程式裡面都是True的參數,所以這個flag並沒有生效,也就失去了意義。 參考代碼: ```python ...
  • 在本篇文章中,會先介紹 Python 中對象的基礎概念,之後會提到對象的深淺拷貝以及區別。在閱讀後,應該掌握如下的內容: - 理解變數、引用和對象的關係 - 理解 Python 對象中 identity,type 和 value 的概念 - 什麼是 mutable 和 immutable 對象?以及 ...
  • # 《Rust編程之道》學習筆記一 ## 序 ### Rust語言的主要特點 - 系統級語言 - 無GC - 基於LLVM - 記憶體安全 - 強類型+靜態類型 - 混合編程範式 - 零成本抽象 - 線程安全 ### 程式員的快樂 何謂快樂?真正的快樂不僅僅是寫代碼時的“酸爽”,更應該是代碼部署到生產 ...
  • 項目工程中,集成資料庫實現對數據的增曬改查管理,是最基礎的能力,通常涉及三個基礎組件:連接池,持久層框架,數據源。 ...
  • 當我們需要處理一個大量的數據集合時,一次性將其全部讀入記憶體並處理可能會導致記憶體溢出。此時,我們可以採用迭代器`Iterator`和生成器`Generator`的方法,逐個地處理數據,從而避免記憶體溢出的問題。迭代器是一個可以逐個訪問元素的對象,它實現了`python`的迭代協議,即實現了`__iter... ...
  • 通過編碼實戰瞭解quarkus攔截器的另一個高級特性:禁用類級別攔截器,這樣可以避免類級別和方法級別攔截器的疊加衝突 ...
  • [toc] ### 1.晶元手冊中的LED電路圖 ![圖1](https://img-blog.csdnimg.cn/34c2a95aa89c4cbe8a7904429d889564.png) ### 2.官網手冊 ![圖2](https://img-blog.csdnimg.cn/e9b1131d ...
  • 設計字元設備 文件系統調用系統IO的內核處理過程 在Linux文件系統管理中,當應用程式調用open函數時,內核會根據文件路徑找到文件的索引結點(inode),為文件分配文件描述符和文件對象,並根據打開模式和許可權等參數進行相應的操作和設置。 硬體層原理 思路:把底層寄存器配置操作放在文件操作介面里, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...