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

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

3天内不再提示

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

福州市凌睿智捷电子有限公司 2022-06-14 11:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在上一篇文章中,分享了 小凌派隔空操作迪文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机器人控制测试与转发工具

网页控制界面:

645b3680-e736-11ec-a2f4-dac502259ad0.png

指令转发界面:

64a3c850-e736-11ec-a2f4-dac502259ad0.png

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


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

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

64edc432-e736-11ec-a2f4-dac502259ad0.png

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

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

653cdf22-e736-11ec-a2f4-dac502259ad0.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();

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

65835b32-e736-11ec-a2f4-dac502259ad0.png

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

65d3ea70-e736-11ec-a2f4-dac502259ad0.png

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

小凌派之OpenHarmony MQTT连接

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

6606c9ae-e736-11ec-a2f4-dac502259ad0.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服务端后,我们可以使用如下的工具进行测试:

663c7ffe-e736-11ec-a2f4-dac502259ad0.jpg

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

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

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

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

66735e0c-e736-11ec-a2f4-dac502259ad0.jpg

在上述代码中,通过手势传感器,获得当前的手势,如果检测到了上下左右手势,就发送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机器人啦。

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

    关注

    0

    文章

    28

    浏览量

    1645
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么说关节扭矩传感器是高端机器人的“触觉神经”?

    “盲动”变成“感知运动” 普通机器人靠编码器控制位置,只能“按死命令走”。而关节扭矩传感器实时测量每个关节受到的扭转,精度可达0.01牛米,采样频率高达1000赫兹(每秒反馈1000次)。这相当于
    发表于 04-17 17:27

    为何你的机器人手臂“知觉”存在偏差?探秘传感器的奥秘

    假如你操作过机械臂,或者在工厂里调试过用于精密装配、抛光的机器人,一定碰到过这种怪事:明明让机械臂空载停在空中,周围啥也没碰,可传感器上的读数却显示有好几牛顿的,甚至还带着不小的扭矩。这种感觉
    发表于 04-13 15:25

    再谈低温烧结银的应用:从春晚四家机器人出镜的幕后推手说起

    科技:《武 BOT》:H2机器人31个高精度关节、单臂7自由度,完成醉拳、双截棍、舞剑,同步误差**< 0.1秒;核心是高功率密度伺服电机+高速控制+**强散热。 **魔法原子:《智造
    发表于 02-17 14:07

    机器人内部零配件的生产加工厂从哪找?

    ≤352000 个 /m³,温度控制在 22-24℃,湿度 45%-65%。 虽然机器人配件不属于医疗器械,但其作为高精度接触类产品,同样需要严格的清洁生产标准。东莞市存科技有限公司借鉴医疗器械加工的高标准
    发表于 12-09 18:22

    高精度机器人控制的核心——基于 MYD-LT536 开发板的精密运动控制方案

    处理器,支持 1.8 GHz 主频,并集成2Tops NPU、G2D、VPU 4K高清视频编解码器,为复杂控制算法与视觉融合计算提供充足算。米尔MYD-LT536开发板 在“高精度机器人
    发表于 11-14 15:48

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    ?RK3576的强大并非偶然,其架构设计完美契合了现代机器人的核心需求:· 强大的异构计算与AI能力:内置的NPU为机器人的视觉AI算法(如SLAM、行为识别、手势交互)提供了强劲的算
    发表于 10-29 16:41

    机器人竞技幕后:磁传感器芯片激活 “精准感知

    2025 世界人形机器人运动会于 8 月 17 日圆满收官,赛场上机器人在跑步、跳跃、抓取等项目中的精彩表现,背后是运动控制、环境感知等技术的迭代升级。而在这些技术中,磁传感器芯片凭借
    发表于 08-26 10:02

    客户案例分享 | 科LP系列工业级连接器用于人形机器人

    工业级连接器用于人形机器人图中连接器为科LP系列产品应用案例分享项目名称:人形机器人应用产品:LP系列3芯与7芯连接器功能简述:为人形机器人提供电源与信号传输支持
    的头像 发表于 08-01 18:27 995次阅读
    客户案例分享 | <b class='flag-5'>凌</b>科LP系列工业级连接器用于人形<b class='flag-5'>机器人</b>

    海默RC系列机器人控制

    海默协作机器人与焊接机器人控制器HARMOROBOTICS控制器作为工业机器人的三大核心零部件之一,也是工业
    的头像 发表于 08-01 15:35 1315次阅读
    海默RC系列<b class='flag-5'>机器人</b><b class='flag-5'>控制</b>器

    工业机器人的特点

    好的程序,机器人的产出很稳定。 此外,工业机器人的使用是实现自动化生产的关键一步。麦肯锡预计自动化可以使全球生产年化增长率达0.8%至1.4%。相对而言,1850-1910年间的蒸汽机革命带来的不过是
    发表于 07-26 11:22

    通过vmRT-Thread和ROS2赋能机器人智能开发

    随着机器人技术的快速迭代升级,协作机器人、复合移动机器人和人形机器人等新兴应用场景对实时控制与智能决策的深度融合提出了迫切需求。然而,当前
    的头像 发表于 06-09 09:23 1740次阅读
    通过vmRT-Thread和ROS2赋能<b class='flag-5'>机器人</b>智能开发

    能够精准定位的树莓机器人

    我为我的自制机器人BigRob(同样由树莓驱动)配备了基于树莓的精准GPS导航系统。本项目所用组件硬件组件NV08C-CSMx1NV08C-CSM是一款集成式卫星导航接收器树莓
    的头像 发表于 05-17 08:33 1495次阅读
    能够精准定位的树莓<b class='flag-5'>派</b><b class='flag-5'>机器人</b>!

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算-电子发烧友网机器人开发套件 Kria KR260
    发表于 05-13 15:02

    树莓“复活”我的世界爬行者,现实版“噩梦”机器人诞生!

    关系增添了新意。利用我们喜爱的单板计算机(SBC),Lopez打造了一款依赖于树莓的爬行者机器人,并且甚至集成了人工智能。别担心,这个爬行者机器人并不会真的爆炸。
    的头像 发表于 05-07 17:31 761次阅读
    树莓<b class='flag-5'>派</b>“复活”我的世界爬行者,现实版“噩梦”<b class='flag-5'>机器人</b>诞生!

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    ROS的全称:Robot Operating System 机器人操作系统 ROS的 目的 :ROS支持通用库,是通信总线,协调多个传感器 为了解决机器人里各厂商模块不通用的问题,让机器人快速开发
    发表于 04-30 01:05