前言 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.3 1.后台运行程序 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.使用PaddleTerminal分线板 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