【课程设计】多功能小键盘 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【课程设计】多功能小键盘

  • 5.5k
  • 11
  • 46

简介:基于CH55x的多功能小键盘

开源协议: CC-BY-NC-SA 3.0

(未经作者授权,禁止转载)

创建时间: 2021-05-23 15:48:37
更新时间: 2022-12-19 20:39:59
描述
# 多功能小键盘 ### 固件开源地址: [https://github.com/panyihang/MiniKeyboard](https://github.com/panyihang/MiniKeyboard) ## 1 简介 #### 使用ch55x (ch551 / ch552 / ch554)单片机,使用ch55xarduino实现USB HID,不仅完全兼容普通的数字小键盘,还有更多扩展功能。 ## 2 知识点 #### (1)学习键盘的设计思路和方法; #### (2)了解CH552的外围; #### (3)使用arduino写程序; #### (4)学习使用立创EDA设计原理图及PCB图; #### (5)学习PCB板的组成及工厂生产流程; ## 3 板载资源介绍 #### (1)一个16P的TYPE-C接口; #### (2)17颗机械轴; #### (3)两颗LED,用于指示当前的模式; ## 4.1 单片姬外围 #### ch55x的外围没什么好说的,采用5V输入,根据Datasheet分别在5V和3V3处加俩退耦电容即可 #### 下载电路也十分简洁,启动时把DP拉低即可进入下载模式 ## 4.2 按键阵列 #### 为了确保各个按键没有冲突,采用的这种接线方法有点费IO,开源平台上有个大佬有个更精妙的方式实现了64键的全键无冲,这边其实用不着 ## 4.3 LED #### 由于仅剩下1个IO,所以运用了一个IO控制两颗LED #### 众所周知,GPIO有三种状态,即高低电平和高阻,因此使用了一个NMOS来实现 * 当IO为低电平时,NMOS关断,LED4亮起 ; * IO为高电平时,NMOS导通,LED3亮起 ; * IO为高阻时,两颗LED都不亮; * IO配置为PWM,当频率足够高时可以近似看为两颗LED同时亮起; ![深度截图_选择区域_20210529001217.png](//image.lceda.cn/pullimage/gUFyceD73ZDXwc74twV9qBtIvAH2wXwUBM6L4beh.png) ## 5.PCB绘制 #### 这块板子扯线没什么难度,注意两层之间走线基本是垂直的即可 ## 6.焊接 #### 先在焊盘上一点锡浆,把元件都放上去 ![IMG_20210528_170913.jpg](//image.lceda.cn/pullimage/ZtxzlJMMWyc3KbX30Z7fFLVWjS1iRdmkD1IYOTqV.jpeg) #### 风枪开370度,风速2,吹十秒左右即可 ![IMG_20210528_175521.jpg](//image.lceda.cn/pullimage/UMAJgxEJhBoXYd6GylAKIKWmbEf9jcLTjblspzaU.jpeg) #### 上电测试,插入TYPE-C线,可以正常识别(下载模式) ![深度截图_选择区域_20210528172627.png](//image.lceda.cn/pullimage/L8f2ynnxthY1AtV0EaQXY6GxFQ7BRni8Vyf0j16y.png) #### 焊上茶轴 ![IMG_20210529_120824.jpg](//image.lceda.cn/pullimage/zNaUDnT0baXXFtQhRGfB2nHIB2T6Fi83ML0iUaeo.jpeg) ## 7.代码 ### 7.1 按键扫描的思路 #### 根据按键阵列,我们先在A1-A5中依次拉低这些IO,每拉低一个IO,就把A6-A9配置为输入上拉模式,依次扫描记录 ![深度截图_选择区域_20210529002624.png](//image.lceda.cn/pullimage/gzLCinBafKvQ9E9IExZqqHYdBMjPDO0euhT9EsaH.png) ### 7.2 软件滤波 #### 考虑到了可能出现的噪音,进行一次滤波和按键模拟 ![深度截图_选择区域_20210529003253.png](//image.lceda.cn/pullimage/mDFkLS6wtf0Xn1lbqIDA8hPQ8PnLniaqL1obmhHU.png) ![深度截图_选择区域_20210529003755.png](//image.lceda.cn/pullimage/Sz0zf7eAY4FadctQkoqCTZi9bmvoYyi9pJu3cQeS.png) ### 7.3 模式切换(已删除) #### 这边的模式切换采用的是对数组进行偏移来实现的 ![深度截图_选择区域_20210529003831.png](//image.lceda.cn/pullimage/2LUhk6QLqnQ8OUI8PwLRlX955MLHJE136Wo0FCCc.png) ## 8.固件现存的问题 * ch55xarduino疑似无法将引脚配置为高阻态,pinMode设为INPUT,实际为高电平,无法实现两个LED同时熄灭,不影响使用 ### 由于模式切换导致了一些问题,现已删除模式切换功能,以下BUG均解决 * 在已经按下其他按键的情况下切换模式,会导致OS认为该按键一直被按下,按下任意键即可恢复 * 按键矩阵的(A1,A7)按下第一次扫描后会被识别为(A1,A6),该问题较为严重,建议暂时屏蔽掉这个按键,原因还没查出来 # 9.外观 ![IMG_20210530_164039.jpg](//image.lceda.cn/pullimage/1Z4TaLq18ibr7d9AfoAaq3n8IRxRvgrEfoqre5WO.jpeg) ![IMG_20210530_163805.jpg](//image.lceda.cn/pullimage/HDKuAUA0n76fAEmHoXIIvAFA9mrKF3CeOTD7Hx1F.jpeg) ### 底座使用另一块板子用热熔胶粘在一起 ### 考虑到隔壁jp出了白嫖3d打印的活动,后续可能会画外壳 2021/6/15 隔壁玩不起了,没法白嫖3d打印了,外壳就不画了 # 10.踩过的坑 ### 0.0.9的ch55xrduino linux版本有一处路径异常(或者是打包有遗漏),编译报错找不到avr-objcopy,Arch系解决方法如下 `sudo pacman -S avr-gcc` `vim /home/[YOUR-USER-NAME]/.arduino15/packages/CH55xDuino/hardware/mcs51/0.0.9/platform.txt` 第41行 `compiler.tools.path=xxxxxxxxxxxxx` 改为 `compiler.tools.path=/usr/bin` 保存退出即可 ### window版没法用自带的下载工具烧录程序,好像是权限的问题?反正没有解决,可以导出hex然后用官方给的烧录软件烧录 - - -


