Arduino板是程式設計師進入硬體駭客程式的最簡單方法之一。有一個龐大的初學者專案陣列有適合幾乎任何人與程式設計背景。即便如此,對於那些時間緊迫的人來說,開始工作似乎是令人望而生畏的。
學習一種全新的語言只是為了嘗試一個微控制器可能看起來是一個很大的工作。如果你想開始用你已經熟悉的程式語言玩自制電子產品,該怎麼辦?好訊息:你可以!
我們已經向您展示瞭如何使用Python控制Arduino板,今天我們將向您演示如何使用JavaScript實現相同的操作。今天我們將使用Johnny五框架來控制一個伺服,而不是最基本的閃爍LED教程,所有的程式都是JavaScript。
對於此專案,您需要:
今天的教程將使用Arduino Uno板。約翰尼五框架,我們將在本專案稍後使用支援大多數Arduino相容微控制器,雖然你的董事會將需要有PWM功能,以保持伺服高興。
將伺服裝置連線到Arduino上,如下所示:
簡而言之,VCC線(紅色)連線到Arduino的5v引腳,GND線(黑色或棕色)連線到Arduino的GND引腳,脈衝線(黃色或橙色)連線到Arduino的引腳10。請注意,雖然您不必特別將其連線到引腳10,但它必須連線到PWM引腳,通常用~表示。
仔細檢查你沒有把任何電線弄混,然後把Arduino連線到你的電腦上。我們將使用Windows 10來執行此專案。這個專案的所有元素也可以用於Mac和Linux,儘管有些安裝說明可能略有不同。
如果您還沒有下載ArduinoIDE,然後從Tools選單中選擇Board和Port。如果這是你第一次這樣做,這是一個有點神祕的,我們的Arduino初學者指南可以幫助你完成這些步驟。
一旦連線好了,將StandardFirmataPlus示例草圖上載到板上。您可以在“檔案”選單的“示例”>;Firmata>;StandardFirmataPlus下找到此草圖。您根本不需要修改草圖,它基本上只是設定Arduino等待外部指示——我們稍後將提供給自己。
我們將用Javascript控制Arduino的框架稱為Johnny Five。不出所料,考慮到它的電影名稱,這個專案是面向機器人的工作。
要安裝Johnny Five,我們必須先安裝節點.js. 您可以從節點.js網站。我們使用的是推薦的版本,在撰寫本文時是8.9.4 LTS。
開啟.msi檔案並按照安裝說明進行操作,確保它已新增到您的路徑中。電流節點.js安裝程式將路徑新增為標準路徑,儘管在安裝過程中值得檢查,因為這是我們下一步所必需的。
一旦安裝完成,我們就可以從Windows命令列(CMD)訪問Node Package Manager(NPM)包管理器。單擊開始並鍵入CMD。在繼續之前,我們需要初始化NPM以防止可能的安裝錯誤。它不需要任何專業知識,只需鍵入:
npm init按照螢幕提示操作。對於今天的專案,您無需更改任何內容,只需按enter鍵直到返回命令提示,然後鍵入:
npm install johnny-five這將安裝所有重要的軟體包,這將與我們的Arduino交談。我們還需要一個使這個專案工作的東西,那就是Keypress包,它允許我們從鍵盤讀取擊鍵。
透過輸入以下命令進行安裝:
npm install keypress一旦安裝了所有這些軟體包,我們就可以開始編寫程式碼了!
如果在安裝時遇到任何問題,請在按鍵安裝後再次嘗試執行johnny five安裝。這可能只是這裡使用的NPM版本的一個怪癖,但是現在這樣做可以防止以後像我一樣遇到問題。
今天我們將使用johnnyfive文件中提供的一段示例程式碼,它允許使用鍵盤上的箭頭鍵控制伺服。完整的程式碼可在約翰尼-五.io,但我們將在這裡詳細介紹,以充分了解它的工作原理。
我們現在使用EclipseIDE進行編碼,不過您可以為這個專案使用任何IDE或文字編輯器。
建立一個新檔案並命名它測試.js,並將其儲存到以後可以從命令列輕鬆訪問的位置。該指令碼首先為所需的庫建立變數,初始化Keypress庫以偵聽傳入的資料,同時呼叫Board()方法來設定Board。
var five = require("johnny-five");var keypress = require("keypress");keypress(process.stdin);var board = new five.Board();注意,這裡的電路板設定是自動的,不需要指定埠。如果您有一個特定的埠設定,或者只是在自動檢測方面運氣不佳,您可能需要顯式地指定您的埠。
接下來,我們要“喚醒”我們的董事會,並設定為伺服控制。這個董事會呼叫等待直到Arduino引腳準備就緒,然後繼續。johnny five圖書館支援內建伺服系統,我們正在致電伺服。連續(10) 在引腳10上允許直接控制。
board.on("ready", function() { c***ole.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);這個工藝標準呼叫確保我們從鍵盤接收到的所有資料在下一段程式碼中都可用。現在我們要“聽”擊鍵,並使用它們來移動我們的伺服順時針(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") { c***ole.log("Quitting"); process.exit(); } else if (key.name === "up") { c***ole.log("CW"); servo.cw(); } else if (key.name === "down") { c***ole.log("CCW"); servo.ccw(); } else if (key.name === "space") { c***ole.log("Stopping"); servo.stop(); } });});請確保在這裡的底部包含所有的右括號,如果出現任何錯誤,請參閱上面連結的整個程式碼塊。儲存此指令碼,並開啟命令提示符。
現在導航到儲存指令碼的目錄,並透過鍵入以下命令執行指令碼:
node test.js程式應該立即啟動與董事會有關的資訊,然後再給你的指令中所述的程式碼。嘗試按上下箭頭鍵、空格鍵和Q退出。螢幕應如下所示:
一切都很好,伺服應該跳舞你的按鍵!看那小動物的波浪!
儘管採取了一個比通常的初學者閃爍發光二極體教程略為雄心勃勃的專案,我們甚至幾乎沒有觸及什麼可以用Arduino板和類似的微控制器完成的全部範圍。
經驗豐富的JavaScript使用者應該發現Johnny五包直觀地使用。圖書館也可以安裝在樹莓皮上,這使它成為了萌芽的機器人建設者的完美包裝。
這個圖書館最大的優點是,雖然它的設計理念是機器人,但同樣的輸入和輸出資料可以用來建立DIY智慧家居設定,甚至是家庭釀造的安全系統。
以這種方式與微控制器進行通訊是對DIY硬體世界的一個很好的介紹,而不必花時間學習一種全新的程式語言。玩得開心,如果你碰巧造了一個殺人機器人,請記住我們在早期是如何幫助你的。
... 任天堂宣佈,Miitomo將於2018年5月9日關閉。使用者可以一直使用這個應用程式直到那天。不過,不能再購買Miitomo硬幣,任天堂計劃退還使用者購買但從未使用過的任何Miitomo硬幣的費用。 ...
...lux,作為推出自己版本的前奏。夜班按時到來iOS9.3,允許使用者在夜間調整螢幕的色調。而現在蘋果也在macOS上增加了夜班。不幸的是,它還沒有為公眾消費做好準備。 ...
谷歌正在關閉其跨平臺訊息應用Allo。該公司正在殺掉Allo,以便將精力完全集中在Messages上,這是谷歌針對Android**的簡訊應用程式。因此,另一個谷歌聊天應用遇到了一個相當令人失望的結局。 ...
這是官方的。微軟正在扼殺windows10s,取而代之的是windows10本身提供的“S模式”。微軟計劃拋棄windows10的傳聞上個月出現,但微軟的喬•貝爾菲奧雷(joebelfiore)現在證實windows10的“模式”即將到來。 ...
... 經驗豐富的JavaScript使用者應該發現Johnny五包直觀地使用。圖書館也可以安裝在樹莓皮上,這使它成為了萌芽的機器人建設者的完美包裝。 ...
如果你想讓你的Mac電腦更個性化,最簡單的方法之一就是更換桌布。蘋果提供了一個光滑的Mac桌面背景集合,但你也有其他選擇,比如使用自己的照片。 ...
如果你看到Mac上的應用程式圖示上面有一個劃掉的符號,那就意味著macOS無法執行該應用程式。雖然可能有幾個原因,但最有可能是您最近升級了macOS,並且它不再支援32位應用程式。下面是原因和你能做些什麼。 第一:應用...
...延,微軟終於要在11月1日殺掉Skype Classic了。如果您是Skype使用者,則必須從Skype 7升級到Skype 8或停止使用Skype。以下是不同之處,以及人們不安的原因。 什麼是skype經典(skype classic)? Skype Classic也稱為Skype 7。這是15年前首次釋出...
今年早些時候,谷歌釋出了一款名為Reply的實驗性應用程式。這款應用為一些簡訊應用帶來了智慧回覆功能,這與現在安卓(Android)簡訊和Gmail中的智慧回覆功能不相上下。 問題是,看來回復永遠見不到曙光。回覆測試人員剛...