資料介紹
描述
注意:我已經清理了代碼并升級了庫,還創建了一個可以在您的計算機上運行的本地版本。查看Github 存儲庫。
Teachable Machine是谷歌開發的一款基于網絡的人工智能工具,可以讓你在沒有任何人工智能知識的情況下訓練和使用人工智能模型。用于假人的 AI 工具。整潔,對吧?
但它可以做的不僅僅是簡單地在網絡瀏覽器中展示機器學習嗎?它也可以是一個實用的工具嗎?
有趣的是,Teachable Machine 網站上有一個名為Tiny Sorter的演示,它使用p5.js (在線 JavaScript 編輯器/編譯器)與帶有伺服的 Arduino Leonardo 對話。所以完全有可能在你的電腦上運行 AI 并做一些有用的事情。
本教程是關于如何讓 Teachable Machine AI 將其識別結果輸出到外部設備,例如微控制器。我的方法和 Tiny Sorter 演示的方法不一樣,但是原理是相似的。這對于那些對人工智能知之甚少但有興趣將其用于他們的創客或物理計算項目的人來說尤其有用。
(注意:以下步驟僅在 Windows 10 上測試。)
這種方法的優點:
無需人工智能知識
快速、簡單和免費的模型訓練/托管
幾乎不需要安裝任何東西
如果您已經有電腦,成本相當低
只要您知道如何對它們進行編程以讀取串行輸入并執行操作,就可以在任何微控制器上使用
這種方法的缺點:
必須在您的計算機上進行識別,從而減少微控制器的范圍/移動性
電腦需要互聯網連接
人工智能模型有局限性,可能會得到錯誤的讀數,無法進一步定制
在微控制器端調試可能更困難
一些人工智能專家可能會告訴你這很可愛,但不是真的。是的,好吧...
第 1 步:生成并上傳您的 AI 模型
當你訓練你的模型時,我會使用 0 類作為背景圖像(什么都沒有),然后要識別的東西會被命名為“1”、“2”、“3”……等等。這將使設備更容易讀取結果。
對于圖像識別,您可以移動對象以提高 AI 準確性,并且每個對象之間應該有足夠的差異。
或者,如果您正在訓練聲音識別模型,請確保首先輸入足夠的背景噪聲樣本。和上面一樣,我會把要識別的聲音命名為“1”、“2”、“3”......
模型完成訓練后,單擊導出模型而不是選擇Tensorflow.js ->上傳。完成后復制模型鏈接。(目前聲音識別只能選擇 Tensorflow.js。)
第 2 步:準備 p5.js 腳本
p5.j??s 腳本模板可以在這里找到:
圖像識別:https ://editor.p5js.org/krantas/sketches/IKUf43rB
聲音識別:https ://editor.p5js.org/krantas/sketches/3wZ9hAwG
或者你可以在這里找到完整的代碼。手勢識別版我沒做過,不過應該很容易修改。
這個腳本基本上是 Teachable Machine 和 p5.js 的示例代碼的組合。總共有4個文件:
sketch.js(主要代碼)
index.html(導入庫)
樣式.css
p5.serialport.js(串口功能)
您可以登錄 p5.js 并復制/保存您的腳本。您只需要更改兩個地方:
計算機上微控制器的串行端口(參見步驟 4)
您的模型的鏈接(步驟 1)
注意:稍后我會看看是否可以將這兩個代碼都更新到新的 p5.js 1.0。
記得把 COM__ 改成你的串口!
第 3 步:對您的微控制器進行編程
您的設備(在本例中為 BBC micro:bit)將需要自己的程序才能讀取串行輸入并對其進行處理。
串行輸出是字符串或字符,沒有換行符(如 \r\n)。
以下示例是通過點亮我的 BBC micro:bit 上的不同 LED 來指示接收到的圖像識別結果:
結果 1(BPI:bit ESP32 板)- 紅色 LED(引腳 0)
結果 2(帶屏蔽的 Arduino Nano 33 IoT)- 綠色 LED(引腳 1)
結果 3(Adafruit Metro M4 Express)- 藍色 LED(引腳 2)
結果 0(僅背景) - 白色 LED(引腳 8)
串口輸出波特率為 9600。由于 micro:bit 的默認速率是 115200,所以我不得不一開始就重新設置它。
?
let result = "" serial.redirect( SerialPin.USB_TX, SerialPin.USB_RX, BaudRate.BaudRate9600 ) basic.forever(function () { result = serial.readString() if (result == "0") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 1) } else if (result == "1") { pins.digitalWritePin(DigitalPin.P0, 1) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 0) } else if (result == "2") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 1) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 0) } else if (result == "3") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 1) pins.digitalWritePin(DigitalPin.P8, 0) } })
?
第 4 步:連接設備的串行端口
下載并解壓p5.js串口控制程序。將您的設備連接到 USB 并運行p5.serialcontrol.exe (適用于 Windows)。您可能必須將其設置為允許在您的防病毒程序中運行。
程序啟動后,打開設備的串行端口。如果您不確定,請打開設備管理器以查看它具有哪個 COM 端口。
當您需要將代碼閃存到板上時,請記住關閉 p5.serialcontrol 中的 COM 端口!否則會被屏蔽。
在 p5.js 草圖中連接并設置串口后,一切都會好起來的。
第 5 步:利用 AI 的力量!
返回 p5.js 腳本編輯器并單擊運行。片刻之后,腳本旁邊會出現一個網絡攝像頭窗口。您可能會看到設備的串口燈閃爍,表示它接收到的數據。
如果您忘記打開串口,則不會發生任何錯誤。p5.j??s 腳本將照常運行。
在下面的演示中,我確實可以將圖像識別結果發送到我的 micro:bit:
這里的另一個演示是使用 Arduino Nano 和迷你伺服來指示聲音識別結果:(背景噪音不是結果。只有當模型識別到某些東西時才會返回結果。)
結果 1(彈指) - 轉為 0 度
結果 2(鼓掌)——轉身 180 度
?
#include Servo myservo; char result; void setup() { Serial.begin(9600); myservo.attach(9); myservo.write(90); } void loop() { while (Serial.available() > 0) { result = Serial.read(); switch (result) { case '1': myservo.write(0); break; case '2': myservo.write(180); break; } } delay(100); }
?
我在最后添加了一個小延遲,因為伺服需要一些時間來完成它的轉動。
下面是基于 3 個標簽控制兩個 LED 的 Arduino 代碼。
?
char result = '0'; void setup() { Serial.begin(9600); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { if (Serial.available() > 0) { result = Serial.read(); } switch (result) { case '1': digitalWrite(7, HIGH); digitalWrite(8, LOW); break; case '2': digitalWrite(7, LOW); digitalWrite(8, HIGH); break; default: digitalWrite(7, LOW); digitalWrite(8, LOW); } }
?
遠程控制的可能性?
可以控制不直接連接到計算機的東西。一種可能的方法是使用微控制器上的 HC-05 藍牙模塊作為無線串口。
如果您使用的是 micro:bit,您可以使用一個簡單地通過“無線電”功能將結果重新發送給其他人。
- 人工智能是干嘛的 人工智能在金融行業的應用 0次下載
- Nindamani:基于人工智能的機械除草機器人
- 物體檢測人工智能機器人
- 基于ESP32-CAM的人工智能機器人設計資料 3次下載
- 使用超聲波傳感器模塊制作非接觸式任何東西
- The Irrigator:人工智能驅動的灌溉機器人
- 基于人工智能(AI)的巡線機器人
- 智能防盜防火及照明控制系統
- 基于DSP控制器的油氣安全智能巡檢機器人 41次下載
- 基于DSP和PC的農業機器人控制系統 18次下載
- 人工智能的倫理智能體應用及相關研究 7次下載
- 如何才能讓人工智能更加智能 2次下載
- 人工智能行業發展狀況如何?人工智能行業研究報告詳細資料免費下載 15次下載
- 企業如何使用人工智能來快速定位自己的用戶? 2次下載
- 機器人編程C語言與人工智能 0次下載
- 人工智能與機器人的區別 3055次閱讀
- 如何創建FPGA控制的機器人手臂 1152次閱讀
- 什么是人工智能?人工智能的分類和應用介紹 1.1w次閱讀
- 機器學習是如何工作的? 人工智能與機器學習實例 2081次閱讀
- 人工智能發展的條件有哪些 9029次閱讀
- 關于人工智能的機器學習一些知識 963次閱讀
- 人工智能與機器學習的區別 4213次閱讀
- 人工智能時代硬件和軟件如何彼此影響 1w次閱讀
- 淺談人工智能客戶服務的未來 4359次閱讀
- 人工智能帶給實際的作用 1.4w次閱讀
- 淺析人工智能技術在傳感器中的應用 9644次閱讀
- 人工智能AI在機器人運動控制領域盤點簡介 6948次閱讀
- 工業機器人和人工智能的區別詳細概述 8210次閱讀
- 人工智能之機器學習與深度學習介紹 875次閱讀
- 在軟件測試行業中機器人和人工智能到底承擔著什么重任 2398次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論