news 2026/5/16 0:58:21

智能车竞赛技术全解析:从PID控制到嵌入式系统实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智能车竞赛技术全解析:从PID控制到嵌入式系统实战

1. 项目概述:一场关于速度与智慧的青春盛宴

“飞思卡尔杯”智能车竞赛,这个名字对于很多电子、自动化、计算机相关专业的同学来说,绝对是一个如雷贯耳的存在。它不仅仅是一个比赛,更像是一个技术人的“成人礼”,一个将课本上的理论转化为地上飞驰的现实的绝佳舞台。简单来说,这就是一个让你亲手打造一辆能够自主识别赛道、高速稳定行驶的智能小车的竞赛。听起来是不是有点像简化版的无人驾驶汽车?没错,其核心逻辑一脉相承。这个比赛之所以能持续火爆十几年,吸引无数高校学子前赴后继,正是因为它完美地融合了控制理论、传感器技术、嵌入式开发和机械结构等多个硬核技术领域,提供了一个从零到一、从理论到实践的完整闭环。

如果你是电子信息、自动化、电气工程、计算机甚至机械专业的学生,无论你是大一新生对单片机还一知半解,还是大三、大四的“老油条”想找个项目练手,这个比赛都为你敞开大门。它解决的,正是工科生最核心的痛点:学了那么多模电、数电、C语言、自动控制原理,到底有什么用?而智能车竞赛,就是那个最好的答案。你将亲身体会到,如何让一个冰冷的单片机“看懂”前方的黑白赛道,如何精确地控制电机的转速和舵机的转角,如何在速度与稳定性之间做出艰难的权衡。最终,当你的小车在赛道上划出优美的弧线,以最快的速度冲过终点时,那种成就感是无与伦比的。接下来,我就以一个过来人的身份,为你拆解这场挑战背后的技术脉络与实战心得。

2. 竞赛核心赛道与组别解析

“飞思卡尔杯”(现更名为“全国大学生智能汽车竞赛”,但大家仍习惯旧称)的赛题并非一成不变,它会随着技术发展而迭代,但核心框架稳定。你需要首先明确自己要参加哪个组别,这直接决定了你的技术路线和投入重点。

2.1 主流组别与技术特点

目前竞赛主要分为以下几个经典组别,每个组别都是一片独特的战场:

  1. 摄像头组:这是公认的“皇冠组”,技术难度和观赏性最高。小车通过车载摄像头采集前方赛道图像,经过图像处理算法(如二值化、边缘检测、巡线提取)来识别赛道中心线,进而控制方向。其核心挑战在于图像处理的实时性、鲁棒性(应对光线变化、赛道反光)以及控制算法的精准性。你需要精通数字图像处理、单片机的高效编程,甚至可能用到简单的机器学习方法进行特征识别。

  2. 电磁组:技术相对成熟、稳定性极高的组别。赛道中心铺设有通有特定频率交流电的漆包线,小车通过车体前方的电感线圈采集交变磁场信号,经过硬件滤波和软件处理,解算出小车相对于导线的位置偏差。其优势在于不受环境光线影响,可靠性强。技术重点在于模拟电路设计(谐振放大、滤波)、信号处理算法以及抗干扰设计。

  3. 光电组:使用红外对管、激光管等光电传感器阵列来探测赛道边界。通过一排传感器返回的“0/1”信号(黑线为0,白色地面为1),来拟合出赛道中心线。其特点是传感器电路简单,程序逻辑直观,是很多新手入门的选择。但受限于传感器数量,前瞻距离短,对高速下的控制要求很高。

  4. 创意组:每年会有不同的主题,如节能车、信标对抗、全向行进等。这个组别鼓励天马行空的想象力和跨学科的综合能力,可能涉及机械创新、能源管理、多车协同等,是展示综合实力的舞台。

注意:组别的选择需结合团队技术储备、实验室条件和兴趣。摄像头组上限高但坑也多;电磁组稳扎稳打易出成绩;光电组入门快,适合快速验证控制算法。建议新手可以从光电或电磁组入手,积累经验后再挑战摄像头组。

2.2 车模平台与核心控制器

