0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小凌派手势应用之原力控制星球大战BB-8机器人实例

科技绿洲 来源:凌智电子 作者:凌智电子 2022-05-12 10:30 次阅读

在上一篇文章中,分享了 小凌派隔空操作迪文COF智能屏 ,这次再给大家分享一个更有趣的智能手势应用----小凌派RK2206鸿蒙开发板赋予你原力,隔空控制星球大战BB-8机器人

在这篇文章中,你将会了解到如下的信息

人气超高的星球大战之BB-8机器人

控制BB-8机器人的服务工具

小凌派RK2206开发板之智能手势

小凌派之OpenHARMony 无线联网

小凌派之OpenHarmony MQTT连接

小凌派手势控制BB-8机器人

本文中,涉及到的代码全部开源,代码库如下:

BB-8 网页控制界面

星球大战BB-8机器人控制测试与转发工具

小凌派手势应用之原力控制星球大战BB-8机器人实例

人气超高的星球大战之BB-8机器人

星球大战系列电影之中,有两个少有的几乎出现于所有星球大战系列电影的角色,那就是R2-D2和C-3PO:

而在2015年的宇宙史诗电影《STAR WARS:原力觉醒》中登场的BB-8球型机器人,虽然是后辈,但其热度,快速赶超两位前辈,成为铁杆星战迷的最爱之一:

万万没想到,接手星球大战的迪斯尼,居然推出了同款玩具:

狠狠的掏了我这个老星战迷的腰包。如果上天再给我一次机会,我一定不会后悔第一时间抢到了BB-8机器人!!!

控制BB-8机器人的服务工具

通常情况下,要控制BB-8,需要使用专门的手机App,或者使用Sphero的开发工具。

operasoftware/bb8 实现了一个网页界面的基础控制功能,HonestQiao/bb8 在此基础上进行了完善,增加了方向键按键控制功能,并实现了WebSocket、MQTT支持,从而使得其他设备,可以通过WebSocket和MQTT,来间接控制BB-8。

进一步的,我开发了转发工具,为 HonestQiao/bb8 提供完整WEB运行环境,并对外提供TCP Socket、WebSocket、MQTT控制能力,任何能够使用TCP Socket、WebSocket、MQTT的设备、程序等,均可以控制BB-8。

关于该工具的具体使用,可以查看:星球大战BB-8机器人控制测试与转发工具

网页控制界面:

pYYBAGJ8cHyASZ69AAEFwYEzuYU337.png

指令转发界面:

poYBAGJ8cIWAOyamAACmWya7JFM007.png

最终,小凌派RK2206开发板将会通过MQTT,根据识别到的手势,发送对应的指令给BB-8,从而控制BB-8机器人。

,时长00:12

小凌派RK2206开发板之智能手势

关于开发板对智能手势的具体支持,可以查看: 小凌派-RK2206开发板E53模块开发——智能手势

poYBAGJ8cI6ASeqpAAGLaQBsNVs561.png

该智能手势扩展板能够识别的手势,有上下左右、靠近/离开、顺时针、逆时针、摆动。

其具体的代码,在 vendor / lockzhiner / rk2206 / samples / c6_e53_gesture_sensor 目录中,我们可以查看具体的处理细节:

poYBAGJ8cJaAHRmGAAGh8N_ob1w669.png

在该代码中,通过 e53_gs_get_gesture_state()接口函数,从手势传感器PAJ7620U2读取当前识别到的手势,然后输出,并点亮扩展板上对应的LED

在后续的代码中,将会基于上面的代码,使用上下左右控制BB-8的运动,使用靠近来变换BB-8的灯光颜色。

小凌派之OpenHarmony无线联网

在RK2206开发板OpenHarmony的samples中,没有直接提供WIFi连接的实例。

从 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 中,我们可以得到对应的调用处理方式,实际上,只要下面一行代码,就会自动启用WiFi连接功能:

SetWifiModeOn();

