找回密码
 立即注册
查看: 435|回复: 2

基于Ai8051U的快捷键盘

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-13 14:09:35
已绑定手机

1

主题

1

回帖

52

积分

注册会员

积分
52
发表于 2024-12-18 13:18:27 | 显示全部楼层 |阅读模式

项目简介

本项目是基于AI8051U的快捷键盘项目,它通过USB与电脑进行连接,通过8个触摸按键实现各种快捷键操作。

项目功能

该设计使用AI8051U制作快捷键盘,该键盘具有3个按钮和8个触摸按键实现各种快捷键操作,每个按键都对应了不同的功能。如:一键打开指定网页,一键打开应用程序,一键双开微信,一键输入指定公式等功能,同时添加了LCD屏幕进行显示时间与快捷键名称省去了记忆的麻烦。

项目参数

  • 本设计采用AI8051U作为主控芯片,该芯片自带USB下载功能,内部集成RTC功能,同时还支持USB-HID,可以很方便的作为键盘与电脑进行交互;
  • 本设计采用1.44寸LCD显示,第一行显示日期,第二行显示时间,第三行与第四行显示快捷键的功能名称;
  • 选用XW12A作为触摸识别芯片,该芯片支持12通道触摸输入,同时支持IIC和ADC供主机芯片进行交互,同时外围电路简单,便于设计;
  • 使用频率为32.768kHz的外部晶振为芯片内部的RTC提供时钟源,使RTC时钟更为精准;

原理解析

使用win+R然后输入CMD 执行快捷操作

  • 一键打开网页的原理:
CMD /C START https://oshwhub.com/explore
  • 一键输入公式的原理:
    在word中 ALT+'='是输入公式的快捷键,同时word2019以上还支持latex的转换,因此将对应的latex代码输入后,让word自行解析,流程为 alt + = 开始输入公式,公式输入完毕后按 Enter(回车)解析。
  • 双开微信的原理:
    同样是利用cmd操作,找到微信的位置,将其写入程序,然后自动输入
CMD /C taskkill /F /FI "IMAGENAME eq WeChat.exe"&&D:&&cd Program Files\Tencent\WeChat\&& start WeChat.exe&&WeChat.exe

软件代码

实现一键操作的原理:
本质上是模拟为一个HID键盘接入到电脑,通过连续输入按键来达到模拟快捷键的操作。(许多快捷键难背导致其真正的“快捷”没有发挥出来,本键盘就是通过快捷键和文本进行绑定与提示,将一些鲜为人知的快捷键发挥其应有的功能。同时该键盘还绑定了一些cmd命令操作,理由同上,发挥cmd的最大功能!)(cmd一键打开网页的思路参考了该项目:最丐17+4TPRO机械键盘)

// 一键打开某个网页
void Open_URL(char* www_url_com)
{
    char xdata str[256] = "CMD /C \"START https://"; // 确保有足够的空间
    sprintf(str, "CMD /C START https://%s\r", www_url_com);
    sendKey(HID_KEY_R, KEYBOARD_MODIFIER_LEFTGUI);
    Delay_ms(500);
    sendString(str);
    sendKey(HID_KEY_ENTER, 0);
}
//一键输入cmd命令,如打开特定应用
void CMD_Input(const char* cmd)
{
    char xdata str[256] = ""; // 确保有足够的空间
    sprintf(str, "CMD /C %s\r", cmd);
    sendKey(HID_KEY_R, KEYBOARD_MODIFIER_LEFTGUI);
    Delay_ms(500);
    sendString(str);
    sendKey(HID_KEY_ENTER, 0);
}
// 一键输入LaTex公式
void LATEX_Input(const char* latex)
{
    sendKey(HID_KEY_EQUAL, KEYBOARD_MODIFIER_LEFTALT); //word 一键打开公式的快捷键
    Delay_ms(500);
    sendString(latex);
    sendKey(HID_KEY_ENTER, 0);
}

调用部分代码如下

case PAD_2_VALUE:
    // 一键输入公式,'\'需要进行转义
    LATEX_Input("\\int \\frac{1}{1+x^{2}}\\mathrm{d}x= \\arctan x +C ");
    break;
case PAD_3_VALUE:
    //一键打开计算器
    CMD_Input("calc");
    break;
case PAD_5_VALUE:
    //一键打开开源广场
    Open_URL("oshwhub.com/explore");

注意事项

需要按照如图所示进行勾选:

image.png
**设计未预留P3.2按键,因此需要有一个typec转串口的转接线,才能下载程序,仅需下载一次,以后就可以用hid下载了,复刻需谨慎!!!!!!!!!!!!!!!!!!**app-translate-content

以后只需要按复位键,串口处便会弹出HID-Writer,即可进行下载,注意要把复位脚作IO口取消掉

实物图

设置时间界面:
1733663650714.png
运行界面:
1733663619838.png
pcb3D图:
image.png
实物图:
6b6cd2b471b15fdb6a8e99304eb7ef9.jpg

代码:upload 附件:keyboard.zip

演示视频:

一键输入公式(office2019以后的支持该功能)

一键打开开源广场

一键双开微信

2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-13 14:09:35
已绑定手机

1

主题

1

回帖

52

积分

注册会员

积分
52
发表于 2024-12-23 21:52:43 | 显示全部楼层

这个设计目前遇到一个问题,就是RTC低功耗模式还有待解决,本意是打算无外部供电时使用纽扣电池供电只运行RTC,当外部USB接入后,继续使用USB供电,这样保证内部RTC时间寄存器不用重置,但是整合了一下官方例程,此问题尚未解决,虚心向各位大佬学习交流请教!baoquan

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2025-4-23 16:18:36 | 显示全部楼层
El*** 发表于 2024-12-23 21:52
这个设计目前遇到一个问题,就是RTC低功耗模式还有待解决,本意是打算无外部供电时使用纽扣电池供电只运行R ...

机械轴USB-HID的PC数字21键小键盘,AI8H2K12U-SOP8完美制作,幻彩LED加持!原理图开源
https://www.stcaimcu.com/thread-13208-1-1.html
(出处: 国芯技术交流网站)
可以看看這個,一樣的功能,可能自己DIY
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:49 , Processed in 0.129377 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表