竞赛官方会指定统一的车模底盘(如常见的D型车模),但核心的“大脑”——微控制器,则经历了从最初的飞思卡尔(现恩智浦NXP)单片机到如今更多样化的选择。目前主流的核心控制器包括:

  • 恩智浦系列:如KEA、Kinetis K系列、i.MX RT系列跨界处理器。尤其是i.MX RT1170这类高性能MCU,主频高达1GHz,能轻松应对摄像头组复杂的图像处理需求,是追求极致性能队伍的首选。
  • ST意法半导体系列:如STM32F4、F7、H7系列。凭借其完善的生态、丰富的资料和强大的性能(特别是Cortex-M7内核),STM32是众多队伍,尤其是电磁、光电组的“国民级”选择,社区支持度极高。
  • 其他平台:如兆易创新GD32、华大半导体HC32等国产芯片也逐步被更多队伍采用。

选型考量不仅仅是主频,更要关注外设资源:是否有足够的定时器(用于电机PWM和编码器采集)、ADC精度与速度(用于电磁信号采集)、内存大小(用于图像缓存)、以及是否具备硬件浮点运算单元(FPU)以加速算法运行。

3. 智能车系统架构深度拆解

无论哪个组别,一辆完整的智能车都是一个典型的嵌入式闭环控制系统。理解其系统架构,是进行一切设计和调试的基础。我们可以将其自上而下分为感知层、决策层和执行层。

3.1 感知层:小车的“眼睛”与“触角”

感知层负责从物理世界获取信息,其设计与选型直接决定了后续所有算法的输入质量。

  • 摄像头传感器:通常选用全局快门的CMOS摄像头(如MT9V032、OV7725),以避免果冻效应。关键在于驱动其输出稳定的灰度或二值化图像,并通过DMA(直接存储器访问)将数据快速搬运至单片机内存,避免CPU被搬运数据占用。图像采集的时序稳定性、曝光控制是前期硬件调试的重点。
  • 电磁传感器:核心是工字电感和运放电路。你需要设计一个LC谐振电路,使其谐振频率与赛道导线中20kHz的交流电频率一致,从而获得最大的感应电压。随后经过放大、检波(将交流转为直流)、滤波,得到可供ADC采集的模拟电压信号。电感排布方式(水平、垂直)、电路的信噪比设计,决定了感知的精度和距离。
  • 光电传感器:通常使用红外发射接收对管。难点在于环境光抗干扰。除了物理上加装遮光罩,电路上常采用调制解调技术:用特定频率的方波驱动红外发射管,接收端通过带通滤波只放大该频率的信号,从而有效抑制环境光的直流分量和噪声。
  • 编码器:安装在电机输出轴上的光电或霍尔编码器,用于测量电机的实际转速,构成速度闭环。选择时需关注线数(分辨率)和安装方式。增量式编码器最常用,通过定时器捕获其脉冲频率来计算转速。

3.2 决策层:小车的“大脑”与算法核心

决策层是软件的核心,它处理感知层的数据,计算出控制指令。其运行逻辑是一个无限循环:采集->处理->控制。

  1. 赛道信息提取算法

    • 摄像头组:图像处理流程一般为:灰度化->二值化(动态阈值或大津法)->行扫描寻找边沿点->中线拟合。高级算法会涉及透视变换(将梯形赛道校正为矩形)、卷积寻线、甚至基于卷积神经网络的端到端控制(在资源允许的情况下)。
    • 电磁组:通过多个电感采集的电压值,利用差值法或公式法(如偏差 = (左电感值 - 右电感值) / (左电感值 + 右电感值))解算出横向位置偏差。
    • 光电组:根据传感器阵列的“0/1”状态,计算加权中心位置作为偏差。
  2. 控制算法:这是让小车“听话”的关键。最经典、最有效的莫过于PID控制算法

    • 位置式PID:直接计算控制量。Output = Kp * error + Ki * ∫error dt + Kd * d(error)/dt。你需要分别调试比例(P)、积分(I)、微分(D)三个参数。P决定响应速度,I消除静差,D抑制超调。
    • 增量式PID:计算控制量的增量,对执行机构更友好,且自带抗积分饱和。在实际调车中,往往先调P,让车有基本的循迹能力;再加D,抑制过弯振荡;最后根据需要加很小的I,用于消除直道上的微小静差。
    • 进阶控制:对于高性能要求,会结合模糊控制(处理“弯道很大”、“弯道较小”这类模糊概念)、赛道记忆(预存赛道特征,实现前瞻控制)、最优控制理论等。

3.3 执行层:小车的“手脚”