该接口具体定义,在如下代码中:

poYBAGJ8cKaAe0pTAAFYsIMzj-Q374.png

我们还需要到该文件的头部,修改SSID和PASSWORD的定义,就是我们要连接的无线的名称和密码:

poYBAGJ8cLOAf9L3AAC1D42VfAY397.png

设置好对应的SSID和PASSWORD,在我们的代码中,调用SetWifiModeOn(),就能具有网络功能了。

小凌派之OpenHarmony MQTT连接

在 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 中,我们可以了解到使用mqtt服务的细节:

pYYBAGJ8cMeAMIZuAAEqgo0CVX8376.png

在上述代码,我们重点关注如下的接口调用:

NetworkInit(&network):初始化网络句柄

NetworkConnect(&network, “192.168.0.107”, 1883):连接到mqtt服务端口

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

MQTTConnect(&client, &data):开启MQTT服务

MQTTSubscribe(&client, “substopic”。..):订阅TOPIC,用于接收

MQTTPublish(&client, “IOT_MQTT”, &message):发布TOPIC,用于发送数据

通过这些接口,我们就能够使用MQTT服务来收发数据了。

在使用MQTT服务之前,我们需要先有mqtt服务端,通常有下面的两种方式:

使用EMQX提供的公共服务:一文了解主流在线公共 MQTT 服务器

自己建立,可以见参考 快速开始使用 EMQX

获得MQTT服务端后,我们可以使用如下的工具进行测试:

pYYBAGJ8cQqAGGzKAAChn-TpPOs068.png

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

配置并编译 vendor / lockzhiner / rk2206 / samples / d1_iot_mqtt 下载到开发板以后,我们可以在MQTT客户端,给 substopic 这个主题发送指令,开发板就会收到;同时,如果订阅 IOT_MQTT ,就能收到开发板发送出来的信息了。

小凌派手势控制BB-8机器人

在以上智能手势识别、WiFi联网、MQTT使用的基础上,我们就可以结合起来,进行BB-8的控制了。核心控制部分的代码如下:

pYYBAGJ8cRKAXbOUAAGkQhEwgyU253.png

在上述代码中,通过手势传感器,获得当前的手势,如果检测到了上下左右手势,就发送move指令;如果检测到了靠近手势,就发送color指令。

控制BB-8时,使用的MQTT的TOPIC为device/BB-8/command,可以通过MQTT客户端给该TOPIC发送指令,检查控制是否生效。

BB-8受控运动时,使用的是直角坐标系,以默认中心点(150,150)为基础在第一象限运动,发送移动后的坐标,其离中心点越远,则移动的速度越快,时间越长。

因此,根据识别到的手势,具体设置的情况如下:

上:x保持不变,y-=50,发送move指令

下:x保持不变,y+=50,发送move指令

左:y保持不变,x-=50,发送move指令

右:y保持不变,x+=50,发送move指令

靠近:灯光颜色索引c_idx++,发送color指令

详细的完整代码实例,可以查看:小凌派手势应用之原力控制星球大战BB-8机器人实例

通过以上的各项关联,我们就可以像星球大战中的绝地大师那样,使用原力,隔空御物,控制BB-8机器人啦。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28068

    浏览量

    205762
  • 代码
    +关注

    关注

    30

    文章

    4717

    浏览量

    68196
  • 智能手势
    +关注

    关注

    0

    文章

    2

    浏览量

    9553
  • 小凌派
    +关注

    关注

    0

    文章

    27

    浏览量

    1187
