《 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 总结

相关文章
|
3天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。
|
3天前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。
|
3天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!
|
4天前
|
存储 Python 索引
【Python编程挑战】:单链表实现技巧与最佳实践
【Python编程挑战】:单链表实现技巧与最佳实践
|
4天前
|
数据库 云计算 Python
不容错过的经典!Python核心编程(第3版)教你用实例学Python!
在学完任何其他入门类的 Python 图书之后,你可能觉得已经掌握了 Python 而且还觉得学得不错,并为此感到自豪。通过完成大量练习之后,你将会对自己新掌握的 Python 编程技能拥有更多信心。 但是,你可能仍然会有这样的疑问,“现在该怎么办?我能用 Python 编写哪种类型的应用程序呢?”或许你是为了一个相当小众的工作项目而学习使用 Python,你可能会考虑“我还能用 Python 写点其他的吗?”
|
4天前
|
并行计算 开发者 Python
GitHub标星破千!这份Python并行编程手册,可以封神了!
现在这个时代是并行编程与多核的时代,硬件成本越来越低,如何充分利用硬件所提供的各种资源是每一个软件开发者需要深入思考的问题。若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。
|
5天前
|
SQL 前端开发 Java
Python GUI编程(Tkinter)
Python GUI编程(Tkinter)
|
5天前
|
开发者 Python
GitHub飙升!京东认证的“Python编程入门三剑客”究竟好在哪?
Python凭借着简单易学、功能强大,已经跃居TIOB编程语言榜首,并且已经开始了它的霸榜之旅。如何选择一套适合自己的Python学习教程,是每个Python爱好者面临的首要问题。
|
5天前
|
存储 设计模式 算法
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
|
5天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。