CV工程师专用键盘开源项目硬件分析

1、前言

作为一个电子发烧友,你是否有遇到过这样的问题呢。当我们去查看函数定义的时候,需要敲击鼠标右键之后选择go to definition。更高级一些,我们使用键盘的快捷键来查看定义,这时候可以想象一下,你左手按下ALT,右手按键F12,这大大的增加了我们写代码或者查看代码的速度。 那有没有一个更好的方式来帮助我们按下快捷键的。 咱们先大概构思下。首先,装置需要小巧且轻便的,而且最好是无线的。其次,装置需要支持充电功能,方便进行携带。比如可放在口袋里。最后,装置需要按需定义快捷键,方便用户根据需要来自定义。 好啦,经过头脑风暴之后,大家想必对需要实现的功能都有了些许了解。有句话说的好,一定要多去参考,多去学习,千万不可以闭门造车。

2、开源项目介绍

2.1 项目总览

开源项目地址:CV工程师专用键盘

作品的颜值还是不用说,是真的好看。下面我们来分析一下它的原理图部分。 作品实物图

2.2 ESP32最小系统(底板)

参考博客1:【合宙ESP32C3 Arduino开发】第一篇:初探合宙ESP32C3

参考博客2:ESP32C3硬件资料

项目使用的是ESP32-C3最小系统,万万没想到这款最小系统竟然有两个版本,带串口和不带串口的。最好使用带串口的,这样可以进行串口打印以及IDE调试。

产品不同型号对比

最小系统引脚介绍

本项目是自己设计的最小系统,使用的是ESP32-C3-WROOM-02。这里小伙伴们就有疑问啦,这个和ESP32-C3有什么区别呢。这里可以理解为ESP32-C3是ESP32-C3-WROOM-02的子集,稍微给大家介绍。

最小系统原理图如下图所示,各个部分的功能已经标出。 最小系统原理图介绍

最小系统PCB介绍

设计ESP32-C3-WROOM-02的目的是将芯片所需的电路(晶振、外置flash、天线等)全部合封,减少用户的负担,电路更加清爽。这里附上官方的手册。ESP32-C3-WROOM-02手册

有了这个模块,想想就美滋滋的。一个项目中,可以省下很多时间呢。

ESP32-C3-WROOM-02内部结构图

自己设计的引脚接口如下所示。 引脚接口

2.3 按键板-电池管理电路

首先介绍和底板连接的接口部分,这里不做介绍了哈。 接口定义

下面就非常重要了,可以看出这里正式大名鼎鼎的电池管理电路。使用的芯片是ETA9741。这里附上芯片手册链接:ETA9741芯片手册

电池管理电路

下图是芯片手册的参考图,在本次项目中LED显示和按键均不需要,因此我这边给划掉了。另外,这里8和9引脚接入数字低即可。 我说一下哈,这里最好把小灯加上,因为咱们需要充电,充到什么时候没有一个依据怎么办。

芯片手册参考图

当电池正常放电过程中,经过ETA941芯片后得到5V电压,然后下图所示的的开关打向左侧,可以给后续的电路给电。如果向停止工作的话,将下图所示的开关打向右侧即可。

开关

当电池需要进行充电时候,需要数据线连接底板的TYPEC接口,然后下图所示的的开关打向左侧,可以给电池充电。

开关

2.4 按键板-按键电路

可以看出3个按键的RGB级联在了一起。芯片的OUT端分别接入IO4、IO8、IO9。这三个用于检测按键是否被按下。 最开始按键的DIN引脚接入了IO5,因为这里使用的按键是支持RGB灯的,所以通过IO5来控制级联的RGB小灯,从而产生不同的灯光效果。

按键级联

本文由博客一文多发平台 OpenWrite 发布!

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

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

相关文章

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码:主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码:使用布隆过滤器 四、缓存雪崩4…

ABAP - 系统集成之SAP的数据同步到OA(泛微E9)服务器数据库

需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据,导致效率太慢了,能否把SAP的数据保存到OA的数据库表里,这样OA可以直接从数据库表里获取数据效率快很多。思来想去,提供了两个方案。 在集群SAP节点下增加一个SQL S…

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现: 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。   目前,由单根隔热材料 A 纤维编织成的织物,…

MongoDB性能监控工具

mongostat mongostat是MongoDB自带的监控工具,其可以提供数据库节点或者整个集群当前的状态视图。该功能的设计非常类似于Linux系统中的vmstat命令,可以呈现出实时的状态变化。不同的是,mongostat所监视的对象是数据库进程。mongostat常用于…

