当前位置: 首页 > article >正文

Gym-ND_Makeblock:面向中学教学的STM32嵌入式机器人库

1. 项目概述Gym-ND_Makeblock是为奥地利新锡德尔Neusiedl地区中小学教育场景定制的嵌入式教学支持库专为 Makeblock 硬件平台如 mBot、mCore、Ultimate 2.0 套件与 Gymnasium文理中学信息学/机器人课程深度适配而设计。该库并非通用型工业级驱动框架而是聚焦于教育现场的可教学性、可调试性与渐进式学习路径——其核心目标是降低初学者接触嵌入式系统的第一道门槛同时为进阶学生提供可延展的底层接口抽象。项目名称中的 “Gym-ND” 明确指向应用场域Gymnasium德国及奥地利学制下的学术型中学与 Neusiedl具体地理实施单位而非泛指“健身房”或“通用 gym 环境”。这一定位决定了其技术选型、API 设计与错误处理机制均服务于教学闭环代码需能被学生逐行理解、单步调试硬件行为需具备确定性与可观测性故障反馈必须明确指向具体操作步骤如“电机端口未接线”而非“HAL_GPIO_WritePin failed with HAL_ERROR”。该库构建于 STM32F103C8T6Blue Pill 兼容主控与 STM32F401REmBot2 主控双平台基础之上通过分层架构实现硬件无关性抽象硬件抽象层HAL封装 STM32 标准外设库SPL或 HAL 库对 GPIO、TIM、USART、I²C 的初始化与控制设备驱动层Driver针对 Makeblock 特定模块如 RJ25 接口的巡线传感器、超声波测距模块、RGB LED、直流电机驱动芯片 L298N提供标准化读写接口教学逻辑层Pedagogical API暴露move_forward(30)、turn_left(90)、read_line_sensor()等语义化函数隐藏 PWM 占空比计算、PID 调参、I²C 地址映射等细节仿真桥接层Simulation Bridge预留与 Thonny IDE 或 Webots 仿真环境的串口协议接口支持无硬件条件下的算法验证。此架构使教师可基于同一套教学代码在真实硬件与虚拟环境中无缝切换极大提升课堂容错率与实验复现效率。2. 核心功能与教育价值映射2.1 模块化硬件驱动支持Gym-ND_Makeblock显式支持以下 Makeblock 教学模块并为其定义了统一的状态机模型模块类型典型型号关键驱动能力教学映射点传感器Me Ultrasonic Sensor单次触发测距cm、连续模式回调、温度补偿开关物理量测量原理、信号采样周期概念Me Line Follower左/中/右三路模拟电压读取、数字阈值判别、校准模式自动/手动模拟-数字转换、阈值设定与噪声抑制Me Temperature SensorI²C 读取摄氏度±0.5℃精度、内置热敏电阻线性化补偿传感器非线性校正、I²C 多设备地址管理执行器Me DC Motor正反转控制、0–100% 占空比调速、堵转电流检测通过 ADC 监测驱动芯片压降PWM 原理、电机负载特性、过流保护意识Me RGB LED单颗/多颗独立颜色控制RGB 8bit、呼吸灯模式预设频率/自定义占空比数字信号时序、色彩空间RGB、状态机通信接口Me Bluetooth ModuleAT 指令透传模式、串口波特率自适应9600/115200、连接状态 LED 反馈串口协议分层、AT 指令集、硬件握手概念所有驱动均采用阻塞式同步接口如ultrasonic_read_cm()返回实际距离值避免引入 FreeRTOS 任务调度复杂度确保学生首次接触时无需理解“异步回调”或“事件循环”。仅在高级示例中提供非阻塞版本如ultrasonic_start_measurement()ultrasonic_is_ready()作为进阶教学内容。2.2 教学专用工具链集成库原生集成以下教育工具链消除环境配置障碍Thonny Python IDE 支持通过micropython-stubber生成完整类型提示Type Hints在 Thonny 中启用智能补全与参数提示。例如输入mbot.后IDE 自动列出move_forward,set_led_color,calibrate_line_sensors等函数。Arduino IDE 兼容头文件提供Makeblock_ND.h封装全部 C 类兼容 Arduino 1.6 编译器。学生可沿用熟悉的setup()/loop()结构底层仍调用 STM32 HAL。Webots 仿真协议定义轻量级 ASCII 协议M:FORWARD:30\n,S:ULTRA:12.5\nWebots 中的虚拟 mBot 通过串口监听并执行对应动作真实硬件亦可解析该协议实现虚实联动。2.3 安全与鲁棒性设计针对课堂常见误操作库内置三级防护机制硬件级限流所有电机输出通道串联 0.1Ω 检测电阻ADC 实时采样压降。当电流持续 1.2A 超过 200ms自动关闭 PWM 输出并置位MOTOR_OVERLOAD标志软件级看门狗主循环中强制调用mbot_watchdog_feed()。若 3 秒内未调用触发软复位并点亮红蓝 LED 交替闪烁故障码WDG_TIMEOUT传感器自检mbot_init()启动时执行sensor_self_test()依次检查超声波模块是否响应0x00触发指令巡线传感器三路 ADC 值是否在 [0, 4095] 有效范围内RGB LED 是否能正确写入0xFF0000纯红并读回一致值。任一测试失败串口输出详细错误信息如ULTRASONIC_NO_RESPONSE0x01并暂停后续初始化避免“静默失败”。3. 关键 API 详解与工程实践3.1 初始化与配置 API// 初始化全部硬件模块返回状态码 MBot_Status mbot_init(void); // 配置电机 PID 参数仅用于高级课程 void mbot_motor_set_pid_params(uint8_t motor_id, float kp, float ki, float kd); // 设置巡线传感器校准模式自动校准需白/黑板各停留2秒 void mbot_line_sensor_calibrate(MBot_CalibrationMode mode);mbot_init()是唯一必需调用的初始化函数。其内部执行严格时序HAL_Init()→SystemClock_Config()→MX_GPIO_Init()依次初始化LEDGPIOB Pin0/1、超声波TIM2 CH1 触发 EXTI9 中断、巡线ADC1 CH0/1/2、电机TIM3 CH1/2 PWM执行sensor_self_test()若全部通过点亮绿色 LED 并返回MBOT_OK否则返回对应错误码MBOT_ERR_ULTRASONIC,MBOT_ERR_LINE_SENSOR等工程要点mbot_init()不开启任何外设中断所有传感器读取均为轮询。教师可根据课程进度在loop()中显式调用mbot_ultrasonic_update()触发单次测量避免学生混淆中断上下文。3.2 运动控制 API// 基础运动单位百分比速度0-100 void mbot_move_forward(uint8_t speed); void mbot_move_backward(uint8_t speed); void mbot_turn_left(uint8_t speed); // 左轮后退右轮前进 void mbot_turn_right(uint8_t speed); // 左轮前进右轮后退 // 精确运动单位厘米/角度需已知轮径与轴距 void mbot_move_distance(float cm, uint8_t speed); void mbot_turn_angle(float degrees, uint8_t speed); // 停止所有电机 void mbot_stop_all_motors(void);mbot_move_distance()与mbot_turn_angle()依赖编码器反馈mBot2或时间估算基础版 mBot。其实现逻辑体现教育设计思想// 基础版无编码器距离控制伪代码 void mbot_move_distance(float cm, uint8_t speed) { float time_sec cm / (0.12 * speed); // 0.12m/s 100% speed 经验公式 HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1); // 左轮 HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_2); // 右轮 HAL_Delay((uint32_t)(time_sec * 1000)); mbot_stop_all_motors(); }该实现故意使用经验公式而非物理建模引导学生通过实验标定自己的小车参数如cm_per_second_at_100pct将编程与物理实验结合。3.3 传感器数据获取 API// 超声波阻塞式最大等待50ms uint16_t mbot_ultrasonic_read_cm(void); // 巡线传感器返回0-100归一化值0全白100全黑 uint8_t mbot_line_sensor_read_left(void); uint8_t mbot_line_sensor_read_center(void); uint8_t mbot_line_sensor_read_right(void); // 温度传感器I²C带线性补偿 float mbot_temperature_read_celsius(void);mbot_ultrasonic_read_cm()的关键实现细节// 使用输入捕获测量高电平时间 uint16_t mbot_ultrasonic_read_cm(void) { // 1. 发送10us触发脉冲 HAL_GPIO_WritePin(ULTRASONIC_TRIG_GPIO_Port, ULTRASONIC_TRIG_Pin, GPIO_PIN_SET); Delay_us(10); HAL_GPIO_WritePin(ULTRASONIC_TRIG_GPIO_Port, ULTRASONIC_TRIG_Pin, GPIO_PIN_RESET); // 2. 等待回响引脚变高超时50ms if (HAL_GPIO_ReadPin(ULTRASONIC_ECHO_GPIO_Port, ULTRASONIC_ECHO_Pin) GPIO_PIN_RESET) { if (HAL_GPIO_WaitForEdge(ULTRASONIC_ECHO_GPIO_Port, ULTRASONIC_ECHO_Pin, GPIO_MODE_IT_RISING, 50000) ! HAL_OK) { return 0; // 超时无物体 } } // 3. 启动输入捕获 __HAL_TIM_ENABLE_IT(htim2, TIM_IT_CC1); __HAL_TIM_ENABLE_COUNTER(htim2); // 4. 在中断中记录上升沿/下降沿时间戳 // ...中断服务程序略 // 5. 计算距离time_us / 58.0 空气中声速340m/s → 34000cm/1000000us return (uint16_t)(ultrasonic_pulse_width_us / 58.0f); }此代码明确展示“触发-回响”时序学生可直接在 Keil/IAR 中设置断点观察ultrasonic_pulse_width_us变化建立硬件信号与软件变量的直观联系。4. 典型教学项目实现4.1 自主导航小车初中阶段目标小车沿黑色轨迹行驶遇前方障碍物15cm停止。#include Makeblock_ND.h int main(void) { HAL_Init(); SystemClock_Config(); if (mbot_init() ! MBOT_OK) { while(1) { /* 初始化失败红灯常亮 */ } } while(1) { uint8_t left mbot_line_sensor_read_left(); uint8_t center mbot_line_sensor_read_center(); uint8_t right mbot_line_sensor_read_right(); uint16_t dist mbot_ultrasonic_read_cm(); // 避障逻辑距离15cm则停止 if (dist 0 dist 15) { mbot_stop_all_motors(); HAL_Delay(1000); continue; } // 巡线逻辑三路全白→直行左白右黑→右转左黑右白→左转 if (center 50) { mbot_move_forward(40); } else if (left 50 right 30) { mbot_turn_right(30); } else if (left 30 right 50) { mbot_turn_left(30); } else { mbot_move_forward(30); // 微调 } HAL_Delay(50); // 控制刷新率 } }教学重点HAL_Delay(50)引入控制周期概念避免电机频繁启停传感器阈值50非固定值要求学生用串口打印原始 ADC 值实地标定黑白阈值dist 0判断排除超声波无响应异常培养故障排查意识。4.2 温室环境监测高中阶段目标每30秒采集温度、光照扩展 ADC 通道、土壤湿度模拟电压通过蓝牙发送至手机 App。// 在 mbot_init() 后添加 MX_ADC1_Init(); // 初始化额外 ADC 通道 MX_USART2_UART_Init(); // 蓝牙串口 void send_env_data(void) { char buffer[64]; float temp mbot_temperature_read_celsius(); uint16_t light HAL_ADC_GetValue(hadc1); // 假设接在 ADC1_IN0 uint16_t moisture HAL_ADC_GetValue(hadc1); // ADC1_IN1 snprintf(buffer, sizeof(buffer), TEMP:%.1f;LIGHT:%d;MOISTURE:%d\n, temp, light, moisture); HAL_UART_Transmit(huart2, (uint8_t*)buffer, strlen(buffer), 100); } int main(void) { // ... 初始化代码同上 uint32_t last_send_ms 0; while(1) { if (HAL_GetTick() - last_send_ms 30000) { send_env_data(); last_send_ms HAL_GetTick(); } // 低功耗处理可在此处插入 HAL_PWR_EnterSLEEPMode() HAL_Delay(100); } }进阶要点引入HAL_GetTick()实现非阻塞定时为后续迁移到 FreeRTOSxTaskDelay()埋下伏笔snprintf()格式化输出强化 C 语言字符串处理能力注释中提示HAL_PWR_EnterSLEEPMode()引导学生研究低功耗设计。5. 硬件连接与调试指南5.1 RJ25 接口引脚映射mBot 基础版Makeblock RJ25 接口为 6-pinGym-ND_Makeblock严格遵循官方定义RJ25 Pin信号名STM32 引脚功能说明1VCC5V电机/LED 供电不可接 MCU2GNDGND公共地3SIG1PA0巡线传感器模拟输出 / 超声波 ECHO4SIG2PA1超声波 TRIG / RGB LED 数据线5NC—未使用6NC—未使用关键警告RJ25 的 VCC 引脚输出 5V严禁接入 STM32 的任何 GPIO所有传感器信号必须经电平转换如 TXB0104或分压电路10kΩ4.7kΩ降至 3.3V 以下否则永久损坏 MCU。5.2 常见故障诊断表现象可能原因快速验证方法解决方案mbot_init()返回MBOT_ERR_ULTRASONIC超声波模块未插紧或损坏用万用表测 SIG1/SIG2 对地电压是否随触发变化重新插拔更换模块电机不转但 LED 正常电机电源开关未拨至 ON检查主板右侧红色拨动开关位置拨至 ON 位置巡线传感器始终返回 0传感器未供电VCC 未接通测 RJ25 Pin1 对地电压检查电源线连接蓝牙无法配对波特率不匹配用串口助手发送AT看是否返回OK在MX_USART2_UART_Init()中确认huart2.Init.BaudRate 9600所有诊断步骤均设计为学生可独立完成无需示波器等专业设备仅需万用表与基础电子知识。6. 源码结构与二次开发指引Gym-ND_Makeblock源码采用清晰的模块化布局Gym-ND_Makeblock/ ├── Core/ # 核心框架 │ ├── mbot_core.c/h # 初始化、看门狗、错误处理 │ └── mbot_config.h # 平台配置选择 mBot/mBot2/Ultimate ├── Drivers/ # 硬件驱动 │ ├── mbot_ultrasonic.c/h # 超声波驱动含输入捕获 ISR │ ├── mbot_line_sensor.c/h # 巡线传感器ADC 多通道扫描 │ └── mbot_motor.c/h # 电机 PWM 控制TIM3 高级定时器 ├── Examples/ # 教学示例 │ ├── LineFollower/ # 巡线小车 │ ├── ObstacleAvoidance/ # 避障小车 │ └── EnvironmentalMonitor/# 环境监测 └── Utilities/ # 工具 ├── mbot_debug.c/h # 串口调试宏mbot_printf └── mbot_simulation.c/h # Webots 仿真协议解析二次开发建议如需添加新传感器如气压计 BMP280只需在Drivers/下新建mbot_bmp280.c/h实现bmp280_init()和bmp280_read_pressure()并在mbot_core.c的mbot_init()中调用修改默认电机参数编辑Core/mbot_config.h中#define MBOT_WHEEL_DIAMETER_MM 65启用 FreeRTOS取消注释Core/mbot_config.h中#define MBOT_USE_FREERTOS库会自动切换为队列信号量驱动模型。所有修改均保持原有 API 不变确保教学代码向前兼容。

