news 2026/8/19 10:09:50

基于树莓派Pico与超声波传感器的智能盲杖原型设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于树莓派Pico与超声波传感器的智能盲杖原型设计与实现

1. 项目概述:当传统盲杖遇见树莓派

前几天在整理工作室的旧物时,翻出了一根朋友多年前用过的旧盲杖。看着这根结构简单、功能单一的辅助工具,我就在想,在万物互联、传感器成本大幅降低的今天,我们能不能用一些常见的开源硬件,给这根盲杖来一次“智慧升级”?让它不仅能探知前方的障碍,还能告诉使用者更丰富的信息,比如障碍物的距离、大概的高度,甚至通过不同的反馈方式让信息传递更直观。这就是“SmartStick”项目的初衷:基于树莓派 Pico 和超声波模块,打造一款低成本、高可定制性的智能盲杖原型。

这个项目听起来有点极客,但实际拆解下来,你会发现它的核心逻辑非常清晰。它本质上是一个集成了测距、数据处理和触觉/听觉反馈的嵌入式系统。对于硬件爱好者来说,这是一个绝佳的入门项目,涵盖了传感器应用、微控制器编程和简单的产品思维;对于关心辅助科技的朋友,它能让你直观地理解如何用技术解决现实生活中的具体痛点。整个系统的物料成本可以控制在百元级别,大部分组件都能在常见的电子商城找到,可复现性极高。

接下来,我会从设计思路、硬件选型、代码实现到外壳制作,完整地拆解这个项目的每一个环节。你会发现,让一根棍子“聪明”起来,并没有想象中那么复杂。

2. 核心设计思路与方案选型

2.1 需求分析与功能定义

在做任何硬件项目之前,明确需求是关键。对于一款辅助行走的智能盲杖,我们需要从使用者的真实场景出发。传统盲杖通过敲击地面和物体来反馈信息,但它的探测范围有限,且无法区分悬空障碍物(如低垂的树枝)和地面坑洼。

因此,SmartStick 需要解决几个核心痛点:

  1. 扩大探测范围:在盲杖触及障碍物之前就提前预警。
  2. 区分障碍类型:至少能提示障碍物的大致高度(是绊脚石还是撞头梁)。
  3. 提供直观反馈:反馈方式必须快速、无歧义,且不影响使用者听取环境声音。
  4. 保持轻便与可靠:不能过于笨重,续航要足够一天使用,系统必须稳定。

基于这些,我定义了 SmartStick 的 V1.0 基础功能:

  • 多级距离预警:通过超声波传感器实时测量前方障碍物距离,并根据距离远近提供不同等级的反馈。
  • 简单高度判别:通过安装两个不同角度的超声波传感器,粗略判断障碍物处于腿部高度还是头部高度。
  • 多模态反馈:结合振动马达(触觉)和蜂鸣器(听觉)提供反馈,振动用于常规距离提示,蜂鸣器用于紧急(极近)警报。
  • 低功耗运行:采用低功耗微控制器和合理的电源管理策略,确保续航。

2.2 主控芯片选型:为什么是树莓派 Pico?

市面上微控制器很多,比如 Arduino Uno、ESP32等。选择树莓派 Pico(RP2040芯片)是基于以下几点考量:

  1. 性价比与性能平衡:Pico 价格低廉,但搭载的双核 ARM Cortex-M0+ 处理器性能远超同价位竞品,主频133MHz,能轻松处理多个传感器的数据并实现复杂的反馈逻辑,为后续功能升级(如加入语音模块)留足余地。
  2. 丰富的IO与接口:Pico 具有26个多功能GPIO引脚,足以连接多个传感器、反馈器,并且支持PWM(用于控制振动强度)、ADC(预留)等,硬件扩展性极好。
  3. 完善的MicroPython支持:虽然也可以用C/C++开发,但MicroPython对于快速原型开发太友好了。它语法简单,无需复杂的编译环境,通过串口就能直接更新代码,极大地降低了开发调试门槛。这对于希望专注于功能逻辑而非底层驱动的爱好者来说至关重要。
  4. 社区生态活跃:树莓派基金会背书,意味着有海量的教程、库文件和社区支持。遇到任何问题,几乎都能找到解决方案或讨论。

注意:虽然ESP32集成了Wi-Fi/蓝牙,功能更强,但本项目V1.0阶段暂不需要联网功能。ESP32在深度睡眠模式下的功耗可能更低,但Pico的功耗对于本项目(搭配大容量锂电池)也已完全足够。选择Pico的核心原因是其极佳的学习曲线和稳定的性能。

