新書推薦:
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:NT$
505.0
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
《
一个英国军事顾问眼中的二战
》
售價:NT$
1265.0
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
|
編輯推薦: |
你准备好了控制物体的移动吗?如果你可以开发一个Web app,就可以制作机器人、气象站以及其他有趣的设备。在这本非常有趣、基于项目的指南中,JavaScript硬件黑客Lyza Danger Gardner将带你领略从你的*个闪烁LED到大气传感器、电动巡游车、蓝牙门铃甚至更多项目的非凡之旅。通过使用JavaScript、一些随手可得的硬件,再加上一点创造力,你很快就能热火朝天地投入到硬件开发中。
《JavaScript物联网硬件编程》呈现小型硬件编程的神奇世界。你将从在Arduino上实现基本的闪烁开始,快速地上手构建项目。本书内容详实,拥有大量可以动手实践的项目,涵盖了多个JavaScript工具套件,例如Johnny-Five、Raspberry Pi、Tessel以及BeagleBone。在构建一个个有趣的项目之后,你将学会如何用电线连接传感器、安装电机、传送数据以及处理用户输入。因此在这里警告你:一旦你开始了,就不想停下来。
|
內容簡介: |
主要内容 ● 使用JavaScript控制硬件 ● 设计和组装机器人和套件 ● 一份电子电路的速成教程 ● 十几个实践项目
|
關於作者: |
Lyza Danger Gardner喜欢研究如何做事情,同时她也喜欢教导别人如何完成新项目。Lyza和朋友共同创办了一家位于美国俄勒冈州波特兰市的网络咨询公司Cloud Four。她拥有二十多年的Web开发经验,倡导优雅的标准、教育,以追求最好的未来网络。可以在www.lyza.com或Twitter上的@lyzadanger在线找到她。目前她隐居在佛蒙特州的森林里,阅读了大量书籍。
|
目錄:
|
目录
第Ⅰ部分 针对JavaScript开发者的硬件介绍
第1 章 将JavaScript与硬件结合3
1.1 硬件项目剖析4
1.1.1 输入与输出4
1.1.2 处理过程5
1.1.3 电源、电路和系统6
1.1.4 逻辑和固件8
1.1.5 外壳和封装9
1.1.6 嵌入式系统10
1.2 JavaScript和硬件如何协同工作10
1.2.1 宿主机-客户端方法10
1.2.2 嵌入式JavaScript13
1.2.3 其他硬件-JavaScript组合15
1.3 JavaScript非常适合硬件项目吗18
1.4 整合硬件工具包19
1.4.1 开发板19
1.4.2 输入和输出元件20
1.4.3 其他电子元件21
1.4.4 电源、电线和附件21
1.4.5 工具22
1.5 本章小结24
第2 章 用Arduino开启硬件之旅25
2.1 了解Arduino Uno27
2.2 使用Arduino的工作流程32
2.2.1 Arduino Uno的数字引脚32
2.2.2 草图和Arduino IDE33
2.2.3 将LED连接到数字引脚35
2.2.4 对LED进行编程使其闪烁36
2.3 使用JavaScript控制Arduino39
2.3.1 将Arduino配置为客户端39
2.3.2 安装Node.js框架Johnny-Five41
2.3.3 用Johnny-Five让Hello World的LED闪烁42
2.3.4 Firmata、Johnny-Five和宿主机-客户端方法42
2.3.5 使用Johnny-Five组织脚本44
2.4 本章小结46
第3 章 如何构建电路47
3.1 电压、电流和电阻48
3.1.1 欧姆定律52
3.1.2 问题和危险54
3.2 构建电路55
3.2.1 使用面包板制作原型电路55
3.2.2 在面包板上连接简单的LED电路56
3.2.3 用按钮扩展串联电路63
3.2.4 串联LED65
3.2.5 并联电路和分流器69
3.2.6 用电池为项目供电75
3.3 本章小结76
第Ⅱ部分 项目基础:使用Johnny-Five输入和输出
第4 章 传感器和输入81
4.1 使用模拟传感器84
4.1.1 模数转换84
4.1.2 光敏电阻的使用85
4.1.3 分压器89
4.1.4 布线和使用光敏电阻92
4.1.5 使用模拟温度传感器97
4.2 数字输入101
4.3 本章小结106
第5 章 输出:让事情发生107
5.1 点亮LED108
5.1.1 使用脉冲宽度调制PWM使LED变暗109
5.1.2 使用PWM让LED做动画113
5.1.3 将输入与LED输出结合117
5.1.4 全彩RGB LED122
5.1.5 构建你自己的气象球122
5.2 使用并行LCD显示器126
5.2.1 用LCD制作功能齐全的定时器126
5.2.2 添加可视的LED铃声138
5.3 用压电器制造噪声141
5.4 本章小结145
第6 章 输出:让物体运动147
6.1 让电动机运转148
6.1.1 电动机的工作方式149
6.1.2 使用按压按钮开关控制电动机151
6.1.3 用Johnny-Five控制电动机156
6.2 制作伺服器159
6.3 制作你的第一个机器人165
6.3.1 机器人和电动机167
6.3.2 制作机器人的基础底盘169
6.3.3 控制机器人的电动机170
6.4 本章小结181
第Ⅲ部分 更复杂的项目
第7 章 串行通信185
7.1 并行和串行通信数字数据187
7.2 串行通信的基础知识188
7.3 异步串行通信189
7.3.1 UART191
7.3.2 使用GPS扩展板试用软件串口192
7.3.3 学习焊接194
7.3.4 构建GPS电路198
7.4 同步串行通信200
7.4.1 串行外围设备接口SPI201
7.4.2 I2C202
7.4.3 使用I2C磁力计制作数字罗盘204
7.5 整合在一起:摇动-改变多传感器部件206
7.5.1 步骤1:将罗盘与LCD输出相结合207
7.5.2 步骤2:向设备中添加多传感器210
7.5.3 步骤3:更新显示屏,显示温度和压力211
7.5.4 步骤4:使用加速度计添加摇动-交换显示功能213
7.6 本章小结217
第8 章 无线项目219
8.1 为什么你还要使用数据线221
8.1.1 数据交换、IO层和IO插件221
8.1.2 USB充当电源222
8.1.3 无线项目通信的选项223
8.2 使用Tessel 2实现无线项目225
8.3 设置Tessel226
8.3.1 配置Tessel226
8.3.2 在Tessel上运行Hello WorldLED闪烁代码229
8.3.3 通过Tessel闪烁外部的LED231
8.3.4 探索Tessel的引脚和功能235
8.4 基于Tessel的无线项目236
8.5 用电池为项目供电252
8.6 本章小结259
第9 章 自己制作硬件261
9.1 消费电子产品开发263
9.2 用Johnny-Five插件控制远程开关270
9.2.1 开关项目的原型设计270
9.2.2 编写RemoteSwitch插件274
9.3 编写复杂硬件的软件280
9.3.1 项目:Johnny-Five支持APDS-9660手势传感器281
9.3.2 实现构造函数和初始化方法293
9.3.3 集成手势传感器和远程开关299
9.3.4 将整个项目整合在一起303
9.4 本章小结305
第Ⅳ部分 在其他环境中的硬件上使用JavaScript
第10 章 JavaScript和受限制的硬件309
10.1 Espruino Pico平台311
10.1.1 设置Pico312
10.1.2 Hello World版的LED闪烁313
10.2 了解新平台315
10.2.1 了解平台的核心功能316
10.2.2 查找引脚图318
10.2.3 了解配置和工作流程319
10.2.4 查找示例和教程319
10.2.5 使用API参考文档319
10.3 试验Pico320
10.3.1 Pico和BMP180多传感器320
10.3.2 Pico和Nokia 5110液晶显示器323
10.3.3 使用Pico构建高效的天气小工具329
10.4 试验Kinoma Element平台332
10.4.1 Element的核心功能333
10.4.2 引脚和硬件图333
10.4.3 配置、管理和工作流程334
10.4.4 示例和教程335
10.4.5 API参考336
10.4.6 案例研究项目:实时更新罗盘读数336
10.5 本章小结344
第11 章 使用Node.js和微型计算机进行硬件开发347
11.1 使用微型计算机349
11.1.1 Raspberry Pi 平台350
11.1.2 配置方式1:传统方式354
11.1.3 配置方式2:无头配置355
11.2 了解Raspberry Pi 3359
11.2.1 核心特性359
11.2.2 GPIO特性和引脚361
11.2.3 配置和工作流程362
11.2.4 示例和教程365
11.2.5 API文档372
11.3 为不同的平台编写JohnnyFive应用程序372
11.3.1 改造迷你气象站使其适配Pi 3373
11.3.2 改造迷你气象站使其适配Arduino Uno379
11.4 使用Raspberry Pi作为宿主机380
11.5 案例研究:BeagleBone Black381
11.5.1 BeagleBone Black381
11.5.2 气象站程序针对BeagleBone进行适配387
11.6 本章小结388
第12 章 在云端、在浏览器中以及更多可能性391
12.1 IoT与云392
12.2 使用resin.io进行容器化部署394
12.2.1 创建resin.io应用程序396
12.2.2 配置BeagleBone Black397
12.2.3 适配天气应用程序软件399
12.3 硬件和Web浏览器404
12.3.1 Web蓝牙API405
12.3.2 通用传感器API405
12.3.3 Physical Web405
12.4 使用Puck.js探索Bluetooth LE406
12.4.1 核心特性407
12.4.2 GPIO特性和引脚分布408
12.4.3 配置和工作流程409
12.4.4 示例、教程和API文档411
12.4.5 从网页控制LED411
12.4.6 Physical Web和Puck.js417
12.4.7 基于Web的蓝牙门铃419
12.5 开拓JavaScript硬件编程的边界431
12.6 本章小结431
|
內容試閱:
|
前 言
我对硬件、电子和物联网IoT很感兴趣,但是不知该从何处开始学习,我已从Web开发者那里听到很多这样的说法。确实,构建机器人和精巧的装置很有乐趣。知道如何从传感器读取数据,以及使用这些数据做些有意思的事情,就可以构建你自己的自动化的、通过网络控制的设备例如,用来及时投喂宠物,监测降雨量,显示最新的橄榄球赛比分,能做的事情的确太多了。但是,如果你很少动手让LED闪烁,或者很少编写优化的固件程序并烧录到嵌入式微控制器中,那么这个新的领域就会令人畏惧。
好消息是,你可以使用已掌握的JavaScript技能和通用编程范式来开始学习之旅,并且可以武装你的大脑,让你在这个新世界中减少一点纷扰。JavaScript以你熟悉的方式为你提供试金石,以简化学习电子、硬件和物联网的过程。
《JavaScript物联网硬件编程》为那些熟悉基础JavaScript但是对基本电路甚至都没有多少经验的人讲述了电路和嵌入式系统的基础知识。重点放在软件开发者不熟悉的主题:设计和构建电路的关键基础知识,硬件元件传感器、电动机、电阻等,以及硬件和软件之间的接口。
在《JavaScript物联网硬件编程》中,你将亲自体验各种开发板、硬件元件和软件平台。对于《JavaScript物联网硬件编程》前23的实验小项目,我们将使用开源Node.js框架Johnny-Five和Arduino Uno开发板。Johnny-Five的API提供了许多直观的元件类,可以使用它们快速构建小工具和发明原型。Uno是世界上最受业余爱好者欢迎的开发板,它具有稳定、简单、可靠等特性,并且拥有庞大的用户和教育者社区。《JavaScript物联网硬件编程》的后13探索了更广泛的平台,包括支持Node.js的Tessel 2和非常受欢迎的Raspberry Pi。
在《JavaScript物联网硬件编程》的最后,你应该拥有一个基础工具包包括精神上的和物理上的用于规划、设计、实现和扩展你自己的JavaScript控制的电子作品。
路线图
《JavaScript物联网硬件编程》共包含12章内容。
● 第1章定义了什么是嵌入式系统,列举了其物理元件的构成,也解释了JavaScript和硬件协同工作的方式。
● 第2章介绍了Arduino Uno开发板,阐述了可以让你快速上手操作的让LED闪烁的基本方法。在开始使用JavaScript和Johnny-Five之前,我们将简要介绍如何使用Arduino IDE控制Uno。
● 第3章聚焦于电子学的基础知识,这些电子学基础是你将要构建的所有电路的基础。你将深入探索欧姆定律并构建一些不同类型的简单电路。
● 第4~6章介绍了嵌入式装置的关键电子设备和概念。探索输入传感器、输出制动器和物理运动电动机和伺服器。使用Johnny-Five框架,你将有机会使用Arduino Uno开发板构建一系列不同的实验。
● 第7章研究串行通信,用于交换更复杂的数据。你将尝试使用Johnny-Five和Arduino Uno等多个串行组件,包括指南针磁力计、加速度计和GPS。
● 第8章和第9章介绍了支持Node.js的Tessel 2开发板。在第8章中,将学习制作没有电线束缚的项目。在第9章中,将探索从构思到开始着手制作项目的过程。
● 第10章和第11章深入研究了其他支持IO的嵌入式硬件和JavaScript。第10章介绍了Espruino Pico等受限平台上的JavaScript和类似JavaScript的环境。第11章探讨了更多通用的单板机SBC,如Raspberry Pi。
● 第12章介绍云服务和从浏览器端控制硬件,并展望未来。你将学习如何使用云服务resion.io进行管理,将Johnny-Five应用部署到BeagleBone Black,你将使用Puck.js设备和Web Bluetooth API构建一个浏览器内的无线门铃。
《JavaScript物联网硬件编程》读者对象
《JavaScript物联网硬件编程》适合那些有一定的JavaScript经验,但对于电子电路和微控制器编程知之甚少或根本不了解的读者。
《JavaScript物联网硬件编程》中的代码示例并不复杂。我的理念是,具有可读性和可理解性的代码更实用。当然,你不需要深入了解ECMA-262规范这是定义JavaScript语言的文档中的每个单词,但如果你还不适应箭头函数或者还不熟悉Promise,那么需要温习一下JavaScript知识,或者参阅Secrets of the JavaScript Ninja, Second Edition一书,该书由John Resig、Bear Bibeault和Josip Maras合作编写Manning, 2016; www.manning.combooks secrets-of-the-javascript-ninja-second-edition。代码复杂性和现代语言功能的使用在《JavaScript物联网硬件编程》的后面也逐步增加。
虽然实验的分步骤说明提供了构建项目所需要的所有命令,但你应具备安装、管理和使用Node.js和npm包管理器的基本能力。你还应该熟悉在终端环境中执行命令。
代码约定和下载
《JavaScript物联网硬件编程》包含大量示例,其中包括应用程序和实验所需要的各种资源:JavaScript、HTML、CSS和JSON等。列表或文本中的源代码采用等宽字体,以将其与普通文本分开。
Johnny-Five是开源的,根据MIT软件授权发布。《JavaScript物联网硬件编程》使用了许多其他开源软件项目,包括十几个第三方npm模块。所探索的大多数硬件平台也是开源的,一个例外是Raspberry Pi 3,见第11章。要完成第5章中的气象球示例,你需要来自Dark Sky的免费的API密钥https:darksky.netdevregister。
很多源代码清单都带有注释,突出显示了重要的概念。
《JavaScript物联网硬件编程》中所有示例的源代码和资源都可以在https:github.comlyzadanger javascript-on-things上找到,也可扫封底的二维码获得。《JavaScript物联网硬件编程》中的大多数示例包括正文中所需的所有代码和标记不包括第三方模块的源代码。你可以在《JavaScript物联网硬件编程》的最后找到一些较长例子的完整资料来源,以及代码库中的二进制资源例如,第12章中网页控制的门铃中使用的MP3。
发布时包含源代码的zip文件也可以在出版商的网站上找到:www.manning.combooksjavascript-on-things。
书籍论坛
购买《JavaScript物联网硬件编程》可以免费访问由Manning Publication运营的私人网站论坛,你可以在其中对该书发布评论,提出技术问题,并从作者和其他用户那里获得帮助。论坛网址为https:forums.manning.comforumsjavascript-on-things,你还可以访问https:forums.man- ning.comforumsabout,了解有关Manning论坛和行为规则的更多信息。
Manning承诺为读者提供一个场所,让读者之间以及读者与作者之间进行有意义的沟通。这并不是对作者任何具体参与的承诺,作者对论坛的贡献仍然是自愿的而且是无偿的。为了引起作者的兴趣,我们建议你尝试向作者提出一些具有挑战性的问题。只要《JavaScript物联网硬件编程》出版,论坛和之前讨论的合集就可以从出版商的网站上获取。
|
|