《 Python树莓派编程》——导读

简介: 在2006年,当Eben Upton和其他树莓派基金会的创办人看到大学计算机专业学生的编程状况时,他们感到无比沮丧。在美国,计算机专业的编程课程被缩减为“CS 101:如何使用Word程序”和“CS 203:优化你的Facebook主页”。

daodua_1
daodua_2

Preface 前  言
在2006年,当Eben Upton和其他树莓派基金会的创办人看到大学计算机专业学生的编程状况时,他们感到无比沮丧。在美国,计算机专业的编程课程被缩减为“CS 101:如何使用Word程序”和“CS 203:优化你的Facebook主页”。他们意识到,不是所有人在上大学之前都学过编程。因此,他们酝酿了一个计划——打造一种小型廉价的计算机,使孩子们可以更加方便地学习编程,就如同昔日的Amiga、Spectrum和Commodore 64。随后,他们便开发了一块以ARM处理器为核心的开发板,配有512MB内存并具有视频处理功能的GPU,集成了如USB键盘、鼠标、HDMI输出端口等接口。为了使其更易于编程,他们将Python设定为其主要的编程语言——一种强大且易学的脚本语言。这样,树莓派就诞生了。
多年以前,我在Commodore VIC 20上用BASIC语言编写了我的第一个程序。当时的计算机内存只有5KB,比现如今很多的微处理器的计算能力都要弱,但我仍编写出了一个很有趣的游戏,并利用盒式磁带保存程序的进度。在之后的几年里,我先后使用过不同的计算平台,从Windows 3.1到Macintosh OS 8,再到几个Linux系统。然而,树莓派的出现为陈旧的计算环境注入了一股新的气息,我为之激动不已。一方面是因为它具有小巧而便宜的特点,另一方面则是因为它易与外界进行交互——这对于那些感兴趣设计物质世界的人而言,是一种莫大的福音。所以当我听到它的发售消息之后,就同亿万的爱好者、黑客和工程师一样,立即对树莓派进行了预订并迫切期盼着它的到来。之后,我便开始用它构建一些东西并一发不可收拾了。
如果你买了树莓派但不知道如何开始,那这本书适合你。
如果你买了树莓派但不确定用它做什么,那这本书适合你。
如果你正犹豫是否要买树莓派,并思索着:“为什么我要买呢?我又做不出什么很酷的东西”,那毫无疑问,这本书更适合你。
这不是一本关于Python语言的教材,也不是一本详细探索树莓派的书。它以一种轻松的方式将你引向这台微型计算机。我希望你读完本书后,在进行创新的同时也能清楚地意识到树莓派所能做的一切。
你可以按照本书的进度完成各种项目,也可以自由选择一些自己感兴趣的项目。在实践的过程中,我希望你能熟悉Python语言和树莓派(它们能让你走得更远),创建自己的项目,或许还能帮助其他同样对此感兴趣的人。总之,我希望你会喜欢本书及书中的项目。因为写作本书真的是一种非凡的体验!
好好享受这本书吧!
致谢
写一本书可能是一个人的工作,但绝对少不了别人的帮助。很多人都为这个项目做出了大量贡献,在此,我向他们致以最诚挚的谢意。感谢Kevin保证整件事情顺利进行,感谢Anne Marie理清我想说明的事情,感谢Roger LeBlanc使得这本书看起来像是我知道我在做什么。感谢作为技术指导的Chaim。确保了我写下的东西和实际的执行效果一致。并且感谢Michelle,最初能够注意到我。
最后,特别感谢Becky和Reed。这是献给你们的。


Contents 目  录

