树莓派基础

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Jack Creasey Raspberry Pi Essentials Packt Publishing ,2015 年 4 月)包含 8 章,共约 180 页。这本书的副标题是这样宣传的:“启动并运行 Raspberry Pi 以开发迷人的项目。”

前言

Packt Publishing 书籍的前言通常是了解特定书籍是为谁设计的以及读者在阅读本书和使用书中的示例时应该带来什么的好地方。 Raspberry Pi Essentials 的前言指出这本书“适用于在编程语言和硬件设计方面经验最少的业余爱好者和学术项目设计人员和开发人员”。前言还指出,在开发本书内容时使用了 NOOBS 版本 1.4.0 Raspbian (Debian Wheezy) 版本 7.8 (Linux Kernel 3.18),并引用了 Raspberry Pi 下载站点

第 1 章:树莓派入门

Raspberry Pi Essentials 的第一章首先解释了 Raspbian Raspberry Pi Foundation 提供的 Raspberry Pi 的“主要操作系统”。本章很快将 Raspberry Pi 描述为“小主板上的完整计算机系统”。

Raspberry Pi Essentials 的第一章解释了为什么几种 Raspberry Pi 模型中的任何一种都适用于本书中的示例,并概述了 Raspberry Pi 模型上可用的各种端口。作者特别指出,“虽然 Pi A+、B+ 和模型 2-B 用于我们所有的项目,但本书中的任何内容都不排除使用旧的 A 和 B 模型。”本章讨论了从 Raspberry Pi 入门套件开始的优势,然后介绍了如何配置 Raspberry Pi 的电源。我喜欢这一章包含多张照片,其中包括展示 Raspberry Pi 板本身以及在完整开发环境的上下文中展示它。

第 1 章中的部分讨论了选择屏幕、准备 SD 卡、首次启动 Raspberry Pi 以及处理阻止显示显示的潜在问题。第 1 章的“桌面快速浏览”部分引用了几个有用的 键盘快捷键 ,并演示了如何使用 Raspberry Pi Web 浏览器下载与 Raspberry Pi Essentials 相关的源代码。

第 2 章:配置 Raspberry Pi 桌面和软件

Raspberry Pi Essentials 的第二章致力于“最大化桌面图形工具的实用性并为您的项目开发代码”。本章涵盖安装无线适配器(包括使用 Linux lsusb 命令)、使用开源网络管理器 wicd 和保留静态 IP 地址。

第 2 章的“配置 Raspberry Pi 桌面和软件”部分讨论了 轻量级 X11 桌面环境 (LXDE) 和 Openbox 。其他部分介绍了用于使环境保持最新、安装屏幕保护程序包以及创建允许轻松锁定屏幕的桌面快捷方式的命令。本章的部分内容包括安装 PCManFM 文件管理器和配置 root 权限。

第二章的“在 Raspberry Pi 上编程”部分总结了 Raspbian 直接可用的编程语言: Bash C Python 2 Python 3 。演示 Bash 的项目是一个使用 cron mpg123 Leafpad Text Editor gnome-schedule 的会说话的时钟。演示 Python 3 的项目引入了 IDLE3 (“Python 3 的 GUI 开发环境”)。

第 3 章:Raspberry Pi 和相机

Raspberry Pi Essentials 的第 3 章首先概述了“将 相机 连接到 Raspberry Pi”,并在文本和性能特性表中强调了 MIPI 相机串行接口 (CSI) 和 USB 相机连接之间的差异。本章介绍了 PiCam PiNoIR 相机 。本章使用“一个使用多个摄像头构建运动敏感安全系统的项目”来演示将摄像头连接到 Raspberry Pi。包 lucview 用于测试相机。 Turbo 模式 也作为该项目的一部分引入,并在第 4 章中进行了更详细的介绍。这个项目较多的章节还包含“结合网络摄像头移动检测器和 PiCam 相机”(使用 LeafPad)和“创建一个简单的 Python”的项目安全应用程序的 GUI”(使用 TkInter )。这些项目不包括完整的代码清单,而是引用可以从哪里下载代码,然后解释在下载的代码中要修改的内容。

第 4 章:树莓派音频输入和输出

Raspberry Pi Essentials 的第 4 章介绍了 Raspbian Wheezy 高级 Linux 声音架构 ( ALSA )。本章讨论了为 Raspberry Pi 选择合适的耳机,并简要总结和演示了三个关键的命令行 ALSA 实用程序( alsamixer aplay arecord )。本章中有几节介绍了配置默认 ALSA 设备和通过 超频 配置高品质声音。

第 4 章中用于说明概念的项目是“安装高级音频播放应用程序”(介绍 VLC 媒体播放器 )、“在后台运行 VLC 用于网络广播”(使用 SHOUTcast 作为网络广播频道提供商的示例)、“设计一个网络广播的播放列表文件”、“解析网络广播的播放列表文件”、“实现 VLC 的 Python 文本接口”和“为网络广播实现 TKinter GUI”。与本书中涵盖的其他项目一样,有分步说明。没有提供代码清单,但是有几个参考可以下载必要的代码。

