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()

                     

© 小时科技 保留一切权利