执行层将决策层的数字指令转化为物理动作。

  • 舵机控制:控制转向。通常由定时器产生一个周期为20ms,脉宽在0.5ms到2.5ms之间的PWM波来控制舵机角度。关键在于PWM的精度和稳定性,以及给舵机提供干净、充足的电源,避免因电压波动导致舵机抖动。
  • 电机驱动:控制速度。常用H桥电路(如TB6612、DRV8843等驱动芯片)驱动直流减速电机。通过调节PWM占空比控制电机平均电压,从而调速。同时,需要结合编码器反馈,实现速度闭环PID控制,确保小车即使在坡道或负载变化时也能保持设定速度。
  • 电源管理:整个系统的基石。常用2S或3S锂电池(7.4V或11.1V)供电,需要通过多个稳压电路(如LM2596、TPS系列)为单片机、传感器、舵机、电机驱动提供各自所需的稳定电压(如3.3V、5V、6V)。电源纹波和动态响应能力直接影响系统稳定性,电机启停瞬间的大电流可能造成单片机复位,必须在PCB布局和电容选型上重点考虑。

4. 从零到一的实战开发流程

了解了架构,我们来看如何一步步把车做出来。这个过程充满了挑战,也充满了乐趣。

4.1 硬件设计与制作

  1. 主控板设计:这是你的“指挥中心”。使用Altium Designer或立创EDA等工具进行PCB设计。核心原则是:

    • 电源分区:模拟部分(传感器、运放)和数字部分(单片机、电机驱动)的电源走线要分开,最后单点共地,避免数字噪声干扰敏感的模拟信号。
    • 去耦电容:在每一个芯片的电源引脚附近,紧贴放置一个0.1uF的陶瓷电容,用于滤除高频噪声。这是保证系统稳定的黄金法则。
    • 接口预留:留出丰富的调试接口,如串口、SWD/JTAG下载口、LED指示灯、按键等。调试阶段,一个方便的串口打印信息比什么都管用。
    • PCB打样与焊接:现在JLC等平台打样非常方便。焊接时,先焊贴片阻容,再焊芯片,注意防静电。焊接完成后,务必先用万用表测量电源与地之间是否短路。
  2. 传感器板设计:根据组别单独制作。摄像头组要考虑摄像头固定支架和俯仰角调节机构;电磁组要精心布局电感位置和角度;光电组则要设计传感器支架,确保离地高度一致。

  3. 车模机械调整

    • 重心:尽可能降低重心,并使其位于中轴线,提高过弯稳定性。
    • 前轮前束与主销内倾:官方车模通常可调,适当的调整可以减少转向阻力并增加回正力矩。
    • 轮胎处理:新轮胎表面光滑,需用砂纸打磨增大摩擦力。这是提升加速和过弯性能最简单有效的方法之一。

4.2 软件框架搭建与模块化开发