收藏 人收藏

    评论

    相关推荐

    基于导纳控制机器人拖动示教原理和实现步骤

    是关键因素。导纳控制系统应该能够在外部干扰和变化的情况下保持稳定,避免不稳定或振荡。      7.平衡:导纳控制力求维持平衡,
    的头像 发表于 10-23 15:52 82次阅读

    基于飞嵌入式RK3568J核心板的工业机器人控制器应用方案

    加强和扩大现有市场份额,更要在细分市场中发掘新的增长动力,以适应更加激烈的市场竞争环境。 飞嵌入式作为一家专注嵌入式核心控制系统研发与制造的高新技术企业,经过多年的研发与积累,产品已广泛应用于机器人
    发表于 05-11 09:40

    用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列:XV7001BB,XV7011BB

    适用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列:XV7001BB,XV7011BB。以前我们都知道XV7001BB,XV7011BB
    的头像 发表于 04-02 13:53 459次阅读
    用于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做的个人伴侣机器人,集时尚与创新于一身。它不仅仅是一款机器人,更是一个活生生的存在,与其他机器人不同,它拥有独特的个性和情感。 硬件部分 树莓
    发表于 12-26 15:18

    基于导纳控制机器人拖动示教原理和实现步骤

    基于导纳控制机器人拖动示教是一种常用的机器人控制策略,它允许机器人直接互动,实现自然、直观
    的头像 发表于 12-04 09:48 5076次阅读
    基于导纳<b class='flag-5'>控制</b>的<b class='flag-5'>机器人</b>拖动示教原理和实现步骤

    什么是机器人 优点有哪些

    (1)什么是机器人机器人(force-controlled robot)是指一类具有力控制能力的
    的头像 发表于 11-14 14:43 869次阅读

    控制如何准确地控制机器人的力矩输出

    控制的关键问题是如何准确地控制机器人或力矩输出,以满足特定的任务需求。以下是一些与
    的头像 发表于 11-09 17:26 803次阅读

    机器人阻抗控制实现规律

    与运动的角度,阻抗控制实现规律可以总结如下: 1. 与位移关系:阻抗控制通过建立与位移之间的关系来实现
    的头像 发表于 11-09 16:45 482次阅读

    机器人阻抗控制的势与流

    机器人是一种能够感知和控制外部或力矩作用的机器人系统。它具有实时感知和响应外部的能力,通
    的头像 发表于 11-09 16:25 391次阅读

    机器人导纳控制框架

    导纳控制框架: /力矩传感器:用于测量机器人与环境之间的和力矩。 导纳控制器:根据传感器测量值和期望的
    的头像 发表于 11-09 16:12 983次阅读
    <b class='flag-5'>力</b>控<b class='flag-5'>机器人</b>导纳<b class='flag-5'>控制</b>框架

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

    机器人常采用柔顺控制算法与人/环境/机器人之间进行直接或间接的物理交互,那么,柔顺控制能够操纵被控系统的柔性特性和动态行为,实现方式可以
    的头像 发表于 11-09 15:59 1134次阅读
    <b class='flag-5'>力</b>控<b class='flag-5'>机器人</b><b class='flag-5'>控制</b>方法的框架及其性能分析

    机器人控制框架和性能评估

    机器人是一种能够基于外部力量进行控制和交互的机器人系统。与传统的位置控制机器人相比,
    的头像 发表于 11-09 15:54 501次阅读

    机器人阻抗控制有几种方法

    在工业机器人中,阻抗控制是一种非常重要的控制方法,主要用于控制机器人和位。通过调整阻抗,
    的头像 发表于 11-08 18:08 1353次阅读
    <b class='flag-5'>机器人</b>阻抗<b class='flag-5'>控制</b>有几种方法

    搭建机器人关节控制系统步骤

    搭建机器人关节控制系统需要以下步骤: 1. 选择合适的电机和传感器。电机的选取要符合机器人的要求,例如扭矩和速度范围。传感器的选择则取决于需要监测的参数,如位置、速度和力量。 2.
    的头像 发表于 11-08 17:45 833次阅读

    机器人是干什么的

    机器人是一种能够感知力量并具有实时控制能力的机器人系统。 它们可以在与人类进行精准协作和合作时,将传感技术(Force Sensing
    的头像 发表于 11-08 17:25 1021次阅读