首页>参考读物>计算机科学与技术>软件与程序设计

Raspberry Pi开发实战
作者 : (英) Simon Monk 著
译者 : 黄鑫 译
出版日期 : 2015-02-05
ISBN : 978-7-111-49074-6
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 381
开本 : 16
原书名 : Raspberry Pi Cookbook
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

随着树莓派的快速发展,市场上涌现出越来越多适用于树莓派的接口板和软件库。在本书中,多产作家Simon Monk通过200多个实践示例,详细讲解树莓派基础知识及各种接口板、软件库的使用方法,包括如何运行微型低价Linux电脑、如何使用Python进行编程,以及如何与传感器、电机和其他硬件(包括Arduino)通信等。
通过阅读本书,你还将学到使用树莓派微系统开发过程中出现的新技术的基本原则。本书涉及的Python和其他示例代码托管在GitHub中。本书是树莓派程序员和爱好者的理想参考指南。
■ 设置和管理树莓派
■ 设置树莓派连接网络
■ 使用基于Linux的操作系统
■ 使用树莓派现成的软件
■ 使用Python进行树莓派编程
■ 通过GPIO接口控制硬件
■ 通过树莓派控制不同类型的电机
■ 使用开关、键盘和其他数字输入方式
■ 通过传感器采集各种测量数据
■ 添加其他不同的显示设备,如LED矩阵
■ 使用树莓派和Arduino创建动态项目

Simon Monk 拥有控制论和计算机科学学士学位以及软件工程博士学位。Simon曾从事多年学术研究工作,之后与人共同创立了Momote移动软件公司。Simon现在是一位全职作家,他编写了很多关于开源硬件方面的著作。

图书前言

