56 MU視覺傳感器測試

(2020/03/12 更新)

昨天科工館俊安先生來找我,說他新買的MU,利用我寫的程式無法動作,我看他的MU屬於第三代的MU3(包裝如下圖),跟我之前的不一樣,測試後真的不能運作。晚上向代理商宇宙機器人的威寰來求救,威寰很仔細的告訴我解決之道—要更新【韌體】,怕我不會更新,建議我直接用Transformer3的燒錄軟體來更新,剛剛測試了一下,更新韌體不難,將更新韌體的過程記錄如下:

一、MU官網資料

二、燒錄程式

  • 執行燒錄軟體:flash_download_tools_v3.6.5.exe

    • 點擊【ESP32 DownloadTool】,並選擇要燒錄的韌體

    • 檢查燒錄的相關參數

    • 註:

    • COM要檢查一下USB 轉 TTL的連接埠,在燒錄前先完成接線部份

      • SPI SPEED:40MHz

      • SPI MODE:DIO

      • FLASH SIZE:32Mbit

      • BAUD:115200

      • 注:对于高性能的串口模块,可以选择更高的波特率,比如 921600,可以更快的

      • 完成烧录。

三、接線部份

  • 準備USB-UART通訊模組

      • 如下圖所示

    • 進入燒錄模式

    • 燒錄前,先按左側Function鍵(不要放開),再按右側的Reset鍵放開,最後放開Function

  • 然後就可以點燒錄軟體的START了

    • 完成

四、簡單測試

  • 進入makecode

  • MU擴充積木:mu-opensource/pxt-muvision 或直接輸入“mu”、”muvision”、”AI”等

  • 簡單測試

    • 測試成功

------------------------------

(2019/06/19)

最近,好多人在玩此MU視覺傳感器,利用它與小車結合來控制車子前進、左右轉及停止,這傳感器可應用在AI的識別上,應該可以做很多很有趣的應用,此教材先做簡易的基本測試,有基礎之後,以後再來做更進一步的應用!

一、參考資料:

二、新增MU積木

  • 在擴展下輸入mu-opensource/MuVisionSensorIII-MakeCode (新)、 tianli/MuVisionSensor-MakeCode(舊)

    • MU積木

三、硬體安裝

  • I2C模式

    • 接法 如下

    • MU的SDA接micro:bit的SDA(P20)、MU的SCL接micro:bit的SCL(P19)

    • MU的輸出模式(在左方,開關1撥到下方、開關2撥到上方)

    • MU的位址,預設為0x60(在右方,開關1、2都撥到下方

四、基本測試 (卡片辨別)

  • 初始化及開啟算法

    • 算法一共有七種方法

      • 顏色檢測

      • 顏色辨識

      • 球體檢測

      • 人體檢測

      • 形狀卡片

      • 交通卡片

      • 數字卡片

  • 測試【數字卡片】的卡片辨別

    • 该算法用于检测图像中是否存在指定的数字卡片,检测到则返回卡片的坐标区域,尺寸大小和分类标签(此部份進階時再做說明)。

    • 數字卡片內容有:0~9

    • 利用提供的數字卡片來測試,MU的下方為白色接線處,所以卡片的方向要弄對,才能感應得到

  • 測試【交通卡片】的卡片辨別

    • 该算法用于检测图像中是否存在指定的交通卡片,检测到则返回卡片的坐标区域,尺寸大小和分类标签。

    • 交通卡片內容:向前、向左、向右、調頭、停車

    • 測試【形狀卡片】的卡片辨別

    • 该算法用于检测图像中是否存在指定的图形卡片,检测到则返回卡片的坐标区域,尺寸大小和分类标签。

    • 形狀卡片內容:鈎、叉、圓形、方形、三角形

五、進階測試一 (人體及球體檢測)

  • 為讀取一些數據,所以增加OLED來顯示,接法如下:

    • 取得【人體檢測】數據

    • 该算法用于检测图像中是否存在人体,人体特征指由头部和上半身所围成的区域,检测到则返回人体的坐标区域和大小。

    • 返回的數據說明

      • X、Y是座標位置(如下圖所示),鏡頭左上角是(0,0),右下角是(100,100)

      • width及height為大小,同一張圖(同一個人)越靠近鏡頭值越大,越遠離鏡頭值越小

    • 檢測是否有人體的存在

    • 發現誤判的機率很高

  • 取得【球體檢測】數據

    • 该算法用于检测图像中是否存在指定的球体:橙色乒乓球或绿色网球,检测到则返回球体的坐标区域,尺寸大小和分类标签。

    • 程式同上的人體檢測

    • 由於沒有橙色乒乓球及绿色网球,所以就不實際測試了

六、進階測試二 (顏色檢測及辨識)

  • 取得【顏色檢測】數據

    • 该算法用于检测图像中是否存在指定颜色的色块,用户需要先设定好要检测的颜色分类标签以及最小尺寸,小于该设定尺寸的色块将被忽略,可以减少背景中的误报。如果检测到目标颜色,则返回该色块的坐标区域和尺寸大小。

    • 注意事項

      • (1) 颜色检测对光源较为敏感,良好的白色稳定光源最为适宜;

      • (2) 白平衡会对颜色检测产生明显的影响,建议使用自动锁定白平衡模式,将摄像头面对白纸进行测光,然后再识别颜色;

      • (3) 适用于检测单一颜色的物体,混合颜色将会影响检测结果;

      • (4) 由于光源照射造成颜色明暗分布不均匀或是产生阴影,可能会对检测结果有一定影响;

      • (5) 环境背景中不宜出现与目标颜色类似的物体;

      • (6) 所设定的最小检测区域越大,则可以更好的排除背景中杂色的干扰;

      • (7) 目标物体越大,可以识别的距离越远,反之越近;

      • (8) 由于 LED 灯光会对颜色检测产生影响,故该算法会关闭 LED 的 Auto 模式,即 LED 颜色不会随是否检测到物体而变化,但可以将 LED 在手动模式下设为白光用于补光灯使用;

      • (9) 可以开启高速采样模式。

    • 程式

      • 發現好像有問題,只要有東西在其前方,就會呈現偵測到的藍燈

      • 沒有成功

  • 顏色識別

    • 该算法用于检测图像中指定区域的颜色,用户需要先设定好要检测区域的中心坐标和范围大小,返回该区域颜色 R,G,B 的平均值以及颜色分类标签

    • 顯示識別顏色

      • 識別結果,利用魔術方塊的六面測得結果如下:

      • 紅色面:R

      • 橘色面:R (相近)

      • 綠色面:G

      • 黃色面:G (相近)

      • 藍色面:B

      • 白色面:不顯示

      • 可在程式加上其他顏色的識別

    • 可辨識的顏色有:黑、白、紅、黃、綠、青、藍、紫、其他