SpringBoot 赋能:精铸超稳会员制医疗预约系统,夯实就医数据根基

1绪论 1.1开发背景 传统的管理方式都在使用手工记录的方式进行记录,这种方式耗时,而且对于信息量比较大的情况想要快速查找某一信息非常慢,对于会员制医疗预约服务信息的统计获取比较繁琐,随着网络技术的发展,采用电脑…

电子商务人工智能指南 3/6 - 聊天机器人和客户服务

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

mock.js介绍

mock.js http://mockjs.com/ 1、mock的介绍 *** 生成随机数据,拦截 Ajax 请求。** 通过随机数据,模拟各种场景;不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据;支持生成随机的文本、数字…

优化LabVIEW数据运算效率的方法

在LabVIEW中进行大量数据运算时,提升计算效率并减少时间占用是开发过程中常遇到的挑战。为此,可以从多个角度着手优化,包括合理选择数据结构与算法、并行处理、多线程技术、硬件加速、内存管理和界面优化等。通过采用这些策略,可以…

从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译:首先一条SQL语句最先到达的地方是TiDB Server集群,TiDB Server是无状态的,不存储数据,SQL 发过来之后TiDB Server 负责 解析,优化,编译 这…

AI与低代码技术融合:如何加速企业智能化应用开发?

引言 随着全球数字化转型的步伐加快,企业在智能化应用开发方面面临着前所未有的挑战和机遇。传统的软件开发方式往往需要大量的技术人员、时间和资源,而在瞬息万变的市场环境中,这种模式显得效率低下且难以满足企业快速迭代和创新的需求。 与…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息:公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中,勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

40分钟学 Go 语言高并发:服务注册与发现

服务注册与发现 一、系统架构设计 让我们先通过流程图了解服务注册与发现的整体架构: 二、核心组件实现 1. 服务注册中心 package discoveryimport ("context""sync""time" )// ServiceInstance 服务实例 type ServiceInstance…

ESP8266作为TCP客户端或者服务器使用

ESP8266模块,STA模式(与手机搭建TCP通讯,EPS8266为服务端)_esp8266作为station-CSDN博客 ESP8266模块,STA模式(与电脑搭建TCP通讯,ESP8266 为客户端)_esp8266 sta 连接tcp-CSDN博客…

基于DFA算法实现敏感词过滤

1、什么是DFA? DFA(Deterministic Finite Automaton),即确定有穷自动机。其特征为:有一个有限状 态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是 初态&#…

详解MySQL安装

目录 Ubantu 1. 使⽤apt安装MySQL 2.查看MySQL状态 3. MySQL 安装安全设置 4.设置密码 卸载MySQL Centos 1. 确认当前的系统版本 2.下载MySQL源 3.安装MySQL 4.启动mysqld 5.查看MySQL状态 6.设置开机自启动 7.查看MySQL密码,并登录 8.修改密码 Ubant…

Android 实现中英文切换

在开发海外项目的时候,需要实现app内部的中英文切换功能,所有的英文都是内置的,整体思路为: 创建一个sp对象,存储当前系统的语言类型,然后在BaseActivity中对语言进行判断; //公共Activitypubl…

使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示

首先在百度地图开发者平台注册微信小程序开发密钥下载百度地图SDK-bmap-wx.min.js,下载地址在项目入口index.html页面进行引入页面中进行调用&#xff0c;代码示例如下<map id"map" longitude"108.95" latitude"34.34" scale"3" :m…

如何使用brew安装phpredis扩展?

如何使用brew安装phpredis扩展&#xff1f; phpredis扩展是一个用于PHP语言的Redis客户端扩展&#xff0c;它提供了一组PHP函数&#xff0c;用于与Redis服务器进行交互。 1、cd到php某一版本的bin下 /usr/local/opt/php8.1/bin 2、下载 phpredis git clone https://githu…

【Vulkan入门】01-列举物理设备

目录 先叨叨git信息主要逻辑VulkanEnvEnumeratePhysicalDevices()PrintPhysicalDevices() 编译并运行程序 先叨叨 上一篇已经创建了VkInstance&#xff0c;本篇我们问问VkInstance&#xff0c;在当前平台上有多少个支持Vulkan的物理设备。 git信息 repository: https://gite…

写NFC标签支持Android安卓Ohos纯血鸿蒙唤醒微信小程序

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b8bEEGz&ftt&id61539185785 Python languagecodestr "en".encode(gbk) titlestrself.lineEdit_title.text().strip().encode(gbk) uriheaderindex sel…