0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探索DeepSeek的Ai-WB2模组程序:功能强大

安信可科技 来源:安信可科技 2025-02-11 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DeepSeek是什么?

DeepSeek,一家以代码编写能力为核心竞争力的 AI 科技公司,致力于通过高性能 AI 模型赋能企业智能化转型。公司拥有一支由顶尖程序员和 AI 专家组成的团队,他们以卓越的代码编写能力,不断优化和创新 AI 技术,为全球用户提供高效、智能的解决方案。

DeepSeek 的 AI 模型以高效的代码实现和强大的性能表现著称,能够在金融、医疗、教育等多个行业中发挥重要作用。其最新发布的大模型 R1,以极低的训练成本达到了行业领先水平,彰显了 DeepSeek 在代码编写和 AI 技术创新方面的强大实力。凭借卓越的代码能力和创新的商业模式,DeepSeek 正逐步成为全球 AI 领域的佼佼者,为全球科技产业的发展贡献力量。

之前还痴心妄想让它帮我搭建二次开发环境,但是因为权限问题,DeepSeek 无法操作终端。

那就试试 DeepSeek 给 Ai-WB2 模组编程,能不能直接编译运行呢?

在写这帖子之前,做了好多测试,大部分时间浪费在了服务器繁忙这个问题上!

24d83a02-e798-11ef-9310-92fbcf53809c.png

在开始让 DeepSeek 生成之前,注意要提前搭建好 Ai-WB2 的二次开发环境和测试工程,生成的代码才能直接复制。

提问技巧

AI 工具毕竟还不是人,所以在提问的时候,尽量提供要求和一些信息。比如使用那些库,需要达到什么效果等。

如果回复较慢,可以试试 siliconflow:

链接:https://cloud.siliconflow.cn/models

GPIO 点灯

提问内容如下:

24e6f970-e798-11ef-9310-92fbcf53809c.png

已经喜闻乐见了,接下来试试硅基流动的:

24f42f46-e798-11ef-9310-92fbcf53809c.png

尝试了两次之后,至少生成了代码,接下来完全不改动,复制测试一下:

#include 
#include 
#include 
#include   // 包含硬件定时器头文件
#include 
#include 


#define LED_PIN 3       // 定义GPIO3引脚
#define BLINK_INTERVAL 500 // 闪烁间隔500ms(周期1秒)


void led_init(void)
{
    /* 初始化GPIO时钟 */
    bl_gpio_enable_output(LED_PIN, 0, 0); // 配置GPIO3为输出模式
  
    /* 初始状态设置为低电平(根据电路设计可能需要反转) */
    bl_gpio_output_set(LED_PIN, 0);
}


void led_blink_task(void *pvParameters)
{
    while (1) {
        // 翻转GPIO状态
        bl_gpio_output_set(LED_PIN, !bl_gpio_input_get(LED_PIN));
  
        // 使用FreeRTOS延时函数
        vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS);
    }
}


void main(void)
{
    // 硬件初始化
    led_init();
  
    // 创建闪烁任务
    xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL);
  
    // 启动任务调度器
    vTaskStartScheduler();
  
    // 程序不会执行到这里
    while(1) {}
}

代码测试

25121524-e798-11ef-9310-92fbcf53809c.png

初步看着没什么错误,编译试试。

编译提示出了错误,只能手动改一下了。

修改之后

252e1224-e798-11ef-9310-92fbcf53809c.png

运行成功的代码

#include 
#include 
#include 
#include   // 包含硬件定时器头文件
#include 
#include 


#define LED_PIN 3       // 定义GPIO3引脚
#define BLINK_INTERVAL 500 // 闪烁间隔500ms(周期1秒)


void led_init(void)
{
    /* 初始化GPIO时钟 */
    bl_gpio_enable_output(LED_PIN, 0, 0); // 配置GPIO3为输出模式


    /* 初始状态设置为低电平(根据电路设计可能需要反转) */
    bl_gpio_output_set(LED_PIN, 0);
}


void led_blink_task(void* pvParameters)
{
    int cnt = 0;
    while (1) {
        // 翻转GPIO状态
        bl_gpio_output_set(LED_PIN, cnt % 2);


        // 使用FreeRTOS延时函数
        vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS);
        cnt++;
        if (cnt>10)
        {
            cnt = 0;
        }


    }
}


void main(void)
{
    // 硬件初始化
    led_init();


    // 创建闪烁任务
    xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL);


    // 启动任务调度器
    // vTaskStartScheduler();


    // 程序不会执行到这里
    while (1) {}
}

测试结果

253e8f14-e798-11ef-9310-92fbcf53809c.gif

PWM 调色

开发板上自带了 RGB,对应得 GPIO 如下:

