用ChatGPT做嵌入式应用开发

ChatGPT是一种基于自然语言处理技术的人工智能模型,由OpenAI团队开发的。它基于大规模的语言数据集进行训练,并可以生成高质量的自然语言文本,包括对话、摘要、翻译等多种应用。

ChatGPT 主要应用场景包括:

  • 智能客服:可以根据用户提问,快速给出问题的答案和解决方案,提高客户满意度。
  • 智能写作:可以根据用户提供的关键词和语境,快速生成高质量的文章、博客等内容。
  • 聊天机器人:可以和用户进行自然语言对话,提供娱乐、信息咨询等服务。
  • 智能辅助工具 :可以用于文本翻译、语音识别、自动摘要等多种自然语言处理应用。

执行方案

向ChatGPT提问,根据反馈执行以下操作步骤:
1、完成设备树I2C节点、引脚配置
2、完成prj.conf工程配置、
3、使用ChatGPT提供的读取SHT30数据的操作代码
4、编译、运行,验证结果

示例演示

硬件组装

温湿度传感器 SHT30 与聆思CSK开发板对接,接入方式如下:
在这里插入图片描述

建立工程

命令行输入lisa zep create ,选择hello world的sample模板(环境部署参考聆思CSK6开发工具简介 )
在这里插入图片描述

步骤1:向ChatGPT提问

通过提问获得ChatGPT提供的主程序代码,并copy到工程的/src/main.c文件中
问题:如何在zephyr工程上使用I2C接口读取SHT30传感器数据并打印对应的数据

以下为Chatgpt回复

要在Zephyr工程上使用I2C接口读取SHT30传感器数据并打印对应的数据,您可以遵循以下步骤:
1.确保您的开发板上已经连接了SHT30传感器,并且已经正确配置了I2C总线。
2.在Zephyr的工程配置文件prj.conf中,启用I2C总线驱动和SHT30驱动,例如:

CONFIG_I2C=y
CONFIG_I2C_DRIVER=y
CONFIG_SHT3XD=y
CONFIG_SHT3XD_TRIGGER=y

3.在您的Zephyr应用程序中包含必要的头文件:

#include <zephyr.h>
#include <device.h>
#include <drivers/i2c.h>
#include <drivers/sensor.h>
#include <drivers/sensor/sht3xd.h>

4.初始化I2C总线,例如:

const struct device *i2c_dev;
i2c_dev = device_get_binding("I2C_1");
if (!i2c_dev) {printk("Failed to find I2C_1 device!\n");return;
}

5.初始化SHT30传感器,例如:

const struct device *sht30_dev;
struct sensor_value temp, humidity;sht30_dev = device_get_binding("SHT3XD");if (!sht30_dev) {printk("Failed to find SHT3XD device!\n");return;
}
if (sensor_sample_fetch(sht30_dev) < 0) {printk("Failed to fetch samples from SHT3XD device!\n");return;
}
if (sensor_channel_get(sht30_dev, SENSOR_CHAN_AMBIENT_TEMP, &temp) < 0) {printk("Failed to get temperature from SHT3XD device!\n");return;
}
if (sensor_channel_get(sht30_dev, SENSOR_CHAN_HUMIDITY, &humidity) < 0) {printk("Failed to get humidity from SHT3XD device!\n");return;
}
printk("Temperature: %d.%06d C\n", temp.val1, temp.val2);
printk("Humidity: %d.%06d %%\n", humidity.val1, humidity.val2);

6.编译并运行您的Zephyr应用程序,将会读取SHT30传感器的温度和湿度数据,并打印出来。

请注意,上述代码仅是示例,您需要根据您的实际应用程序做出相应的修改。

以上为Chatgpt回复

步骤2:按ChatGPT的提示根据实际情况完成工程配置

复制代码到prj.conf的配置,并根据提示建立设备树相关文件

设备树配置:boards/csk6012_nano.overlay

