ICEE-Keyboard-键盘工作原理:

  • 周期性扫描电路感应点矩阵

    • 电路感应点矩阵总共X行总共Y列的电路感应{电容式,电阻式,开关式}点, 例如总共12行, 总共12列; 则总共有144个键位点;
    • 电路感应点矩阵每一行或每一列有一条电路线直连MCU的一个GPIO

      例如总共12行与12列; 需要MCU至少有24个GPIO; 将能提供 总共144个感应映射点。
    • 每次按键触发的矩阵点坐标{x,y}的接通,断开与持续时长,都会在足够高的扫描频率(扫描周期足够短)上检测出;

      被检测到
      是第x行与第y列的两个GPIO**的接通,断开,与持续时长(扫描周期个数);
    • 将GPIO行与GPIO列的电位翻译为对应字符是由MCU处理;

      并将输出字符通过最优的连接通道(多模键盘支持多种连接)传送给接收输入的设备.
    • 多模HID连接:键盘与鼠标一类的HID(人机交互设备),已有多模功能:

      USART / SPI / PC / USB(TypeA/TypeC) / Bluetooth(3.0/4.0/5.0/5.1/5.2/5.3) / 2.4G/5G无线 适配硬件电路;

改装原理

  1. 盲接:支持矩阵行线列线 与 LED指示灯!告别繁杂的查找原行线列线 和 按键位置,

    将每条行线或列线随意接上一条GPIO,接满即可:只要根据软件提示全部按一遍就配置好,MCU算法会将周期扫描到的输入字符映射好GPIO行列!并采集到上升沿与下降沿,以及上升沿与下降沿之间的时长(扫描周期数)

  2. 自定义按键:按键支持:键盘键、鼠标键、多媒体、joystick键等。

    支持自定义按键,支持FN功能。支持可视化自定义布局,支持编码器旋钮。支持全键无冲(矩阵键盘需要加二极管);

  3. 市售的“三模带主控改装键盘模块”自带主控,实现有线连接、2.4g无线连接、蓝牙连接

    有独立驱动,可以实现自定义按键、宏、层设置、一键密码、一键文本、等复杂操作,

    不管您的键盘是薄膜键盘,还是机械键盘,不管你原装主控是好的,还是坏的,

    自带键盘主控只需要用到你原来的矩阵线路即可改装

  4. 注意:静电容之类电容传感键盘:

  • 最好是用电容键盘的专用CMOS数字集成电路;
  • 其原理是将任何按键点的两扫描线的细微静电容变化,转化为(可被GPIO检测出的)高低电位变化.

    实现上,可先转化为频率变化,继而转化为细微电压变化,就能用 Op.Amp.运放进行高倍数放大,

    最终将细微静电容变化转化为可被GPIO检测出的高低电位变化。

    而这些数字电路及逻辑,早有CMOS数字芯片实现上市有售,
  1. 例如:





ICEE-Keyboard- 键盘工作原理与改装原理:扫描GPIO:{X行,Y列}感应点矩阵在按键触发点感应电路{x,y}通过MCU映射到按键字符的更多相关文章

  1. MapReduce工作流程及Shuffle原理概述

    引言: 虽然MapReduce计算框架简化了分布式程序设计,将所有的并行程序均需要关注的设计细节抽象成公共模块并交由系统实现,用户只需关注自己的应用程序的逻辑实现,提高了开发效率,但是开发如果对Map ...

  2. atitit 业务 触发器原理. 与事件原理 docx

    atitit 业务 触发器原理. 与事件原理 docx 1.1. 呵呵,你需要需要一个业务 触发器..1 1.2. 触发器/事件/中断的原理1 1.3. Io 硬件中断的原理( 中断的低层有cpu轮询 ...

  3. poj2356 Find a multiple(抽屉原理|鸽巢原理)

    /* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...

  4. yum 原理C/S原理结构图

    yum 原理C/S原理结构图

  5. 【mysql】索引原理-MySQL索引原理以及查询优化

    转载:https://www.cnblogs.com/bypp/p/7755307.html 一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性 ...

  6. 字符串编码原理--PHP数组原理与高级应用

    基础知识 1.有几种表达方式(查看手册)2.单引号和双引号的区别,双引号解析变量.\n,\t等,八进制与十六进制编码 内部存储方式 c语言中怎么表示字符串,结构体存储了字符指针和长度1.字符串可以用[ ...

  7. Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)

    Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装:            将一些东西封装到一个地方,你还可以取出来( ...

  8. 转载:把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心竞争力才会越来越高

    https://developer.51cto.com/art/202001/608984.htm 把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架 ...

  9. Nginx基本功能及其原理,配置原理

    Nginx基本功能及其原理,配置原理 一.正向代理.反向代理 二.Nginx配置文件的整体结构 三.Nginx配置SSL及HTTP跳转到HTTPS 四.nginx 配置管理 [nginx.conf 基 ...

  10. 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点

    大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...

随机推荐

  1. C/S客户端渗透_Proxifier+burpsuite代理客户端http协议数据包+reGeorg构建HTTP隧道代理

    C/S客户端渗透_Proxifier+burpsuite代理客户端https协议数据包 一个月没发文章了实在太忙了,不过学习还是不能落下的,最近要做几个CS客户端的站,需要在终端装个北信源的煞笔内网安 ...

  2. C#网络编程(一)----DNS/TCP/UDP协议

    简介 计算机网络是指将分布在不同地理位置的计算机系统.设备通过通信线路和设备连接起来,遵循共同的通信协议,以实现 数据传输.资源共享.协同工作 的系统 .它是现代信息技术的核心基础设施,支撑着互联网. ...

  3. idea中代码提交流程(git版)

    本文主要分享一下如何通过idea通过git拉取项目并且进行编辑后提交到远程master上进行合并. 1.安装idea编译器,我们用的是社区版本2021.1,安装步骤略过. 2.打开idea,点击Fil ...

  4. LinqHelper拓展

    public static class LinqHelper { //NHibernate.Hql.Ast.HqlBooleanExpression public static Expression& ...

  5. 深度解析JS事件驱动模型:如何理解浏览器中的异步回调和事件循环

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  6. 使用HuggingFace 模型并预测

    下载HuggingFace 模型 首先打开网址:https://huggingface.co/models 这个网址是huggingface/transformers支持的所有模型,目前大约一千多个. ...

  7. 一种基于偏移流和纯字符串流来存储和读取字符串列表的方法【C#】

    字符串的存储长度是可变的,在C#中,BinaryWriter和BinaryReader在Write,ReadStirng的时候,都在单个流中字符串的二进制数组前面加了一个二进制数组的长度信息,方便读取 ...

  8. WPF placeHolder效果的样式设定

    <UserControl x:Class="wpfTestStudio.textPlaceHolderDemo" xmlns="http://schemas.mic ...

  9. Linux日志 查找关键字及其前后的信息

      文章<五分钟扫盲:25个工作中常用的Linux命令>介绍了常用的Linux命令,属于理论知识,这里知行合一,介绍如何从Linux日志中通过关键字过滤出我们需要的信息.   这里以查看名 ...

  10. Java 自定义线程池的线程工厂

      本文分享创建线程工厂 ThreadFactory 的三种方式,以方便大家快速创建线程池,并通过线程工厂给每个创建出来的线程设置极富业务含义的名字. 线程池大小考虑因素   由于需要自定义线程池,故 ...