25611b60-e798-11ef-9310-92fbcf53809c.png

好了开启第二轮对话了,提问内容如下:

2572b76c-e798-11ef-9310-92fbcf53809c.png

我已经麻木了!

尝试几次之后,给了回复:

258459cc-e798-11ef-9310-92fbcf53809c.png

提供的完整代码

#include 
#include 
#include 
#include 


// PWM通道配置(根据实际GPIO-PWM映射关系调整)
#define PWM_RED_CH    0    // GPIO14对应PWM通道0
#define PWM_GREEN_CH  1    // GPIO17对应PWM通道1
#define PWM_BLUE_CH   2    // GPIO3对应PWM通道2


// PWM频率参数(假设系统时钟144MHz)
#define PWM_FREQ      15000   // 15kHz
#define PWM_CLK_DIV   1       // 分频系数
#define PWM_PERIOD    (144000000 / PWM_CLK_DIV / PWM_FREQ)  // 周期值计算


void pwm_init() {
    // 配置GPIO为PWM功能
    bl_pwm_init(PWM_RED_CH, GPIO_PIN_14);
    bl_pwm_init(PWM_GREEN_CH, GPIO_PIN_17);
    bl_pwm_init(PWM_BLUE_CH, GPIO_PIN_3);


    // 统一设置PWM参数
    for(int ch = 0; ch < 3; ch++) {
        bl_pwm_set_freq(ch, PWM_FREQ);
        bl_pwm_set_duty(ch, 0);  // 初始占空比0%
    }
    bl_pwm_start();
}


void breathing_effect(uint8_t ch, uint32_t duration_ms) {
    const uint32_t steps = 100;
    const uint32_t delay = duration_ms / (steps * 2);


    // 渐亮
    for(int i = 0; i <= steps; i++) {
        bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps);
        vTaskDelay(delay / portTICK_PERIOD_MS);
    }
  
    // 渐暗
    for(int i = steps; i >= 0; i--) {
        bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps);
        vTaskDelay(delay / portTICK_PERIOD_MS);
    }
}


void rgb_test_task(void *pvParameters) {
    while(1) {
        // 红色呼吸
        breathing_effect(PWM_RED_CH, 2000);
        // 绿色呼吸
        breathing_effect(PWM_GREEN_CH, 2000);
        // 蓝色呼吸
        breathing_effect(PWM_BLUE_CH, 2000);
        // 白色混合呼吸
        for(int i = 0; i <= 100; i++) {
            bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100);
            vTaskDelay(20 / portTICK_PERIOD_MS);
        }
        for(int i = 100; i >= 0; i--) {
            bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100);
            vTaskDelay(20 / portTICK_PERIOD_MS);
        }
    }
}


void main() {
    pwm_init();
    xTaskCreate(rgb_test_task, "rgb_test", 512, NULL, 2, NULL);
    vTaskStartScheduler();
}

代码测试

25a06f4a-e798-11ef-9310-92fbcf53809c.png

有三个错误,做一下修改就好,修改或如下:

25ac027e-e798-11ef-9310-92fbcf53809c.png

编译正常,通过了。

运行测试

最后测试失败了,因为 PWM 通道全都没有对应上 GPIO,所以需要把 PWM 通道号改回来,再测试:

25c102aa-e798-11ef-9310-92fbcf53809c.png


灯颜色正确了,但是呼吸效果不对啊。

直接让 DeepSeek 帮我们修改,提问如下:

25d23df4-e798-11ef-9310-92fbcf53809c.png


根据意见,调节了 PWM 频率和分频系数,得到了非常不错的呼吸效果。

完整程序

#include 
#include 
#include 
#include 


// PWM通道配置(根据实际GPIO-PWM映射关系调整)
#define PWM_RED_CH    4    // GPIO14对应PWM通道0
#define PWM_GREEN_CH  2    // GPIO17对应PWM通道1
#define PWM_BLUE_CH   3    // GPIO3对应PWM通道2


// PWM频率参数(假设系统时钟144MHz)
#define PWM_FREQ      15000   // 15kHz
#define PWM_CLK_DIV   16       // 分频系数
#define PWM_PERIOD    (32000000 / PWM_CLK_DIV / PWM_FREQ)  // 周期值计算


void pwm_init() {
    // 配置GPIO为PWM功能
    bl_pwm_init(PWM_RED_CH, 14, PWM_FREQ);
    bl_pwm_init(PWM_GREEN_CH, 17, PWM_FREQ);
    bl_pwm_init(PWM_BLUE_CH, 3, PWM_FREQ);


    // 统一设置PWM参数
    for (int ch = 0; ch < 3; ch++) {
        bl_pwm_set_freq(ch, PWM_FREQ);
        bl_pwm_set_duty(ch, 0);  // 初始占空比0%
    }
    bl_pwm_start(PWM_RED_CH);
    bl_pwm_start(PWM_GREEN_CH);
    bl_pwm_start(PWM_BLUE_CH);
}


void breathing_effect(uint8_t ch, uint32_t duration_ms) {
    const uint32_t steps = 100;
    const uint32_t delay = duration_ms / (steps * 2);


    // 渐亮
    for (int i = 0; i <= steps; i++) {
        bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps);
        vTaskDelay(delay / portTICK_PERIOD_MS);
    }


    // 渐暗
    for (int i = steps; i >= 0; i--) {
        bl_pwm_set_duty(ch, (PWM_PERIOD * i) / steps);
        vTaskDelay(delay / portTICK_PERIOD_MS);
    }
}


void rgb_test_task(void* pvParameters) {
    while (1) {
        // 红色呼吸
        breathing_effect(PWM_RED_CH, 2000);
        // 绿色呼吸
        breathing_effect(PWM_GREEN_CH, 2000);
        // 蓝色呼吸
        breathing_effect(PWM_BLUE_CH, 2000);
        // 白色混合呼吸
        for (int i = 0; i <= 100; i++) {
            bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100);
            vTaskDelay(20 / portTICK_PERIOD_MS);
        }
        for (int i = 100; i >= 0; i--) {
            bl_pwm_set_duty(PWM_RED_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_GREEN_CH, (PWM_PERIOD * i) / 100);
            bl_pwm_set_duty(PWM_BLUE_CH, (PWM_PERIOD * i) / 100);
            vTaskDelay(20 / portTICK_PERIOD_MS);
        }
    }
}


void main() {
    pwm_init();
    xTaskCreate(rgb_test_task, "rgb_test", 512, NULL, 2, NULL);
    // vTaskStartScheduler();
}

测试结果

25ebac1c-e798-11ef-9310-92fbcf53809c.gif

总结

1、官方的服务器还是不给力,一直服务器繁忙

2、生成的代码有部分兼容性问题,达不到直接编译使用要求

3、接口不可能完全可用

使用经验

1、尽可能多的提供要求信息

2、需要结合自身编程经验完善程序细节,以达到想要的功能

3、嵌入式使用比较适合算法类的程序生成

最后最后,希望 DeepSeek 尽快完善起来!过来人的服务器繁忙:

260c5c28-e798-11ef-9310-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    89

    文章

    38091

    浏览量

    296603
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84762
  • DeepSeek
    +关注

    关注

    2

    文章

    824

    浏览量

    2812

原文标题:和大火的DeepSeek聊下Ai-WB2模组程序?它好会!

