《 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编程:从基础到高级探索移动应用开发之旅:从概念到实现
【8月更文挑战第29天】本文将带你进入Python的世界,无论你是初学者还是有一定经验的开发者。我们将从Python的基础知识开始,然后逐步深入到更复杂的主题。你将学习到如何编写清晰、高效的代码,以及如何使用Python进行数据分析和网络编程。最后,我们将介绍一些高级主题,如装饰器和生成器。让我们一起开始这段旅程吧!
|
3天前
|
存储 人工智能 数据挖掘
探索Python编程:从入门到实践
【8月更文挑战第28天】在这篇文章中,我们将一起踏上Python编程的奇妙旅程。无论你是编程新手还是希望提升现有技能的开发者,本文都将为你提供一条清晰的道路,引导你理解Python的核心概念并应用到实际项目中。我们将通过具体的代码示例,展示如何用Python解决实际问题,让你在学习的同时感受到编程的乐趣和成就感。
|
1天前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
19 13
|
1天前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
1天前
|
数据采集 数据可视化 数据挖掘
探索Python编程的奥秘:从基础到进阶Python中的装饰器:简化代码,提升效率
【8月更文挑战第30天】在这个数字技术飞速发展的时代,掌握一门编程语言已经成为了许多人追求的目标。Python,作为一门易于学习且功能强大的编程语言,吸引了无数初学者和专业人士的目光。本文将带领读者从Python的基础语法出发,逐步深入到函数、模块、面向对象编程等高级特性,最后通过实际案例展示Python在数据分析和网络爬虫领域的应用。无论你是编程新手还是希望提升自己的Python技能,这篇文章都将为你打开一扇通往Python世界的大门。
|
3天前
|
存储 自然语言处理 数据库
探索Python编程之美:从基础到进阶
【8月更文挑战第28天】在数字世界的浪潮中,Python已成为编程初学者和资深开发者的心头好。本文将带你领略Python的魅力,从简洁明了的基础语法入手,逐步深入到函数、面向对象编程,再到实战项目开发,让你在轻松愉快的学习过程中,掌握Python编程的精髓。无论你是编程新手,还是想提升技能的开发者,这篇文章都将为你打开一扇通往Python世界的大门。
|
1天前
|
数据采集 数据挖掘 开发者
Python编程入门:从基础到实战
【8月更文挑战第30天】本文将带你走进Python的世界,从基本语法开始,逐步深入到数据结构、函数、面向对象编程等高级特性。我们将通过实际案例,如网页爬虫和数据分析,展示如何应用所学知识解决实际问题。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你提供宝贵的指导和启发。
|
2天前
|
数据采集 机器学习/深度学习 存储
Python编程入门:从基础到实战
【8月更文挑战第29天】本文将带你走进Python的世界,从最基础的语法开始,逐步深入到实际的项目开发。我们将通过详细的代码示例和实践案例,帮助你掌握Python编程的核心技能,提升你的编程能力。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和指导。
|
2天前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
下一篇
云函数