想用JavaScript控制一个炫酷机器人?现在就能实现!本文将介绍NodeBots,一种基于Node.js(JavaScript运行环境)的机器人控制系统,以及如何开始你的机器人创作之旅。
核心要点:
- NodeBots是通过Node.js控制的机器人,可配备轮子、可动臂、运动传感器、摄像头、LED显示屏等各种组件。
- NodeBots的兴起得益于Node.js能力的提升,以及Nikolai Onken、Jörn Zaefferer、Chris Williams、Julian Gautier和Rick Waldron等开发者的贡献,他们开发了NodeBots中使用的各种Node模块。
- 开始构建NodeBots,首先需要一个包含各种组件和传感器的Arduino套件。网上也有大量资源可供学习各种NodeBot项目。
- 每年的国际NodeBots日是一个全球性活动,人们聚集在一起构建基于JavaScript的机器人,是深入了解NodeBots的绝佳机会。
什么是微控制器?
在深入探讨之前,我们需要了解微控制器。微控制器是一种小型简单的计算机,它是一个简单的可编程电路板,可以检测各种输入并发送输出。Arduino是一种常见的微控制器,也是新手实验的理想选择。Node.js还可以驱动其他类型的微控制器,包括Particle板(我的最爱!)、BeagleBone板、Tessel板(板本身运行在JS上)和Espruino板(也运行在JS上)。本文将重点介绍Arduino,因为它最为常见。
什么是NodeBots?
NodeBots(顾名思义)是各种类型的机器人,可以通过Node.js进行控制。它们可以配备轮子、可动臂、腿部、运动传感器、摄像头、LED显示屏,甚至可以播放声音等等。唯一的限制是你的想象力和你能找到并组合在一起的组件!
NodeBots的概念源于Node.js能力的不断提升,以及Nikolai Onken、Jörn Zaefferer、Chris Williams、Julian Gautier和Rick Waldron等开发者的兴趣。他们共同努力开发了我们今天在NodeBots中使用的各种Node模块。Chris Williams开发的Node包node-serialport
开启了这一切,它允许通过低级别读写串口来访问现实世界的设备。
Julian Gautier随后实现了Firmata协议,这是一种通过计算机上的软件访问Arduino等微控制器的协议,他在他的Node.js Firmata库中使用了JavaScript。
Rick Waldron更进一步,他以Firmata库为基础,创建了一个完整的JavaScript机器人和物联网编程框架——Johnny-Five。Johnny-Five框架使得控制从LED到各种传感器的所有内容都相对简单易行。许多NodeBots现在都使用它来完成一些非常令人印象深刻的壮举!
从哪里开始?
如果你完全不了解机器人构建以及任何类型的现实世界JavaScript控制设备,有很多很棒的资源可以帮助你入门。我首先推荐你找到一个包含各种组件和传感器的Arduino套件,这样你就可以尝试各种部件了。下面列出了一些不同公司提供的Arduino入门套件。如果下面的列表看起来很庞大,别担心!它们都包含非常相似的组件,对于初学者来说都是不错的选择。
入门套件
- SparkFun发明家套件。几年前,这个套件开启了我的机器人之旅!它包含各种标准组件,例如彩色LED灯、传感器、按钮、电机、小型扬声器等等。它还附带指南和示例项目,可以帮助你提升技能。
- Freetronics Arduino实验家套件。这个套件由一家名为Freetonics的澳大利亚公司出品。它与SparkFun套件的组件非常相似,但也有一些细微的差别。它也附带自己的指南和示例项目。
- Seeed Studio ARDX入门套件。Seeed Studio也有自己的入门套件,它也与SparkFun和Freetronics套件非常相似。它也附带自己的指南。
- Adafruit Arduino ARDX实验套件。这个套件也与上述套件非常相似,并附带自己的指南。
- Arduino入门套件。Arduino.cc官方也提供自己的入门套件。该入门套件与上述套件类似,但包含一些有趣的示例项目,例如“爱情计”。
请记住,以上所有套件都不是针对NodeBot开发的。因此,小册子中的示例是用Arduino使用的简化的C 代码编写的。有关使用Node.js的示例,请参见下面的资源。
学习NodeBots的资源
网上有一些关键的地方可以学习如何构建各种NodeBot项目。以下是一些推荐:
- 使用Node.js和Johnny-Five控制Arduino。这是一个免费的SitePoint视频教程,介绍了将Arduino连接到Node.js以及使用该框架来打开和关闭LED灯的基础知识。
- NodeJS的Arduino实验家指南。这是NodeBots社区的Anna Gerber和其他成员对SparkFun版本的.:oomlout:.的ARDX指南的改编。它展示了如何用Node.js而不是Arduino的简化C 代码来完成上述套件中的许多示例。
- 官方Johnny-Five网站。Johnny-Five框架最近发布了一个全新的网站,其中包含关于如何在Arduino和其他平台上使用该框架的出色文档!
- Make: JavaScript机器人书籍。Rick Waldron和NodeBot社区的其他成员新发布的一本书,提供了一系列使用各种设备的JS项目。非常适合那些掌握了绝对基础知识并希望探索新项目的人!
- NodeBots官方网站。如果你正在寻找你附近的本地NodeBots聚会,或者想了解更多关于NodeBots的 general 信息,请查看此页面。
- NodeBots——JS机器人的兴起。Chris Williams撰写的一篇关于NodeBots如何产生的精彩文章。对于感兴趣的人来说,这是一篇不错的文章。
SimpleBot
澳大利亚NodeBot爱好者Andrew Fisher制作了一个相当简单的项目,供人们在第一次NodeBot体验中构建。它被称为“SimpleBot”,名副其实。这是一个通常可以在一天内构建的NodeBot。如果你热衷于运行一个实际的机器人,而不仅仅是一组基本的传感器和灯的开关,这是一个很好的入门项目选择。出于这个原因,它在NodeBots Day(见下文)的其中一种票类型中提供给澳大利亚与会者!这是一个带有轮子和超声波传感器的机器人,可以检测它是否即将撞到东西。这是我几年前为NodeBots Day准备的成品版本:
SimpleBot所需的材料清单和一些示例Node.js代码可在SimpleBot GitHub库中找到。Andrew还制作了一个YouTube视频,展示了如何组装SimpleBot。
Andrew还与Freetronics团队合作,制作了一个SimpleBot Arduino扩展板,这对于那些想尝试将其作为学习项目而无需焊接任何东西的人来说可能也很有用:SimpleBot扩展板套件。
结论
这就是对NodeBots世界的一个简单介绍!如果你有兴趣参与其中,你应该拥有开始你的NodeBot体验所需的所有信息。
如果你想更多地参与NodeBots,请关注每年的国际NodeBots日。(每年大约在七月举行。)这是一个各种各样的人们聚集在世界各地参加各种活动,一起构建基于JavaScript的机器人并享受美好时光的日子。
如果你使用上述任何资源构建了一个非常棒的NodeBot,请在评论中留言或通过Twitter (@thatpatrickguy)与我联系,我很乐意查看你的JavaScript机器人!
(以下为FAQ部分,已根据原文进行改写和精简,避免重复信息)
NodeBots常见问题解答:
-
构建NodeBot需要哪些基本组件? 你需要微控制器(如Arduino)、Node.js运行环境、与微控制器通信的库(如Johnny-Five),以及各种电子元件(LED、电机、传感器等)。
-
如何安装Node.js和Johnny-Five? 从Node.js官网下载安装程序,安装完成后,在终端输入
npm install johnny-five
安装Johnny-Five。 -
可以使用其他编程语言构建NodeBots吗? 虽然JavaScript最常用,但Python、Ruby和C 也可以使用。
-
我可以使用NodeBots进行商业项目吗? 可以,但需确保符合安全和监管要求。
-
NodeBots的未来如何? 随着技术的进步,NodeBots将变得更强大、更通用、更经济实惠,应用范围也将更广。
-
如何为NodeBots社区做出贡献? 分享项目、代码、教程、参与活动等。
以上是节点简介的详细内容。更多信息请关注PHP中文网其他相关文章!

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具