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 机器人学这个激动人心的世界。

更新于: 2023-07-25

259 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告