2.3 传感器选型:超声波模块的实战考量

超声波测距是此项目的核心。常用的HC-SR04模块价格便宜,但其工作原理决定了其一些特性需要我们在设计时注意。

HC-SR04通过Trig引脚发送一个10us的高电平脉冲触发测距,然后Echo引脚会输出一个高电平脉冲,其宽度与距离成正比。计算距离的公式为:距离 = (高电平时间 * 声速) / 2。声速受温度影响,常温下可按340m/s估算。

为什么不用更先进的ToF(飞行时间)激光传感器?原因还是成本和场景。ToF传感器精度高、响应快,但在室外强光下可能受影响,且价格是超声波模块的十倍以上。对于探测几十厘米到几米范围内的障碍物,超声波传感器的精度(约±3mm)完全满足需求,且不受光照影响,性价比无敌。

本项目计划使用两个HC-SR04模块。一个水平向前安装,主要探测正前方路径上的障碍;另一个略微向下倾斜安装(约30度),用于探测较近的地面障碍或坑洼。这种双传感器布局是实现“高度粗略判别”的基础。

3. 硬件系统搭建与电路设计

3.1 物料清单(BOM)与采购

以下是完成核心功能所需的最低配置物料清单:

组件名称型号/规格数量说明
微控制器树莓派 Pico1主控板,注意是Pico,非Pico W。
超声波传感器HC-SR042建议购买带有3.3V/5V兼容电平版本的。
振动马达扁平马达(3-5V)1用于触觉反馈,直径建议10mm左右。
蜂鸣器有源蜂鸣器(3.3V)1用于紧急听觉警报。务必买“有源”的,给电就响。
电机驱动模块DRV8833或L9110S1用于驱动振动马达。Pico的GPIO驱动能力弱,不能直连马达。
电池18650锂电池(带保护板)1单节容量建议3400mAh以上。
充电管理模块TP40561用于安全给18650充电。
升压模块MT36081将电池电压(3.7V)升至5V,给Pico和传感器供电。
开关自锁开关1电源总开关。
电阻1kΩ, 10kΩ若干用于电平匹配(若HC-SR04是5V版)。
杜邦线公对公、公对母若干用于连接。
盲杖主体可拆卸式登山杖1建议选铝合金材质,中空,便于走线。

实操心得:采购时,HC-SR04一定要问清楚工作电压。老款很多是5V逻辑电平,其Echo脚输出的5V高电平会损坏Pico的3.3V GPIO。要么购买标明“3.3V兼容”的版本,要么准备用分压电路(后面会讲)。

3.2 电路连接详解与电平匹配

这是项目中最容易出错的一环。我们将系统分为供电、传感器、反馈三个部分来连接。

1. 供电部分

18650电池正负极 -> TP4056模块的B+和B-。 TP4056模块的OUT+和OUT- -> MT3608升压模块的IN+和IN-。 MT3608升压模块的OUT+(调整为5V) -> 电源开关一端。 电源开关另一端 -> 作为系统的“5V总线”,同时连接到树莓派Pico的VSYS引脚(Pin39)和HC-SR04的VCC。 MT3608升压模块的OUT- -> 作为系统的“GND总线”,连接到Pico的GND(Pin3, 8, 13, 18, 23, 28, 33, 38)和所有模块的GND。

重要提示:Pico的VBUS(Pin40)是直接输入5V的,但这里我们使用VSYS引脚,因为它允许电压范围在1.8V-5.5V,且内部有稳压电路给RP2040供电,更安全可靠。

2. 传感器部分(以第一个水平传感器为例,第二个同理): 假设你买的是5V逻辑电平的HC-SR04,连接方式如下:

  • HC-SR04.VCC-> 系统5V总线。
  • HC-SR04.GND-> 系统GND总线。
  • HC-SR04.Trig-> 直接连接到Pico.GPIO2。因为Trig是输入信号,Pico的3.3V高电平足以被HC-SR04识别为高电平。
  • HC-SR04.Echo->这里需要电平转换!Echo输出5V,不能直接接Pico。采用电阻分压电路:Echo引脚串联一个1kΩ电阻后接到Pico.GPIO3,同时从Pico.GPIO3这个节点连接一个10kΩ电阻到GND。这样,5V信号会被分压到约3.3V(5V * (10k/(1k+10k)) ≈ 4.5V,实际略高但通常在可接受范围),安全地送入Pico。

