0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自定义USB键盘的制作

454398 来源:工程师吴畏 2019-08-08 11:48 次阅读

第1步:键盘在行动

在这里,您可以简要了解键盘在实际应用中的表现。

键盘有2种模式 - 步进模式和连续移动模式。/p》

第2步:收集所有东西!

您将需要:

- 可以模仿USB PC键盘的Arduino Pro Micro 32u4或鼠标

- 按钮开关 - 我使用了一个非常昂贵的(20美元一件)NKK KP02开关我从朋友那里使用过。它们是内置RGB LED的按钮开关。但如果您不需要花哨的LED效果,可以随意使用任何按钮开关。或者,您可以使用一些有常规RGB LED孔的开关滑入或滑动。

- TLC5940 IC(仅在您需要LED效果时)。我使用了IC本身,但你可以使用分线板,如果你不打算制作自己的PCB

- 3d打印机(可选)

- PCB制作技巧(可选)

- 基础电子知识

- 一段时间

- 和神经:)

第3步:原理图

自定义USB键盘的制作

原理图非常简单。

我在交换机上使用了一些RC去抖电路(见图),因此无需担心软件中的开关弹跳。开关中的LED具有共阳极。

对于TLC5940 LED驱动器 - 我制作了自己的PCB,并将IC直接焊接在PCB上。 IREF和GND之间的电阻设置驱动LED的电流

如果您打算使用分线板,请查看分线板原理图。连接电线应该非常简单。

如果您使用分线板作为LED驱动器,您可能不需要使用7个去耦电容。

步骤4:PCB和外壳

PCB不是这个教程中必不可少的步骤,因为我使用了非爱好友好的程序,我的开关购买成本非常高,所以我相信你们中很多人都不会制作我所制造的PCB。

我鼓励你使用分线板和主板配线连接项目,或者你可以设计自己的PCB以适应更多经济实惠的开关和LED。

我在Altium Designer中设计了一个快速的pcb。我使用这个程序是因为我有许可证,因为我每天都在使用它。我知道这个程序远没有业余爱好价格明智。

如果有人想要Altium或PCB gerber文件在评论中说出来,我会将它们发送给您。

该框是在Autodesk Inventor中绘制的(也不是爱好友好程序,但是我也在工作中使用它,我已经习惯了)。如果有人想要.stl文件进行3D打印,请发表评论并发送给您。

第5步:软件

代码在arduino环境中生成。

我使用Button库来管理所有按钮。它具有很好的功能,可以读取像key.uniquePress()和key.isPressed()这样的按钮,使我们的生活更轻松。

集成的arduino键盘库,用于使电路板像PC键盘一样工作。

TLC5940库,用于控制LED调光并完成所有漂亮的淡入淡出。

我附上了最终的arduino代码。键被映射为类似于代码中常规PC键盘的附加图像,以便于处理。

可以轻松修改代码以用于各种用途。

第6步:完成了!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 键盘
    +关注

    关注

    4

    文章

    858

    浏览量

    39589
收藏 人收藏

    评论

    相关推荐

    TPS659xx应用程序自定义工具

    电子发烧友网站提供《TPS659xx应用程序自定义工具.pdf》资料免费下载
    发表于 11-06 10:02 0次下载
    TPS659xx应用程序<b class='flag-5'>自定义</b>工具

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    如何创建TestStand自定义步骤

    在之前的课程中简单地介绍过TestStand自带的一些步骤类型,如测试、消息弹窗、赋值、标签等等,这些简单的步骤从TestStand的插入选版中就可以添加到序列中。那么在使用中如果碰到需要实现更加灵活、复杂的功能,使用自带的一些步骤类型可能难以满足,这时就需要使用到自定义步骤。
    的头像 发表于 09-11 14:46 889次阅读
    如何创建TestStand<b class='flag-5'>自定义</b>步骤

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划。
    的头像 发表于 08-15 11:49 568次阅读
    EtherCAT运动控制器PT/PVT实现用户<b class='flag-5'>自定义</b>轨迹规划

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 694次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    如何为ESP8266构建自定义盾牌?

    我正在寻找某种如何为ESP8266构建自定义盾牌的指南。 到目前为止,我已经使用 NODEMCU 构建了功能原型,但我现在想简化事情并使其更小。 1. 是否有一些书面的、开放的硬件指南 (很好
    发表于 07-08 07:17

    esp32s2如何自定义HID的USB开发?

    请问一下,想自定义HID的USB开发,对于底层的操作如中断、上位机发送的请求、回复上位机请求等这些底层操作有示例吗?通过ESP-IDF、Arduino或者Rust的方式。
    发表于 06-17 07:18

    Chrome移动版支持自定义菜单栏功能

    在先前版本中,用户通过点击浏览器右上角的三个点按钮即可调出包含各类图标与操作的菜单。而此次更新后,Chrome新增了“自定义菜单”选项,允许用户自主控制该区域的展示内容。
    的头像 发表于 05-27 15:00 746次阅读

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1295次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 613次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发案例:【UIAbility和自定义组件生命周期】

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-10 15:31 1189次阅读
    HarmonyOS开发案例:【UIAbility和<b class='flag-5'>自定义</b>组件生命周期】

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 976次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 604次阅读

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2788次阅读
    基于YOLOv8实现<b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 878次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用