相关文章:

Gym-ND_Makeblock:面向中学教学的STM32嵌入式机器人库

1. 项目概述Gym-ND_Makeblock是为奥地利新锡德尔(Neusiedl)地区中小学教育场景定制的嵌入式教学支持库,专为 Makeblock 硬件平台(如 mBot、mCore、Ultimate 2.0 套件)与 Gymnasium(文理中学)信息…...

C# 面试高频题:装箱和拆箱是如何影响性能的?痛

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

实战分享:我把Qwen2.5-7B-Instruct变成专属文本分类器,LlamaFactory LoRA微调+推理加速全记录

从零构建Qwen2.5-7B文本分类引擎:LlamaFactory LoRA微调与vLLM推理加速实战 去年接手一个政务文本分类项目时,传统BERT模型在长文本场景下的表现让我屡次陷入调参困境。直到尝试用Qwen2.5-7B-Instruct配合LlamaFactory进行LoRA微调,才发现大语…...

Unity发布京东小游戏狗

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

【实战指南】融合DEM与水文分析的地表径流模拟与流域划分——以海河流域为例(含完整流程)

1. 从DEM到水文分析的核心逻辑 很多人第一次接触DEM数据时,会觉得这就是个普通的地形高程图。但当我用DEM预测出某次暴雨后的洪水淹没范围时,才真正理解到数字高程背后隐藏的水文密码。DEM数据就像地形的DNA,通过水文分析工具链的解码&#x…...

