5612|19

59

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

还是矩阵键盘,想自己做个标准键盘~~ [复制链接]

买的键盘矩阵部分,想自己用AVR单片机写扫描软件,HID做usb发送,让这个键盘能做到和标准键盘使用起来一样,主要是能够实现 短按、长按、组合键,  现在卡在这个部分了 。 有没有大神做过这样的工作,能有键盘scan部分的源码最好了,或者给思路也行,谢谢!

最新回复

算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧 估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,不过我这个是2*3的按键,你要识别多按键,势必需要更为复杂的逻辑。   详情 回复 发表于 2015-5-11 10:43
点赞 关注
 

回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

推荐
 
楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......
 
个人签名

So TM what......?

 

 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
使用状态转移法写程序
 
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
盛夏之蝉 发表于 2015-4-22 20:36
使用状态转移法写程序

能给具体思路吗?主要是按键扫描部分    hid已经实现
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

4
 
盛夏之蝉 发表于 2015-4-22 20:36
使用状态转移法写程序

有8*16 个按键    这么多的按键的组合键要怎么样写
 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

5
 
哦,小法 发表于 2015-4-22 21:26
有8*16 个按键    这么多的按键的组合键要怎么样写

可以每个按键占用一个bit位,那么组合按键就很容易确定
 
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

6
 
盛夏之蝉 发表于 2015-4-23 10:43
可以每个按键占用一个bit位,那么组合按键就很容易确定

16字节?128位      然后循环128次读到1就存下位数 ?



是这个思路吗
 
 
 

回复

4008

帖子

0

TA的资源

版主

7
 
8+16=24,整个状态占24位,再加上按下,抬起,长按状态32位的数据类型肯定够了.
 
 
 

回复

26

帖子

0

TA的资源

一粒金砂(中级)

8
 
哦,小法 发表于 2015-4-29 08:53
16字节?128位      然后循环128次读到1就存下位数 ?



是这个思路吗

嗯,使每一个按键都对应一个bit位,比如有键按下就置1,用完清零。组合键的那就同时查询对应位就可以了。
 
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新
 
 

回复

4008

帖子

0

TA的资源

版主

9
 
不需要循环,每个按键一个io状态对应一个键盘扫描的结果,定义一下哪个数对应哪个按键就行了.组合键是两个按键的逻辑与
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

11
 
ljj3166 发表于 2015-4-30 00:35
楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......

哈哈  谢啦  钱不是问题啊   现在是单位想做这个事情   在标准键盘的矩阵上还加自己的功能键   


但是现在用的是很不正规的扫描机制   神奇的地方是所有想要的功能都能用。。

 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

12
 
ljj3166 发表于 2015-4-30 00:35
楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......

我大致看了一遍    玩这个键盘的烧钱之处在于 买机械键盘的东西  跟我写代码搭电路关系不大哦
 
 
 

回复

4008

帖子

0

TA的资源

版主

13
 
标准键盘的键码是固定的,扩展功能键是有预留的.
怀疑你走错路了.
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

14
 
huo_hu 发表于 2015-4-30 11:18
标准键盘的键码是固定的,扩展功能键是有预留的.
怀疑你走错路了.

我介绍下这个小项目   



1.购买了一个笔记本的小键盘 , 出来是排线, 这个小键盘是没有mcu的  只是交出来它的矩阵的row0-7 和 col0-15



2.所以在8*16的矩阵中的键位是固定的 ,128个位置中 笔记本的键盘只占用了其中的80+个, 剩下的做成设备上需要添加的的专门的功能键 ,也在键盘扫描里一起扫



3.标准键盘键码保持固定,也还是用usb发,   添加的按键用串口协议与上位机通信
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(初级)

15
 
做完后能分享吗~~~~~~~~~~~~
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

16
 
哦,小法 发表于 2015-4-30 13:32
我介绍下这个小项目   



1.购买了一个笔记本的小键盘 , 出来是排线, 这个小键盘是没有mcu的  只是交出来它的矩阵的row0-7 和 col0-15



2.所以在8*16的矩阵中的键位是固定的 ,128个位置中 笔记本的键盘只占用了其中的80+个, 剩下的做成设备上需要添加的的专门的功能键 ,也在键盘扫描里一起扫



3.标准键盘键码保持固定,也还是用usb发,   添加的按键用串口协议与上位机通信

标准键盘能够同时检测到多按键,不知道怎么实现的。
我曾写过一个3*2的矩阵键盘,其实就6个按键,检测的时候最多能检测出按下特定的3个键,某些情况下分辨不出是按下了3个键还是4个键。


所以关于矩阵键盘,估计最多也是只能检测出三个键来,还是特定的三个键。同时按下4个键恐怕很多时候都无法检测出来。
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

17
 
https://bbs.eeworld.com.cn/thread-461639-1-1.html
昨天刚刚发的帖子,关于矩阵键盘的一些思路。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

18
 
qiushenghua 发表于 2015-5-9 16:18
标准键盘能够同时检测到多按键,不知道怎么实现的。
我曾写过一个3*2的矩阵键盘,其实就6个按键,检测的时候最多能检测出按下特定的3个键,某些情况下分辨不出是按下了3个键还是4个键。


所以关于矩阵键盘,估计最多也是只能检测出三个键来,还是特定的三个键。同时按下4个键恐怕很多时候都无法检测出来。

调试过程中出现了一种情况


  如果按下的三个键组成一个直角三角形,那么能与这三个键构成矩形的那个键也会被识别为低电平  



我以为这就是四个按键被舍弃的原因吧
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

19
 
哦,小法 发表于 2015-5-11 08:26
调试过程中出现了一种情况


  如果按下的三个键组成一个直角三角形,那么能与这三个键构成矩形的那个键也会被识别为低电平  



我以为这就是四个按键被舍弃的原因吧

算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧

估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,不过我这个是2*3的按键,你要识别多按键,势必需要更为复杂的逻辑。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

20
 
qiushenghua 发表于 2015-5-11 10:43
算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧

估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,不过我这个是2*3的按键,你要识别多按键,势必需要更为复杂的逻辑。

我这个设计没有去指定特定的组合键     只是舍弃了四个按键  若按下第四个键我是直接舍弃的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表