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

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

3天內(nèi)不再提示

【創(chuàng)意設(shè)計】小凌派手勢應用之原力控制星球大戰(zhàn)BB-8機器人

電子發(fā)燒友論壇 ? 2022-05-24 09:24 ? 次閱讀


在上一篇文章中,我分享了 小凌派隔空操作迪文COF智能 ,這次再給大家分享一個更有趣的智能手勢應用----小凌派RK2206鴻蒙開發(fā)板賦予你原力,隔空控制星球大戰(zhàn)BB-8機器人。

在這篇文章中,你將會了解到如下的信息

人氣超高的星球大戰(zhàn)之BB-8機器人

控制BB-8機器人的服務(wù)工具

小凌派RK2206開發(fā)板之智能手勢

小凌派之OpenHARMony 無線聯(lián)網(wǎng)

小凌派之OpenHarmony MQTT連接

小凌派手勢控制BB-8機器人

本文中,涉及到的代碼全部開源,代碼庫如下:

BB-8 網(wǎng)頁控制界面

星球大戰(zhàn)BB-8機器人控制測試與轉(zhuǎn)發(fā)工具

小凌派手勢應用之原力控制星球大戰(zhàn)BB-8機器人實例

人氣超高的星球大戰(zhàn)之BB-8機器人

星球大戰(zhàn)系列電影之中,有兩個少有的幾乎出現(xiàn)于所有星球大戰(zhàn)系列電影的角色,那就是R2-D2和C-3PO

而在2015年的宇宙史詩電影《STAR WARS:原力覺醒》中登場的BB-8球型機器人,雖然是后輩,但其熱度,快速趕超兩位前輩,成為鐵桿星戰(zhàn)迷的最愛之一

萬萬沒想到,接手星球大戰(zhàn)的迪斯尼,居然推出了同款玩具

狠狠的掏了我這個老星戰(zhàn)迷的腰包。如果上天再給我一次機會,我一定不會后悔第一時間搶到了BB-8機器人!??!

c2526fa0-dada-11ec-b80f-dac502259ad0.jpg

c286efa0-dada-11ec-b80f-dac502259ad0.gif

控制BB-8機器人的服務(wù)工具

通常情況下,要控制BB-8,需要使用專門的手機App,或者使用Sphero的開發(fā)工具。

operasoftware/bb8 實現(xiàn)了一個網(wǎng)頁界面的基礎(chǔ)控制功能,HonestQiao/bb8 在此基礎(chǔ)上進行了完善,增加了方向鍵按鍵控制功能,并實現(xiàn)了WebSocket、MQTT支持,從而使得其他設(shè)備,可以通過WebSocket和MQTT,來間接控制BB-8。

進一步的,我開發(fā)了轉(zhuǎn)發(fā)工具,為 HonestQiao/bb8 提供完整WEB運行環(huán)境,并對外提供TCP Socket、WebSocket、MQTT控制能力,任何能夠使用TCP Socket、WebSocket、MQTT的設(shè)備、程序等,均可以控制BB-8。

關(guān)于該工具的具體使用,可以查看:星球大戰(zhàn)BB-8機器人控制測試與轉(zhuǎn)發(fā)工具

網(wǎng)頁控制界面:

c2df869c-dada-11ec-b80f-dac502259ad0.png

指令轉(zhuǎn)發(fā)界面:

c316cc9c-dada-11ec-b80f-dac502259ad0.png

最終,小凌派RK2206開發(fā)板將會通過MQTT,根據(jù)識別到的手勢,發(fā)送對應的指令給BB-8,從而控制BB-8機器人。


小凌派RK2206開發(fā)板之智能手勢

關(guān)于開發(fā)板對智能手勢的具體支持,可以查看: 小凌派-RK2206開發(fā)板E53模塊開發(fā)——智能手勢

c3617134-dada-11ec-b80f-dac502259ad0.png

該智能手勢擴展板能夠識別的手勢,有上下左右、靠近/離開、順時針、逆時針、擺動。

其具體的代碼,在 vendor / lockzhiner / rk2206 / samples / c6_e53_gesture_sensor 目錄中,我們可以查看具體的處理細節(jié):

c3ad156c-dada-11ec-b80f-dac502259ad0.png

在該代碼中,通過 e53_gs_get_gesture_state()接口函數(shù),從手勢傳感器PAJ7620U2讀取當前識別到的手勢,然后輸出,并點亮擴展板上對應的LED。

在后續(xù)的代碼中,將會基于上面的代碼,使用上下左右控制BB-8的運動,使用靠近來變換BB-8的燈光顏色。

小凌派之OpenHarmony無線聯(lián)網(wǎng)

在RK2206開發(fā)板OpenHarmony的samples中,沒有直接提供WIFi連接的實例。

從 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 中,我們可以得到對應的調(diào)用處理方式,實際上,只要下面一行代碼,就會自動啟用WiFi連接功能:

SetWifiModeOn();

該接口具體定義,在如下代碼中:

