JavaScript 机器人技术:使用 Johnny-Five 和 Arduino 控制硬件

javascriptweb developmentfront end technology

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');

// 初始化新的 Arduino 开发板
const board = new Board();

// 当电路板准备就绪时
board.on('ready', () => {
    // 创建新的 LED 实例
    const led = new Led(13);
    
    // 每 500 毫秒闪烁一次 LED
    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 灯

在前面的例子中,我们探索了如何每 500 毫秒闪烁一次 LED,在下面的例子中,我们将探索如何切换()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 机器人世界吧。


相关文章