如果你买的是3.3V兼容版HC-SR04,那么VCC接3.3V(Pico的3V3_OUT, Pin36),Trig和Echo都可以直接连接Pico的GPIO,无需分压。

3. 反馈部分

  • 振动马达:不能直接接GPIO!GPIO驱动电流太小。将马达正负极接到DRV8833电机驱动模块的一个输出通道(如A1, A2)。DRV8833的VM接系统5V总线,GND接系统GND,其两个输入控制引脚(如AIN1, AIN2)分别接Pico的两个GPIO(如GPIO4, GPIO5)。通过PWM控制这两个引脚,就能实现马达的启停和振动强度控制。
  • 有源蜂鸣器:正极通过一个220Ω限流电阻连接到Pico的一个GPIO(如GPIO6),负极接GND。给GPIO高电平,蜂鸣器就响。

3.3 结构设计与组装要点

电路测试无误后,就要考虑如何将它们“装进”盲杖。

  1. 主体选择:我选用了一根可拆卸的铝合金登山杖。它的好处是手柄和杖体可以旋开,中空的杖体是天然的“线缆管道”。
  2. 传感器布局:将水平向前的超声波传感器固定在手柄前端下方。将向下倾斜的传感器固定在距手柄约20厘米的杖体上,并用热熔胶或3D打印一个小支架来固定其角度。确保传感器发射面没有被遮挡。
  3. 核心舱室:在手柄内部或专门设计一个防水盒,放置Pico、驱动模块、升压/充电模块。电池可以放在手柄里,如果空间不够,可以考虑将18650电池仓设计在杖体上。
  4. 反馈器安装:振动马达一定要用热熔胶或双面胶紧密固定在手柄内侧,确保振动能有效传递到使用者手掌。蜂鸣器开孔朝外,但孔不要太大,避免进水。
  5. 走线:所有连接传感器的线缆从手柄内部经中空杖体向下穿行。务必使用扎带或胶带固定线缆,避免在杖体内晃动产生异响或拉扯脱焊。

踩坑记录:第一次组装时,我把所有模块塞进手柄,没考虑散热和电磁干扰。电机驱动模块工作时发热,导致旁边的Pico运行不稳定。后来用一个小铝片将驱动模块隔开,并留出空气流通缝隙,问题解决。电子项目,布局和散热永远是硬件稳定的基础。

4. 软件编程与核心逻辑实现

4.1 开发环境搭建与MicroPython基础

首先,需要给Pico刷入MicroPython固件。去树莓派基金会官网下载最新的.uf2固件文件。按住Pico板上的BOOTSEL按钮不放,将其通过USB连接到电脑,然后松开按钮。电脑会识别出一个名为RPI-RP2的U盘,将下载的.uf2文件拖进去,Pico会自动重启并完成固件烧录。

接下来,使用Thonny IDE进行开发。Thonny轻量且对MicroPython支持极好。安装后,在Thonny右下角选择解释器为“MicroPython (Raspberry Pi Pico)”,并选择正确的串口。连接成功后,Shell界面会显示>>>提示符。

我们可以先写一个简单的测试程序,验证硬件连接。创建一个新文件,保存到Pico(会保存为main.py,开机自动运行)或电脑上。

4.2 超声波测距函数的编写与优化

测距的准确性是整个系统的基石。下面是一个考虑了错误处理和滤波的超声波测距函数:

import machine import utime class HCSR04: def __init__(self, trig_pin, echo_pin): self.trig = machine.Pin(trig_pin, machine.Pin.OUT) self.echo = machine.Pin(echo_pin, machine.Pin.IN) self.timeout_us = 30000 # 超时时间(微秒),对应约5米距离 def distance_cm(self): # 发送10us的触发脉冲 self.trig.low() utime.sleep_us(2) self.trig.high() utime.sleep_us(10) self.trig.low() # 等待回声引脚变高,并记录时间 while self.echo.value() == 0: signaloff = utime.ticks_us() while self.echo.value() == 1: signalon = utime.ticks_us() # 超时检查,防止死循环 if utime.ticks_diff(signalon, signaloff) > self.timeout_us: return -1 # 返回-1表示超时(无有效回波) timepassed = utime.ticks_diff(signalon, signaloff) # 计算距离:时间(us) * 声速(cm/us) / 2 # 声速约 0.0343 cm/us (343 m/s) distance = (timepassed * 0.0343) / 2 return distance # 初始化两个传感器 sensor_front = HCSR04(trig_pin=2, echo_pin=3) # 水平向前 sensor_down = HCSR04(trig_pin=7, echo_pin=8) # 向下倾斜 while True: dist_f = sensor_front.distance_cm() dist_d = sensor_down.distance_cm() print(f"前方: {dist_f:.1f} cm, 下方: {dist_d:.1f} cm") utime.sleep(0.1) # 100ms测量一次