/*
Copyright (c) 2021-2022 listenai Intelligent Technology (anhui) Co., Ltd.
SPDX-License-Identifier: Apache-2.0
/
&pinctrl {
/ I2C alternate function */
pinctrl_i2c0_scl_default: i2c0_scl_default{
pinctrls = <I2C0_SCL_GPIOA_10>;
};
pinctrl_i2c0_sda_default: i2c0_sda_default{
pinctrls = <I2C0_SDA_GPIOA_11>;
};
};&i2c0 { /* SDA PA11, SCL PA.10, ALERT PX.XX */
status = "okay";
pinctrl-0 = <&pinctrl_i2c0_scl_default &pinctrl_i2c0_sda_default>;
pinctrl-names = "default";
sht3xd@44 {
compatible = "sensirion,sht3xd";
reg = <0x44>;
label = "SHT3XD";
// alert-gpios = <&gpiob 5 GPIO_ACTIVE_LOW>;// The driver does not currently support
status = "okay";
};
};

工程配置:prj.conf

> #Copyright (c) 2018 Peter Bigot Consulting, LLC
> #SPDX-License-Identifier: Apache-2.0
> CONFIG_STDOUT_CONSOLE=y
> CONFIG_PRINTK=y
> CONFIG_ASSERT=y
> #CONFIG_EARLY_CONSOLE=y
> CONFIG_I2C=y
> CONFIG_SENSOR=y
> CONFIG_SHT3XD=y
> 
> #CONFIG_BOOT_BANNER=n

源码文件:src/main.c

