龙芯2k0300 - 走马观碑组第21届智能汽车竞赛软硬件设计
一、规则说明
| 组别名称 | 比赛环境 | 比赛任务描述 | 传感器 | MCU平台 | 车模 | 队伍 人数 |
|---|---|---|---|---|---|---|
| 走马 观碑 | 室内 PVC 赛道 | (1)制作一辆三轮竞速车模,在室内赛道运行一周。 (2)室内赛道元素包括直道、弯道、十字路口、环岛、坡道、砖红色路障等。 (3)在赛道上和赛道旁边存在一些目标板上面包括有特定种类的物体和文字图案, 车模识别目标板上的物体,根据类别要求, 分别从目标板的左侧、右侧以及正中间通过。 (4)在赛道旁边设置有边界锥桶, 车模需要由锥桶内侧赛道内运行。 在没有锥桶的部分,车模允许短暂离开赛道。 (5)关于目标板相关要求请参见《 走马观碑组比赛场地与目标板说明 》 |
摄像头 其它自选 | 龙芯 | 三轮 车模 | 三人 |
1.1 电子器件选型
1.1.1 主控平台
限定使用龙芯中科指定的微控制器对应的开发板。 第20届竞赛赠送的板卡依然可以使用。 开发工具除了使用Linux系统之外, 还可以直接使用C语言通过IDE下载工具完成软件的开发。
总结:可以使用久久派开发板,但是底版需要自行设计。
1.1.2 传感器
推荐需要检测障碍的蚂蚁搬家组、走马观碑组、雁过留痕组使用ST公司的ToF传感器,型号:VL53L0X 。
用的传感器或者其它电子部件中不得包括独立的微处理器,除了北斗-GPS前面的图像处理平台中允许模块之外。
总结:对于走马观碑组检测障碍使用的传感器型号为VL53L0X 。
1.2 电池以及其他配件
1.2.1 电池
车模驱动电池允许使用镍氢、镍铬、锂电池等,电池规格不作任何限制。参赛队伍自行做好电池安全使用相关的保护。
1.2.2 车模
指定车模为三轮车模,大赛制定车模供应商(博思威龙、北京科宇)的相同尺寸舵机、电机可以交换使用。
推荐使用博思威龙F车模:
F车模采用三轮结构,有较大的支撑面积,车模在行驶中更加稳定。采用双电机后驱的方式,提供了更大的扭矩,能够更快的达到较高的速度。车模的转向系统经过精心设计,具有较好的转向灵活性,可以实现较小的转弯半径,适应各种弯道和曲线的要求。、
1.2.3 电机
在指定车模中, 不得更改车模上的驱动电机, 转向舵机的型号和数量; 允许增加额外的电机、舵机完成除车模行进、转向之外的功能。
F车模默认安装2个RS380电机。
1.2.4 舵机
F车模默认配备了万向轮,不需要单独舵机。
1.3 电路板规则
竞赛智能车模中除了单片机最小系统核心板、龙芯核心板以及允许使用的传感器模块内部电路板之外,所有电路均要求为自行设计制作;
- 购买的单片机最小核心子板上,只允许带有单片机、时钟、电源以及单片机调试接口。其它连接外部传感器、
SD卡、液晶显示等电路结构都需要通过自制电路主板引出,不允许直接从最小核心板引出; - 除了允许使用的传感器,禁止使用附带有
MCU处理器 的智能传感器,禁止使用任何标明智能车比赛专用传感器成品模块。
自制的PCB板包括但不限于传感器及信号调理、电源管理、电机驱动、主控电路、调试电路等。如果自制电路采用工厂加工的PCB印制电路板,需要在正面敷铜层(toplayer) 醒目位置放置本参赛队伍所在学校名称、队伍名称、参赛年份,队伍信息需要能够便于观察。对于非常小的电路板可以使用名称缩写,名称在车模技术检查时需要直接可见。如果电路板的面积小于1平方厘米, 或者仅仅用于线路转接的电路板,可以不用带有队伍特有信息。如果电路板不满足要求,比赛成绩无效。
参赛车模作品中的电路板需要通过嘉立创网站指定网页下单免费制作, 具体操作说明参见《智能车竞赛电路板嘉立创制作流程规范》文档说明。
总结:可以使用久久派开发板,但是需要自制底板;
| 久久派开发板 | 自制底板 |
|---|---|
龙芯2K0300/2k0301是本届“走马观碑”组的指定平台。因此,虽然它在技术上不是“最小系统板”,可以把它理解成一个功能更强大的、集成了内存和存储的“超级最小系统板”,其包含了: eMMC芯片 Flash WiFi模块 DDR芯片 USB接口 调试口 GPIO 龙芯处理器 |
所有与外部世界的连接: 摄像头接口 编码器接口 电机驱动 显示屏 MPU6050陀螺仪 电源管理 红外测距 调试按键 串口(蓝牙) LED指示灯等 必须在顶层铜箔醒目位置放置学校名称、队伍名称和参赛年份 |
1.4 整体备赛计划
赛过程可以划分为五个阶段,每个阶段的侧重点都不同。
| 阶段 | 时间 | 核心任务 | 关键产出 | 注意事项/资源 |
|---|---|---|---|---|
| 第一阶段:准备与学习 | 3.1 - 3.31 | 平台熟悉与Linux入门 | 龙芯开发板能运行Hello World,点亮一个LED | 立即加入官方QQ群:981693198 购买核心板(久久派/正点原子/飞凌) |
| 第二阶段:硬件集成 | 4.1 - 4.15 | 设计底板,搭建车模,移植驱动 | 车模能动,摄像头能出图,串口/网口能调试 | 重点攻克: 摄像头驱动(V4L2); PWM输出(操作 /sys/class/pwm)。 |
| 第三阶段:软件攻坚 | 4.16 - 5.31 | 实现目标检测与基础巡线 | 能识别3-5类目标板,能在简单赛道稳定巡线 | 这是最关键的时期: 视觉线程部署轻量级模型(如如NanoDet,YOLOv8-nano); 控制线程实现PID; 两者通过共享内存或消息队列通信。 |
| 第四阶段:系统整合 | 6.1 - 6.30 | 多线程协同,攻克赛道元素 | 能跑完完整赛道,并正确执行通过策略(左/中/右) | 重点调试决策逻辑:当视觉线程说“猫”时,控制线程如何平滑地从当前路径切换到“靠左通过”。处理好环岛、坡道等元素的融合。 |
| 第五阶段:冲刺优化 | 7.1 - 比赛 | 稳定性测试,参数微调 | 稳定完赛,追求速度 | 代码冻结,只调参。去不同光照环境测试,防止过拟合。 |
二、方案设计
这里参考龙邱提供的解决方案,可以用来快速上手;
所需要的模块在下面的表格中都列举了出来,如果有需要的话可以在龙邱科技淘宝店铺自行选购;
| 模块名称 | 数量 | 作用 | 是否必需 | 是否需要自制 | 价格 |
|---|---|---|---|---|---|
| 3S 1500mAH12V定制锂电池 简易B3平衡充电器 锂电池低压报警器 |
1 | 电源及智能报警,防止过充过放 | 是 | 否 | 70 28.8 12.5 |
| 龙芯久久派2K0300板卡 | 1 | 主控,数据处理 | 是 | 否 | 239 |
| 久久派开发板拓展版 | 1 | 稳压电源、整合外设资源 | 是 | 是 | 129 |
| 久久派安装支架零件包 | 1 | 固定母版 | 是 | 否 | 15 |
| 1024线方向mini编码器 | 2 | 检测电机转速以实现速度闭环控制 | 是 | 否 | 341.6 |
| min编码器ACDF齿轮 | 2 | 配套车模使用 | 是 | 否 | 16.2 |
| MPU6050 V3陀螺仪 | 1 | 姿态反馈 | 是 | 否 | 23.5 |
| 灵眼USB摄像头 | 1 | 实时提供赛道信息 | 是 | 否 | 209 |
| 摄像头支架套件简易版 | 1 | 方便调整摄像头高度和角度 | 是 | 否 | 20.5 |
| 碳纤维杆5*3*300mm | 1 | 度高,硬度大 | 是 | 否 | 5 |
| 1.8寸TFT-SPI屏幕 | 1 | 彩色背光,硬件SPI通信,显示清晰,流畅 | 是 | 否 | 29.1 |
| 测距模块VL53L0X | 1 | 测距、避障 | 是 | 否 | 41 |
| 测距模块支架 | 1 | 测距模块支架 | 是 | 否 | 10 |
| DRV8701双路电机驱动 | 1 | 驱动车模上的两个电机 | 是 | 是 | 105 |
| 电机驱动支架 | 1 | 驱动安装支架 | 是 | 否 | 20 |
| F三轮车模 | 1 | 基础载体 | 是 | 否 | 409 |
| 2205无刷电机+浆叶+保护罩(选配) | 2 | 负压 | 否 | 否 | 126 |
| STC无刷电机驱动(选配) | 2 | 负压 | 否 | 是 | 178 |
| 2205无刷电机支架(选配) | 1 | 负压 | 否 | 否 | 25.5 |
| 蓝牙主机和从机 | 1 | 日常调试用,比赛禁用 | 否 | 否 | 86 |
XT30U插头3套(公母)红黑硅胶电源导线各lm 杜邦线 反扣魔术贴扎带 胶枪 热缩管 润滑油 usb转TTL |
辅助 | 否 | 否 | 200 |
购买链接:龙邱科技汽车电子专业店,选择套餐走马观碑组含负压学习套件(含2K0300板卡 不含车模),车模单独购买。
开发板单独购买链接:龙芯2K0300久久派走马观碑组301核心板龙芯开发板系统板。
2.1 硬件组成
硬件系统框图如下所示:
其中需要自制的硬件:
| 模块 | 自制任务 | 设计要点 |
|---|---|---|
| 2K0300母版 | 设计原理图、画PCB、焊接 | 需要把久久派开发板的引脚通过母版引出,设计: 1. 电源稳压电路:12V转5V/3.3V; 2. 传感器接口:I2C/SPI/UART的排针/插座; 3. 编码器接口:正交解码信号调理; 4. PWM输出接口:给电机驱动板; |
| DRV8701双路电机驱动 | 设计原理图、画PCB、焊接 | DRV8701是驱动芯片,需要设计外围电路(电容、电阻、逻辑电平转换),画出一块小板子 |
| STC无刷电机驱动 | 设计原理图、画PCB、焊接 | 设计能驱动2205无刷电调的电路板 |
2.2 软件框图
核心设计思路是:“异构分工,精准决策”。利用龙芯MPU强大的Linux生态和算力处理复杂视觉任务,通过多线程机制,将“看”和“跑”这两件事高效协同起来。
软件模块:
| 线程 | 对应硬件/接口 | 关键任务 |
|---|---|---|
| 视觉线程 | LQUGSCV1摄像头 (通过V4L2驱动) |
1. 用OpenCV或类似库读取图像; 2. 跑轻量级神经网络(NanoDet),检测目标板上的物体和文字; 3. 把识别结果(“猫,位于图像左侧”)放到共享内存里。 |
| 控制线程 | 编码器、MPU6050、VL53L0X (通过sysfs或GPIO读写) |
1. 读传感器:获取当前速度、倾角、距离; 2. 读视觉结果:从共享内存拿目标信息; 3. 跑状态机:判断现在是循迹状态、接近目标板状态、还是执行通过策略状态; 4. 计算控制量:调用PID算法,算出舵机打多少、电机转多快、负压开多大; 5. 输出PWM:通过操作/sys/class/pwm或内存映射,控制电机驱动板。 |
| 调试线程 | TFT屏幕、蓝牙模块 | 1. 把当前的识别结果、车速、状态显示在屏幕上,方便调试; 2. 通过蓝牙把关键数据发到电脑上位机,用于调参。 |
注意:考虑ROS2框架的可行性。
三、硬件设计
3.1 久久派开发板
使用久久派开发板,价格209;
久久派2K0300开发板有两个版本:
WiFi版本:没有TF卡槽,1个WIFI/BT模组;TF版本:有TF卡槽,没有WiFi。
这里我们使用的是WiFi版本。
3.2 龙邱久久派拓展版
龙邱久久派拓展版( 68.3 x 56.3mm),价格129,后面参考其原理图改造;

