littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于x86汇编语言和ARM Cortex M3的线跟随机器人及USB主机系统

项目简介

本项目涵盖线跟随机器人控制程序以及基于ARM Cortex M3微处理器的USB Host解决方案。线跟随机器人控制程序由x86汇编语言编写,可实现机器人的控制功能。USB Host解决方案用于和USB存储设备通信,能读取其上的音频文件并通过DAC播放,还提供访问USB闪存驱动器文件的示例。

项目的主要特性和功能

线跟随机器人部分

实现线跟随机器人的控制逻辑,采用x86汇编语言编写并在ARM Cortex M3微处理器上运行。

USB Host部分

  • USB Host栈初始化:通过相关函数初始化USB Host控制器,设置必要的时钟和引脚。
  • USB设备枚举:枚举并配置连接的USB设备。
  • 音频文件读取:从USB存储设备上读取音频文件并保存在内存中。
  • DAC配置:配置DAC以接收音频数据并转换为模拟信号。
  • 音频播放控制:控制音频数据的播放,包括播放、暂停、更改轨道和调节音量。
  • 文件系统操作:对USB存储设备上的FAT16文件系统进行初始化和操作。
  • 文件访问示例:提供Main_Read()、Main_Write()和Main_Copy()三个示例函数,可对USB闪存驱动器上的文件进行读取、写入和复制操作。

安装使用步骤

线跟随机器人部分

暂未提供明确的安装使用步骤,需根据具体硬件和开发环境进行适配和开发。

USB Host部分

运行USB主机示例

  1. 准备设备和工具:
    • Keil MCB1700板
    • Keil ULink USB - JTAG适配器用于闪存编程
    • Keil uVision3 IDE用于打开项目
    • 串口线用于在超级终端查看日志消息
  2. 设置MCB1700板的跳线:将标记为“HOST”的丝印处的两个跳线闭合,位于中间位置。
  3. 配置超级终端以查看日志消息:
    • 将串口线连接到MCB1700板的UART #0。
    • 根据PCLKSELx值设置波特率,若UART的PCLK为18MHz,最高波特率为57600;若能达到36Mhz或72Mhz,波特率可设为115,200,在usbhost_main.c中修改该值。
    • 配置超级终端设置为57600 - N - 8 - 1且“无流量控制”。
    • 使“RESET”和“INT0”按钮附近的“ISP”和“RST”两个跳线保持打开状态。
    • 在usbhost_lpc17xx.h文件中定义以下宏:
      • define PRINT_Log UART_Printf

      • define PRINT_Err(rc) UART_Printf("ERROR: In %s at Line %u - rc = %d\n", FUNCTION, LINE, rc)

  4. 下载并运行演示:
    1. 使用USB或可选电源连接电源。
    2. 连接Keil U - Link USB - J - Tag。
    3. 在UART#0处连接串口线以查看日志消息。
    4. 打开超级终端并按上述设置进行配置。
    5. 打开USBHostLite目录。
    6. 双击打开项目UsbHostLite.Uv2。
    7. 转到项目选项卡并点击“Rebuild all target files”编译项目。
    8. 转到闪存选项卡并点击“Download”。
    9. 在USB主机端口连接USB闪存驱动器。

音频播放系统

  1. 下载项目源代码。
  2. 使用Keil uVision或其他支持ARM Cortex - M3的IDE编译项目。
  3. 将微控制器连接到USB Host端口,并确保所有必要的硬件连接正确(如音频输出、USB接口等)。
  4. 运行编译后的程序,观察微控制器是否能够成功枚举USB设备,并读取音频文件进行播放。
  5. 如果程序未能正常工作,检查连接和代码配置,并进行必要的调试。

注:由于代码涉及特定硬件和微控制器的特定实现,使用和调试时可能需参考具体硬件和微控制器的文档。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】