[套装书]自己动手做智能产品:嵌入式JavaScript实现+Go程序设计语言(2册)

作者
[英] 戈登·F.威廉姆斯(Gordon F.Williams)(美)艾伦A. A.多诺万(Alan A. A. Donovan) (美)布莱恩W.柯尼汉(Brian W. Kernighan)
丛书名
出版社
机械工业出版社
ISBN
9781911251644
简要
简介
内容简介书籍计算机书籍 ---------------------------自己动手做智能产品:嵌入式JavaScript实现--------------------------- 本书将通过简单的嵌入式编程,教会大家如何将日常物品转变为智能机器。当然市场中的ARM编程书籍多为平淡的教科书,相对复杂,编程语言对于初学者存在一定难度,本书采用读者易学易懂的编程语言,并结合实际动手操作来帮助读者实现产品智能化。 ---------------------------Go程序设计语言--------------------------- 本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的权威指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。 本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读。
目录



---------------------------自己动手做智能产品:嵌入式JavaScript实现---------------------------


前言 1
第1章 简介 5
为何要将物品智能化 5
在实践中学习 5
利用JavaScript进行创造 6
工具和材料 7
第一部分 微控制器
第2章 微控制器为何物 13
ARM历史 14
利用微控制器编程 15
第3章 Espruino入门 19
准备工作 20
插入接口 21
软件安装 22
连接开发板 24
固件升级 25
命令行初体验 26
编辑器 27
第4章 开启JavaScript之旅 31
准备工作 31
注释 32
数据类型 32
数学计算 33
变量 35
自增与自减 37
对象 38
函数 38
数组 42
面向对象 44
按位运算 45
if语句 51
&&和|| 52
三元操作符 53
for循环 53
异常 55
第二部分 电动机
第5章 什么是电动机 59
实验1:法拉第的电动机 60
实验2:电动机换向器 64
无刷直流电动机 68
实验3:步进电动机 69
实验4:步进电动机控制 72
实验5:多个步进电动机控制 76
第6章 频闪仪 79
找到一个风扇 79
实验6:速度检测 81
实验7:频闪仪 84
实验8:照得更远的频闪仪 86
第7章 约翰·罗杰·贝尔德的电视机 89
实验9:视觉的持续性 89
实验10:约翰·罗杰·贝尔德的电视机 92
第三部分 机电部分
第8章 制作一个简单的机器人 101
实验11:试用伺服电机 102
实验12:制作一个简单的机器人 105
实验13:循光 113
第9章 铅笔绘图仪 117
实验14:铅笔绘图仪 117
第10章 数码针孔相机 131
实验15:制作一个数码相机 131
第11章 打印机 145
实验16:制作一个打印机 145
第四部分 通信
第12章 有线通信 161
时序 161
实验17:制作示波器 163
第13章 切断连线:红外线 169
实验18:制作红外接收器 169
实验19:解码红外线信号 171
实验20:使用解码信号 175
实验21:用dweet.io在网络上使用遥控器 176
实验22:通过IFTTT在网络上使用遥控器 178
第14章 切断连线:无线电信号 181
实验23:连接接收器 182
实验24:连接发射器 183
实验25:从Espruino发射 185
实验26:解码接收的数据 186
第15章 连接无线网络 193
实验27:将WiFi添加到你的Pico 194
实验28:测试你的布线 198
实验29:连接到WiFi 199
实验30:将数据发送到Internet 200
实验31:从Internet接收数据 202
实验32:建立一个服务器 206
控制物品 209
第16章 低功耗蓝牙 213
低功耗蓝牙如何工作 214
如何使用低功耗蓝牙 216
Web Bluetooth 216
实验33:使用Puck.js 217
实验34:制作一个开门计数器 219
实验35:广播开门次数 222
实验36:用Eddystone接收开门次数 223
第五部分 合而为一
第17章 XY绘图仪 229
实验37:制作XY表 229
实验38:控制XY表 235
第18章 联网绘图仪 243
实验39:联网绘图仪 245
第六部分 总结
第19章 未来如何 257
附录A 零件和材料 259
附录B 常见的Espruino命令和变量 271
附录C Espruino汇编 277



---------------------------Go程序设计语言---------------------------