最后吐槽两句,黑轴的手感是真的不行,到底是哪个b说黑轴适合打游戏 原神官服54级老咸鱼了,UID:163114852,欢迎来骚扰~ - - - ### 注意,附件中的文件可能不会及时更新
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity BOM_Manufacturer BOM_Manufacturer Part BOM_Supplier BOM_Supplier Part
1 CHERRY 0,+,ENTER CHERRY_MX_2U 3 Kailh(凯华) CPG151101D92 LCSC C400238
2 CHERRY 1,2,3,4,5,6,7,8,9,*,-,.,/,NUM CHERRY-MX-1U 14 Kailh(凯华) CPG151101D92 LCSC C400238
3 100nF C1,C2 C0603 2 YAGEO CC0603KRX7R9BB104 LCSC C14663
4 1N4148W_C109203 D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17 SOD-123_L2.8-W1.8-LS3.7-RD 17 SK 1N4148W LCSC C109203
5 LTST-C230TGKT LED3,LED4 LED1206-RD 2 LITEON LTST-C230TGKT LCSC C157737
6 AO3400A_C347475 Q1 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 1 Youtai Semiconductor Co., Ltd. AO3400A LCSC C347475
7 1.5K R1,R2 R0603 2 UniOhm 0603WAJ0152T5E LCSC C25989
8 10K R9 R0603 1 Tyohm RMC060310K5%N LCSC C269684
9 K2-1107ST-A4SW-06 SW1 KEY-SMD_L6.2-W3.6-LS8.0 1 Rectangular Connectors - Contacts K2-1107ST-A4SW-06 LCSC C118141
10 CH551G U1 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1 WCH CH551G LCSC C108958
11 TYPEC-304-BCP16 USB1 USB-C-SMD_TYPEC-304-BCP16 1 XUNPU TYPEC-304-BCP16 LCSC C720629

展开

工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP