【51单片机】让AI识别电路图,帮你进行编码(以51单片机为例)

news2024/11/13 11:54:54

让AI识别电路图,帮你进行编码(以51单片机为例)

​ 这里使用的AI大模型使用的是 Copilot。(两个前提:1. 科学上网、2. 有微软账号

image-20240814103544701

今天测试了一下Copilot识别图片的能力,能力还是可圈可点的。

首先准备一张电路图

注意以下两点:

  1. 图片不能太大

​ 太大上传不了,尽量不大于1MB

  1. 图片不能太模糊

    ​ 不要使用截图保存的方式把电路图放在本地,请使用PDF导出图片的方式。注意导出的时候选择合适清晰度的导出,满足第一点的同时还要满足你放大后你用肉眼能识别每个引脚的标号

至少像这张图一样的清晰度,下面这张图上传CSDN可能会被吃像素,真正的清晰度请点击链接查看

HC6800-ES

上传电路图

image-20240814111627268

点击这个按钮就可以.

上传电路图后,追加一些信息。以及你的目的。

提问方式

  1. 简要介绍一下你的这张图片是什么。
  2. 你要让AI做什么(你的目的)
  3. 向AI介绍你的环境,以及约束条件。例如你使用的是Keil(环境),使用C语言编写程序(约束条件)
  4. 功能点1……
  5. 功能点2……
  6. ……

最终效果

image-20240814112502039

​ 因为它有联系上下文对话的能力,所以一开始我是先让看图,然后问一下比较简单的问题。然后我让他完成了流水灯的功能,这是他给出的程序.

#include <reg52.h>  // 包含8051单片机的寄存器定义

void delay(unsigned int time);  // 延时函数声明

void main() {
    unsigned char i;
    while (1) {
        for (i = 0; i < 8; i++) {
            P2 = ~(0x01 << i);  // 依次点亮P2口的LED
            delay(50000);  // 调用延时函数
        }
    }
}

void delay(unsigned int time) {
    unsigned int i, j;
    for (i = 0; i < time; i++)
        for (j = 0; j < 100; j++);
}

我具体没有去运行,参照电路图,再看看程序应该没有什么问题,身边有开发板的同学帮我测试一下~

这是我让他实现的第二个功能: 在按下独立按键K1时,数码管的第一位显示1;按下K2时,显示2,并且包含按键消抖功能。

#include <reg52.h>  // 包含8051单片机的寄存器定义

sbit K1 = P3^0;  // 定义K1按键连接在P3.0
sbit K2 = P3^1;  // 定义K2按键连接在P3.1
sbit SEG_A = P2^0;  // 数码管段选引脚
sbit SEG_B = P2^1;
sbit SEG_C = P2^2;
sbit SEG_D = P2^3;
sbit SEG_E = P2^4;
sbit SEG_F = P2^5;
sbit SEG_G = P2^6;
sbit SEG_DP = P2^7;  // 数码管小数点引脚

void delay(unsigned int time);  // 延时函数声明
void displayDigit(unsigned char digit);  // 数码管显示函数声明
unsigned char debounceKey(sbit key);  // 按键消抖函数声明

void main() {
    while (1) {
        if (debounceKey(K1) == 0) {  // 如果按下K1
            displayDigit(1);  // 显示数字1
        } else if (debounceKey(K2) == 0) {  // 如果按下K2
            displayDigit(2);  // 显示数字2
        }
    }
}

void delay(unsigned int time) {
    unsigned int i, j;
    for (i = 0; i < time; i++)
        for (j = 0; j < 120; j++);
}

void displayDigit(unsigned char digit) {
    switch (digit) {
        case 1:
            P2 = 0xF9;  // 数码管显示1的段码
            break;
        case 2:
            P2 = 0xA4;  // 数码管显示2的段码
            break;
        default:
            P2 = 0xFF;  // 关闭数码管
            break;
    }
}

unsigned char debounceKey(sbit key) {
    if (key == 0) {  // 检测按键是否按下
        delay(20);  // 延时20ms进行消抖
        if (key == 0) {  // 再次检测按键是否按下
            while (key == 0);  // 等待按键释放
            return 0;  // 按键按下
        }
    }
    return 1;  // 按键未按下
}

基本上思路就是这样, 通过ai我们可以节省大量的时间.

​ 其实不只是Copilot,ChatGPT-4o和Claude也可上传图片,甚至是pdf,表格之类的文档,输入的功能更加强大,只不过各有各的优缺点。

比如,ChatGPT-4o的使用有限制,Claude需要的网络环境比较纯净才行,否则容易封号,且账号注册相较于前两者是最难注册的。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react-antive 項目報錯 [CXX1429] error when building with cmake using

react-antive 項目報錯 [CXX1429] error when building with cmake using修复 错误现场分析原因解决方案举一反三技巧引用参考&#xff08;感谢作者提供思路&#xff09; 错误现场 [CXX1429] error when building with cmake using /Users/sebastiangarcia/Desktop/work/flm/…

基于spring boot的校园商铺管理系统

TOC springboot188基于spring boot的校园商铺管理系统 第1章 绪论 1.1 研究背景 互联网概念的产生到如今的蓬勃发展&#xff0c;用了短短的几十年时间就风靡全球&#xff0c;使得全球各个行业都进行了互联网的改造升级&#xff0c;标志着互联网浪潮的来临。在这个新的时代&…

springboot颐养居家养老管理系统---附源码19707

摘 要 随着社会的快速发展和人口老龄化趋势的加剧&#xff0c;居家养老已成为越来越多老年人的选择。然而&#xff0c;传统的居家养老方式面临着诸多问题&#xff0c;如服务质量不稳定、信息不对称等。为了解决这些问题&#xff0c;提高居家养老的服务质量和效率&#xff0c;我…

[mysql] 一行变多行

数据表 CREATE TABLE table_main (ID char(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,zb_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci ,kf_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,PRIMARY KEY (ID) USI…

在宝塔面板下安装WordPress

宝塔面板是服务器管理好助手&#xff0c;尤其在Linux系统下&#xff0c;提高了管理的可视化&#xff0c;降低了Linux服务器的使用门槛。 WordPress是个非常好的博客系统&#xff0c;由于支持海量主题模板、各种类型的插件&#xff0c;因此已经成为建设各类网站的首选框架。 今…

java 获取request中的json请求体

Java 获取request中的json请求体 简介 在Java开发中&#xff0c;有时我们需要从HTTP请求中获取JSON格式的数据。本文将详细介绍如何在Java中获取request中的json请求体。 流程概览 以下是获取request中的json请求体的整体流程&#xff1a; 步骤 描述 1 获取HttpServletReque…

代码规范 —— 并发编程规范

优质博文&#xff1a;IT-BLOG-CN 【1】【强制】获取单例对象需要保证线程安全&#xff0c;其中的方法也要保证线程安全。 说明&#xff1a; 资源驱动类、工具类、单例工厂类都需要注意。 【2】【强制】创建线程或线程池时请指定有意义的线程名称&#xff0c;方便出错时回溯。…

Adobe Illustrator 2023 for Mac/Win:创意设计的强大引擎

Adobe Illustrator 2023&#xff08;简称AI 2023&#xff09;是一款专为设计师打造的矢量图形编辑软件&#xff0c;无论是Mac还是Windows平台&#xff0c;它都以其卓越的性能和丰富的功能赢得了业界的广泛赞誉。这款软件在设计领域具有举足轻重的地位&#xff0c;为设计师们提供…

算法的学习笔记—删除链表中重复的结点(牛客JZ76)

&#x1f600;前言 在链表操作中&#xff0c;删除重复节点是一个常见的问题。特别是在排序链表中&#xff0c;连续的重复节点不仅会影响链表的结构&#xff0c;还会带来额外的复杂度。本文将介绍一种高效的算法&#xff0c;用于删除链表中所有重复的节点&#xff0c;并保留链表…

GPT-4o mini发布,轻量级大模型如何颠覆AI的未来?

从巨无霸到小巨人&#xff1a;GPT-4o Mini的创新之路 ©作者|潇潇 来源|神州问学 引言 随着人工智能技术的飞速进步&#xff0c;AI领域的竞争日益激烈&#xff0c;大型模型的发布几乎成为常态。然而&#xff0c;这些庞大的模型通常需要大量的计算资源和存储空间&#xff…

如何使用Zabbix API批量修正主机名称

作者 乐维社区&#xff08;forum.lwops.cn&#xff09; 许远 先说为什么要修正&#xff1f; 这其实源自于Ansible安装zabbix agent的一个小Bug&#xff1a;有小伙伴发现&#xff0c;利用ansible批量安装zabbix agent后&#xff0c;zabbix系统上显示的主机名出错了&#xff0c;主…

疫苗发布和接种预约系统

TOC springboot173疫苗发布和接种预约系统 第一章 绪论** 1.1 研究背景 在现在社会&#xff0c;对于信息处理方面&#xff0c;是有很高的要求的&#xff0c;因为信息的产生是无时无刻的&#xff0c;并且信息产生的数量是呈几何形式的增加&#xff0c;而增加的信息如何存储以…

【Next】初识 Next

概述 在Reactr中创建SSR应用&#xff0c;需要调用 ReactDOM.hydrateRoot 函数&#xff0c;而不是 ReactDOM.createRoot。 createRoot:创建一个Root,接着调用其 render 函数将 App 直接加载到页面上hydrateRoot:创建水合 Root, 是在激活的模式下渲染 App 服务端可用 ReactDOM…

如何在 Odoo 16 中修改现有网页

在 Odoo 中&#xff0c;网页是指在 Odoo 网站上可访问的特定页面或 URL。Odoo 中的网页是通过内置网站模块创建和管理的&#xff0c;该模块允许您设计和自定义网页的内容、布局和功能。 Odoo 中的网页是您网站的构建块&#xff0c;可用于呈现信息、展示产品或服务、通过表单收…

「MyBatis」实现留言板

效果预览 界面长这样&#xff0c;每次提交之后&#xff0c;会在下面生成一条记录&#xff0c;刷新页面或者关掉后重新打开&#xff0c;这些记录仍然存在 思路 我们需要在数据库中保存一条一条的消息&#xff0c;那就需要一个类 Data public class MessageInfo {private Integ…

【笔记】Swin-Transformer 的计算量与Transformer的计算量的对比:前者通过使用新颖的窗口技巧,将后者的高阶项变为低阶,大大降低了计算量

补充1&#xff1a; 局部窗口内的自注意力&#xff08;W-MSA&#xff09;: 在 Swin Transformer 中&#xff0c;输入特征图被划分为多个小的窗口&#xff08;例如 7x7 的窗口&#xff09;。在每个窗口内&#xff0c;计算自注意力机制&#xff08;W-MSA, Window-based Multi-Head…

【新手入门必看】字符串

一、初识字符串 1、定义的几种格式 和整型数组一样&#xff1a;int data[]{1,2,3,4,5}; char str[]{h,e,l,l,o}; 之前我们学过数组名就等于地址&#xff0c;那么也可以通过指针的方式来定义char *pchar"hello"; #include <stdio.h>int main(int arg…

C++-类与对象(中上篇)

一、目标 1. 类的 6 个默认成员函数 2. 构造函数 3. 析构函数 二、对目标的介绍 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生…

Spring源码-源码层面讲解bean标签添加了lookup-method和replaced-method标签之后源码执行流程,以及对象实例化的流程

bean.xml文件添加lookup-method和replaced-method标签 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…

怎么转换视频格式?常见的3种格式转换方法

随着手机等工具的普及&#xff0c;拍视频已经变成我们日常生活娱乐的方式。在享受拍视频带来的快乐同时&#xff0c;我们需要灵活运用格式转换来满足不同的播放设备和使用场景的需求。怎么转换视频格式&#xff1f;很多人为了视频格式转换这个问题烦恼。 视频格式转换&#xf…