描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111635086
使用带有Arduino、树莓派和BeagleBone的开源Johnny-Five机器人库,逐步学习构建和编程能够漫游、游泳、打字、散步、跳舞、发送提醒、制作音乐、表达情感等的机器人的方法。
*作者里克·沃尔德伦(Rick Waldron)发明了Johnny-Five,并且已经招募了14位程序员组成团队,与你分享他们热衷的JavaScript机器人项目。
书中详细说明了项目所需的材料,找到材料的地点以及购买材料的估计成本,并且在计划和排除项目故障的过程中会提供大量帮助,这样你可以轻松地构建本书中的项目。
在本书中,你将构建:
» 步行机器人、打字机器人、游泳机器人和漫游机器人
» 会跳舞的六足机器人
» 声控继电器控制
» 室内日晷
» 假日、心情或者“任何时间”照明
» 安全和通知系统
» 基于声呐的人工智能
» 三角洲机器人
» 音乐鞋
一旦掌握了这些项目,你就可以制作出想象到的任何机器人了。 本书详细解读Johnny-Five库、树莓派、Arduino和BeagleBone的可能性,非常适合具有JavaScript背景的中级创客。
前言
第1章 用Lo-tech材料建造机器人 1
1.1 构建SimpleBot 2
1.1.1 材料单 2
1.1.2 构建步骤 3
1.1.3 安装Node.js包 5
1.1.4 使用基本程序测试构建 6
1.1.5 故障排除——接线 6
1.1.6 一个简单的驱动程序 7
1.1.7 故障排除——伺服电机 9
1.2 切断电源线 10
1.2.1 构建无线SimpleBot 10
1.2.2 连接 10
1.2.3 控制SimpleBot 11
1.2.4 疑难解答 14
1.3 进一步探索 15
第2章 TypeBot 17
2.1 材料清单 18
2.2 剖析机器人手臂 19
2.2.1 设计手臂 19
2.2.2 约束手臂 19
2.3 构建硬件 20
2.3.1 底座和肩膀 20
2.3.2 肘部 21
2.3.3 腕部 22
2.3.4 手指 23
2.3.5 脑部 23
2.4 编写软件 24
2.4.1 创建项目文件 24
2.4.2 控制伺服 24
2.4.3 初始化 27
2.4.4 按键排序 29
2.4.5 首次运行 31
2.4.6 微调手臂 32
2.5 进一步探索 32
第3章 节点船 33
3.1 材料清单 33
3.2 潜艇电机吊舱 34
3.2.1 为什么要使用电机驱动器 35
3.2.2 电机吊舱零件 35
3.2.3 修改电机 36
3.2.4 测试电机 36
3.2.5 完成电机 36
3.2.6 插入电机 37
3.2.7 打孔 38
3.2.8 关闭电机吊舱 39
3.2.9 电线的防水 39
3.3 安装Spark核心板 39
3.4 第一个Spark项目 40
3.5 焊接电机驱动器 42
3.6 给小船接线 42
3.6.1 给电机驱动器供电 43
3.6.2 连接Spark核心板和电机驱动器 44
3.6.3 连接电机 44
3.7 电机的控制:代码 45
3.7.1 添加按键事件 46
3.7.2 记录按键状态 47
3.8 船体装配 48
3.9 伺服系统 49
3.9.1 伺服系统编程 50
3.9.2 安装方向舵 52
3.10 启航 52
3.11 进一步探索 53
第4章 piDuino5移动机器人平台 55
4.1 材料清单 55
4.2 安装开发板和软件 56
4.2.1 在树莓派上安装Node.js 57
4.2.2 下载piDuino5代码和依赖项 57
4.2.3 插入Arduino 57
4.2.4 通过WebSockets测试Johnny-Five 57
4.2.5 浏览app.js 58
4.2.6 初始化Johnny-Five 58
4.2.7 控制硬件 59
4.2.8 使用WebSockets进行低延迟控制 59
4.2.9 从任何地方连接 59
4.3 装配硬件 60
4.4 用智能手机控制 61
4.4.1 下载piDuino5 Web应用程序 61
4.4.2 将localtunnel发布到Web应用程序上 61
4.4.3 在手机上试用Web应用程序 62
4.5 浏览app.js和index.html 62
4.5.1 存储localtunnel地址和前端 62
4.5.2 服务用户界面 62
4.5.3 触摸屏操纵杆 63
4.5.4 建立连接 63
4.5.5 发送命令 63
4.6 进一步探索 64
第5章 用Johnny-Five控制六足机器人 65
5.1 材料清单 65
5.2 从命令行控制机器人 66
5.3 phoenix.js简介 66
5.4 组装机器人 68
5.4.1 准备底盘 68
5.4.2 安装电子产品 68
5.4.3 准备伺服 69
5.4.4 安装髋关节 69
5.4.5 安装股骨 70
5.4.6 安装胫骨 70
5.5 坐标系统 71
5.6 修整伺服 71
5.6.1 修整髋关节 71
5.6.2 修整股骨 72
5.6.3 修整胫骨 73
5.7 为伺服添加范围 73
5.8 步行不易 74
5.9 认识动画类 75
5.9.1 一个伺服数组作为对象 75
5.9.2 一个Servo.Array作为对象 75
5.9.3 一个Servo.Arrays数组作为对象 75
5.10 第一个动画片段 76
5.11 步行 78
5.11.1 行步态 79
5.11.2 走步态 80
5.11.3 跑步态 80
5.12 转弯 81
5.13 命令参考 81
5.14 进一步探索 81
第6章 构建语音控制的NodeBots 83
6.1 材料清单 84
6.2 构建项目 86
6.3 构建一个继电器电路 86
6.4 构建麦克风前置放大器电路 88
6.5 构建命令服务器 90
6.6 使用Web Speech API进行简单的语音控制 92
6.7 整合命令服务器与继电器电路 94
6.8 使用Android可穿戴设备的高级语音控制 95
6.8.1 Android移动应用 96
6.8.2 Android Wear应用 101
6.9 进一步探索 104
第7章 室内日晷 105
7.1 材料清单 105
7.2 开始制作日晷 108
7.3 制作和组装核心结构 108
7.4 连接和设置伺服 109
7.4.1 连接伺服 109
7.4.2 设置伺服 110
7.5 制作底座 111
7.6 制作圆盘 111
7.7 制作底座包围和日晷圆盘支撑 112
7.7.1 制作底座的包围 112
7.7.2 放置圆盘 113
7.7.3 制作日晷圆盘的支撑 114
7.8 完成所有零件的装配 115
7.8.1 制作方位臂 115
7.8.2 制作立面弧 116
7.8.3 切割晷针 117
7.8.4 连接由LED模拟的“太阳” 117
7.9 编写代码并控制日晷 118
7.9.1 理解sundial.js文件的代码 119
7.9.2 在sundial.js中添加配置选项 120
7.9.3 sundial.js的具体细节 120
7.10 组装所有零件 122
7.11 实现目标 123
7.12 进一步探索 123
第8章 万圣节恶搞灯光秀 125
8.1 材料清单 125
8.2 背景 126
8.3 组装LED点阵 127
8.3.1 所需工具 127
8.3.2 准备 128
8.3.3 连接控制器与LED点阵 129
8.3.4 装饰LED 132
8.3.5 疑难解答 1
我喜欢编程和制作。当我发现Chris Will-iams的node-serialport模块(用于Node.js)时,我记得我在想:“现在我可以对我制作的东西进行编程了。”所以我做到了!我贡献了一个Arduino程序,它将光敏电阻传感器值打印到开放的串口和一个小的JavaScript处理程序,该程序监听数据并向终端打印“图形”。几个月后,我开始投身Cam Pedersen的duino项目,直到Julian Gaultier就他对Firmata协议的JavaScript实现向我求助。从那时起,我们开始构建一个高级零件类集合,目标是:让使用JavaScript控制硬件变得简单而有趣。 本书将向你展示我们构建的内容以及如何使用它来编写你所制作的东西。
虽然设计硬件项目的物理挑战与用任何其他语言编程的项目相同,但本书将以直观设计的接口形式,展示根据维护状态和提供控制行为的对象来思考硬件的方法。
那么,如何口头描述将LED添加到项目然后再打开?你可能会说:“将LED连接到地和引脚9,然后将其打开。”使用Johnny-Five框架,可将其写为:
如何连接伺服体然后将喇叭设置为特定角度(以度为单位)?“将伺服连接到引脚10并将其喇叭定位到110°。”如以下代码所示:
这些示例都解释了输出,但是输入呢?考虑一下Arduino程序是如何工作的:它们通常依赖于程序循环,并且在读取和处理输入时经常会引入某种形式的延迟。这意味着你的Arduino程序在等待输入时会被阻止。在JavaScript中编写程序时,永远不会阻止该过程。事实上,你的处理程序等待数据到达并异步处理Arduino程序:
这些都是微不足道的示例,但它们说明了你将在本书中反复重复的模式。 每个项目都将向你展示如何在物理意义上构建它,然后在抽象编程意义上构建它,后者将与前者同步。
有了这些概念,你将构建和编程:
步行机器人、打字机器人、节点船和PiDuino5移动机器人平台(第1章至第4章)
六足机器人(第5章)
声控继电器控制(第6章)
室内日晷(第7章)
万圣节恶搞灯光秀、桌面心情灯或照明装置(第8章至第10章)
安全和通知系统(第11章)
蝙蝠机器人(第12章)
三角洲机器人(第13章)
喵喵鞋(第14章)
对我来说,本书最令人兴奋的部分是作者本人。这个小组是NodeBots社区成员的绝佳代表,从一开始就脱颖而出。他们不仅仅是作家或工程师,他们还是教师、传播者、领导者,在我看来他们是英雄。毫不夸张地讲,如果没有他们我就不可能完成本书。
让我们少一些言语,多一些实践。不必按任何特定顺序完成这些项目,请查看目录,找到一个看起来很有趣的项目,然后开始构建!
排版约定
本书使用以下印刷约定:
斜体
表示URL、电子邮件地址。
等宽字体
用于程序列表。
等宽粗体
显示应由用户按字面输入的命令或其他文本。
此图标表示提示、建议或一般说明。
此图标表示警告或注意。
每章中的零件号使用以下缩写:
MS: Maker Shed(http://makershed.com)
AZ: Amazon(http://amazon.com)
AF: Adafruit(http://adafruit.com)
SF: SparkFun加代码Xii 1(http://sparkfun.com)
使用代码示例
本书可以帮助你完成工作。通常,你可以在程序和文档中使用本书中的代码。 除非你复制了大部分代码,否则无须与我们联系以获得许可。例如,使用本书中的多个代码块编写程序不需要获得许可。销售或分发Make:系列图书中的示例CD-ROM需要获得许可。通过引用本书和引用示例代码来回答问题不需要获得许可。将本书中的大量示例代码合并到产品文档中需要获得许可。
我们感谢但不要求你列出引用出处。出处信息通常包括标题、作者、出版商和ISBN。例如:“Make: JavaScript Robotics 由Jonathan Beri、 Donovan Buck、 Julian David Duque、 Andrew Fisher、 Lyza Danger Gardner、 Anna Gerber、 Sara Gorecki、 Susan Hinton、 Bryan Hughes、 Kassandra Perch、 David Resseguie、 Emily Rose、 Pawl Szymczykowski、 Raquel Velez以及Rick Waldron (Maker Media)撰写。版权归Backstop Media所有, ISBN978-1-4571-86950。”
如果你认为你对代码示例的使用超出了许可范围,请随时通过bookpermissions@maker media.com与我们联系。
Safari在线电子书
Safari Books Online是一个按需数字图书馆,以书籍和视频形式提供来自世界领先的技术和商业作者的专业内容。
技术专业人员、软件开发人员、网页设计人员以及商业和创意专业人员可以使用Safari Books Online作为研究、解决问题、学习和认证培训的主要资源。
Safari Books Online为企业、政府、教育和个人提供一系列计划和优惠的价格。
会员可以在一个完全可搜索的数据库中访问数千本书籍、培训视频和预发布稿件,数据库来自O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、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,等等。有关Safari Books Online的更多信息,请在线访问我们。
本书中所有示例的源代码都可以在以下网址找到:https://github.com/rwaldron/javascript-robotics。
如果你认为你对代码示例的使用不合理或超出上述许可,请随时与我们联系[email protected]。
致谢
Julián Duque
NodeBots就是在学习的同时享受乐趣,对我而言,这是一种实现社会影响的方式。一切都始于2013年的NodeConf,这是我第一次在由Rick Waldron和Raquel Velez指导的NodeBots研讨会上使用Johnny-Five。我的第一次尝试是用压电蜂鸣器,但当时图书馆不支持Piezo课程,所以我向Rick请教如何使用它,Rick对我说:“我无法使其工作,自学怎么样?”从此,我开始致力于完成这个项目。另外,Raquel给了我第一个Arduino套件作为礼物并告诉我:“带上这个套件,实践你在哥伦比亚学到的东西。”这件小事振奋人心,我在哥伦比亚的Medellín开始了我的NodeBots篇章。我还通过研讨会和谈话的方式,在乌拉圭、危地马拉和墨西哥帮助建立社区。我非常感谢Rick和Raquel,是他们鼓舞我并让我成为这场创客革命的一部分。
评论
还没有评论。