c3e93de4-dada-11ec-b80f-dac502259ad0.png

我們還需要到該文件的頭部,修改SSID和PASSWORD的定義,就是我們要連接的無線的名稱和密碼:

c43101ba-dada-11ec-b80f-dac502259ad0.png

設(shè)置好對應的SSID和PASSWORD,在我們的代碼中,調(diào)用SetWifiModeOn(),就能具有網(wǎng)絡(luò)功能了。

小凌派之OpenHarmony MQTT連接

在 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 中,我們可以了解到使用mqtt服務(wù)的細節(jié):

c492703a-dada-11ec-b80f-dac502259ad0.png

在上述代碼,我們重點關(guān)注如下的接口調(diào)用:

NetworkInit(&network):初始化網(wǎng)絡(luò)句柄

NetworkConnect(&network, "192.168.0.107", 1883):連接到mqtt服務(wù)端口

MQTTClientinit(&client, &network...):初始化MQTT CLient

MQTTConnect(&client, &data):開啟MQTT服務(wù)

MQTTSubscribe(&client, "substopic"...):訂閱TOPIC,用于接收

MQTTPublish(&client, "IOT_MQTT", &message):發(fā)布TOPIC,用于發(fā)送數(shù)據(jù)

通過這些接口,我們就能夠使用MQTT服務(wù)來收發(fā)數(shù)據(jù)了。

在使用MQTT服務(wù)之前,我們需要先有mqtt服務(wù)端,通常有下面的兩種方式:

使用EMQX提供的公共服務(wù):一文了解主流在線公共 MQTT 服務(wù)器

自己建立,可以見參考 快速開始使用 EMQX

獲得MQTT服務(wù)端后,我們可以使用如下的工具進行測試:

c4e03a68-dada-11ec-b80f-dac502259ad0.jpg

其具體使用,可查看上述的 快速開始使用 EMQX。

配置并編譯 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 下載到開發(fā)板以后,我們可以在MQTT客戶端,給 substopic 這個主題發(fā)送指令,開發(fā)板就會收到;同時,如果訂閱 IOT_MQTT ,就能收到開發(fā)板發(fā)送出來的信息了。

小凌派手勢控制BB-8機器人

在以上智能手勢識別、WiFi聯(lián)網(wǎng)、MQTT使用的基礎(chǔ)上,我們就可以結(jié)合起來,進行BB-8的控制了。核心控制部分的代碼如下:

c52b2500-dada-11ec-b80f-dac502259ad0.jpg

在上述代碼中,通過手勢傳感器,獲得當前的手勢,如果檢測到了上下左右手勢,就發(fā)送move指令;如果檢測到了靠近手勢,就發(fā)送color指令。

控制BB-8時,使用的MQTT的TOPIC為device/BB-8/command,可以通過MQTT客戶端給該TOPIC發(fā)送指令,檢查控制是否生效。

BB-8受控運動時,使用的是直角坐標系,以默認中心點(150,150)為基礎(chǔ)在第一象限運動,發(fā)送移動后的坐標,其離中心點越遠,則移動的速度越快,時間越長。

因此,根據(jù)識別到的手勢,具體設(shè)置的情況如下:

上:x保持不變,y-=50,發(fā)送move指令

下:x保持不變,y+=50,發(fā)送move指令

左:y保持不變,x-=50,發(fā)送move指令

右:y保持不變,x+=50,發(fā)送move指令

靠近:燈光顏色索引c_idx++,發(fā)送color指令

詳細的完整代碼實例,可以查看:小凌派手勢應用之原力控制星球大戰(zhàn)BB-8機器人實例

通過以上的各項關(guān)聯(lián),我們就可以像星球大戰(zhàn)中的絕地大師那樣,使用原力,隔空御物,控制BB-8機器人啦。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    210

    文章

    28011

    瀏覽量

    205604