[第1章 树莓派简介
1.1 树莓派的历史](https://yq.aliyun.com/articles/89154/)
1.2 探索树莓派
1.2.1 SD卡
1.2.2 电源
1.2.3 HDMI接口
1.2.4 以太网口和USB接口
1.2.5 音频和RCA视频插孔
1.2.6 GPIO引脚
1.2.7 片上系统
1.2.8 树莓派同相似设备之间的对比
1.3 树莓派的硬件需求
1.3.1 通电
1.3.2 添加显示器
1.3.3 添加USB集线器
1.3.4 使用USB无线网络适配器
1.4 树莓派操作系统
1.4.1 格式化SD卡
1.4.2 使用NOOBS
1.5 连接外围设备
1.6 配置树莓派
1.7 关闭树莓派
1.8 总结
[第2章 轻松掌握Linux
2.1 开始使用树莓派的Linux](https://yq.aliyun.com/articles/89210/)
2.1.1 Linux文件和文件系统
2.1.2 root用户与sudo
2.2 命令
2.3 练习:在Linux文件系统内进行导航
2.4 Linux中的shell
2.5 包管理器
2.6 文本编辑器
2.6.1 vim、emacs与nano
2.6.2 Leafpad
2.7 总结
[第3章 Python介绍
3.1 脚本语言与程序设计语言 ](https://yq.aliyun.com/articles/89268/)
3.2 Python语言的理念
3.3 Python入门
3.3.1 通过IDLE运行Python
3.3.2 通过终端运行Python
3.3.3 通过脚本运行Python
3.3.4 探究Python的数据类型
3.4 利用Python进行编程
3.4.1 if测试
3.4.2 循环
3.4.3 函数
3.4.4 对象和面向对象编程
3.5 总结
第4章 电子知识大科普
4.1 基本电路常识
4.2 开发所需要的工具
4.2.1 螺丝刀
4.2.2 钳子和剥线钳
4.2.3 钢丝钳
4.2.4 锉刀
4.2.5 放大镜灯
4.2.6 热胶枪
4.2.7 各类胶水
4.2.8 万用表
4.2.9 电源
4.2.10 实验板
4.2.11 插线板
4.2.12 电烙铁
4.3 一般的安全规则
4.3.1 认真对待温度
4.3.2 认真对待锋利的物体
4.3.3 带安全镜
4.3.4 准备好灭火器
4.3.5 在手边放置一个急救包
4.3.6 在通风的环境下工作
4.4 整理好你的工作环境
4.5 福利:焊接技术
4.6 总结
第5章 网络机器人
5.1 机器人礼仪
5.2 网络的连接
5.2.1 网络通信协议
5.2.2 网页格式
5.2.3 请求举例
5.3 网络机器人的概念
5.4 解析网页
5.5 利用Python模块编码
5.5.1 使用Mechanize模块
5.5.2 用Beautiful Soup解析
5.5.3 利用urllib库下载
5.6 决定下载的内容
5.6.1 选择起点
5.6.2 存储文件
5.7 编写Python网络机器人
5.7.1 读取一个字符串并提取所有链接
5.7.2 寻找并下载文件
5.7.3 测试网络机器人
5.7.4 创建目录并实例化一个列表
5.8 最终代码
5.9 总结
第6章 气象站
6.1 零件购物清单
6.2 使用I2C协议
6.3 使用风速计
6.3.1 构造风速计
6.3.2 将风速计与树莓派连接
6.3.3 根据风速纠正的每秒转数
6.4 连接数字指南针
6.5 连接温度/湿度传感器
6.6 连接气压计
6.7 连接所有部件
6.8 最终代码
6.9 总结
第7章 媒体服务器
7.1 零件购物清单
7.2 使用NTFS格式的硬盘
7.3 安装Samba
7.3.1 配置Samba
7.3.2 Linux权限设置
7.3.3 修复单引号错误
7.3.4 重新启动Samba服务
7.4 与Linux / OS X连接
7.5 Python在哪
7.6 总结
第8章 家庭安防系统
8.1 用于安防的狗
8.2 用于安防的树莓派
8.3 使用传感器网络
8.3.1 了解下拉电阻
8.3.2 零件购物清单
8.3.3 以无线方式连接你的家庭网络
8.3.4 访问GPIO引脚
8.3.5 设置运动传感器
8.3.6 设置磁簧开关
8.3.7 设置压力开关
8.3.8 连接磁传感器
8.3.9 设置树莓派的摄像机
8.3.10 利用树莓派发送短信
8.3.11 实现回调
8.4 连接所有的部件
8.5 最终代码
8.6 总结
第9章 猫玩具
9.1 零件购物清单
9.2 玩具背后的设计理念
9.3 创建和使用随机数
9.4 使用GPIO库
9.5 控制舵机 132
9.6 构建舵机结构
9.7 构建激光结构
9.8 将激光连接到舵机上
9.9 连接运动传感器
9.10 连接所有的部件
9.11 最终代码
9.12 总结
第10章 无线电遥控飞机
10.1 零件购物清单
10.2 将GPS接收器连接至树莓派
10.3 设置日志文件
10.4 格式化KML文件
10.5 使用线程和对象
10.6 设置自启动
10.7 连接所有部件
10.8 最终代码
10.8.1 飞机飞行程序
10.8.2 KML转换程序
10.9 总结
第11章 气象气球
11.1 零件购物清单
11.2 设置GPS接收器
11.3 存储GPS数据
11.4 安装PiFM
11.5 安装festival
11.6 安装FFMPEG
11.7 准备树莓派
11.8 使用线程和对象
11.9 连接所有部件
11.10 观察照片结果
11.11 最终代码
11.12 总结
第12章 潜水器
12.1 零件购物清单
12.2 访问树莓派的GPIO引脚
12.3 安装树莓派摄像头模块
12.4 控制潜水器
12.4.1 连接Wiichuck适配器
12.4.2 激活树莓派的I2C
12.4.3 测试nunchuk
12.4.4 从nunchuk读取数据
12.4.5 通过nunchuk控制潜水器电机和摄像头
12.5 远程启动程序
12.6 最终的控制程序
12.7 最终代码
12.8 构造潜水器
12.8.1 构建框架
12.8.2 构建树莓派的外壳
12.8.3 电机的防水外壳
12.8.4 连接至nunchuk
12.8.5 装配最终的产品
12.9 总结
第13章 Gertboard开发板
13.1 检查扩展板
13.1.1 GPIO引脚
13.1.2 Atmega芯片
13.1.3 AD、DA转换器
13.1.4 I/O部分
13.1.5 电机控制器
13.1.6 集电极开路驱动器
13.1.7 跳帽
13.2 示例项目
13.2.1 配置初步跳帽的设置
13.2.2 点亮LED灯
13.2.3 用电机控制器进行实验
13.2.4 使用集电极开路驱动器
13.2.5 使用数字/模拟转换器
13.3 总结
第14章 树莓派和Arduino
14.1 探索Arduino
14.2 在树莓派中安装Arduino IDE
14.3 控制舵机
14.4 Arduino和Gertboard
14.5 总结

相关文章
|
2月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
2月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
96 28
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
2月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
50 4
|
2月前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
2月前
|
数据采集 搜索推荐 C语言
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。
|
2月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
2月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
2月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
2月前
|
数据采集 人工智能 数据挖掘
Python 编程基础与实战:从入门到精通
本文介绍Python编程语言,涵盖基础语法、进阶特性及实战项目。从变量、数据类型、运算符、控制结构到函数、列表、字典等基础知识,再到列表推导式、生成器、装饰器和面向对象编程等高级特性,逐步深入。同时,通过简单计算器和Web爬虫两个实战项目,帮助读者掌握Python的应用技巧。最后,提供进一步学习资源,助你在Python编程领域不断进步。