自2011年诞生以来,树莓派在低成本基于Linux的电脑和嵌入式计算平台两个领域均扮演着重要角色。树莓派从发布到现在已有了200万台的销售量,这证明它在教育界和其爱好者中是十分流行的。
在本书中,你将会看到许多与树莓派相关内容的示例,包括如何配置和使用树莓派;如何使用Python编程语言;如何用树莓派连接传感器、显示器和电机等设备。本书还包括一章介绍如何让树莓派与Arduino开发板一起工作的内容。
本书内容的组织非常灵活,你既可以像阅读其他书一样从头到尾阅读,也可以通过目录查到你感兴趣的内容然后直接跳到相应的章节阅读。如果你正在阅读的内容建立在其他内容之上,那么会有阅读提示,方便查找相关的内容。这与常见的“菜谱”不同,这样的菜谱一般会先介绍一系列的调料,然后介绍烹饪方法。
树莓派世界发展非常迅速。基于一个庞大且活跃的社区,新的接口板和软件库不断涌现。因此,除了包含大量的接口板和软件示例的介绍,本书还涵盖了基础理论的介绍,这样可以帮助读者更好地理解如何使用树莓派生态系统开发中出现的新技术。
正如你期望的那样,本书包含了大量的源代码(大多数都是Python程序)。这些程序都是开源的,你可以从GitHub上下载。本书的网站(http://www.raspberrypicookbook.com)上也提供了GitHub的链接。
对于大多数基于软件的示例,只需要一个树莓派即可。我推荐使用B型树莓派。而其他需要读者自己动手制作与树莓派连接的接口板的示例,我会尽量用现成的模块以及无需焊接的面包板和跳线以避免额外的焊接工作。
对于想将基于面包板的硬件做得更加结实耐用的读者,我建议采用功能相同但大小只有面包板一半大小的原型板,例如Adafruit销售的商品,这样基于此的设计可以很容易转化为焊接成型的器件。
本书所使用的约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
等宽字体(Constant width)
用于表示程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
等宽粗体(Constant width bold)
用于表示命令,或者需要读者逐字输入的文本内容。
等宽斜体(Constant width italic)
用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
注意: 表示一个技巧、建议或一般性说明。
警告: 表示一个警告或注意事项。
视频: 表示有一段与本节相关的视频可以观看。
使用代码范例
本书的补充内容(代码示例、练习等)可以从如下地址下载:http://www.raspberrypicookbook.com。
本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Raspberry Pi Cookbook by Simon Monk(O扲eilly). Copyright 2014 Simon Monk, 978-1-449-36522-6”。
如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:permissions@oreilly.com。
联系我们
有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们会在本书的网页中列出勘误表、示例和其他信息。可以通过http://oreil.ly/raspberry-pi-cb访问该页面。
要评论或询问本书的技术问题,请发送电子邮件到:
bookquestions@oreilly.com
想了解关于O'Reilly图书、课程、会议和新闻的更多信息,请访问以下网站:
http://www.oreilly.com.cn
http://www.oreilly.com
还可以通过以下网站关注我们:
我们在Facebook上的主页:http://facebook.com/oreilly
我们在Twitter上的主页:http://twitter.com/oreillymedia
我们在Youtube上的主页:http://www.youtube.com/oreillymedia
致谢
与往常一样,感谢Linda的耐心和支持。
还要感谢技术审校者Duncan Amos、Chaim Krause和Steve Suehring,他们的意见是非常有益的。
Rachel Roumeliotis作为编辑在这个项目上作出了巨大的贡献。她的务实做法使她非常易于合作并且使这个项目变成了一个非常有趣的工作。
还要感谢O'Reilly所有的团队,尤其是我在剑桥的办公室遇到的那些,当我参观的时候他们热情地欢迎了我,当然还要感谢Nan Reinhardt勤奋地进行文字编辑工作。

上架指导

计算机\嵌入式编程

封底文字

树莓派领域发展非常迅速,目前越来越多的新的接口板和软件库适用于树莓派。在本书中,多产作家Simon Monk提供了超过200项实践示例,包括运行微型低价Linux电脑、使用Python进行编程,以及与传感器、电机和其他硬件(包括Arduino)通信。

你还将学习帮助你使用树莓派生态系统开发这种新技术基本原则。Python和书中的代码示例都可以在GitHub上获得。本书是树莓派程序员和爱好者的理想参考书。

·设置和管理你的树莓派
·设置树莓派连接网络
·使用基于Linux的操作系统
·使用树莓派现成的软件
·使用Python进行树莓派编程
·通过GPIO接口控制硬件
·通过树莓派控制不同类型的电机
·使用开关、键盘和其他数字输入方式
·通过传感器采集各种测量数据
·添加其他不同的显示设备,如LED矩阵
·使用树莓派和Arduino创建动态项目

更多《Raspberry Pi Cookbook》的视频内容,请访问oreilly.com。

作者简介

(英) Simon Monk 著:Simon Monk 拥有控制论和计算机科学本科学位以及软件工程博士学位。Simon他与人共同创立了移动软件公司Momote Ltd。Simon现在是一个全职作家,他编写了很多关于开源硬件方面的著作。

译者简介

黄鑫 译:暂无简介

图书目录

前言 1
第1章 配置与管理 5
1.0. 引言 5
1.1. 选择树莓派的型号 5
1.2. 给树莓派加个外壳 7
1.3. 选择供电装置 8
1.4. 选择一个操作系统发行包 9
1.5. 用NOOBS对SD存储卡进行写操作 10
1.6. 手动对SD存储卡进行写操作(Mac) 12
1.7. 手动对SD存储卡进行写操作(Windows) 14
1.8. 手动对SD存储卡进行写操作(Linux) 15
1.9. 连接系统 16
1.10. 连接DVI或者VGA显示器 18
1.11. 使用AV输入的显示器/电视机 18
1.12. 使用SD存储卡上的全部存储空间 19
1.13. 调整显示器上图像的尺寸 21
1.14. 性能最大化 22
1.15. 更换密码 24
1.16. 设置树莓派启动后直接进入桌面系统 25
1.17. 关闭树莓派 27
1.18. 安装树莓派摄像头模块 28
第2章 网络 32
2.0. 引言 32
2.1. 连接到有线网络 32
2.2. 查看IP地址 34
2.3. 设置静态IP地址 35
2.4. 设置树莓派的网络名 37
2.5. 配置无线连接 38
2.6. 使用控制台线连接 39
2.7. 通过SSH远程控制树莓派 41
2.8. 通过VNC远程控制树莓派 43
2.9. 与Mac电脑共享文件 44
2.10. 在Mac电脑上共享树莓派的屏幕 46
2.11. 将树莓派作为网络附加存储 48
2.12. 网络打印 51
第3章 操作系统 53
3.0. 引言 53
3.1. 在图形界面中移动文件 53
3.2. 开始一个终端会话 55
3.3. 使用终端浏览文件系统 56
3.4. 复制文件或文件夹 59
3.5. 重命名文件或文件夹 60
3.6. 编辑文件 61
3.7. 浏览文件内容 63
3.8. 不使用编辑器创建文件 63
3.9. 创建目录 64
3.10. 删除文件或目录 65
3.11. 使用超级用户权限运行任务 66
3.12. 理解文件权限 67
3.13. 修改文件权限 68
3.14. 修改文件从属关系 69
3.15. 屏幕截图 70
3.16. 使用apt-get安装软件 71
3.17. 移除通过apt-get安装的软件 72
3.18. 通过命令行获取文件 73
3.19. 通过git获取源代码 74
3.20. 在启动阶段自动运行程序或脚本 75
3.21. 定期自动运行程序或脚本 76
3.22. 查找内容 78
3.23. 使用命令行历史记录 79
3.24. 监视处理器活动 80
3.25. 文件压缩 82
3.26. 列出连接的USB设备 83
3.27. 将输出从命令行重定向到文件 84
3.28. 连接文件 84
3.29. 使用管道 85
3.30. 隐藏到终端的输出 86
3.31. 后台运行程序 86
3.32. 创建命令别名 87
3.33. 设置日期和时间 88
3.34. 查看SD存储卡的剩余空间 89
第4章 软件 90
4.0. 引言 90
4.1. 搭建媒体中心 90
4.2. 安装办公软件 93
4.3. 安装其他浏览器 94
4.4. 使用树莓派商店 96
4.5. 搭建摄像服务器 97
4.6. 运行复古游戏模拟器 100
4.7. 运行Minecraft 101
4.8. 运行Open Arena 103
4.9. 树莓派无线电发射机 104
4.10. 运行GIMP 105
4.11. 互联网广播 107
第5章 Python基础 109
5.0. 引言 109
5.1. 在Python 2与Python 3之间做决定 109
5.2. 在IDLE中编辑Python程序 110
5.3. 使用Python控制台 112
5.4. 通过终端运行Python程序 113
5.5. 变量 114
5.6. 显示输出 114
5.7. 读取用户输入 115
5.8. 算术运算 116
5.9. 创建字符串 116
5.10. 连接字符串 117
5.11. 将数字类型转换为字符串类型 118
5.12. 将字符串类型转换为数字类型 119
5.13. 获取字符串长度 120
5.14. 获取一个字符串在另一个字符串中的位置 120
5.15. 截取字符串的某部分 121
5.16. 用一个字符串替换另一个字符串的某部分 122
5.17. 将一个字符串转换为全部大写或全部小写 123
5.18. 有条件地运行命令 124
5.19. 比较值 125
5.20. 逻辑运算符 126
5.21. 重复执行指令指定的次数 127
5.22. 重复执行指令,直到某些条件变化 128
5.23. 中断循环 128
5.24. 在Python中定义函数 129
第6章 Python中的列表与字典 132
6.0. 引言 132
6.1. 创建列表 132
6.2. 访问列表中的元素 133
6.3. 获取列表的长度 134
6.4. 向列表中添加元素 134
6.5. 从列表中移除元素 135
6.6. 通过解析字符串创建列表 136
6.7. 迭代列表 137
6.8. 枚举列表 137
6.9. 列表排序 138
6.10. 分割列表 139
6.11. 对列表应用一个函数 140
6.12. 创建字典 141
6.13. 访问字典 142
6.14. 从字典中移除成员 143
6.15. 迭代字典 144
第7章 Python进阶 146
7.0. 引言 146
7.1. 格式化数字 146
7.2. 格式化日期 147
7.3. 返回多个值 148
7.4. 定义类 149
7.5. 定义方法 150
7.6. 继承 151
7.7. 写文件 152
7.8. 从文件中读取 153
7.9. Pickling 154
7.10. 处理异常 155
7.11. 使用模块 156
7.12. 随机数 157
7.13. 从Python中发送web请求 158
7.14. Python中的命令行参数 159
7.15. 从Python中发送邮件 160
7.16. 在Python中编写一个简单的web服务器 161
第8章 GPIO基础 163
8.0. 引言 163
8.1. 找到适合的GPIO接口使用方式 163
8.2. 使用GPIO接口时保证树莓派的安全 164
8.3. 安装PRi.GPIO 165
8.4. 配置I2C 166
8.5. 使用I2C Tools 167
8.6. 配置SPI 169
8.7. 释放串口 170
8.8. 安装PySerial以从Python访问串口 171
8.9. 安装Minicom测试串口 172
8.10. 使用面包板和跳线 173
8.11. 使用面包板与树莓派排线 174
8.12. 使用两个电阻将5V信号转换为3.3V 175
8.13. 使用电平转换模块将5V的信号转换成3.3V 177
8.14. 使用电池为树莓派供电 178
8.15. 使用锂电池为树莓派供电 179
8.16. PiFace数字接口板入门 180
8.17. Gertboard入门 184
8.18. RaspiRobot板入门 186
8.19. 使用Humble Pi原型板 189
8.20. 使用Pi Plate原型板 190
8.21. 使用Paddle Terminal分线板 195
第9章 控制硬件 196
9.0. 引言 196
9.1. 连接一个LED 196
9.2. 控制LED的亮度 199
9.3. 制造蜂鸣声 201
9.4. 使用晶体管开关大功率直流设备 203
9.5. 使用继电器开关大功率设备 205
9.6. 控制高电压交流设备 207
9.7. 编写一个用户界面控制开关 209
9.8. 编写用户界面控制LED和电机的PWM功率 210
9.9. 改变RGB LED的颜色 212
9.10. 使用大量LED(Charlieplexing方式) 215
9.11. 使用模拟仪表作为显示 218
9.12. 中断编程 220
9.13. 使用web界面控制GPIO输出 223
第10章 电机 228
10.0. 引言 228
10.1. 控制伺服电机 228
10.2. 控制大量伺服电机 231
10.3. 控制直流电机的速度 235
10.4. 控制直流电机的方向 237
10.5. 使用单级步进电机 242
10.6. 使用双极步进电机 246
10.7. 使用RaspiRobot板驱动双极步进电机 247
10.8. 制作一个简单的机器人小车 250
第11章 数字输入 254
11.0. 引言 254
11.1. 连接按钮开关 254
11.2. 通过按键开关切换 257
11.3. 使用二位拨动开关或滑动开关 259
11.4. 使用中间关闭的拨动开关或滑动开关 260
11.5. 按键去抖 262
11.6. 使用外部上拉电阻 265
11.7. 使用旋转编码器(正交) 266
11.8. 使用数字键盘 269
11.9. 侦测移动 273
11.10. 为树莓派添加GPS 274
11.11. 截取按键 277
11.12. 截取鼠标移动 279
11.13. 使用实时时钟模块 280
第12章 传感器 285
12.0. 引言 285
12.1. 使用电阻式传感器 285
12.2. 测量亮度 289
12.3. 侦测甲烷 291
12.4. 测量电压 294
12.5. 为测量降低电压 296
12.6. 使用电阻式传感器与ADC 298
12.7. 使用ADC测量温度 300
12.8. 测量加速度 302
12.9. 使用数字传感器测量温度 305
12.10. 测量距离 308
12.11. 显示传感器的值 311
12.12. 在USB闪存驱动器上记录日志 312
第13章 显示 315
13.0. 引言 315
13.1. 使用四位LED显示设备 315
13.2. 在I2C LED矩阵上显示消息 318
13.3. 使用Pi-Lite 320
13.4. 在Alphanumeric LCD上显示消息 323
第14章 Arduino与树莓派 327
14.0. 引言 327
14.1. 在树莓派上进行Arduino编程 328
14.2. 使用serial monitor与Arduino通信 330
14.3. 配置PyFirmata以从树莓派上控制Arduino 332
14.4. 通过树莓派对Arduino的数字输出进行写操作 335
14.5. 使用PyFirmate与TTL串口 336
14.6. 使用PyFirmata读取Arduino数字输入 338
14.7. 使用PyFirmata读取Arduino模拟输入 341
14.8. 模拟输出(PWM)与PyFirmata 343
14.9. 使用PyFirmata控制伺服电机 345
14.10. 基于TTL Serial自定义与Arduino的通信 347
14.11. 基于I2C自定义与Arduino的通信 350
14.12. 在树莓派上使用小型Arduino 354
14.13. aLaMode板与树莓派入门 355
14.14. 在树莓派和aLaMode板上使用Arduino shield 358
14.15. 使用Gertboard作为Arduino接口 360
附录A 配件和供应商 361

教学资源推荐
作者: [美]沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour) 索娅·坎南(Sowmya Kannan) 雷蒙德·盖拉多(Raymond Gallardo) 著
作者: [美] 劳拉·格雷泽(Laura Graesser) 龚辉伦(Wah Loon Keng) 著
作者: (美)Y.Daniel Liang 著
作者: (美)Barry Wilkinson, Michael Allen
参考读物推荐
作者: (美) Bruce Powel Douglass 著
作者: 黄灯桥 徐会生 著
作者: (美)Steven L.Halter