Skip to main content

配置ESP32开发板烧录软件

烧录镜像

参见一键制卡章节烧录镜像,将SD卡插入开发者套件的卡槽,当前样例仅在Ubuntu OS适配验证过,未在openEuler OS适配验证,推荐烧录Ubuntu OS镜像。

父主题: 运行环境准备

连接路由器

  1. 确保路由器和开发者套件已按78中所述连接。
  2. 使用PC连接车载无线路由器提供的WiFi,SSID为GL-MT300N-V2-177。
  3. 参见[通过路由器联网](https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Hardware Interfaces/hiug/hiug_0013.html),查询开发者套件IP地址。
  4. 使用root用户(默认密码为Mind@123)远程登录开发者套件,登录IP为3中查询到的IP。

父主题: 运行环境准备

配置ESP32开发板烧录软件

Arduino是一套便捷、灵活、容易上手的硬件开发平台,它包括多种型号的Arduino控制电路板和专用编程开发软件,能帮助用户快速的开发出智能硬件原型。

  1. 进入Arduino官网下载程序安装包“arduino-ide_version_Windows_64bit.exe”,并按照默认配置安装。

  2. 双击打开软件,修改语言为中文。

    1. 单击“File > Preferences”,如图1所示。

      图1 软件菜单

    2. 单击“Language”下拉菜单,选择“中文(简体)”,如图2所示。单击OK保存后工具会自动重启,重启后为中文界面。

      图2 修改语言

  3. 安装ESP32开发板。

    1. 单击“文件 > 首选项”,如图3所示。

      图3 中文软件菜单

    2. 在“其他开发板管理器地址”中输入“https://www.arduino.cn/package_esp32_index.json”与“https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json”或单击

      图标在文本框中输入开发板管理器地址,单击确定保存,如图4所示。

      图4 添加开发板管理器地址

    3. 离线安装ESP32开发板,单击[链接](https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas 200I DK A2/DevKit/samples/23.0.RC1/e2e-samples/Car/esp32_package_2.0.6_arduinome.exe)下载Arduino的ESP32开发板安装包,下载完成后双击安装文件进行默认安装,安装完成后重启Arduino IDE。

      图5 通过离线包安装ESP32开发板

    4. 在“开发板”中选择ESP32开发板,如图6所示。

      图6 选择开发板

      :::note 说明 此步骤中安装ESP32组件,推荐使用离线安装的方式,用户也可以自行搜索在线安装的方法,但由于国内网络等问题,在线安装过程很可能会非常慢甚至安装失败。 :::

  4. 用USB数据线连接PC和ESP32开发板,单击“工具 > 端口”,选择新增的COM串行端口作为Arduino与ESP32开发板传输数据的通道,如图7所示。

    图7 选择串口

    :::note 说明 若没有出现COM串行端口,可能是由于电脑没有安装USB串口驱动,需自行下载并安装CH340驱动工具。 :::

父主题: 运行环境准备

获取代码

获取代码

  • 获取ESP32开发板代码。

    获取链接,单击链接下载样例代码压缩包“ascend-devkit-master.zip”到PC并解压获得ESP32开发板的代码目录“ascend-devkit-master\src\E2E-Sample\Car\ESP32”。

  • 获取小车项目代码。

    1. 远程登录开发者套件,进入“/usr/local”目录运行脚本拉取代码。

      cd /usr/local
    2. 运行脚本拉取代码。

      bash E2E_samples_download_tool.sh -d download_destination_path -s source_repository -b branch target_path

      参数说明:

      • -d:指定代码的下载路径。
      • -s:指定开源仓库的clone url。
      • -b:指定开源仓库分支名称及待下载的项目目录。
      • -f:强制更新下载路径中的目录。当样例目录已删除,但重新下载时提示“Already up to date”时可使用此参数。

      命令示例:

      bash E2E_samples_download_tool.sh -d /home/HwHiAiUser/E2ESamples -s https://gitee.com/HUAWEI-ASCEND/ascend-devkit.git -b master src/E2E-Sample/Car/

      回显如下:

      Download E2E samples successfully!

      执行完成后,会在“/home/HwHiAiUser/E2Esamples”目录下生成“src/E2E-Sample/Car/”目录。

配置功能库文件

将Car/ESP32/下的“ESP32_Servo.cpp”、“ESP32_Servo.h”、“RL_ESP32_Motor.cpp”、“RL_ESP32_Motor.h”四个文件复制到Arduino库文件路径下,例如:“C:\Users\10459\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32”。