出版者的话
译者序
前言
第1章 入门 1
1.1 hello,world 1
1.2 命令行参数 3
1.3 找出重复行 6
1.4 GIF动画 10
1.5 获取一个URL 12
1.6 并发获取多个URL 13
1.7 一个Web服务器 14
1.8 其他内容 17
第2章 程序结构 20
2.1 名称 20
2.2 声明 21
2.3 变量 22
2.3.1 短变量声明 22
2.3.2 指针 23
2.3.3 new函数 25
2.3.4 变量的生命周期 26
2.4 赋值 27
2.4.1 多重赋值 27
2.4.2 可赋值性 28
2.5 类型声明 29
2.6 包和文件 30
2.6.1 导入 31
2.6.2 包初始化 33
2.7 作用域 34
第3章 基本数据 38
3.1 整数 38
3.2 浮点数 42
3.3 复数 45
3.4 布尔值 47
3.5 字符串 47
3.5.1 字符串字面量 49
3.5.2 Unicode 49
3.5.3 UTF-8 50
3.5.4 字符串和字节slice 53
3.5.5 字符串和数字的相互转换 56
3.6 常量 56
3.6.1 常量生成器iota 57
3.6.2 无类型常量 59
第4章 复合数据类型 61
4.1 数组 61
4.2 slice 63
4.2.1 append函数 66
4.2.2 slice就地修改 69
4.3 map 71
4.4 结构体 76
4.4.1 结构体字面量 78
4.4.2 结构体比较 80
4.4.3 结构体嵌套和匿名成员 80
4.5 JSON 82
4.6 文本和HTML模板 87
第5章 函数 92
5.1 函数声明 92
5.2 递归 93
5.3 多返回值 96
5.4 错误 98
5.4.1 错误处理策略 99
5.4.2 文件结束标识 101
5.5 函数变量 102
5.6 匿名函数 104
5.7 变长函数 110
5.8 延迟函数调用 111
5.9 宕机 115
5.10 恢复 118
第6章 方法 120
6.1 方法声明 120
6.2 指针接收者的方法 122
6.3 通过结构体内嵌组成类型 124
6.4 方法变量与表达式 127
6.5 示例:位向量 128
6.6 封装 130
第7章 接口 133
7.1 接口即约定 133
7.2 接口类型 135
7.3 实现接口 136
7.4 使用flag.Value来解析参数 139
7.5 接口值 141
7.6 使用sort.Interface来排序 144
7.7 http.Handler接口 148
7.8 error接口 152
7.9 示例:表达式求值器 154
7.10 类型断言 160
7.11 使用类型断言来识别错误 161
7.12 通过接口类型断言来查询特性 162
7.13 类型分支 164
7.14 示例:基于标记的XML解析 166
7.15 一些建议 168
第8章 goroutine和通道 170
8.1 goroutine 170
8.2 示例:并发时钟服务器 171
8.3 示例:并发回声服务器 174
8.4 通道 176
8.4.1 无缓冲通道 177
8.4.2 管道 178
8.4.3 单向通道类型 180
8.4.4 缓冲通道 181
8.5 并行循环 183
8.6 示例:并发的Web爬虫 187
8.7 使用select多路复用 190
8.8 示例:并发遍历 192
8.9 取消 195
8.10 示例:聊天服务器 198
第9章 使用共享变量实现并发 201
9.1 竞态 201
9.2 互斥锁:sync.Mutex 205
9.3 读写互斥锁:sync.RWMutex 208
9.4 内存同步 208
9.5 延迟初始化:sync.Once 210
9.6 竞态检测器 212
9.7 示例:并发非阻塞缓存 212
9.8 goroutine与线程 218
9.8.1 可增长的栈 219
9.8.2 goroutine调度 219
9.8.3 GOMAXPROCS 219
9.8.4 goroutine没有标识 220
第10章 包和go工具 221
10.1 引言 221
10.2 导入路径 221
10.3 包的声明 222
10.4 导入声明 223
10.5 空导入 223
10.6 包及其命名 225
10.7 go工具 226
10.7.1 工作空间的组织 227
10.7.2 包的下载 228
10.7.3 包的构建 229
10.7.4 包的文档化 231
10.7.5 内部包 232
10.7.6 包的查询 233
第11章 测试 235
11.1 go test工具 235
11.2 Test函数 236
11.2.1 随机测试 239
11.2.2 测试命令 240
11.2.3 白盒测试 242
11.2.4 外部测试包 245
11.2.5 编写有效测试 246
11.2.6 避免脆弱的测试 247
11.3 覆盖率 248
11.4 Benchmark函数 250
11.5 性能剖析 252
11.6 Example函数 254
第12章 反射 256
12.1 为什么使用反射 256
12.2 reflect.Type和reflect.Value 257
12.3 Display:一个递归的值显示器 259
12.4 示例:编码S表达式 263
12.5 使用reflect.Value来设置值 266
12.6 示例:解码S表达式 268
12.7 访问结构体字段标签 271
12.8 显示类型的方法 273
12.9 注意事项 274
第13章 低级编程 276
13.1 unsafe.Sizeof、Alignof 和Offsetof 276
13.2 unsafe.Pointer 278
13.3 示例:深度相等 280
13.4 使用cgo调用C代码 282
13.5 关于安全的注意事项 286



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4