文章出处:【微信号:安信可科技,微信公众号:安信可科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【WiFi+蓝牙】智能门锁、智能插座:用Ai-WB2系列,价格更低,性能更强

    搭载 BL602(RISC-V)类芯片、支持 Wi-Fi 802.11 b/g/n 与 BLE 5.0 为核心能力。 1、“Ai-WB2系列模组特点 单Wi-Fi的价格,可买到Wi-Fi+BLE功能
    的头像 发表于 11-19 16:05 181次阅读
    【WiFi+蓝牙】智能门锁、智能插座:用<b class='flag-5'>Ai-WB2</b>系列,价格更低,性能更强

    蓝牙云屏:功能强大,性价比之选​

    蓝牙云屏:功能强大,性价比之选​ 在仪器仪表行业,想要在严格控制成本的同时保证设备功能强大,往往是一件两难的事情。要么为了控制成本牺牲功能,导致产品竞争力不足;要么为了丰富功能增加成本
    的头像 发表于 09-25 17:12 372次阅读
    蓝牙云屏:<b class='flag-5'>功能强大</b>,性价比之选​

    【Wi-Fi&amp;BLE模组Ai-WB2系列的固件烧录指导

    文章目录 一、前言 二、软硬件的准备 三、原始硬件接线 四、联系我们 前言 本文章教学视频链接: 视频链接 安信可Ai-WB2系列模组集成Wi-FiDownload按钮开始烧录,以下有几种情况
    的头像 发表于 08-27 16:19 653次阅读
    【Wi-Fi&amp;BLE<b class='flag-5'>模组</b>】<b class='flag-5'>Ai-WB2</b>系列的固件烧录指导

    【「DeepSeek 核心技术揭秘」阅读体验】第三章:探索 DeepSeek - V3 技术架构的奥秘

    数据中挖掘有价值信息,这也让我意识到架构设计对模型性能起着根本性作用,是 AI 具备强大能力的 “骨骼” 支撑。 二、流水线并行 书中关于流水线并行的内容,展现了提升计算效率的巧妙思路。简单流水线并行虽
    发表于 07-20 15:07

    信而泰×DeepSeekAI推理引擎驱动网络智能诊断迈向 “自愈”时代

    进行全流量采集与分析的基础上,叠加DeepSeek AI智能诊断功能,迅速识别出网络下行方向存在异常丢包现象。 图1:AI辅助诊断界面(展示关键指标分析,如重传率激增,推理指向网络丢包
    发表于 07-16 15:29

    如何在 Raspberry Pi AI Camera 上构建为开发人员提供实时的智能应用程序

    。最近推出的RaspberryPiAICamera是一款功能强大的硬件,可让您在RaspberryPi上构建功能强大AI应用程序。通过将人工智能推理卸载到IMX
    的头像 发表于 03-25 09:37 614次阅读
    如何在 Raspberry Pi <b class='flag-5'>AI</b> Camera 上构建为开发人员提供实时的智能应用<b class='flag-5'>程序</b>!

    分享一款功能强大的QuarkXPress桌面排版软件

    QuarkXPress 是功能强大的原创桌面排版软件。经过 40 多年的不断完善,如今它已成为创意专业人士的首选软件,用于实现出色的印刷和数字设计。 您可以选择预购软件并永久使用,也可以选择订阅
    的头像 发表于 03-14 09:31 1471次阅读
    分享一款<b class='flag-5'>功能强大</b>的QuarkXPress桌面排版软件

    HarmonyOS NEXT开发实战:DevEco Studio中DeepSeek的使用

    随着HarmonyOS Next的持续发布,鸿蒙系统对AI能力的支持显著增强。本文将深入探讨如何在鸿蒙应用中集成AI模型,结合接入DeepSeek,一起来探索开发鸿蒙原生应用的更多可能
    发表于 03-07 14:56

    低价不贵!安信可WiFi+BLE模组Ai-WB2系列

    让您买到同时实现Wi-Fi+BLE功能模组,经过“双85”测试,产品的可靠性与稳定性更强。 01采用WPA3安全协议,数据安全性大幅提升 Ai-WB2系列模组支持 WPA3 安全协议
    的头像 发表于 03-06 08:49 811次阅读
    低价不贵!安信可WiFi+BLE<b class='flag-5'>模组</b><b class='flag-5'>Ai-WB2</b>系列

    RK3588开发板上部署DeepSeek-R1大模型的完整指南

    扩展规划、嵌入式适配等技术维度的突破。 RK3588作为瑞芯微推出的旗舰级芯片,凭借多核异构计算能力以及强大的CPU、GPU和NPU性能,成为嵌入式AI应用的理想平台。DeepSeek
    发表于 02-27 16:45

    鸿蒙原生应用开发也可以使用DeepSeek

    (现为Proxy AI,本文以CodeGPT代指)接入DeepSeek,一起来探索开发鸿蒙原生应用的更多可能吧! 第一步:环境准备 安装DevEco Studio:如果尚未安装DevEco Studio
    发表于 02-20 18:06

    添越智创基于 RK3588 开发板部署测试 DeepSeek 模型全攻略

    AI 技术日新月异的当下,新的模型与突破不断涌现。近期,DeepSeek(深度求索)模型以其卓越性能和亲民成本,迅速在全球开发者圈子里引发热议。作为一款强大的语言模型,DeepSeek
    发表于 02-14 17:42

    DeepSeek模型成功部署,物通博联在 AI 赋能工业上持续探索、不断前行

    近期,DeepSeek(深度求索)AI大模型在全球引发广泛关注,其强大的自然语言处理和多模态分析能力,为各行各业带来了全新的智能化想象空间。 DeepSeek选择开源模型,允许开发者自
    的头像 发表于 02-12 11:15 1101次阅读

    deepseek国产芯片加速 DeepSeek的国产AI芯片天团

    ,从而纷纷继续“卷”起来,效仿DeepSeek的“开源”模式。 对于DeepSeek本身,人们关注其如何在有限算力实现强大性能,更关注其在重重条令围城之下的未来之路。而在最近,全世界的芯片厂商集体出动,纷纷宣布支持
    的头像 发表于 02-10 15:07 5074次阅读
    <b class='flag-5'>deepseek</b>国产芯片加速 <b class='flag-5'>DeepSeek</b>的国产<b class='flag-5'>AI</b>芯片天团

    安信可Ai-WB2系列的优势是?一秒读懂!

    ) 集成度 (内置功能、接口类型等) 功耗与续航 、 尺寸与外观 、 成本 等多个因素。 安信可Ai-WB2系列模组集成Wi-Fi&蓝牙于一体,搭载BL602芯片作为核心处理器,支持Wi-Fi
    的头像 发表于 12-13 18:16 1143次阅读