烧录代码到ESP32开发板

  1. 在PC使用Arduino工具单击“文件>打开”按钮,选择“Car/ESP32/car_ctrl_esp32.ino”文件打开。

    图1 打开脚本

  2. 在Arduino工具中单击

    按钮烧录控制代码至ESP32单片机,如图2图3所示。

    图2 烧录代码

    图3 烧录回显

父主题: 运行环境准备

手动控制小车

  1. 将小车放置在运动场地。

  2. root用户远程登录小车的开发者套件。

  3. 进入获取代码中的样例代码目录下的“/python”文件夹路径,安装相关依赖后启动运行脚本。

    cd /home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python
    pip3 install -r requirements.txt
    python3 main.py

    回显如下:

    (base) root@davinci-mini:/home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python# python main.py
    [EVENT] PROFILING(5821,python):2023-03-27-02:24:50.860.329 [msprof_callback_impl.cpp:236] >>> (tid:5821) Started to register profiling ctrl callback.
    2023-03-27 02:24:52 [MainProcess:5821][INFO]: start
    2023-03-27 02:24:52 [Process-2:5841][INFO]: update_controller_speed: True
    2023-03-27 02:24:52 [Process-2:5841][INFO]: self.speed: 0
    2023-03-27 02:24:52 [Process-2:5841][INFO]: [0, 0, 0, 0, 90, 65, -12345]
    2023-03-27 02:24:52 [Process-2:5841][INFO]: action SetServo execute SUCC
    2023-03-27 02:24:52 [Process-2:5841][INFO]: Manual loop start

    :::note 说明 运行python3 main.py报错请参见运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动解决。 :::

  4. 通过键盘输入键位手动控制小车移动,如表1所示。

    表1 键位映射表

    键位动作
    w前进
    a左转
    s后退
    d右转
    q逆时针旋转
    e顺时针旋转
    加速(小车运动状态与静止状态均可以调整)
    减速(小车运动状态与静止状态均可以调整)
    c捕获当前摄像头的图片
    space暂时停车

    :::note 说明 由于TT减速电机成本较低,若此处手动控制小车出现轮子转向相反,或四个轮子转速不同导致小车不走直线的情况。

    • 参照FAQ中的E2E样例开发问题。
    • 参考“/Car/src/actions/base_action.py”文件代码中的注释修改“/Car/src/actions/base_action.py”的'self.motor_rating'参数,四个参数依次对应图1中的1、2、3、4号电机,修改参数的比例大小即可修改对应电机的转速,添加负号即可使对应电机反转,进行微调即可使小车恢复正常。 :::

父主题: 快速体验

自动驾驶与泊车

  1. 将小车放置在运动场地。

  2. root用户远程登录小车的开发者套件。

  3. 进入获取代码中的样例代码目录,启动运行脚本。

    cd /home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python
    python3 main.py --mode=easy

    回显如下:

    (base) root@davinci-mini:/home/HwHiAiUser/E2ESamples/src/E2E-Sample/Car/python# python main.py --mode=easy
    [EVENT] PROFILING(5821,python):2023-03-27-02:24:50.860.329 [msprof_callback_impl.cpp:236] >>> (tid:5821) Started to register profiling ctrl callback.
    2023-03-27 02:24:52 [MainProcess:5821][INFO]: start
    2023-03-27 02:24:52 [Process-2:5841][INFO]: update_controller_speed: True
    2023-03-27 02:24:52 [Process-2:5841][INFO]: self.speed: 0
    2023-03-27 02:24:52 [Process-2:5841][INFO]: [0, 0, 0, 0, 90, 65, -12345]
    2023-03-27 02:24:52 [Process-2:5841][INFO]: action SetServo execute SUCC
    2023-03-27 02:24:52 [Process-2:5841][INFO]: Manual loop start

    :::note 说明 运行python3 main.py报错请参见运行智能车主入口程序main.py时出现‘ttyUSB0’或'ttyUSB1'相关错误导致程序无法启动解决。 :::

  4. 在命令行中输入Helper,加载转弯及停车辅助模型。无需等待,继续在命令行中输入LF,加载直线矫正模型。

  5. 小车开始自动驾驶,待行驶至停车标识处会自动进行泊车。

父主题: 快速体验

在线提单