DeepSeek是什么?
DeepSeek,一家以代碼編寫能力為核心競爭力的 AI 科技公司,致力于通過高性能 AI 模型賦能企業(yè)智能化轉型。公司擁有一支由頂尖程序員和 AI 專家組成的團隊,他們以卓越的代碼編寫能力,不斷優(yōu)化和創(chuàng)新 AI 技術,為全球用戶提供高效、智能的解決方案。
DeepSeek 的 AI 模型以高效的代碼實現(xiàn)和強大的性能表現(xiàn)著稱,能夠在金融、醫(yī)療、教育等多個行業(yè)中發(fā)揮重要作用。其最新發(fā)布的大模型 R1,以極低的訓練成本達到了行業(yè)領先水平,彰顯了 DeepSeek 在代碼編寫和 AI 技術創(chuàng)新方面的強大實力。憑借卓越的代碼能力和創(chuàng)新的商業(yè)模式,DeepSeek 正逐步成為全球 AI 領域的佼佼者,為全球科技產(chǎn)業(yè)的發(fā)展貢獻力量。
之前還癡心妄想讓它幫我搭建二次開發(fā)環(huán)境,但是因為權限問題,DeepSeek 無法操作終端。
那就試試 DeepSeek 給 Ai-WB2 模組編程,能不能直接編譯運行呢?
在寫這帖子之前,做了好多測試,大部分時間浪費在了服務器繁忙這個問題上!
在開始讓 DeepSeek 生成之前,注意要提前搭建好 Ai-WB2 的二次開發(fā)環(huán)境和測試工程,生成的代碼才能直接復制。
提問技巧
AI 工具畢竟還不是人,所以在提問的時候,盡量提供要求和一些信息。比如使用那些庫,需要達到什么效果等。
如果回復較慢,可以試試 siliconflow:
鏈接:https://cloud.siliconflow.cn/models
GPIO 點燈
提問內容如下:
已經(jīng)喜聞樂見了,接下來試試硅基流動的:
嘗試了兩次之后,至少生成了代碼,接下來完全不改動,復制測試一下:
#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為輸出模式 /* 初始狀態(tài)設置為低電平(根據(jù)電路設計可能需要反轉) */ bl_gpio_output_set(LED_PIN, 0); } void led_blink_task(void *pvParameters) { while (1) { // 翻轉GPIO狀態(tài) bl_gpio_output_set(LED_PIN, !bl_gpio_input_get(LED_PIN)); // 使用FreeRTOS延時函數(shù) vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS); } } void main(void) { // 硬件初始化 led_init(); // 創(chuàng)建閃爍任務 xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL); // 啟動任務調度器 vTaskStartScheduler(); // 程序不會執(zhí)行到這里 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為輸出模式 /* 初始狀態(tài)設置為低電平(根據(jù)電路設計可能需要反轉) */ bl_gpio_output_set(LED_PIN, 0); } void led_blink_task(void* pvParameters) { int cnt = 0; while (1) { // 翻轉GPIO狀態(tài) bl_gpio_output_set(LED_PIN, cnt % 2); // 使用FreeRTOS延時函數(shù) vTaskDelay(BLINK_INTERVAL / portTICK_PERIOD_MS); cnt++; if (cnt>10) { cnt = 0; } } } void main(void) { // 硬件初始化 led_init(); // 創(chuàng)建閃爍任務 xTaskCreate(led_blink_task, "led_task", 512, NULL, 15, NULL); // 啟動任務調度器 // vTaskStartScheduler(); // 程序不會執(zhí)行到這里 while (1) {} }
測試結果
PWM 調色
開發(fā)板上自帶了 RGB,對應得 GPIO 如下:
好了開啟第二輪對話了,提問內容如下:
我已經(jīng)麻木了!
嘗試幾次之后,給了回復:
提供的完整代碼
#include#include #include #include // PWM通道配置(根據(jù)實際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頻率參數(shù)(假設系統(tǒng)時鐘144MHz) #define PWM_FREQ 15000 // 15kHz #define PWM_CLK_DIV 1 // 分頻系數(shù) #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); // 統(tǒng)一設置PWM參數(shù) 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 幫我們修改,提問如下:
根據(jù)意見,調節(jié)了 PWM 頻率和分頻系數(shù),得到了非常不錯的呼吸效果。
完整程序
#include#include #include #include // PWM通道配置(根據(jù)實際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頻率參數(shù)(假設系統(tǒng)時鐘144MHz) #define PWM_FREQ 15000 // 15kHz #define PWM_CLK_DIV 16 // 分頻系數(shù) #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); // 統(tǒng)一設置PWM參數(shù) 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、接口不可能完全可用
使用經(jīng)驗
1、盡可能多的提供要求信息
2、需要結合自身編程經(jīng)驗完善程序細節(jié),以達到想要的功能
最后最后,希望 DeepSeek 盡快完善起來!過來人的服務器繁忙:
-
AI
+關注
關注
87文章
33554瀏覽量
274195 -
程序
+關注
關注
117文章
3817瀏覽量
82164 -
DeepSeek
+關注
關注
1文章
755瀏覽量
1049
原文標題:和大火的DeepSeek聊下Ai-WB2模組程序?它好會!
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
DeepSeek推動AI算力需求:800G光模塊的關鍵作用
HarmonyOS NEXT開發(fā)實戰(zhàn):DevEco Studio中DeepSeek的使用
低價不貴!安信可WiFi+BLE模組Ai-WB2系列

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

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

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

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

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

評論