電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用可教機器人工智能來控制任何東西

使用可教機器人工智能來控制任何東西

2023-06-15 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

注意:我已經(jīng)清理了代碼并升級了庫,還創(chuàng)建了一個可以在您的計算機上運行的本地版本。查看Github 存儲庫。

Teachable Machine是谷歌開發(fā)的一款基于網(wǎng)絡(luò)人工智能工具,可以讓你在沒有任何人工智能知識的情況下訓(xùn)練和使用人工智能模型。用于假人的 AI 工具。整潔,對吧?

但它可以做的不僅僅是簡單地在網(wǎng)絡(luò)瀏覽器中展示機器學(xué)習(xí)嗎?它也可以是一個實用的工具嗎?

有趣的是,Teachable Machine 網(wǎng)站上有一個名為Tiny Sorter的演示,它使用p5.js (在線 JavaScript 編輯器/編譯器)與帶有伺服的 Arduino Leonardo 對話。所以完全有可能在你的電腦上運行 AI 并做一些有用的事情。

教程是關(guān)于如何讓 Teachable Machine AI 將其識別結(jié)果輸出到外部設(shè)備,例如微控制器。我的方法和 Tiny Sorter 演示的方法不一樣,但是原理是相似的。這對于那些對人工智能知之甚少但有興趣將其用于他們的創(chuàng)客或物理計算項目的人來說尤其有用。

(注意:以下步驟僅在 Windows 10 上測試。)

這種方法的優(yōu)點:

無需人工智能知識

快速、簡單和免費的模型訓(xùn)練/托管

幾乎不需要安裝任何東西

如果您已經(jīng)有電腦,成本相當(dāng)?shù)?/p>

只要您知道如何對它們進行編程以讀取串行輸入并執(zhí)行操作,就可以在任何微控制器上使用

這種方法的缺點:

必須在您的計算機上進行識別,從而減少微控制器的范圍/移動性

電腦需要互聯(lián)網(wǎng)連接

人工智能模型有局限性,可能會得到錯誤的讀數(shù),無法進一步定制

在微控制器端調(diào)試可能更困難

一些人工智能專家可能會告訴你這很可愛,但不是真的。是的,好吧...

第 1 步:生成并上傳您的 AI 模型

當(dāng)你訓(xùn)練你的模型時,我會使用 0 類作為背景圖像(什么都沒有),然后要識別的東西會被命名為“1”、“2”、“3”……等等。這將使設(shè)備更容易讀取結(jié)果。

對于圖像識別,您可以移動對象以提高 AI 準確性,并且每個對象之間應(yīng)該有足夠的差異。

pYYBAGNoeZGAPKf3AADPAi9apTw588.jpg

或者,如果您正在訓(xùn)練聲音識別模型,請確保首先輸入足夠的背景噪聲樣本。和上面一樣,我會把要識別的聲音命名為“1”、“2”、“3”......

pYYBAGNoeZSAZpVIAADRX6l8wSw011.jpg

模型完成訓(xùn)練后,單擊導(dǎo)出模型而不是選擇Tensorflow.js ->上傳。完成后復(fù)制模型鏈接。(目前聲音識別只能選擇 Tensorflow.js。)

poYBAGNoeZaAHNn8AACvIkBtaCU623.jpg

第 2 步:準備 p5.js 腳本

p5.j??s 腳本模板可以在這里找到:

圖像識別:https ://editor.p5js.org/krantas/sketches/IKUf43rB

聲音識別:https ://editor.p5js.org/krantas/sketches/3wZ9hAwG

或者你可以在這里找到完整的代碼。手勢識別版我沒做過,不過應(yīng)該很容易修改。

這個腳本基本上是 Teachable Machine 和 p5.js 的示例代碼的組合??偣灿?個文件:

sketch.js(主要代碼)

index.html(導(dǎo)入庫)

樣式.css

p5.serialport.js(串口功能)

您可以登錄 p5.js 并復(fù)制/保存您的腳本。您只需要更改兩個地方

計算機上微控制器的串行端口(參見步驟 4)

您的模型的鏈接(步驟 1)

pYYBAGNoeZqALOheAADJSdzxWHo828.jpg

注意:稍后我會看看是否可以將這兩個代碼都更新到新的 p5.js 1.0。

記得把 COM__ 改成你的串口!

第 3 步:對您的微控制器進行編程

您的設(shè)備(在本例中為 BBC micro:bit)將需要自己的程序才能讀取串行輸入并對其進行處理。

串行輸出是字符串或字符,沒有換行符(如 \r\n)。

以下示例是通過點亮我的 BBC micro:bit 上的不同 LED 來指示接收到的圖像識別結(jié)果:

結(jié)果 1(BPI:bit ESP32 板)- 紅色 LED(引腳 0)

結(jié)果 2(帶屏蔽的 Arduino Nano 33 IoT)- 綠色 LED(引腳 1)

結(jié)果 3(Adafruit Metro M4 Express)- 藍色 LED(引腳 2)

結(jié)果 0(僅背景) - 白色 LED(引腳 8)

串口輸出波特率為 9600。由于 micro:bit 的默認速率是 115200,所以我不得不一開始就重新設(shè)置它。

?

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)
    }
})

?

pYYBAGNoeZ2APPuQAAGCsCd6N0c573.png

第 4 步:連接設(shè)備的串行端口

下載并解壓p5.js串口控制程序。將您的設(shè)備連接到 USB 并運行p5.serialcontrol.exe (適用于 Windows)。您可能必須將其設(shè)置為允許在您的防病毒程序中運行。

程序啟動后,打開設(shè)備的串行端口。如果您不確定,請打開設(shè)備管理器以查看它具有哪個 COM 端口。

當(dāng)您需要將代碼閃存到板上時,請記住關(guān)閉 p5.serialcontrol 中的 COM 端口!否則會被屏蔽。

pYYBAGNoeZ-AIw7wAABxvf-VwXU959.jpg

pYYBAGNoeaGAXFnkAAAoHbCfm5A022.jpg

在 p5.js 草圖中連接并設(shè)置串口后,一切都會好起來的。

第 5 步:利用 AI 的力量!

返回 p5.js 腳本編輯器并單擊運行。片刻之后,腳本旁邊會出現(xiàn)一個網(wǎng)絡(luò)攝像頭窗口。您可能會看到設(shè)備的串口燈閃爍,表示它接收到的數(shù)據(jù)。

如果您忘記打開串口,則不會發(fā)生任何錯誤。p5.j??s 腳本將照常運行。

在下面的演示中,我確實可以將圖像識別結(jié)果發(fā)送到我的 micro:bit:

這里的另一個演示是使用 Arduino Nano 和迷你伺服來指示聲音識別結(jié)果:(背景噪音不是結(jié)果。只有當(dāng)模型識別到某些東西時才會返回結(jié)果。)

結(jié)果 1(彈指) - 轉(zhuǎn)為 0 度

結(jié)果 2(鼓掌)——轉(zhuǎn)身 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);
}

?

我在最后添加了一個小延遲,因為伺服需要一些時間來完成它的轉(zhuǎn)動。

下面是基于 3 個標(biāo)簽控制兩個 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,您可以使用一個簡單地通過“無線電”功能將結(jié)果重新發(fā)送給其他人。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費