收藏 人收藏

    評論

    相關(guān)推薦

    談?wù)?b class='flag-5'>創(chuàng)意設(shè)計中的AI、AGI、AIGC

    將從創(chuàng)意設(shè)計的角度,深入探討AI、AGI、AIGC在這一領(lǐng)域的重要性和價值。 人工智能(Artificial Intelligence, AI) 人工智能(AI)作為一種模擬人類智能的技術(shù),已經(jīng)在創(chuàng)意設(shè)計領(lǐng)域展現(xiàn)出了巨大的潛力 。通過
    的頭像 發(fā)表于 07-01 18:20 ?600次閱讀
    談?wù)?b class='flag-5'>創(chuàng)意設(shè)計</b>中的AI、AGI、AIGC

    基于飛嵌入式RK3568J核心板的工業(yè)機器人控制器應用方案

    加強和擴大現(xiàn)有市場份額,更要在細分市場中發(fā)掘新的增長動力,以適應更加激烈的市場競爭環(huán)境。 飛嵌入式作為一家專注嵌入式核心控制系統(tǒng)研發(fā)與制造的高新技術(shù)企業(yè),經(jīng)過多年的研發(fā)與積累,產(chǎn)品已廣泛應用于機器人
    發(fā)表于 05-11 09:40

    用于AGV物流機器人的愛普生陀螺儀傳感器XV7000系列:XV7001BB,XV7011BB

    適用于AGV物流機器人的愛普生陀螺儀傳感器XV7000系列:XV7001BB,XV7011BB。以前我們都知道XV7001BB,XV7011BB
    的頭像 發(fā)表于 04-02 13:53 ?439次閱讀
    用于AGV物流<b class='flag-5'>機器人</b>的愛普生陀螺儀傳感器XV7000系列:XV7001<b class='flag-5'>BB</b>,XV7011<b class='flag-5'>BB</b>

    【開源項目】Emo:基于樹莓 4B DIY 能笑會動的桌面機器人

    Emo是一款基于樹莓4做的個人伴侶機器人,集時尚與創(chuàng)新于一身。它不僅僅是一款機器人,更是一個活生生的存在,與其他機器人不同,它擁有獨特的個性和情感。 硬件部分 樹莓
    發(fā)表于 12-26 15:18

    基于導納控制機器人拖動示教原理和實現(xiàn)步驟

    基于導納控制機器人拖動示教是一種常用的機器人控制策略,它允許機器人直接互動,實現(xiàn)自然、直觀
    的頭像 發(fā)表于 12-04 09:48 ?4912次閱讀
    基于導納<b class='flag-5'>控制</b>的<b class='flag-5'>機器人</b>拖動示教原理和實現(xiàn)步驟

    什么是機器人 優(yōu)點有哪些

    (1)什么是機器人? 機器人(force-controlled robot)是指一類具有力控制能力的
    的頭像 發(fā)表于 11-14 14:43 ?843次閱讀

    控制如何準確地控制機器人的力矩輸出

    控制的關(guān)鍵問題是如何準確地控制機器人或力矩輸出,以滿足特定的任務(wù)需求。以下是一些與
    的頭像 發(fā)表于 11-09 17:26 ?779次閱讀

    機器人阻抗控制實現(xiàn)規(guī)律

    與運動的角度,阻抗控制實現(xiàn)規(guī)律可以總結(jié)如下: 1. 與位移關(guān)系:阻抗控制通過建立與位移之間的關(guān)系來實現(xiàn)
    的頭像 發(fā)表于 11-09 16:45 ?463次閱讀

    機器人阻抗控制的勢與流

    機器人是一種能夠感知和控制外部或力矩作用的機器人系統(tǒng)。它具有實時感知和響應外部的能力,通
    的頭像 發(fā)表于 11-09 16:25 ?381次閱讀

    機器人導納控制框架

    導納控制框架: /力矩傳感器:用于測量機器人與環(huán)境之間的和力矩。 導納控制器:根據(jù)傳感器測量值和期望的
    的頭像 發(fā)表于 11-09 16:12 ?943次閱讀
    <b class='flag-5'>力</b>控<b class='flag-5'>機器人</b>導納<b class='flag-5'>控制</b>框架

    機器人控制方法的框架及其性能分析

    機器人常采用柔順控制算法與人/環(huán)境/機器人之間進行直接或間接的物理交互,那么,柔順控制能夠操縱被控系統(tǒng)的柔性特性和動態(tài)行為,實現(xiàn)方式可以
    的頭像 發(fā)表于 11-09 15:59 ?1081次閱讀
    <b class='flag-5'>力</b>控<b class='flag-5'>機器人</b><b class='flag-5'>控制</b>方法的框架及其性能分析

    機器人控制框架和性能評估

    機器人是一種能夠基于外部力量進行控制和交互的機器人系統(tǒng)。與傳統(tǒng)的位置控制機器人相比,
    的頭像 發(fā)表于 11-09 15:54 ?480次閱讀

    機器人阻抗控制有幾種方法

    在工業(yè)機器人中,阻抗控制是一種非常重要的控制方法,主要用于控制機器人和位。通過調(diào)整阻抗,
    的頭像 發(fā)表于 11-08 18:08 ?1320次閱讀
    <b class='flag-5'>機器人</b>阻抗<b class='flag-5'>控制</b>有幾種方法

    搭建機器人關(guān)節(jié)控制系統(tǒng)步驟

    搭建機器人關(guān)節(jié)控制系統(tǒng)需要以下步驟: 1. 選擇合適的電機和傳感器。電機的選取要符合機器人的要求,例如扭矩和速度范圍。傳感器的選擇則取決于需要監(jiān)測的參數(shù),如位置、速度和力量。 2.
    的頭像 發(fā)表于 11-08 17:45 ?818次閱讀

    機器人是干什么的

    機器人是一種能夠感知力量并具有實時控制能力的機器人系統(tǒng)。 它們可以在與人類進行精準協(xié)作和合作時,將傳感技術(shù)(Force Sensing
    的頭像 發(fā)表于 11-08 17:25 ?1003次閱讀