代码解析与优化

  1. 超时机制while循环等待回声信号时,如果没有障碍物,回声引脚可能永远不会变高,导致程序卡死。通过utime.ticks_diff()检查等待时间,超过预设值(如对应5米)就返回错误值(-1)。
  2. 软件滤波:超声波容易受到干扰,单次测量可能跳变。在实际应用中,应该连续采样N次(比如5次),然后去掉最大最小值,取中间值的平均。这能有效滤除偶然误差。
  3. 测量频率:HC-SR04模块两次测量之间需要至少60ms的间隔。代码中的utime.sleep(0.1)(100ms)是安全的。过快的测量会导致上一次的回声干扰下一次的触发。

4.3 多级反馈控制逻辑的实现

有了可靠的距离数据,接下来就是根据距离控制振动马达和蜂鸣器。这里需要一个清晰的状态机逻辑。

from machine import Pin, PWM import utime # 初始化反馈设备 motor_ain1 = Pin(4, Pin.OUT) motor_ain2 = Pin(5, Pin.OUT) # 使用PWM控制振动强度,连接到AIN1 motor_pwm = PWM(Pin(4)) motor_pwm.freq(1000) # PWM频率1kHz buzzer = Pin(6, Pin.OUT) # 距离阈值定义(单位:厘米) DIST_SAFE = 150 # 安全距离,大于此值无反馈 DIST_WARN = 100 # 警告距离,开始轻微振动 DIST_ALERT = 60 # 警报距离,强烈振动 DIST_DANGER = 30 # 危险距离,强烈振动+蜂鸣 # 振动强度定义 (Duty Cycle: 0-65535) VIBRATE_LOW = 15000 # 轻度振动 VIBRATE_HIGH = 40000 # 强烈振动 def set_vibration(intensity): if intensity == 0: motor_ain1.low() # 注意:使用PWM的引脚,直接设置low可能无效,需用duty(0) motor_pwm.duty_u16(0) else: motor_pwm.duty_u16(intensity) def main_loop(): while True: dist_f = sensor_front.distance_cm() dist_d = sensor_down.distance_cm() # 优先处理更近的障碍物 effective_dist = min(dist_f, dist_d) if dist_f > 0 and dist_d > 0 else max(dist_f, dist_d) if effective_dist < 0: # 两个传感器都超时,可能前方开阔 set_vibration(0) buzzer.off() utime.sleep(0.1) continue # 多级反馈判断 if effective_dist > DIST_SAFE: set_vibration(0) buzzer.off() elif DIST_WARN < effective_dist <= DIST_SAFE: # 间歇性轻度振动:振0.2秒,停0.8秒 set_vibration(VIBRATE_LOW) utime.sleep(0.2) set_vibration(0) utime.sleep(0.8) elif DIST_ALERT < effective_dist <= DIST_WARN: # 持续性轻度振动 set_vibration(VIBRATE_LOW) buzzer.off() elif DIST_DANGER < effective_dist <= DIST_ALERT: # 持续性强烈振动 set_vibration(VIBRATE_HIGH) buzzer.off() else: # effective_dist <= DIST_DANGER # 危险!强烈振动 + 蜂鸣器急促鸣响 set_vibration(VIBRATE_HIGH) for _ in range(3): # 哔哔哔三声 buzzer.on() utime.sleep(0.1) buzzer.off() utime.sleep(0.1) # 主循环延迟已包含在间歇振动逻辑中,此处无需额外sleep if __name__ == '__main__': main_loop()

逻辑设计要点

  1. 距离融合effective_dist取两个传感器读数的较小值,这意味着只要任何一个传感器探测到近处障碍,就触发反馈。这符合安全优先的原则。
  2. 反馈梯度:从“间歇振动”到“持续振动”再到“振动+声音”,反馈的紧急程度和强度逐级提升,让使用者有清晰的判断。
  3. 非阻塞延迟:在“间歇性轻度振动”段,使用utime.sleep()会阻塞整个循环。对于更复杂的系统(比如需要同时处理按钮输入),可以考虑使用状态机和时间戳来管理振动周期,实现非阻塞。但当前逻辑简单,阻塞方式更直观。

