节点简介
想用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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

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

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务
