DeepSeek是什么?
DeepSeek,一家以代碼編寫能力為核心競爭力的 AI 科技公司,致力于通過高性能 AI 模型賦能企業智能化轉型。公司擁有一支由頂尖程序員和 AI 專家組成的團隊,他們以卓越的代碼編寫能力,不斷優化和創新 AI 技術,為全球用戶提供高效、智能的解決方案。
DeepSeek 的 AI 模型以高效的代碼實現和強大的性能表現著稱,能夠在金融、醫療、教育等多個行業中發揮重要作用。其最新發布的大模型 R1,以極低的訓練成本達到了行業領先水平,彰顯了 DeepSeek 在代碼編寫和 AI 技術創新方面的強大實力。憑借卓越的代碼能力和創新的商業模式,DeepSeek 正逐步成為全球 AI 領域的佼佼者,為全球科技產業的發展貢獻力量。
之前還癡心妄想讓它幫我搭建二次開發環境,但是因為權限問題,DeepSeek 無法操作終端。
那就試試 DeepSeek 給 Ai-WB2 模組編程,能不能直接編譯運行呢?
在寫這帖子之前,做了好多測試,大部分時間浪費在了服務器繁忙這個問題上!
在開始讓 DeepSeek 生成之前,注意要提前搭建好 Ai-WB2 的二次開發環境和測試工程,生成的代碼才能直接復制。
提問技巧
AI 工具畢竟還不是人,所以在提問的時候,盡量提供要求和一些信息。比如使用那些庫,需要達到什么效果等。
如果回復較慢,可以試試 siliconflow:
鏈接:https://cloud.siliconflow.cn/models
GPIO 點燈
提問內容如下:
已經喜聞樂見了,接下來試試硅基流動的:
嘗試了兩次之后,至少生成了代碼,接下來完全不改動,復制測試一下:
#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) {} }
代碼測試
初步看著沒什么錯誤,編譯試試。
編譯提示出了錯誤,只能手動改一下了。
修改之后
運行成功的代碼
#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) {} }
測試結果
PWM 調色
開發板上自帶了 RGB,對應得 GPIO 如下:
好了開啟第二輪對話了,提問內容如下:
我已經麻木了!
嘗試幾次之后,給了回復:
提供的完整代碼
#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(); }
代碼測試
有三個錯誤,做一下修改就好,修改或如下:
編譯正常,通過了。
運行測試
最后測試失敗了,因為 PWM 通道全都沒有對應上 GPIO,所以需要把 PWM 通道號改回來,再測試:
燈顏色正確了,但是呼吸效果不對啊。
直接讓 DeepSeek 幫我們修改,提問如下:
根據意見,調節了 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(); }
測試結果
總結
1、官方的服務器還是不給力,一直服務器繁忙
2、生成的代碼有部分兼容性問題,達不到直接編譯使用要求
3、接口不可能完全可用
使用經驗
1、盡可能多的提供要求信息
2、需要結合自身編程經驗完善程序細節,以達到想要的功能
最后最后,希望 DeepSeek 盡快完善起來!過來人的服務器繁忙:
-
AI
+關注
關注
88文章
34412瀏覽量
275690 -
程序
+關注
關注
117文章
3824瀏覽量
82498 -
DeepSeek
+關注
關注
1文章
782瀏覽量
1414
原文標題:和大火的DeepSeek聊下Ai-WB2模組程序?它好會!
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
DeepSeek推動AI算力需求:800G光模塊的關鍵作用
如何在 Raspberry Pi AI Camera 上構建為開發人員提供實時的智能應用程序!

HarmonyOS NEXT開發實戰:DevEco Studio中DeepSeek的使用
低價不貴!安信可WiFi+BLE模組Ai-WB2系列

RK3588開發板上部署DeepSeek-R1大模型的完整指南
鴻蒙原生應用開發也可以使用DeepSeek了
添越智創基于 RK3588 開發板部署測試 DeepSeek 模型全攻略
DeepSeek模型成功部署,物通博聯在 AI 賦能工業上持續探索、不斷前行
deepseek國產芯片加速 DeepSeek的國產AI芯片天團

安信可Ai-WB2系列的優勢是?一秒讀懂!
用Ai-WB2開發板做智能家居全彩LED小夜燈

外設移植 安信可Ai-WB2+FPM383C指紋

外設移植 安信可Ai-WB2-32S開發板+TM1637 NTP時鐘

安信可Ai-WB2系列模組/開發板連接AWS亞馬遜云方法

評論