●章 樹莓派全面介紹 1 1.1 樹莓派項目 1 1.2 樹莓派硬件 3 1.2.1 板載芯片 3 1.2.2 板載接口 5 1.2.3 專用拓展 7 1.3 點亮樹莓派 9 1.4 樹莓派軟件 15 1.4.1 設置助手 15 1.4.2 桌面布局 18 1.4.3 瀏覽器及軟件管理 19 1.4.4 文件管理器 21 1.4.5 編程套件 23 1.4.6 樹莓派配置工具 26 第2章 樹莓派軟硬件開發入門 28 2.1 認識Scratch 29 2.1.1 “Hello World!”程序 30 2.1.2 流程 30 2.1.3 循環 32 2.1.4 變量和條件 33 2.2 使用Scratch完成一些小遊戲 36 2.2.1 宇航員反應計時器 37 2.2.2 花樣遊泳 41 2.3 樹莓派硬件入門 48 2.3.1 了解GPIO 48 2.3.2 常器件 49 2.4 使用Scratch控制硬件 51 2.4.1 控制發光二極管 51 2.4.2 控制蜂鳴器 54 2.4.3 控制按鈕 55 第3章 樹莓派軟硬件開發進階 57 3.1 樹莓派玩轉Python入門 57 3.1.1 超輕量開發環境:Thonny 57 3.1.2 Python IDLE和命令行 58 3.1.3 編寫“Hello World!”程序 60 3.2 Python進階 61 3.2.1 代碼縮進和循環 61 3.2.2 條件和變量 64 3.2.3 “畫”雪花 65 3.3 Python控制GPIO傳感器 71 3.3.1 gpiozero庫 71 3.3.2 gpiozero的輸入和輸出 73 3.3.3 模擬紅綠燈 75 3.3.4 搶答器 77 3.4 Python與樹莓派硬件的交互 80 3.4.1 Python與樹莓派繫統信息的交互 80 3.4.2 Python與發光二極管傳感器的交互 81 3.4.3 Python與遊戲操縱杆傳感器的交互 85 3.4.4 Python與電子羅盤傳感器的交互 88 第4章 機器人簡單傳感器 91 4.1 視覺傳感器 91 4.1.1 簡單提示:發光二極管 91 4.1.2 圖像視頻采集:攝像頭 98 4.1.3 圖像視頻輸出:顯示器 101 4.2 聲學傳感器 106 4.2.1 簡單提示音:蜂鳴器 106 4.2.2 播放聲音和音樂:揚聲器 107 4.2.3 超聲波:距離傳感器 108 4.3 電磁傳感器 109 4.3.1 限制電路電流:電阻器 109 4.3.2 機器人的雙腳:馬達 111 4.3.3 角度微控制器:舵機 116 4.3.4 大型電器開關:繼電器 117 4.3.5 測速計數:霍爾傳感器 119 4.4 其他傳感器 121 4.4.1 力學傳感器:開關、體重、加速計和陀螺儀 121 4.4.2 熱學傳感器:人體感應器、溫度傳感器 126 4.4.3 紅外傳感器:光敏傳感器、循跡傳感器 128 第5章 樹莓派人工智能傳感器 131 5.1 Google AIY Voice Kit 131 5.1.1 組裝配置 131 5.1.2 簡單錄音 133 5.1.3 語音識別與命令 134 5.2 谷歌語音套件 136 5.2.1 組裝配置 136 5.2.2 人臉和物品檢測引擎 137 5.2.3 使用代碼演示人臉識別 139 5.3 Seeed ReSpeaker 140 5.3.1 硬件規格介紹 140 5.3.2 安裝驅動 141 5.3.3 配置在線API 143 5.3.4 語音識別與命令 145 5.4 Pixy2 Cam 145 5.4.1 Pixy繫列傳感器介紹 145 5.4.2 連接到樹莓派 146 5.4.3 顏色判定和巡線 147 5.4.4 Python接口調用 150 第6章 樹莓派構建機器人 152 6.1 硬件規劃 152 6.1.1 協議規劃:深入gpiozero 152 6.1.2 協議規劃:I2C、SPI 158 6.1.3 電路規劃:FRITZING 162 6.2 軟件規劃 165 6.2.1 命令控制:SSH 165 6.2.2 電腦控制:gpiozero 169 6.2.3 手機控制:Blue Dot 172 6.3 機器人構建 175 6.3.1 遠程控制機器人 175 6.3.2 循跡機器人 177 6.3.3 跟隨/避障機器人 180 6.4 監測樹莓派狀態 181 6.4.1 命令行檢測 181 6.4.2 蘋果手機監控:PiHelper 184 6.4.3 安卓手機監控:RaspController 186 第7章 樹莓派與產業機器人“語言”:ROS 190 7.1 機器人操作繫統ROS 190 7.1.1 ROS是什麼 190 7.1.2 ROS用來做什麼 190 7.1.3 ROS版本的選擇 191 7.1.4 在樹莓派上安裝Ubuntu 192 7.1.5 在Ubuntu上安裝ROS 196 7.2 文件繫統概覽 197 7.2.1 安裝ros-tutorials案例包 197 7.2.2 ROS軟件包結構 197 7.3 ROS節點 200 7.3.1 首先啟動內核roscore 200 7.3.2 啟動節點rosnode 201 7.3.3 啟動文件 203 7.4 ROS話題 205 7.4.1 rostopic命令 207 7.4.2 消息傳遞過程 209 7.5 ROS服務、參數和調試 211 7.5.1 服務rosservice 211 7.5.2 參數rosparam 214 7.5.3 打印ROS日志 216 第8章 樹莓派集成機器人與人工智能 219 8.1 樹莓派ROS傳感器 219 8.1.1 配置宿主機和客戶機 219 8.1.2 樹莓派連接攝像頭 221 8.1.3 樹莓派連接激光雷達 223 8.1.4 樹莓派連接3D攝像頭 225 8.2 樹莓派連接操縱手柄 226 8.2.1 硬件準備:PS3、PS4、XBOX 226 8.2.2 驅動安裝和測試 227 8.2.3 代碼編寫與軟件包編譯 229 8.2.4 使用手柄控制小烏龜 231 8.3 手機控制ROS機器人 231 8.3.1 遠程控制:ROS Control 232 8.3.2 人機界面:PocketBot for ROS 234 8.3.3 智能語音:ROS Teleop Controller 236 8.4 ROS人工智能 238 8.4.1 現實世界的人工智能 238 8.4.2 機器人視覺:OpenCV 239 8.4.3 機器人地圖:SLAM 241 8.4.4 機器人導航:Navigation 242
內容簡介
本書遵循由淺入深、由易到難的原則,循序漸進地介紹使用樹莓派玩轉機器人的推薦軟硬件知識與技術。全書共8章,~4章為樹莓派入門部分,主要介紹樹莓派軟硬件、Scratch和Python編程語言以及各種傳感器的使用,並提供豐富的操作案例,方便讀者輕松構建樹莓派項目。本部分學會之後,讀者基本上可以掌握使用樹莓派軟硬件與第三方軟硬件協同工作,搭配和使用傳感器親手搭建一個簡單的用於巡線且自動跟隨和停止的機器無人車。第5~8章為提高部分,本部分深入地介紹樹莓派的各種不錯玩法,還將介紹更多、更加智能的第三方軟硬件,比如近年來火熱的人工智能繫列傳感器以及機器人操作繫統ROS的使用,同時兼顧PC和手機操作,為讀者玩轉機器人提供更多的趣味場景。 本書的特點是使用低成本硬件,趣味性和可操作性強,適合對樹莓派及機器人感興趣的各類讀者閱讀。
為什麼要寫這本書 面對這個問題,我的內心是復雜的。雖然我是一名理科生,但是就這個問題我並不想用各種參數對比、性價比等冷冰冰的數字來回答,我想感性地、大聲地、驕傲地回答這個問題,因為我就是喜歡樹莓派。 由於工作的原因,身邊總是圍繞著大量的工程師,他們中的大多數都跟我一樣,眼就喜歡上了這塊電路板,而且喜歡上之後就再也離不開它。從2012年的代一直追到最新的3B+版本的人不在少數,而且非常神奇的是,這塊電路板“軟硬通殺”,無論是玩硬件的朋友,還是玩軟件的朋友,都會愛不釋手,並且能夠很快上手融合到自己的項目中。 樹莓派是一款真正的計算機,憑借強勁的CPU性能,樹莓派無所不能,從上網、玩遊戲、看電影、聽音樂,到控制電路、控制傳感器,進行科學計算、邊緣計算、雲計算,甚至是深度學習、人工智能、圖像識別、環境感知等不錯應用,樹莓派都可以做到輕松應對、遊刃有餘。 與此同時,樹莓派保持著非常低廉的售價......
"