不要一开始就写一个几千行的main.c。良好的软件架构是高效调试的保障。

  1. 底层驱动层:基于HAL库或标准库,编写或移植各个外设的驱动代码:GPIO、定时器(PWM输出、输入捕获)、ADC、DMA、串口、I2C/SPI(用于传感器通信)等。确保每个驱动都有初始化函数和基本操作函数,并做好注释。

  2. 中间件层:封装一些常用功能模块。

    • motor.c/h:电机驱动,包含PWM设置、速度闭环PID计算函数。
    • servo.c/h:舵机控制,给定角度,转换为PWM脉宽。
    • encoder.c/h:编码器速度测量。
    • image_processing.c/hinductor.c/h:感知数据处理核心算法。
    • pid.c/h:通用的PID控制器实现,可被电机和转向调用。
  3. 应用层:在main.c中组织业务逻辑。一个典型的主循环如下:

    int main(void) { // 1. 系统初始化(时钟、外设) System_Init(); // 2. 模块初始化(电机、舵机、传感器、PID参数) Motor_Init(); Servo_Init(); Sensor_Init(); PID_Init(); // 3. 主循环 while(1) { // 3.1 采集传感器数据 Get_Sensor_Data(); // 3.2 处理数据,计算赛道偏差 Calculate_Path_Deviation(); // 3.3 根据偏差,计算舵机转向角(使用PID) steering_angle = Steering_PID_Calculate(deviation); Servo_Set_Angle(steering_angle); // 3.4 计算目标速度(可基于弯道曲率动态调整) target_speed = Speed_Strategy_Calculate(); // 3.5 速度闭环控制 motor_pwm = Speed_PID_Calculate(target_speed, current_speed); Motor_Set_PWM(motor_pwm); // 3.6 必要的延时或调度 Delay_ms(2); // 控制周期,例如5ms一次控制 } }

4.3 核心算法调试与参数整定

这是最考验耐心和经验的环节。

  1. 开环测试:先不接任何反馈,手动给定一个舵机角度和电机PWM,看小车能否正常前进、转向,确保硬件基础功能正常。

  2. 感知层调试:确保“眼睛”看得准。

    • 摄像头:通过串口或无线模块,将处理后的二值化图像或提取的中线发送到上位机(如匿名上位机、山外上位机)显示,直观判断图像处理效果。调整阈值,确保在不同光照下都能稳定提取赛道。
    • 电磁/光电:通过ADC读取原始电压值并发送到上位机绘图,观察信号波形是否干净,最大值、最小值、差值是否符合预期。调整运放增益,使信号动态范围接近ADC满量程。
  3. 控制参数调试:PID调参是“玄学”也是科学。

    • 转向环调试:先将速度设得很低,只调试转向PID。在直道上,给小车一个固定的横向位置偏差,观察它能否平滑、无超调地回到中心。口诀是:“先P后D再I,从小到大慢慢试”。P太小,响应慢,过弯切不进去;P太大,会在直道上左右振荡。D参数能有效抑制振荡,但给太大反而会引入高频抖动。
    • 速度环调试:固定转向,调试速度PID。让小车在空载(抬起)状态下,看能否快速、稳定地达到设定转速。然后放下小车,观察带载后是否依然稳定,抗负载扰动能力如何。
    • 速度-转向协同:这是最高阶的调试。需要设计一个速度控制策略:在直道加速,入弯前减速,弯中保持,出弯加速。通常根据赛道曲率(或偏差的绝对值)来映射目标速度。调试时,需要反复在赛道上跑,观察过弯是否流畅,有无冲出赛道或明显减速,不断微调PID参数和速度映射表。

5. 备赛全周期规划与团队协作

智能车竞赛是一个典型的工程项目,良好的规划和团队协作是成功的一半。

5.1 时间线规划(以一年周期为例)

  • 第一阶段:知识储备与方案调研(赛题发布后1-2个月)

    • 研读最新竞赛规则,确定目标组别。
    • 团队分工:硬件、软件、算法、机械。
    • 学习核心知识:单片机、电路设计、控制理论、相关算法。
    • 调研往届优秀技术报告,确定技术方案框架。
  • 第二阶段:硬件设计与制作(第3-4个月)

    • 完成主控板、传感器板的原理图和PCB设计。
    • 采购元器件,完成PCB打样与焊接。
    • 完成车模的初步组装与机械调整。
  • 第三阶段:基础软件与模块调试(第5-6个月)

    • 搭建软件开发环境,编写底层驱动。
    • 实现各传感器数据采集与基本处理。
    • 实现电机、舵机的基本控制。
    • 完成开环测试,确保所有硬件工作正常。
  • 第四阶段:算法实现与闭环调试(第7-9个月)

    • 实现核心循迹算法(图像/电磁/光电处理)。
    • 实现PID控制闭环,进行初步赛道调试。
    • 迭代优化算法和参数,这是最耗时的阶段。
  • 第五阶段:优化与冲刺(第10-12个月)

    • 优化机械结构(减重、调校)。
    • 优化控制策略,提升速度和稳定性。
    • 进行长时间老化测试,提高可靠性。
    • 准备技术报告、比赛答辩材料。

5.2 团队角色与协作要点

一个高效的团队通常需要3-5人,角色可重叠:

  • 硬件工程师:负责电路设计、PCB绘制、焊接调试、电源管理。需要细心、严谨,对模电数电知识扎实。
  • 软件工程师:负责单片机程序框架、底层驱动、各功能模块编写。需要良好的C语言功底和代码架构能力。
  • 算法工程师:负责图像处理、信号处理、控制算法设计与实现。需要较强的数学和逻辑思维能力。
  • 机械工程师:负责车模结构调整、传感器支架设计与制作、轮胎处理等。需要动手能力强,有空间想象力。
  • 项目经理:负责进度把控、文档整理、对外沟通、协调资源。通常由队长担任。

协作关键:使用代码版本管理工具(如Git),定期开会同步进度,硬件设计要充分考虑软件接口需求,软件调试要理解硬件工作原理。遇到问题,切忌互相抱怨,要一起看数据、分析逻辑。

6. 常见“坑点”与故障排查实录

调车路上,人人都是“踩坑大师”。下面这些是我和身边朋友血泪经验的总结:

现象可能原因排查思路与解决方法
上电后单片机不工作1. 电源短路或反接。
2. 晶振未起振。
3. 复位电路问题。
4. Boot引脚配置错误。
1. 万用表测各电源对地电阻,排除短路。
2. 示波器测晶振引脚波形。
3. 检查复位按键和电容。
4. 查阅芯片手册,确认Boot0/1引脚电平。
电机不转或抖动1. 电机驱动芯片使能信号未给。
2. PWM频率不对(通常10-20kHz)。
3. 电源功率不足,带载后电压被拉低。
4. H桥上下桥臂直通,烧毁芯片。
1. 检查驱动芯片的EN/STBY引脚。
2. 用示波器测量PWM输出波形和频率。
3. 测量电机工作时电池电压,换更大容量或C数电池。
4. 检查程序逻辑,确保同一桥臂上下管不会同时导通。
舵机打死或啸叫1. PWM脉宽范围超出舵机机械限位。
2. 舵机供电电压不足或电流不够。
3. 机械卡死。
1. 用示波器校准PWM脉宽,确保在0.5ms-2.5ms内。
2. 单独给舵机供稳定的6V电,并确保导线够粗。
3. 拆下舵机臂,检查是否安装过紧。
摄像头图像扭曲、抖动1. 摄像头供电不稳。
2. 像素时钟(PCLK)和数据线(D0-D7)受干扰。
3. VSYNC/HSYNC信号采集时序错误。
1. 给摄像头电源加磁珠和滤波电容。
2. 缩短排线长度,或使用屏蔽线。数据线走线远离电机等噪声源。
3. 用逻辑分析仪抓取时序,确保程序读取时序与摄像头输出时序匹配。
电磁信号噪声大、不稳定1. 运放电路自激振荡。
2. 电源纹波大。
3. 传感器导线成为天线,引入干扰。
1. 在运放反馈回路并联小电容(几十pF)消振。
2. 模拟电源部分加强滤波,使用LDO而非DCDC。
3. 使用双绞线连接电感,并尽量缩短走线。
小车在直道左右摇摆(振荡)1. 转向PID的P值过大。
2. D值过小或为0,无法抑制超调。
3. 机械虚位过大(舵机臂、连杆间隙)。
1. 逐步减小P值,直到振荡消失。
2. 适当加入D参数,观察效果。
3. 紧固所有机械连接件,减少虚位。
过弯时冲出去1. 入弯速度太快。
2. 转向响应太慢(P值小)。
3. 前瞻距离太短,来不及反应。
1. 在弯道处降低速度设定值。
2. 适当增大转向P值,或加入D值提高响应速度。
3. 优化传感器布局或算法,增加有效前瞻。
编码器测速不准1. 定时器输入捕获模式配置错误。
2. 编码器脉冲数少,低速时分辨率低。
3. 测量周期过长,速度更新慢。
1. 检查定时器是否在编码器接口模式。
2. 换用高线数编码器,或使用M法测速(测频率)提高低速精度。
3. 缩短速度计算周期,如每10ms计算一次。

实操心得:调试时一定要大胆假设,小心求证。遇到问题,先区分是硬件问题还是软件问题。用示波器、逻辑分析仪、万用表等工具获取客观数据,而不是凭感觉。养成模块化测试的习惯,每写好一个功能,就单独测试验证,不要等全部写完再联调,那样排查问题如同大海捞针。

7. 性能优化与赛场策略

当小车能稳定跑完全程后,下一步就是追求更快、更稳。

7.1 软件层面的极致优化

  1. 代码效率

    • 使用查表法:将复杂的浮点运算(如三角函数、PID计算)的结果预先计算好存入数组,用查表代替实时计算,极大提升速度。
    • 启用硬件FPU:如果单片机支持,务必在编译器中开启硬件浮点单元,浮点运算速度会有数量级提升。
    • 优化图像处理:减少处理区域(ROI),只处理图像中下部赛道区域;使用汇编或编译器优化选项;将二值化等操作利用DMA或硬件加速。
  2. 控制算法进阶

    • 变参数PID:直道和弯道使用不同的PID参数。可以在程序中根据偏差大小或曲率实时切换参数表。
    • 前馈控制:在已知赛道曲率(例如通过记忆)的情况下,提前给出一个基础舵机角度,再结合PID反馈进行微调,可以大幅提升过弯的平滑性和速度。
    • 速度规划:不仅仅是弯道减速,要实现更精细的“入弯减速-弯心匀速-出弯加速”的速度曲线规划,类似于赛车走线。

7.2 机械与硬件的微调

  1. 减重:在不影响强度的情况下,对主控板、传感器板进行镂空设计,使用更轻的材料制作支架。重量减轻意味着加速更快,惯性更小。
  2. 重心与配重:通过移动电池位置或增加配重块,将重心调整到最佳位置。通常重心低且靠后,有助于后轮驱动的小车获得更好抓地力。
  3. 轮胎与差速:打磨后的轮胎可以涂抹少许松香酒精溶液(俗称“刷胎水”)以临时增加摩擦力。调整差速器的松紧,让过弯时内外轮转速差更合理。

7.3 赛场适应性调整

比赛场地和自家实验室环境总有差异。

  1. 灯光:如果是摄像头组,提前准备不同色温的灯光进行测试,或者算法上增加自适应阈值或色彩校正。
  2. 赛道摩擦力:赛场地面可能更滑或更涩。准备不同摩擦系数的轮胎(如不同粗糙度的热熔胶)以备更换。
  3. 电池状态:比赛前将电池充满并静置一段时间。多备几组性能一致的电池。
  4. 调试策略:比赛现场通常调试时间有限。提前准备好一套快速调参流程:例如,准备一个通过串口一键修改PID参数并保存的上位机工具;将关键参数(如图像阈值、速度表)设计成易调节的模式。

参加“飞思卡尔杯”智能车竞赛,收获的远不止一张证书或一个奖项。你将完整经历一个产品从设计、开发、调试到优化的全过程,深刻理解理论与实践的鸿沟如何跨越,学会在无数次的失败中寻找原因、解决问题。这段与队友并肩作战、通宵调车的日子,将会成为你大学生涯乃至职业生涯中最宝贵的财富之一。它锻炼的不仅是技术,更是项目管理能力、团队协作精神和抗压心态。所以,不要犹豫,组好你的团队,选定你的战场,开始这场充满激情与智慧的挑战吧。记住,最快的车不一定是冠军,最稳的车才能笑到最后。在追求速度的极限之前,先让你的小车可靠地跑起来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 0:57:50

龙虾热降温,我们到底需要什么样的 Agent?

责编 | 《AI 进化论》栏目组出品 | CSDN(ID:CSDNnews)过去几个月,AI Agent 无疑是技术圈最火热的词。我们聊颠覆、聊入口、聊取代……仿佛一夜之间,一个无所不能的“数字员工”就能接管我们的一切工作。热度之下&#…

作者头像 李华
网站建设 2026/5/16 0:57:15

AI智能发票核验管理系统:企业财税数字化核验新方案

在企业财税日常管理中,传统发票核验长期依赖人工录入、比对、审核,存在效率低、错审漏审、真伪难辨、重复报销等诸多问题。随着企业票据量激增,人工核验模式已无法适配现代化财税管理需求。AI智能发票核验管理系统依托OCR识别、多模态信息解析…

作者头像 李华
网站建设 2026/5/16 0:57:15

OpenClaw用户如何通过TaotokenCLI快速写入配置并开始使用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 OpenClaw用户如何通过TaotokenCLI快速写入配置并开始使用 对于使用OpenClaw这类Agent工具的开发者来说,快速、正确地配…

作者头像 李华
网站建设 2026/5/16 0:52:30

基于CircuitPython与CLUE开发板的桌面自动浇花机器人DIY指南

1. 项目概述:一个会自己浇花的桌面机器人几年前,我养死了一盆心爱的琴叶榕,原因很简单:出差一周,忘了托人浇水。自那以后,我就一直在琢磨,能不能做个既有趣又实用的小玩意儿,让植物养…

作者头像 李华
网站建设 2026/5/16 0:52:27

模块四-数据转换与操作——21. 数据去重与重命名

21. 数据去重与重命名 1. 概述 数据去重和重命名是数据清洗中的常用操作。去重用于删除重复记录,重命名用于修改列名或索引名,使数据更易于理解和处理。 import pandas as pd import numpy as np# 创建示例数据 df pd.DataFrame({姓名: [张三, 李四,…

作者头像 李华