电商客服+导购智能体的设计与开发确

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

基于非支配排序遗传算法NSGAII的综合能源优化调度附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

【价格型需求响应】基于Logistic函数的负荷转移率模型需求响应研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

电子电路中的“心脏”:电源都

前言 Kubernetes 本身并不复杂,是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps,这些基础组件简单直接,甚至显得有些枯燥。但后来我…...

Vue + Iframe 实战:打造企业级流程配置中心诙

简介 langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

备考策略:针对职场人的时间与精力,提供AI认证考试的高效备考与避坑方案

CAIE注册人工智能工程师(简称CAIE认证、赛一认证或CAIE(赛一)认证),是由CAIE人工智能研究院颁发的聚焦人工智能领域的专业技能等级认证,旨在培养和评估具备理论基础实战能力的复合型AI人才,覆盖零基础小白、职场赋能者…...

手机端访问 Web 服务器

手机端访问 Web 服务器 从手机端访问 S7-1200 Web 服务器,需要将 S7-1200 CPU 连接 Internet 网络或者本地无线接入点相连的网络。本文档是将 S7-1200 CPU 用网线直接连接到无线设备上,并将手机的 WIFI 信号连接到由无线设备创建的无线网络中。无线设备…...

选型建议:基于职场新人的能力模型,深度分析一级与二级认证的匹配度