4.4 功耗优化策略

为了让设备续航更久,必须考虑功耗。Pico的RP2040芯片功耗本身不高,但优化空间依然存在。

  1. 传感器供电管理:HC-SR04工作电流约15mA。我们可以通过一个GPIO控制一个MOSFET开关,来切断不测量时传感器的电源。但考虑到本项目测量间隔短(100ms),频繁开关可能引入不稳定,且节省的功耗有限,V1.0可以暂不实现。
  2. 处理器睡眠:MicroPython的machine.lightsleep()machine.deepsleep()可以让Pico进入低功耗模式。但睡眠期间GPIO状态和计时器行为需要仔细处理。一个折中方案是降低主频。Pico默认运行在133MHz,我们可以将其降到48MHz甚至更低,功耗会显著下降。
    import machine machine.freq(48_000_000) # 将CPU频率设置为48MHz
    在48MHz下,系统性能完全能满足超声波测距和简单逻辑判断,而功耗可能降低30%以上。
  3. 反馈器件控制:不反馈时,确保振动马达和蜂鸣器完全断电(duty cycle为0,GPIO输出低电平)。

5. 系统调试、问题排查与优化

5.1 常见问题与解决方案速查表

在开发和测试过程中,你几乎一定会遇到下表所列的问题。这里是我的踩坑实录和解决方案。

问题现象可能原因排查步骤与解决方案
超声波读数固定为0或某个极小值1. 接线错误(Trig/Echo反了)。
2. Echo引脚电平不匹配,损坏了Pico的GPIO。
3. 传感器前方有吸音材料(如海绵)或角度不对。
1. 用万用表检查Trig引脚在测量时是否有瞬间脉冲。
2.重点检查:如果是5V传感器,Echo是否接了分压电路?先用万用表量Echo引脚对地电压,确保高电平不超过3.6V。
3. 更换测试环境,对准硬质平面(如墙壁)测试。
超声波读数波动巨大(跳变)1. 电源噪声干扰。
2. 传感器附近有气流或微小障碍物(如灰尘)。
3. 代码中没有软件滤波。
1. 给Pico的VSYS和3V3引脚并联一个100uF的电解电容和一个0.1uF的瓷片电容滤波。
2. 确保传感器发射/接收面清洁。
3.实施软件滤波:连续采样5-7次,排序后取中位数。
振动马达不工作或力度很小1. 电机驱动模块未使能或接线错误。
2. PWM频率设置不当。
3. 电池电量不足,电压下降。
1. 检查DRV8833的VM(电源)和GND。用万用表测量其输出端是否有电压变化。
2. 扁平马达的典型工作频率在几十到几百Hz。尝试调整motor_pwm.freq(50)motor_pwm.freq(200)
3. 测量电池空载和工作时的电压,确保升压模块能输出稳定的5V。
蜂鸣器不响或一直响1. 蜂鸣器类型买错(买成无源蜂鸣器)。
2. 驱动电流不足。
3. 引脚配置错误(应设为输出模式)。
1.有源蜂鸣器给电就响,无源蜂鸣器需要频率驱动。确认你买的是有源的。
2. Pico的GPIO驱动能力约16mA。如果蜂鸣器工作电流较大,需要加一个三极管(如8050)驱动。
3. 检查代码中buzzer = Pin(6, Pin.OUT)是否正确。
系统运行一段时间后死机1. 电源不稳定或功率不足。
2. 散热不良导致芯片过热。
3. 程序陷入死循环或内存泄漏(MicroPython较少见)。
1. 这是最常见的原因!确保18650电池电量充足,且TP4056、MT3608模块能提供足够电流(至少1A)。
2. 触摸主控和驱动芯片是否烫手,改善通风。
3. 检查代码中所有循环是否有退出条件,超声波测距函数是否有超时返回。
两个超声波传感器互相干扰两个传感器同时发射超声波,声波相互干扰。错时触发:在代码中让两个传感器一前一后触发,中间加入几十毫秒的延迟。例如,先触发传感器A,读取其距离;等待50ms后再触发传感器B。

5.2 校准与个性化设置

