基于Ai8051U的快捷键盘
<h2>项目简介</h2><p>本项目是基于AI8051U的快捷键盘项目,它通过USB与电脑进行连接,通过8个触摸按键实现各种快捷键操作。</p>
<h2>项目功能</h2>
<p>该设计使用AI8051U制作快捷键盘,该键盘具有3个按钮和8个触摸按键实现各种快捷键操作,每个按键都对应了不同的功能。如:一键打开指定网页,一键打开应用程序,一键双开微信,一键输入指定公式等功能,同时添加了LCD屏幕进行显示时间与快捷键名称省去了记忆的麻烦。</p>
<h2>项目参数</h2>
<ul>
<li>本设计采用AI8051U作为主控芯片,该芯片自带USB下载功能,内部集成RTC功能,同时还支持USB-HID,可以很方便的作为键盘与电脑进行交互;</li>
<li>本设计采用1.44寸LCD显示,第一行显示日期,第二行显示时间,第三行与第四行显示快捷键的功能名称;</li>
<li>选用XW12A作为触摸识别芯片,该芯片支持12通道触摸输入,同时支持IIC和ADC供主机芯片进行交互,同时外围电路简单,便于设计;</li>
<li>使用频率为32.768kHz的外部晶振为芯片内部的RTC提供时钟源,使RTC时钟更为精准;</li>
</ul>
<h2>原理解析</h2>
<p>使用win+R然后输入CMD 执行快捷操作</p>
<ul>
<li>一键打开网页的原理:</li>
</ul>
<pre><code class="language-shell">CMD /C START https://oshwhub.com/explore
</code></pre>
<ul>
<li>一键输入公式的原理:<br />
在word中 ALT+'='是输入公式的快捷键,同时word2019以上还支持latex的转换,因此将对应的latex代码输入后,让word自行解析,流程为 <code>alt</code> + <code>=</code> 开始输入公式,公式输入完毕后按 <code>Enter</code>(回车)解析。</li>
<li>双开微信的原理:<br />
同样是利用cmd操作,找到微信的位置,将其写入程序,然后自动输入</li>
</ul>
<pre><code class="language-shell">CMD /C taskkill /F /FI "IMAGENAME eq WeChat.exe"&&D:&&cd Program Files\Tencent\WeChat\&& start WeChat.exe&&WeChat.exe
</code></pre>
<h2>软件代码</h2>
<p>实现一键操作的原理:<br />
本质上是模拟为一个HID键盘接入到电脑,通过连续输入按键来达到模拟快捷键的操作。(许多快捷键难背导致其真正的“快捷”没有发挥出来,本键盘就是通过快捷键和文本进行绑定与提示,将一些鲜为人知的快捷键发挥其应有的功能。同时该键盘还绑定了一些cmd命令操作,理由同上,发挥cmd的最大功能!)(cmd一键打开网页的思路参考了该项目:最丐17+4TPRO机械键盘)</p>
<pre><code class="language-c">// 一键打开某个网页
void Open_URL(char* www_url_com)
{
char xdata str = "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 = ""; // 确保有足够的空间
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);
}
</code></pre>
<p>调用部分代码如下</p>
<pre><code class="language-c">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");
</code></pre>
<h2>注意事项</h2>
<p>需要按照如图所示进行勾选:</p>
<p><img src="data/attachment/forum/202412/18/130641sppzdv35vp5p8vpp.png" alt="image.png" /><br />
**设计未预留P3.2按键,因此需要有一个typec转串口的转接线,才能下载程序,仅需下载一次,以后就可以用hid下载了,复刻需谨慎!!!!!!!!!!!!!!!!!!**app-translate-content</p>
<p>以后只需要按复位键,串口处便会弹出HID-Writer,即可进行下载,注意要把复位脚作IO口取消掉</p>
<h2>实物图</h2>
<p>设置时间界面:<br />
<img src="data/attachment/forum/202412/18/130656ywifkaqr6dj6emqf.png" alt="1733663650714.png" /><br />
运行界面:<br />
<img src="data/attachment/forum/202412/18/130707m9e9j8x8ks99848e.png" alt="1733663619838.png" /><br />
pcb3D图:<br />
<img src="data/attachment/forum/202412/18/130721jedj4p3e4cjwyeq1.png" alt="image.png" /><br />
实物图:<br />
<img src="data/attachment/forum/202412/18/130730f9ogmmtrgavmormo.jpg" alt="6b6cd2b471b15fdb6a8e99304eb7ef9.jpg" /></p>
<p>代码:<a href="forum.php?mod=attachment&aid=73887" title="attachment"><img src="/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg" alt="upload" /> 附件:keyboard.zip</a></p>
<p>演示视频:</p>
<p>一键输入公式(office2019以后的支持该功能)</p>
<video controls="controls" src="forum.php?mod=attachment&aid=73889"></video>
<p>一键打开开源广场</p>
<video controls="controls" src="forum.php?mod=attachment&aid=73890"></video>
<p>一键双开微信</p>
<video controls="controls" src="forum.php?mod=attachment&aid=73891"></video>
<p>这个设计目前遇到一个问题,就是RTC低功耗模式还有待解决,本意是打算无外部供电时使用纽扣电池供电只运行RTC,当外部USB接入后,继续使用USB供电,这样保证内部RTC时间寄存器不用重置,但是整合了一下官方例程,此问题尚未解决,虚心向各位大佬学习交流请教!<img alt="baoquan" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/baoquan.gif" title="baoquan" /></p>
Elec 发表于 2024-12-23 21:52
这个设计目前遇到一个问题,就是RTC低功耗模式还有待解决,本意是打算无外部供电时使用纽扣电池供电只运行R ...
机械轴USB-HID的PC数字21键小键盘,AI8H2K12U-SOP8完美制作,幻彩LED加持!原理图开源
https://www.stcaimcu.com/thread-13208-1-1.html
(出处: 国芯技术交流网站)
可以看看這個,一樣的功能,可能自己DIY
页:
[1]