首页>参考读物>计算机科学与技术>人工智能

自己动手做智能产品:嵌入式JavaScript实现
作者 : [英] 戈登·F.威廉姆斯(Gordon F.Williams) 著
译者 : 陈文杰 黎佩夫 译
出版日期 : 2019-10-15
ISBN : 978-7-111-63699-1
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 290
开本 : 16
原书名 : Making Things Smart:Easy Embedded JavaScript Programming for Making Everyday Objects into Intelligent Machines
原出版社: Maker Media, Inc
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书将通过简单的嵌入式编程,教会大家如何将日常物品转变为智能机器。当然市场中的ARM编程书籍多为平淡的教科书,相对复杂,编程语言对于初学者存在一定难度,本书采用读者易学易懂的编程语言,并结合实际动手操作来帮助读者实现产品智能化。

图书特色

图书前言

人类的想象力可以说是永无止境的,“创造”(making)这个词可以说是最适合描述人类经历的词汇之一了,它包括作画、设计、建造或者编程。回望自己所创之物,心中浮起 “这是我创造的”念头——这可以说是我所知的最美妙感觉之一了。
时至今日,我们已不单单能创建那些无生命物体,还可以让那些原本无生命的物体变得栩栩如生,让物体变得更加“聪明”。本书会告诉你如何利用微控制器让物体变得可编程化。
通过日常生活中的物品和技能学习,你将可以学习到如何创造数码相机、打印机、机器人,或者早期的电视机等。只要往下看,你会了解你日常所用的物品是如何组成的以及它们背后那些关于创造的故事,也将学会如何使用目前世界上数百万Web工程师正在使用的计算机语言——JavaScript。因为有了计算机语言解释器的帮助,你将见到你所添加的一行行代码实际产生的影响。
我喜欢在生活中创造并完成一件事情。希望本书可以激励你去创造和学习,并在其中找到乐趣。
本书排版约定
本书使用以下排版约定:
斜体(Italic)
用于菜单项、URL链接、邮件地址、文件名和文件扩展名。
等宽字体(?Constant width?)
用于程序清单,或者是所引用的程序元素,如变量或函数名、数据类型、语句和关键字。
等宽粗体(?Constant width bold?)
用于表示命令或是读者应输入的其他内容。
等宽斜体(?Constant width italic?)
用于表示需要由用户提供的值或者根据上下文确定的值所替换的内容。
该符号表示提示或一般注释。

该符号表示需要注意的信息或警告。

使用本书代码示例
本书补充资料(如代码示例、练习等)可从以下网址下载:https://github.com/espruino/making-things-smart。
本书是为了帮助你完成那些想要完成的事情。正常情况下,本书所提供的代码用例都可以在你的程序或者文档中使用。除非需引用大段的示例代码,否则你不需要得到我们的许可。例如,将本书中的某部分代码用于程序中并不需要得到许可,但是若想将本书的代码用于销售或者打包在CD-ROM中发布则需要得到我们的许可。引用本书中的内容或者示例代码来回答问题不需要许可,但是如果需要将本书的重要示例代码加入你的产品文档中则需要得到我们的许可。
我们希望读者在引用本书内容时指出出处(但非强制要求),通常包括书名、作者、出版社和国际标准书号。比如:“Making Things Smart by Gordon F. Williams (O’Reilly). Copyright 2017 Gordon F. Williams, 978-1-680-45189-4”。
在使用本书代码示例的过程中,如果你发现错误或者需要获得以上所提许可,欢迎通过以下邮箱联系我们:
bookpermissions@makermedia.com。
O’Reilly Safari
Safari(之前称为Safari Books Online)是一个以会员制为基础,为企业、政府、教育机构和个人提供图书服务及培训内容的平台。

会员可以访问众多的书籍、培训视频、学习资源、互动教程和专题课程等资源,这些资源来自全球的250多家出版社,包括O’Reilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology等。
若需了解更多相关信息,请访问 http://oreilly.com/safari。
本书网址为http://shop.oreilly.com/product/0636920031246,https://www.oreilly.com/catalog/errata.csp?isbn=0636920031246列出了本书的勘误。
致谢
首先要感谢Maker Media团队给我机会完成本书——尽管这是我的第一本书——感谢他们有足够的耐心指导我如何去写一本书!我也十分感谢Brian Jepson和Anna Kaziunas France,尽管他们现在已经不在Maker Media了,但我会开始写作本书是因为他们在其中起了至关重要的作用。
我要感谢我那了不起的太太Marianne——不仅仅是因为她在我写作本书的过程和我平时工作中给予的帮助,还因为她在过去10年中给予了我自信,并支持我那些疯狂的想法,让我可以专心工作。
如果没有最初这些了不起的支持者,本书和Espruino可能都不会存在。在最开始时正是在他们的帮助下我才完成了第一块Espruino开发板,并且从那之后,在他们的持续帮助下,Espruino才会一步步走向今天的成熟。Espruino论坛中的成员们做出了巨大的贡献,在他们的赞助下,我才有更多时间去完成更多的基于Espruino的有趣项目。同样要十分感谢那些在GitHub中向我提交漏洞报告的人们,正是在他们的帮助下,我才能完善该项目。
我现在采用的绝大部分都是开源软件,像Linux(Mint)、GCC、Chromium、Eclipse、Atom、Gimp、Inkscape和LibreOffice等工具。GCC常常被忽视,在我刚开始Espruino相关工作时,许多嵌入式设备还没有一个可用的、免费的C编译器。
ST微电子公司的Laurent Desseignes和Sebastien Marsanne在STM32的Espruino开发板方面给予了巨大的支持,还有Michael Dietz 等其他在Nordic Semiconductor译注工作的开发者们,在我们开发Puck.js期间也给予了我们巨大的帮助。
谷歌的Fran?ois Beaufort 很出色地帮我们完成了Web Bluetooth和Chrome浏览器物理层的支持,绿色软件园(Green Park Software)的David Park则完成了一个WebBLE 应用程序,该程序在iOS操作系统中实现了Web Bluetooth的支持。还需感谢ARM mbed的Rob Moran、Jonathan Austin、Hugo Vincent 和Simon Ford,他们给了我宝贵的建议,并帮助宣传了Espruino,促使micro:bit 这样的设计方式在Espruino中得以实现。
剑桥大学计算机实验室也提供了巨大的帮助——不仅仅因为它所给予我的教育,还因为它在我毕业之后仍给予了我持续支持。Stuart Newstead可以说是一位梦幻级导师,是他让我知道不能将所有时间都花在写代码上,而需要关注更多其他的事情!
我还要感谢Tim Hunkin和Rex Garrod,他们在20世纪80年代主持的电视节目《机器的秘密生活》(The Secret Life of Machines)对我有巨大的影响。本书中的打印机项目正是为了对标和模仿他们节目中所提到的传真机。
最后,我想说如果没有我的父母Fred和Pat Williams,我可能永远都不会做这件事情。如果在成长道路中没有他们的帮助和支持(如那些无止境供应的电脑器件和电子组件),我也许永远不会走向软件和电子这条路。我的整个童年都在制作和实验,那些电视节目中所提到的项目我都可以直接在我父亲做的设备中进行实验。希望本书可以帮助孩子们更多地像我童年一样,拥有充满兴奋和奇迹的经历。