CAIE注册人工智能工程师(简称CAIE认证),是聚焦人工智能领域的专业技能等级认证,由CAIE人工智能研究院颁发,核心目标是培养和评估兼具理论基础与实战能力的复合型AI人才。无论你是刚接触AI的零基础小白,希望…...

【LeetCode Hot 100】滑动窗口最大值——多种解法深度解析

题目描述 题目链接:LeetCode 239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回每个滑动窗口中的最大值。 示例&am…...

弹幕格式转换难题?用DanmakuFactory一键解决XML到ASS的专业转换

弹幕格式转换难题?用DanmakuFactory一键解决XML到ASS的专业转换 【免费下载链接】DanmakuFactory 支持特殊弹幕的xml转ass格式转换工具 项目地址: https://gitcode.com/gh_mirrors/da/DanmakuFactory 在当今的视频创作和观看生态中,弹幕已经成为不…...

ERTEC 系列 PROFINET 芯片级硬件过滤器分析桌

一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...

【服务出错问题排查记录】从一个“点击失败”开始:为什么“系统异常”其实是最差的错误设计

一、问题起点:一次“无信息”的失败 ​ 那天我在页面上点击一个功能按钮,预期是触发一次 URL 分析任务。但页面只返回了一句:❗“系统异常,请稍后重试”。​ 没有错误详情,没有接口信息,也没有任何可追踪线…...