/*Copyright (c) 2018 Peter Bigot Consulting, LLC
SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/zephyr.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
#include <zephyr/sys/printk.h>
#include <stdio.h>#define ALERT_HUMIDITY_LO 50
#define ALERT_HUMIDITY_HI 60#ifdef CONFIG_SHT3XD_TRIGGER
static volatile bool alerted;static void trigger_handler(const struct device *dev,
const struct sensor_trigger *trig)
{
alerted = !alerted;
}#endifvoid main(void)
{const struct device *dev = device_get_binding("SHT3XD");
int rc;if (dev == NULL) {
printf("Could not get SHT3XD device\n");
return;
}#ifdef CONFIG_SHT3XD_TRIGGER
struct sensor_trigger trig = {
.type = SENSOR_TRIG_THRESHOLD,
.chan = SENSOR_CHAN_HUMIDITY,
};
struct sensor_value lo_thr = { ALERT_HUMIDITY_LO };
struct sensor_value hi_thr = { ALERT_HUMIDITY_HI };
bool last_alerted = false;rc = sensor_attr_set(dev, SENSOR_CHAN_HUMIDITY,
SENSOR_ATTR_LOWER_THRESH, &lo_thr);
if (rc == 0) {
rc = sensor_attr_set(dev, SENSOR_CHAN_HUMIDITY,
SENSOR_ATTR_UPPER_THRESH, &hi_thr);
}
if (rc == 0) {
rc = sensor_trigger_set(dev, &trig, trigger_handler);
}
if (rc != 0) {
printf("SHT3XD: trigger config failed: %d\n", rc);
return;
}
printf("Alert outside %d..%d %%RH got %d\n", lo_thr.val1,
hi_thr.val1, rc);
#endifwhile (true) {
struct sensor_value temp, hum;
rc = sensor_sample_fetch(dev);
if (rc == 0) {
rc = sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP,
&temp);
}
if (rc == 0) {
rc = sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY,
&hum);
}
if (rc != 0) {
printf("SHT3XD: failed: %d\n", rc);
break;
}
#ifdef CONFIG_SHT3XD_TRIGGER
if (alerted != last_alerted) {
if (lo_thr.val1 > hum.val1) {
printf("ALERT: humidity %d < %d\n",
hum.val1, lo_thr.val1);
} else if (hi_thr.val1 < hum.val1) {
printf("ALERT: humidity %d > %d\n",
hum.val1, hi_thr.val1);
} else {
printf("ALERT: humidity %d <= %d <= %d\n",
lo_thr.val1, hum.val1, hi_thr.val1);
}
last_alerted = alerted;
}
#endif
printf("SHT3XD: %.2f Cel ; %0.2f %%RH\n",
sensor_value_to_double(&temp),
sensor_value_to_double(&hum));
k_sleep(K_MSEC(2000));
}
}

CMake 构建脚本:CMakeLists.txt

#Copyright (c) 2018 Peter Bigot Consulting, LLC
#SPDX-License-Identifier: Apache-2.0cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(sht3xd)FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})

步骤3:编译/烧录验证

查询结果:it’s perfect!
在这里插入图片描述

经验总结

1.快速起手:使用ChatGPT快速搭建工程模板,节省时间、提高效率
2.查漏补缺与调试:当面对代码中不理解的点,可以进行提问,ChatGPT将结合示例进行讲解,可以更好地在我们的知识体系中对知识点进行补充,同时结合运行情况进行问题排查
(技术分享:聆思科技柯钿爽)

实操视频

让ChatGPT编写嵌入式应用,三分钟完成传感器接入!

关于聆思

聆思科技是一家专注提供智能终端系统级(SoC)芯片的高科技企业,目前推出的CSK6系AI芯片已适配Zephyr RTOS。

如果你在学习、开发过程中有疑问或难题,希望与专家和更多的开发者交流,欢迎+V:listenai-csk

欢迎各位同学联系我们进行技术相关的探讨,也可以在评论区进行提问,大家一起进步吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1954.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9款工具让 ChatGPT 如虎添翼! 帮你效率翻百倍!

ChatGPT chat.openai.com ChatGPT能够在同一个会话期间内回答上下文相关的后续问题。其在短时间内引爆全球的原因在于&#xff0c;在网友们晒出的截图中&#xff0c;ChatGPT不仅能流畅地与用户对话&#xff0c;甚至能写诗、撰文、编码。 会问AI 地址&#xff1a;公众号 「…

ChatGPT万能工具箱 | ChatGPT辅助神器 提升了用户体验 提问回答更加精确。

简介 提高ChatGPT网站的用户体验&#xff0c;提供一些实用的功能&#xff0c;如自动从URL中填充提示、在回复框中提供自动提示按钮等等。通过ChatGPT万能工具箱&#xff0c;您可以获得一些额外的实用功能&#xff0c;以提高ChatGPT网站的使用体验。目前&#xff0c;我们提供了两…

4个ChatGPT拓展出来的工具

现在ChatGPT 相关 的方向非常的多&#xff0c;各个大厂一个一个推出了自己的大模型&#xff0c;从国外到国内&#xff0c;ChatGPT 相关 也有几十个&#xff0c;这是大厂的方向。 对于比较小的团队&#xff0c;很多都是在ChatGPT 的基础上进行的开发&#xff0c;下面罗列出4个在…

体验一波ChatGpt工具-cursor(自动代码生成)

最近体验了一把cursor&#xff0c;自动生成代码工具&#xff0c;集成了最近很火的ChatGpt&#xff0c;目前比较好的就是代码生成工具大概就是github copilot和cursor&#xff0c;不过github copilot需要付费使用或者漫长的waitlist&#xff0c;所以目前比较好的cursor 官网介绍…

当我问 ChatGPT 能否推荐一下好用的 API 管理工具时?

近期围绕 ChatGPT 的话题&#xff0c;真的太多了。我们就知道了 ChatGPT 简单说就是搜索引擎社交工具&#xff0c;这个解释最简单明了。出于好奇&#xff0c;我也用 ChatGPT 测试了一下&#xff1a; 我&#xff1a; 在中国&#xff0c;最好的 API 管理工具是什么&#xff1f; …

13种ChatGPT类实用工具

01 /ChatGPT for google/ 一个浏览器插件&#xff0c;可搭配现有的搜索引擎来使用 最大化搜索效率&#xff0c;对搜索体验的提升相当离谱&#xff1a; 安装完插件后&#xff0c;在搜索引擎搜索任何问题&#xff0c;都能获取两份答案 谷歌ChatGPT演示 02 /VScode 插件/ 程序员…

16款ChatGPT工具,炸裂收藏!

上一篇&#xff1a;ChatGPTXMind&#xff0c;炸裂了&#xff01; 1.ChatGPT for google 一个浏览器插件&#xff0c;可搭配现有的搜索引擎来使用。 最大化搜索效率&#xff0c;对搜索体验的提升相当离谱&#xff1a; 安装完插件后&#xff0c;在搜索引擎搜索任何问题&#xff0…

ChatGPT:这个AI工具集导航你应该收藏

AI的到来让我们的工作事半功倍&#xff0c;无论你是文员&#xff0c;财务&#xff0c;还是开发营销&#xff0c;你有了这些AI工具&#xff0c;你的工作效率将大大提升。 这个AI工具集包含了&#xff0c;AI写作&#xff0c;AI图像&#xff0c;AI聊天。。。等等机会所有的AI工具…

16款ChatGPT工具,太炸裂了,收藏!

因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号&#xff0c;领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇&#xff1a;ChatGPT研究框架&#xff08;80页PPT&#xff0c;附下载&#xff09;…

可以使用ChatGPT的浏览器插件

分享一个可以免费使用ChatGPT的浏览器插件 在浏览器中直接搜索wetab 第一个标签就是&#xff0c;点击之后按照它的提示安装好拓展&#xff0c;完成后的页面就是这样 可以看到&#xff0c;它本身页面中就带有ChatGPT 打开之后就可以直接使用&#xff0c;不用受外网限制 ChatGP…

如何使用ChatGPT

方式一&#xff1a;CSDN连接直接下载 ChatGPT插件下载地址 先解压文件&#xff0c;将.crx文件拖到至谷歌浏览器插件扩展程序中&#xff0c;然后打开新的谷歌浏览器选项卡就可以用使用OpenAI 方式二&#xff1a;通过安装谷歌WebTab插件来使用OpenAI WebTab官网地址 使用夸克下…

在IDEA中使用chatgpt

前言 ChatGPT是目前最强大的AI&#xff0c;不仅能够聊天、写小说&#xff0c;甚至码代码也不在话下。 但是在国内要使用chatgpt很麻烦&#xff0c;国内一家团队开发了一款idea插件NexChatGPT&#xff0c;用数据代理的方式&#xff0c;让我们在国内也能轻松的使用chatgpt。 一…

直播预告 | ChatGPT会引领AI新范式吗?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; ChatGPT 火爆全网的ChatGPT究竟是什么&#xff1f;为什么这么强&#xff1f; ChatGPT会取代搜素引擎吗&#xff1f; ChatGPT凸显的能力会是metaverse的有力支撑吗&#xff1f; ChatGPT的火爆背后,AI发展路向何…

ChatGPT爆火后,NLP技术不存在了?

源&#xff1a;量子位 从2012年到2022年&#xff0c;机器学习引发的新一轮人工智能热潮已经十年。 巧合的是&#xff0c;2022年的Diffusion和ChatGPT&#xff0c;以大众可感知、可体验的方式&#xff0c;让大模型涌现的超能力成功破圈。 从学术界到工业界&#xff0c;从政府到投…

【深度学习模型】ChatGPT原理简述

文章目录 前言1. GPT的前世今生1.1 OpenAI及GPT系列1.2 ChatGPT及同期对比模型 2. 技术原理2.1 预训练语言模型2.2 训练奖励模型2.3 用强化学习微调 3. 目前缺陷参考文献 前言 2022年11月30日&#xff0c;OpenAI推出人工智能聊天模型ChatGPT&#xff08;ChatGPT: Optimizing L…

ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

明敏 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT太火爆谁不想上手试试&#xff1f; 但注册复杂、服务器拥挤……着实有点麻烦。 不过很快就有极客网友指路&#xff0c;说国内其实已经有类似的APP上线了&#xff0c;也是上知天文下知地理的那种。 比如聊聊《三体》&#xff0c;…

直播预告更新 | 火爆全网的ChatGPT为什么这么强?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; ChatGPT 火爆全网的ChatGPT究竟是什么&#xff1f;为什么这么强&#xff1f; ChatGPT会取代搜素引擎吗&#xff1f; ChatGPT凸显的能力会是metaverse的有力支撑吗&#xff1f; ChatGPT的火爆背后,AI发展路向何…

云服务器搭建Python项目实现学术优化chatgpt

云服务器搭建实现学术优化chatgpt 1 服务器准备2 云服务器配置2.0 FTP配置2.1 python虚拟环境2.1.1 python3.9安装配置2.1.2 下载python项目2.1.3 创建python虚拟环境 3 项目“服务化”&#xff08;后台运行python项目&#xff09;4 localURL访问&#xff08;公网ip访问&#x…

ChatGPT中文LLM相关的开源大模型资源汇总

文章目录 前言1.文本LLM模型1.1 ChatGLM-6B1.2 ChatGLM2-6B1.3 Moss1.4 Chinese-LLaMA-Alpaca1.5 OpenChineseLLaMA1.6 BELLE1.7 Panda1.8 Robin1.9 Fengshenbang-LM1.10 Luotuo-Chinese-LLM1.11 Linly1.12 Firefly1.13 ChatYuan1.14 ChatRWKV1.15 CPM-Bee1.16 TigerBot1.17 书…

【跟着ChatGPT学深度学习】ChatGPT带我学情感分析

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…