Arduino板是進入程序員的硬件黑客體系的最簡單方法之一。那里有大量的初學者項目,幾乎適合具有編程背景的任何人。即便如此,對于那些時間較短的人來說,入門似乎也令人生畏。
學習一門全新的語言來嘗試微控制器似乎是一項艱巨的工作。如果您想以您已經熟悉的程序語言開始嘗試自制的電子產品怎么辦?好消息:您可以!
我們已經向您展示了如何使用Python控制Arduino開發板,今天我們將向您展示如何使用JavaScript進行操作。今天,我們不僅使用最基本的LED閃爍教程,還使用Johnny-Five框架通過計算機鍵盤來控制伺服器,這些鍵盤均使用JavaScript編程。
硬件列表
對于該項目將需要:
Arduino Uno(或兼容板):官方商店的價格為22美元,盡管您可以更便宜地購買它們,克隆板在AliExpress上的價格僅為3.20美元。 li》
業余愛好伺服器:任何一家業余愛好商店兼容Arduino的伺服器都可以,我使用的是速賣通提供的$ 1.60伺服器。
幾根連接線
USB電纜:用于將Arduino連接到計算機
今天的教程將使用Arduino Uno板。我們將在本項目稍后使用的Johnny-Five框架支持大多數與Arduino兼容的微控制器,盡管您的電路板將需要具有PWM功能才能使伺服器滿意。
電路設置
將伺服器這樣連接到Arduino:
簡而言之,VCC線( RED )連接到5v引腳Arduino的GND線( BLACK 或 BROWN )連接到Arduino的GND引腳和Pulse線( Yellow 或橙色)連接到Arduino的引腳10。請注意,雖然您不必將其專門連接到引腳10,但必須將其連接到PWM引腳,通常用?表示。
仔細檢查您沒有混用上所有電線,然后將Arduino連接到您的計算機。我們將為此項目使用Windows 10。該項目的所有元素也都適用于Mac和Linux,盡管某些安裝說明可能略有不同。
如果尚未安裝,請下載Arduino IDE并選擇您的 Board 和端口從工具菜單中。如果這是您第一次這樣做,而且有點神秘,那么我們的Arduino初學者指南可以幫助您完成這些步驟。
連接好后,將 StandardFirmataPlus 示例草圖上傳到板上。您可以在示例》固件》 StandardFirmataPlus 下的文件菜單中找到此草圖。您根本不需要修改草圖,它實際上只是將Arduino設置為等待外部指令,稍后我們將為您提供這些指令。
帶有Johnny-Five的JavaScript機器人技術
我們將使用Javascript控制Arduino的框架稱為Johnny-Five。毫不奇怪,考慮到電影的名字,該項目適合與機器人技術合作。
《圖id =“ attachment_731830” aria- describeby =“ caption-attachment-731830” class =“ wp-caption aligncenter”》
圖片來源:johnny-five.io
要安裝Johnny-Five,我們必須首先安裝Node.js。您可以從Node.js網站下載其最新版本。我們使用的是推薦的發行版,在撰寫本文時為 8.9.4 LTS 。
打開 .msi 文件并按照安裝說明進行操作,確保將其添加到您的 PATH 中。當前的Node.js安裝程序將PATH作為標準添加,盡管值得在安裝過程中進行檢查,因為這是下一步所需的操作。
安裝完成后,我們將可以從Windows命令行(CMD)訪問 Node Package Manager (NPM)軟件包管理器。點擊開始,然后輸入CMD。在繼續之前,我們需要初始化NPM以防止可能的安裝錯誤。不需要任何專業知識,只需鍵入:
npm init
按照屏幕上的提示進行操作。對于今天的項目,您無需進行任何更改,只需按Enter直到返回命令提示符,然后鍵入:
npm install johnny-five
這將安裝所有重要的軟件包,其中將與我們的Arduino交談。要使該項目正常工作,我們還需要另外一件事,那就是 Keypress 軟件包,該軟件包將允許我們從鍵盤上讀取擊鍵。
通過輸入以下內容進行安裝:
npm install keypress
一旦安裝了所有這些軟件包,我們就可以編寫代碼!
如果在安裝過程中遇到任何問題,請嘗試運行johnny-five 之后再次安裝。可能只是這里使用的NPM版本的一個古怪之處,但是現在這樣做可以防止您以后像我一樣遇到問題。
代碼
我們將使用今天約翰尼五公司文檔中提供的一部分示例代碼,該代碼允許使用鍵盤上的箭頭鍵控制我們的伺服系統。完整的代碼可在johnny-five.io上找到,但是我們將在這里詳細介紹它,以完全理解它的工作原理。
我們現在使用Eclipse IDE進行編碼,盡管您可以使用任何IDE
創建一個新文件并將其命名為test.js,并將其保存在以后可以從命令行輕松訪問的位置。該腳本首先為所需的庫創建變量,并初始化 Keypress 庫以偵聽傳入的數據,然后調用 Board()方法來設置板。/p》 var five = require(“johnny-five”);
var keypress = require(“keypress”);
keypress(process.stdin);
var board = new five.Board();
請注意,此處的板卡設置是自動的,無需指定端口。如果您有特定的端口設置,或者在自動檢測方面沒有運氣,則可能需要明確指定端口。
下一步,我們要“喚醒”主板并進行設置用于伺服控制。調用 board.on 會一直等到Arduino引腳準備就緒后再繼續。約翰尼-五圖書館支持內置的伺服器,我們在引腳10上調用 Servo.Continuous(10)以允許直接控制。
board.on(“ready”, function() {
console.log(“Use Up and Down arrows for CW and CCW respectively. Space to stop.”);
var servo = new five.Servo.Continuous(10);
process.stdin.resume();
process.stdin.setEncoding(“utf8”);
process.stdin.setRawMode(true);
process.stdin 調用可確保我們從鍵盤接收的所有數據將在下一個代碼塊中可用。現在,我們要“監聽”按鍵,并使用它們來順時針(CW),逆時針(CCW)移動伺服器或停止其軌跡。
process.stdin.on(“keypress”, function(ch, key) {
if (!key) { // if no key is pressed, return i.e do nothing.
return;
}
if (key.name === “q”) {
console.log(“Quitting”);
process.exit();
} else if (key.name === “up”) {
console.log(“CW”);
servo.cw();
} else if (key.name === “down”) {
console.log(“CCW”);
servo.ccw();
} else if (key.name === “space”) {
console.log(“Stopping”);
servo.stop();
}
});
});
制作確保在此處底部包括所有右方括號,如果遇到任何錯誤,請參考上面鏈接的整個代碼塊。保存此腳本,然后打開命令提示符。
揮動您好!
現在導航至保存腳本的目錄,然后鍵入以下內容以運行該腳本:
node test.js
在給您代碼中說明的指示之前,程序應立即使用有關主板的信息啟動。嘗試按上下箭頭鍵,空格鍵和 Q 退出。屏幕應該看起來像這樣:
一切都很好,伺服器應該隨著您的擊鍵跳動!看看那小小的野獸浪!
卑微的起頭
盡管承擔的項目比通常的初學者閃爍的LED稍大一些在教程中,我們幾乎沒有涉及到Arduino開發板和類似微控制器可以完成的全部工作。
經驗豐富的JavaScript用戶應該可以直觀地使用Johnny-Five軟件包。該庫也可以本地安裝在Raspberry Pi上,使其成為萌芽的機器人制造商的理想軟件包。
該庫的優點在于,盡管它是為機器人而設計的,但輸入和輸出相同數據可用于創建DIY智能家居設置,甚至是家庭自制的安全系統。
通過這種方式與微控制器進行通訊,是DIY硬件世界的絕佳入門,而無需花費時間來學習全新的編程語言。在這里玩得開心,如果您碰巧要建造一個殺手級機器人,請記住我們在早期如何為您提供幫助。
責任編輯:wv
-
python
+關注
關注
56文章
4797瀏覽量
84776 -
Arduino
+關注
關注
188文章
6471瀏覽量
187244
發布評論請先 登錄
相關推薦
評論