第 5 章:Raspberry Pi 上的端口输入和输出

Raspberry Pi Essentials 第五章从Raspberry Pi 的 数字输入和输出端口 的解释开始。本章讨论“驱动 LED 作为输出指示器”,并介绍了 Charlieplexing Raspberry Pi 和 Python 模块 raspberry-gpio-python 的概念。

“TKinter LED 演示”包含 7 个“块”,每个块都提供一个代码列表和相关的文本解释。 “TKinter switch demo”有 3 个“块”,强调需要解决 switch 弹跳 问题。本章结束的项目是“为网络收音机添加一个切换接口”。

第 6 章:在树莓派上驱动 I2C 外设

Raspberry Pi Essentials 的第 6 章讨论了“一种接口总线,它使用一种简单的消息通信协议,从主设备到从设备进行通信”( I 2 C SMBus )。本章简要比较和对比了 I 2 C SMBus ,并在示例中使用了两者。这一技术性很强的章节包括演示和一个多“块”项目,以说明与 I2C 和 SMBus 相关的概念。本章有趣的旁注之一是,在本书写作时,开箱即用的 python-smbus 模块 仅适用于 Python 2

第 7 章:使用 Raspberry Pi 实现移动化

Raspberry Pi Essentials 第七章的学习目标是“创建Raspberry Pi的命令行界面”和“为Raspberry Pi开发移动电源解决方案”。本章的前半部分讨论了“在 Microsoft Windows 上使用 PuTTY 从 PC 连接到 Pi”。本节描述并说明了 PuTTY 的下载和安装。本章随后讨论了 Linux 和 OSX 中可用的“内置 SSH 终端实用程序”。

第 7 章的电池内容比较了“一次”电池和“可充电”电池,解释了为什么可充电电池更适合远程 Pi 系统,并提供了一张比较“最常见的可充电电池技术”的性能特征的表格。本节讨论使用稳压器确保“Pi 在稳压 5V 电源上运行”的必要性,并为爱好者简要概述三种常见的稳压器类型。本章还介绍了一些与 Raspberry Pi 配合良好的特定电池,并以“选择项目电池容量”项目结束。

第 8 章:创建 Raspberry Pi 巡线机器人

Raspberry Pi Essentials 的最后一章从描述线检测开始。作者建议任何没有机器人经验的读者都可以先阅读一些关于机器人的知识,并参考 Doug Kelley 的文章 使用数码相机进行线检测

机器人项目软件部分的高级概述作为软件架构呈现。本节包括对编写模块化软件的优势的简要说明,并概述了为项目编写的每个 Python 模块。在对 Python 实现和 Python 2 IDLE IDE 的使用进行了重要讨论之后,本章继续测试无线连接、组装机器人、启动机器人和导航机器人。最后一章的结尾也代表了本书的结尾。

一般观察

  • Raspberry Pi Essentials 不包含许多代码清单。相反,有对 在线资源的 引用,可以从中下载代码清单。
    • 对于那些不想被代码打扰(想按原样运行它)的人以及那些宁愿先阅读概念然后分别查看代码的人来说,这是一个优势。
    • 下载的代码可以在最喜欢的 IDE 或文本编辑器中查看,享受彩色编码语法、行号以及轻松复制和粘贴和进行修改的能力。
    • 当该代码不再可在线下载时,就会意识到这种方法的最大缺点。
    • 对于那些喜欢将文本、插图和代码都放在一个地方的人来说,存在第二个缺点。
    • 下载大部分代码和资源的最简单方法可能是下载可用的压缩目录,而不是下载个别章节的资源。
  • 有几个屏幕快照展示了图形工具、屏幕输出和硬件。这些照片和屏幕快照清晰明了,很好地说明了概念。
  • Raspberry Pi Essentials 涵盖了 Raspberry Pi 的几个重要方面。其中大部分是以介绍的方式完成的,尽管到本书结尾时这些想法变得相当复杂。一些具有相关技术背景的业余爱好者,甚至是对 Raspberry Pi 有一点经验的人都可以帮助读者充分利用本书。
  • Raspberry Pi Essentials 是一本以项目为中心的书。我没有花时间完成这些项目,但我相信完成所描述的项目会使本书对我更有用。我建议阅读本书的任何人都确保他们可以访问用于处理项目的 Raspberry Pi,并且能够分配一些时间来完成每个项目。本书以以前的项目为基础,将几个较大的项目细分为较小的任务,以便可以在更短的时间内完成各个部分。

结论

Raspberry Pi Essentials 使用文本、代码(有时包含在书中,有时单独下载)、图形、屏幕快照和项目来介绍 Raspberry Pi 的基本功能以及如何应用这些功能。尽管本书是为没有经验的读者设计的,但如果对编程(尤其是 Python 和 Linux 操作系统)和硬件(尤其是 Raspberry Pi)有一定的基本了解,项目将更容易完成,概念也更容易理解。但是,没有经验的读者可能会在没有完全理解代码的情况下按原样下载和使用代码,并且可以按照分步说明进行项目。