JavaScript 机器人学:使用 Johnny-Five 和 Arduino 控制硬件
JavaScript 是一种功能强大的语言,可用于各种应用程序,包括机器人学。Johnny-Five 是一个 JavaScript 框架,使您可以轻松地使用 JavaScript 控制硬件设备。使用 Johnny-Five,您可以使用 JavaScript 控制 Arduino 板、Raspberry Pi 和其他硬件设备。
近年来,机器人学和硬件控制领域变得越来越容易被开发者所接触。Arduino 是一个流行的机器人学实验平台,它是一个基于易于使用的硬件和软件的开源电子平台。结合 JavaScript,这是一种使用最广泛的编程语言之一,我们拥有一个强大的组合来创建交互式和智能设备。
在本教程中,我们将探讨如何使用 Johnny-Five 控制硬件设备。我们将首先讨论 Johnny-Five 的基础知识,然后我们将向您展示如何使用 Johnny-Five 控制 Arduino 板。
什么是 Johnny-Five?
Johnny-Five 是一个 JavaScript 机器人和物联网 (IoT) 平台,允许您使用 JavaScript 控制硬件设备。它提供了一个简单直观的 API,抽象了处理电子产品中的复杂性,使开发人员更容易地为物理计算项目创建原型和进行实验。
Johnny-Five 支持各种硬件平台,包括 Arduino、Raspberry Pi、Intel Edison 等。基本思想是,您创建一个 Board 类的实例,然后您可以使用 Board 对象来控制连接到 Arduino 板的硬件设备。
Arduino 和 Johnny-Five 入门
要开始使用 Arduino 和 Johnny-Five,您需要以下内容:
一个 Arduino 板(例如 Arduino Uno)
安装了 Node.js 的计算机
Johnny-Five 库(可通过 npm 安装)
一旦您具备了必要的硬件和软件,就可以开始构建您由 JavaScript 驱动的机器人项目了。
使用 Johnny-Five 和 Arduino 控制 LED
为了演示 Johnny-Five 和 Arduino 的功能,让我们构建一个简单的项目来使用 JavaScript 控制 LED。
首先,将 LED 连接到 Arduino 板。将 LED 的正极连接到 Arduino 上的 13 号引脚,负极连接到接地 (GND) 引脚。
接下来,打开您最喜欢的文本编辑器并创建一个新的 JavaScript 文件。让我们将其命名为 led-control.js。在这个文件中,我们将编写控制 LED 的代码。
请考虑以下代码。
index.js
const { Board, Led } = require('johnny-five'); // Initialize a new Arduino board const board = new Board(); // When the board is ready board.on('ready', () => { // Create a new LED instance const led = new Led(13); // Blink the LED every 500ms led.blink(500); });
解释
在上面的代码中,我们从 Johnny-Five 中导入了必要的模块,即 Board 和 Led。然后我们使用 new Board() 初始化一个新的 Arduino 板。一旦板准备就绪,由 ready 事件指示,我们使用 new Led(13) 创建一个新的 LED 实例,其中 13 代表 LED 连接到的引脚。
最后,我们在 LED 对象上调用 blink() 方法,使 LED 每 500 毫秒闪烁一次。
保存文件并使用 Node.js 运行它:
node led-control.js
如果一切设置正确,您应该会看到连接到 Arduino 板 13 号引脚的 LED 以规律的间隔闪烁。
切换 LED 灯光
在前面的示例中,我们探讨了如何使 LED 每 500 毫秒闪烁一次,在下面的示例中,我们将探讨如何切换 LED 灯光。
请考虑以下代码。
index.js
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var led = new five.Led(13); setInterval(function() { led.toggle(); }, 1000); });
解释
此代码首先会创建一个 Board 对象的新实例。然后,它将创建一个 Led 类的新的实例,并将数字引脚号 (13) 传递给 Led 构造函数。最后,它将创建一个新的间隔,每 1000 毫秒切换一次 LED。
探索 Johnny-Five API
现在您已经基本了解了如何使用 Johnny-Five 和 Arduino 控制硬件,让我们探索 Johnny-Five API 的其他一些功能。
模拟输入 − Johnny-Five 允许您读取连接到 Arduino 板的传感器的模拟输入值。您可以使用 Sensor 类读取来自光传感器、温度传感器或电位器的值。
伺服电机 − 使用 Johnny-Five,您可以控制伺服电机来构建机械臂、云台系统或任何其他需要精确电机控制的项目。Servo 类提供了控制伺服电机的位姿、速度和运动范围的方法。
传感器和执行器 − Johnny-Five 支持各种传感器和执行器,包括接近传感器、加速度计、温度传感器、电机等。您可以使用相应的 Johnny-Five 类轻松地将这些组件集成到您的项目中。
事件处理 − Johnny-Five 利用 JavaScript 的事件驱动特性来处理硬件事件。您可以侦听按钮按下、传感器读数或硬件组件状态更改等事件,并相应地触发操作。
机器人集成 − Johnny-Five 可以与 ROS(机器人操作系统)和 ROS2 等机器人平台无缝集成,允许您使用 JavaScript 控制机器人。
结论
使用 Johnny-Five 和 Arduino 进行 JavaScript 机器人学为开发人员打开了一个构建交互式和智能设备的世界。凭借其简单的 API 和广泛的硬件支持,Johnny-Five 使 JavaScript 开发人员能够轻松进入物理计算和机器人学领域。
在本文中,我们探讨了使用 Johnny-Five 和 Arduino 进行 JavaScript 机器人学的基础知识。我们学习了如何使用 JavaScript 控制 LED,并简要介绍了 Johnny-Five API 的其他一些功能和能力。
使用 Johnny-Five,您可以释放您的创造力,构建各种项目,从家庭自动化系统到遥控机器人。因此,拿起您的 Arduino 板,启动您最喜欢的代码编辑器,开始探索 JavaScript 机器人学这个激动人心的世界。