拥有的功能如下:
- 两个可编程独立按键:右侧放置,方便调参;
- 电源开关:
2档3脚横柄式波动开关,控制整个母板电路供电; XT30电源输入输出口:可使用XT30电池供电,输入电压范围DC 6-28V,支持2~6s电池,并可通过另一个XT30接口直接给驱动板供电;- 两路编码器接口:可同时采集两路编码器信号,方便电机闭环控制和速度采集;
IIC接口:可与TOF、陀螺仪等IIC通信模块连接,进行数据传输;注意如果V3是版本的底版,这里是引出了两排排针,可以同时连接TOF、陀螺仪;UART接口:通过蓝牙模块和上位机通信;Type-C接口:连接久久派UART0,电脑通过Type-C数据线可直接控制久久派,使用更方便;- 屏幕接口:可使用硬件
SPI驱动TFT屏幕,屏幕小巧,显示清晰,速度快,还兼容本店IPS和OLED屏幕; - 舵机+无刷驱动接口:三路
PWM信号输出,可同时连接一个舵机控制车模转向和两个无刷电机驱动控制负压电机;(两个无刷电机公用一个PWM信号) ADC接口:预留6路ADC接口,可同时采集6路ADC信号;- 双路电机驱动接口:可同时控制
2个电机实现调速和正反转; - 红外接口:可连接龙邱红外测距模块,ADC采集障碍物距离,反应速度快;
- 电源拓展口:电流可达
3A以上,方便其他外设供电; - 可编程控制蜂鸣器:用于声音提醒程序状态;
所有元器件正面摆放,并设有防反接设计,防止短路和电池反接。
龙芯赛道方案接线指示图:
3.2.1 电源
电池相关套件:
3S 1500mAH12V定制锂电池;- 简易
B3平衡充电器; - 锂电池低压报警器:智能警报,防止过充过放;
供电部分原理图:
3.2.2 灵眼USB摄像头
使用USB摄像头,如要配置内核驱动,可以参考《linux驱动移植-USB摄像头uvc驱动》。在龙芯板卡的内核中配置好,使其支持USB摄像头后,直接将摄像头插到龙芯板卡上就可以直接使用了。
3.2.3 STC无刷电机驱动(负压、选配)
其中:
-
电源输入口,外接
3S电池,供电电压11-13V; -
无刷电机连接端口,接无刷电机三相电源线;
-
外部信号输入接口,外界输入信号;
-
下载及串口接口,可通过此接口下载程序;
-
复位按键,下载程序或复位程序使用;
-
RGB彩色指示灯。
STC无刷电机驱动中控制口引脚从左到右依次是GND、5V、PWM。与龙邱的龙芯拓展版从右到左的引脚一一对应,可直接对应连接。
3.2.4 DRV8701双路电机驱动
在《基于直流有刷电机的开环调速控制以及matlab仿真》介绍了为什么驱动电机需要驱动电路,并且我们介绍了L298N驱动板。L298N 和DRV8701虽然都能驱动直流电机,但它们的设计思路和适用场景完全不同;
| 对比维度 | L298N | DRV8701 |
|---|---|---|
| 架构本质 | 集成式H桥:芯片内部集成了两个H桥,相当于一个“即插即用”的黑盒子。 | 栅极驱动器:芯片本身不包含功率管,需要外接4个MOSFET来搭建成一个完整的H桥。 |
| 最大驱动电流 | 持续2A,峰值3A | 取决于外接的MOSFET,通过选择大电流MOSFET,可以轻松达到20A甚至更高。 |
| 工作电压 | 5V - 35V | 5.9V - 45V |
| 导通压降与发热 | 压降大(约1.4V-3V),效率低,发热严重,通常需要加装散热片。 | 压降极小,完全由外接的MOSFET决定,高性能MOSFET的导通内阻通常只有几毫欧,因此效率极高,发热低。 |
| 集成度与体积 | 高,模块体积较大(约50mm x 50mm。 | 低,但设计灵活。核心芯片很小,但需要外围电路和4个大MOSFET,整体体积取决于你的PCB设计能力。 |
| 控制精度与功能 | 基础,支持PWM调速和方向控制,但缺少高级功能。 | 高级,内置可配置的电流调节、PWM电流斩波、各种完善的保护电路(过流、过热、欠压等)和故障指示,非常适合需要精确扭矩/电流控制的场景。 |
| 设计自由度 | 低,功能固定,无法更改。 | 极高,可以通过选型不同的MOSFET和配置外围电阻,来精确匹配你的电机特性,实现性能最大化。 |
DRV8701双路电机驱动采用门极驱动芯片DRV8701E + N-MOS管TPH1R403NL方案,输入电源5.9V ~ 28V均可使用,带过流保护功能。
其中
PH-6P接口用来隔离供电以及信号输入;- 红色端子同来提供直流电压输入,输入电压
5.9-28V,一般大小为电机可承受的最大电压; - 蓝色端子是直流电压输出,输出电压与输入
PWM值正相关,连接到电机上。
当PWM波的占空比越大时,蓝色端子输出的电压值与红色端子的电压值越接近,反之则与0V越接近。
PWM波的频率不可以随意设置,频率太低会导致电机运转不畅,振动大,噪音大;频率太高会导致驱动器开关损耗较大,甚至有电机会啸叫而不转的情况。一般1k~30k的PWM频率较为普遍,几百Hz的也有,实际上需要根据电机功率在测试时确定合适的PWM频率范围为宜。
3.2.5 1024线方向mini编码器
在《STM32F103霍尔编码器测速 》我们介绍了编码器以及测速原理。正交AB相1024线编码器通过两个信号线的输出脉冲进行数据处理,一个输出脉冲信号就对应一个增量位移,编码器每转动固定的位移s,就会产生一个脉冲信号,通过读取单位时间t的脉冲信号的数量,便可以达到测速的效果(v=s/t),通过对脉冲信号的累加,和编码器码盘的周长便可以达到计算路程的功能(s=d0+d1+...)。
编码器的线数,是说编码器转一圈输出多少个脉冲,如果一个编码器是1024线,说明这个编码器转一圈对应的信号线会输出1024个脉冲,AB两相转一圈发出的脉冲数一样的,不过存在90°相位差。
3.2.6 1.8寸TFT显示模块
TFT即薄膜晶体管,是一种有源矩阵液晶显示技术。TFT技术通过为每个像素点配备一个独立的薄膜晶体管,实现对像素点的精确控制,从而能够呈现出清晰、鲜艳的图像和色彩。与传统的无源矩阵液晶显示相比,TFT具有响应速度快、对比度高、视角广等优点。屏幕分辨率为128*160,尺寸为1.8寸。
屏幕显示接口采用SPI通信方式,不同的是屏幕不需要返回数据到主机,所以只需要用到一根数据线,但采用的是标准的SPI协议。
显示模块使用的LCD驱动芯片有ST7735,此外还有一款常用的驱动芯片ST7789。
ST7735和ST7789是两款来自同一家公司的TFT-LCD驱动芯片,但它们面向的是不同尺寸和分辨率的屏幕市场。简单来说:ST7735是为小尺寸屏幕设计的“经济适用型”芯片,而ST7789是为大一点、清晰度更高的屏幕设计的“性能型”芯片;
ST7735通常用于1.77~1.8英寸、128×160分辨率的小屏幕,适合简单图形显示和入门级嵌入式设备;ST7789则支持240×320、240×280甚至更高分辨率,常用于2.0~2.8寸QVGA屏幕,适合需要更高显示精度和动画效果的应用。我们在《STM2F411智能手环设计》中使用的就是这一款显示屏。
注意:我们使用的这块屏具体驱动芯片型号为ST7735S.
3.2.7 MPU6050 V3陀螺仪
陀螺仪在智能车中的应用:
- 与转向环串级使用,达到更好的控制效果;
- 调整平衡车姿态,使车身平衡且能正常转向和前进;
- 作为角度环闭环控制的输入;
- 积分角度作为元素状态切换条件,例如确定环岛的进环、环内、出环时机;
陀螺仪主要由加速度计与陀螺仪两部分组成:
- 加速度计用于测量物体的加速度;
- 陀螺仪用于测量物体的角速度。
通过对加速度和角速度的测量,可以推导出物体的角位移。简单来说就是可以读取物体的偏移角度,以及移动的加速度。可以通过程序处理得到物体的欧拉角以及移动加速度。

使用时,将SDA、SCL、3V3、GND四个引脚,与龙邱的龙芯拓展版I2C1对应接口连接即可。
3.2.8 VL53L0X测距模块
Vl53l0X是ST推出的第二代FlightSense技术的飞行时间传感器,与传统的测距传感器不同,它使用时飞行时间(Time-of-Flight,TOF)测量原理,可以实现精确、快速的非接触式测量。无论目标颜色和反射率如何,都可以进行距离测量,抗干扰能力更强。
Vl53l0X激光测距模块的原理是利用激光脉冲的飞行时间来测量距离。该模块通过发射一束激光脉冲,并测量该激光脉冲从发射到被接收的时间来计算出物体与传感器之间的距离。

使用时,将SDA、SCL、3V3、GND四个引脚,与龙邱的龙芯拓展版I2C1对应接口连接即可。
3.2.9 蓝牙模块
在车模正在运行的时候,我们就可以使用蓝牙模块,将运行时需要观察的一些数据发送到电脑上,方便我们进行调试。
3.3 原理图调整
久久派的I2C1接口需要扩展成一主多从,即同时可以连接MPU6050 V3陀螺仪和 VL53L0X测距模块。
四、软件设计
主线程:初始化各模块,加载模型,启动子线程,处理异常退出。
4.1 视觉线程
输入:从摄像头(V4L2)获取图像帧;
处理:
- 图像预处理(缩放、归一化);
- 推理:调用
NPU(如果支持)或CPU运行目标检测模型(如NanoDet,YOLOv8-nano),检测目标板的位置和类别; - 分类:对于检测到的目标,可能还需要一个分类网络(或同一网络)识别具体物体(猫/狗/树等)和文字。
- 输出:将检测结果(例如
{“object”: “cat”, “position_x”: 320})放入共享队列。
4.2 控制线程
输入:
- 从共享队列获取视觉结果。
- 实时读取编码器数据、
TOF传感器数据。
处理:
- 路径规划:根据视觉结果,确定通过策略(左/中/右)。
- 循迹控制:根据赛道图像(也可以由视觉线程提供)或灰度传感器,计算与赛道中线的偏差;
- 状态机:管理当前状态(循迹、接近目标板、执行策略、通过障碍、环岛等)。
PID计算:根据偏差和目标速度,计算舵机和电机的控制量。
输出:通过操作 /sys/class/pwm 或 libgpiod 库,输出PWM信号控制舵机和电机。
参考文档
[2] 第21届全国大学生智能汽车竞赛提问与回答:走马观碑组别
[4] 第21届全国大学生智能车竞赛---走马观碑组技术手册(推荐)

浙公网安备 33010602011771号