FastECompass:嵌入式轻量级倾角补偿电子罗盘算法库

1. FastECompass 库概述FastECompass 是一个专为嵌入式系统设计的轻量级电子罗盘(e-compass)算法库,核心目标是在资源受限的微控制器上实时、高效地解算三维姿态角:俯仰角(Pitch)、横滚角(Roll&…...

008、OpenClaw TTS 声学模型实战:训练数据准备与配置解析

上周调一个长句合成,输出音频在中段突然出现音调断裂,像是两个不同人在交替发音。频谱图上一看,隐状态在某个音素边界处发生了跳变。问题最终追溯到训练数据里同一说话人的音频存在采样率混用——部分文件是16kHz,另一些却是22.05kHz。预处理脚本没做统一重采样,导致模型在…...

语言的边界,与软件的命运秃

1. 引入 在现代 AI 工程中,Hugging Face 的 tokenizers 库已成为分词器的事实标准。不过 Hugging Face 的 tokenizers 是用 Rust 来实现的,官方只提供了 python 和 node 的绑定实现。要实现与 Hugging Face tokenizers 相同的行为,最好的办法…...

大模型推理延迟突增2300ms?立刻检查这7个负载均衡配置陷阱(含Nginx+Kong+Traefik三框架避坑checklist)

第一章:大模型工程化负载均衡策略优化 2026奇点智能技术大会(https://ml-summit.org) 在大模型推理服务规模化部署中,传统轮询或随机调度策略常导致GPU显存碎片化、请求延迟抖动加剧及节点间负载严重失衡。工程化负载均衡需兼顾请求语义特征&#xff0…...

html页面间调用

一、简单情况1、父页面通过iframe套子页面情况子页面通过window.parent调用父页面的函数2、多层嵌套window.top找到最顶层3、父界面通过open打开子界面子界面通过window.opener得到父界面二、复杂情况根据上述关系,进行各种组合,例如window.top.opener举…...

RT-Thread Studio配置避坑:手把手教你为WCH CH32V303工程正确指定GCC12工具链路径

RT-Thread Studio配置避坑:手把手教你为WCH CH32V303工程正确指定GCC12工具链路径 在嵌入式开发中,选择合适的工具链往往能显著提升开发效率和代码质量。对于使用WCH CH32V303这类RISC-V架构MCU的开发者来说,GCC12工具链带来的性能优化和代码…...

忘记文件名也能秒找文件!免索引全文搜索神器 FileLocator Pro v9.3.3560 多语便携版,支持Word/PDF/压缩包内容检索,助力高效办公

日常工作中,我们可能都有过这样的经历:记得文档里的某句话或某个数据,却想不起文件名,也不知道存在哪个文件夹里。Windows自带的搜索功能按文件名查找还可以,但按内容搜索时速度较慢,而且很多格式的文件搜不…...

M3GIM2:面向mbed OS的3G IoT模组轻量级驱动库

1. 项目概述M3GIM2 是专为 mbed OS 平台设计的轻量级驱动库,面向日本 Tabrain 公司推出的3GIM(3G IoT Module)通信模组。该模组定位于工业级低功耗物联网终端,支持 WCDMA/HSDPA(UMTS Band I/VI/VIII)、内置…...

记录一个使用AI开发企业官网的思路

背景 今天在开发一个企业官网,想使用AI来开发,记录一下AI系统提示词,供大家学习。 AI提示词如下 角色:你是一位资深的全栈开发专家,精通Vue 3.0技术栈和现代UI/UX设计,善于将品牌故事转化为具有感染力的数字…...

数模加油站:以数为翼,为梦想加油 —— 赋能每一位建模者的成长之路

数模加油站隶属于合肥科思通途教育科技有限公司,脱胎于2018年成立的睿森科研,深耕教育科技赛道,专注于数学建模服务领域,以专业之力搭建优质服务平台。品牌秉持“让数学建模触手可及,让每一份努力都有回响”的核心价值…...

大模型到底是啥?运维人分钟搞懂(不用数学)缎

1. 流图:数据的河流 如果把传统的堆叠面积图想象成一块块整齐堆叠的积木,那么流图就像一条蜿蜒流淌的河流,河道的宽窄变化自然流畅,波峰波谷过渡平滑。 它特别适合展示多个类别数据随时间的变化趋势,尤其是当你想强调整…...

Spring with AI (): 搜索扩展——向量数据库与RAG(下)僖

. GIF文件结构 相比于 WAV 文件的简单粗暴,GIF 的结构要精密得多,因为它天生是为了网络传输而设计的(包含了压缩机制)。 当我们用二进制视角观察 GIF 时,它是由一个个 数据块(Block) 组成的&…...

从ViT到Swin:手把手教你理解那个让Transformer在CV领域“开窍”的Shifted Windows

从ViT到Swin:揭秘Shifted Windows如何让Transformer在CV领域"开窍" 当Vision Transformer(ViT)首次将自然语言处理领域的Transformer架构引入计算机视觉时,整个AI社区为之振奋。但很快,研究者们发现了一个尴…...