上架指导

计算机\嵌入式编程

封底文字

在这个一体化产品的时代,本书从基础的内容开始,展示了如何利用Espruino微控制器和日常用品制造出属于自己的扫描仪、绘图仪和照相机等智能产品。
本书教读者利用目前互联网上颇受欢迎的编程语言之一JavaScript在Espruino上编程,制造出激动人心的智能产品。在丰富的线上支持和资源的帮助下,Esrpuino将JavaScript带入了智能设备的世界!
在完成本书的项目的过程中,读者会提升自己的技能和知识水平,拥有将生活中的创意变成现实智能产品的能力。
利用Espruino和生活中的一些日常用品,你将学到:

 什么是微控制器以及如何用它编程
 如何用JavaScript写代码
 如何用软木酒塞制作马达
 如何自制酷炫闪光测速仪
 如何制作简单机器人
 如何制作专属的低分辨率扫描仪
 如何从基础开始制作一个可工作的打印机
 如何构建一个数码相机
 等等

制作这些有趣的设备,并不需要惊人的技能、工具或者昂贵的组件。作为初学者和中级创客的首选教程,本书会让你了解日常智能产品的原理以及如何获取所需要的工具。利用JavaScript和Espruino 亲手制作属于你自己的智能物品吧!

译者序

初拿到本书的英文版本时,便觉得它非常温暖,我所在的公司(广州赛谷信息科技有限公司)正是以书中提到的相关技术作为依托的一家物联网公司,而作为公司联合创始人及相关技术负责人,我对书中所提到的技术更是倍感亲切。书中提到的JavaScript语言、用到的Espruino和ESP8266等硬件芯片在我们研发的产品中也常会用到,这恰恰说明本书内容与目前市场需求高度贴合。作者利用JavaScript和Espruino,巧妙地结合身边的小工具和现有物品,亲自动手将这些物品变成了我们生活中触手可及的一件件成熟的智能产品(如照相机、打印机、扫描仪等)。通过动手实现智能的过程,读者可以更加深入地了解我们生活中的数码产品。
作为一名技术人员,我对书中提到的技术并不陌生。然而令人印象深刻的并不仅限于此,读者在阅读本书时更应当关注作者结合技术和手边物品进行自我“智造”的能力,这在某种程度上也反映出了国外技术人员所拥有的强大动手能力。译者希望通过本书的出版,更多的读者,特别是年轻的读者(如在校大学生),可以获得启发,回归生活,以学习到的技术作为依托,亲自动手,创造出更多优良的智能产品,并在“智造”的过程中实现更多技术上的突破。
在翻译的过程中,由于要兼顾工作与生活,困难和挫折在所难免,在此要特别感谢我的妻子宋苗女士、我的父母和岳父母以及公司的各位同事们,是他们在生活和工作上给予我一次次的帮助和鼓励;同时要感谢我的好朋友黎佩夫先生,在我的邀请下我们一起完成了本书的翻译工作;还要感谢本书的编辑们,特别是王春华编辑一次次不放弃地跟进,才使本书的翻译工作得以完成。最后,希望本书可以带给国内的读者一些惊喜和帮助,特别是书中提到的动手制造过程,希望各位读者可以“亲力亲为”,如书中所传达的精神那般,以快乐为前提,创造出属于自己的智能产品。

陈文杰  
2019年6月6日

图书目录

前言 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

教学资源推荐
作者: 黄翰 郝志峰 著
作者: [美]黄铠(Kai Hwang)著
作者: 曹其新 庄春刚 等编著
作者: [英]大卫·巴伯(David Barber) 著
参考读物推荐
作者: [印度] 桑塔努·帕塔纳亚克(Santanu Pattanayak) 著
作者: [印度] 拉姆库玛·甘地那坦(Ramkumar Gandhinathan) 郎坦·约瑟夫(Lentin Joseph) 著
作者: 李明江 张良均 周东平 张尚佳 著
作者: 吴茂贵 郁明敏 杨本法 李涛 张粤磊 著