每个人的步速、反应时间和对振动的感知都不同,因此SmartStick需要具备一定的可调性。

  1. 距离阈值校准:可以将阈值参数(DIST_SAFE,DIST_WARN等)做成可配置的。最简单的方法是在代码开头用变量定义,使用者可以根据自身情况修改后重新刷入固件。更高级的做法是增加一两个按钮,通过长按、短按进入“校准模式”,然后用蜂鸣器提示当前设置的距离档位。
  2. 反馈强度校准:振动马达的VIBRATE_LOWVIBRATE_HIGH值需要实际测试。太弱了感觉不到,太强了手会麻。可以在测试代码中写一个循环,让PWM占空比从0逐渐增加到65535,找到自己觉得舒适的低、中、高三个强度点。
  3. 传感器角度微调:向下倾斜的传感器角度需要根据使用者的身高和习惯步态调整。最佳角度是能让它在正常行走时,提前1-2步探测到地面上的台阶或小坑。这可能需要几次实际行走测试,并调整传感器支架的角度。

5.3 外壳制作与防水防尘考虑

一个粗糙的裸板原型和一个可靠的产品之间,差着一个好外壳。

  1. 3D打印:这是最理想的方案。使用Fusion 360或FreeCAD设计一个贴合手柄形状的下壳,用于容纳所有电子模块,再设计一个上盖。留出传感器孔、充电孔、开关孔。材料建议选用PETG或ASA,比PLA更耐候和抗冲击。
  2. 现成防水盒改造:如果不想折腾3D建模,可以购买大小合适的塑料防水接线盒(如Peli Case或仿制品),在盒子上开孔安装传感器和开关。缺点是外观可能比较笨重。
  3. 防水处理:所有开孔处,使用硅胶密封胶或热熔胶进行密封。电路板可以喷涂三防漆,防止潮气凝结引起短路。蜂鸣器的出声孔最好贴上防水透声膜。

最后的叮嘱:这个SmartStick是一个功能原型,它展示了用开源硬件实现辅助功能的巨大潜力。但它绝不能直接替代经过认证的专业盲杖或导盲设备投入实际使用。电子设备可能存在失效的风险,任何关乎安全的产品都需要经过严格的环境测试、可靠性验证和用户培训。这个项目的更大价值在于启发思路、学习技术和激发对辅助科技的兴趣。如果你基于此想法想开发更成熟的产品,务必与相关领域的专业人士和潜在使用者深入沟通,进行成千上万次的迭代测试。

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

四足机器人仿生设计:从步态算法到分布式系统架构的工程实践

1. 项目概述&#xff1a;从课堂到现实的仿生机器人探索如果你对机器人学、嵌入式系统或者仿生设计感兴趣&#xff0c;那么“Rex the Cyborg Dog”这个项目标题绝对能瞬间抓住你的眼球。这听起来不像是一个简单的课程作业&#xff0c;更像是一个充满野心的、将机械与生物灵感融合…

作者头像 李华
网站建设 2026/8/19 10:06:38

成品油交易即开票整体解决方案源头服务厂商(二)

成品油交易即开票整体解决方案源头服务商四、核心功能亮点作为成品油智慧监管源头硬件服务厂商&#xff0c;全栈税控采集与平台&#xff0c;近期聚焦成品油交易即开票方案&#xff0c;已在新疆、天津、湖北、广东等全国多省市落地&#xff0c;覆盖国有连锁、民营大站及乡镇油站…

作者头像 李华
网站建设 2026/8/19 10:01:22

基于Python技术的音乐网站系统(源码+讲解视频+LW)

联系博主 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 …

作者头像 李华
网站建设 2026/8/19 9:59:33

eNSP Pro保姆级部署指南:从零搭建华为网络实验环境

如果你是一名网络工程师、网络专业的学生&#xff0c;或者正在备考软考网络工程师认证&#xff0c;那么你一定对“模拟器”这个词不陌生。在真实设备昂贵且难以获取的环境下&#xff0c;模拟器是我们学习、实验、排错乃至备考的“神器”。而在众多网络模拟器中&#xff0c;华为…

作者头像 李华
网站建设 2026/8/19 9:57:55

从Prompt工程到人机协作:ChatGPT实战技巧与思维转变

1. 项目概述&#xff1a;当AI成为“作者” “ChatGPT made this”——这句话&#xff0c;或者说这个标签&#xff0c;正在成为数字创作领域一个既普遍又充满争议的注脚。你或许在社交媒体上见过它&#xff0c;附在一段精妙的文案下方&#xff1b;或许在技术论坛里看到过&#x…

作者头像 李华