Python RoboMaster EP 教程—与机器人建立连接

                     

贡献者: 落羽清玄

预备知识 Python 基础

   Robomaster EP 支持 3 种与计算机连接的方式:WiFi 直连模式,WiFi 组网模式和 USB(RNDIS) 连接模式。

1. WIFI 直连

   通过将机器人设置为直连模式,并连接机器人的 Wi-Fi 热点进行接入(智能中控顶部有热点名称与密码),Wi-Fi 直连模式下,机器人默认 IP 为 192.168.2.1。

   开启机器人电源,切换智能中控的连接模式开关至 直连模式,如图 1 所示:

图
图 1:直连模式

   输入以下代码,可以测验是否连接

from robomaster import robot

import robomaster

if __name__ == '__main__':
    # 如果本地IP 自动获取不正确,手动指定本地IP地址
    # robomaster.config.LOCAL_IP_STR = "本地IP地址"
    
    # 在程序内实例化Robot对象
    ep_robot = robot.Robot()

    # 程序与机器人联网,并指定连接方式为AP 直连模式
    ep_robot.initialize(conn_type='ap')

    version = ep_robot.get_version()
    # 输出机器人固件版本号信息
    print("Robot version: {0}".format(version))
    # 关闭机器人
    ep_robot.close()

   运行结果:

Robot Version: xx.xx.xx.xx

2. USB 连接

   通过机器人的智能中控上的 USB 端口接入(机器人默认 IP 为 192.168.42.2)

   USB 连接模式,实质上是使用 RNDIS 协议,将机器人上的 USB 设备虚拟为一张网卡设备,通过 USB 发起 TCP/IP 连接更多 RNDIS 内容请参见RNDIS Wikipedia

图
图 2:树莓派连接示意图

from robomaster import robot

import robomaster

if __name__ == '__main__':
    # 在程序内实例化Robot对象
    ep_robot = robot.Robot()

    # 程序与机器人联网,并指定连接方式为USB RNDIS模式
    ep_robot.initialize(conn_type='rndis')

    version = ep_robot.get_version()
    # 输出机器人固件版本号信息
    print("Robot version: {0}".format(version))
    # 关闭机器人
    ep_robot.close()

   运行结果:

Robot Version: xx.xx.xx.xx

3. 组网连接

   通过将机器人设置为组网模式,并将计算设备与机器人加入到同一个局域网内,实现组网连接。

   开启机器人电源,切换智能中控的连接模式开关至 组网模式,如图 3 所示:

图
图 3:组网模式

   安装 myqr 库生成二维码,按 win+r,在弹出窗口中输入 cmd 打开命令提示符界面,在命令行里面输入:

pip install myqr

   生成图片:

from robomaster import conn
from MyQR import myqr
from PIL import Image

import time
import robomaster

QRCODE_NAME = "qrcode.png"

if __name__ == '__main__':

    helper = conn.ConnectionHelper()
    info = helper.build_qrcode_strin(ssid="Wifi 名称", password="Wifi 密码")
    myqr.run(words=info)
    time.sleep(1)
    img = Image.open(QRCODE_NAME)
    img.show()
    if helper.wait_for_connection():
        print("Connected!")
    else:
        print("Connect failed!")

   按下机器人智能中控上的扫码连接按键,扫描二维码进行组网连接。

图
图 4

   成功连接时,运行结果:

Connected!

   同时机器人的灯效变为白色呼吸变为青绿色常亮。

   支持在组网模式下通过 SN 连接指定的机器人,用户通过在初始化时给 sn 参数赋值完成对机器人 sn 的输入。在不指定 sn 时,SDK 默认与搜索到的第一台机器人建立连接。

from robomaster import robot
from robomaster import config


if __name__ == '__main__':
    # 在程序内实例化Robot对象
    ep_robot = robot.Robot()

    # 程序与机器人联网,并指定连接方式为组网连接,且指定机器人的 SN 号
    ep_robot.initialize(conn_type="sta", sn="3JKDH2T001ULTD")

    # 输出机器人固件版本号信息
    ep_version = ep_robot.get_version()
    print("Robot Version: {0}".format(ep_version))

    # 关闭机器人
    ep_robot.close()


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利