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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告