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

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

3天内不再提示

基于RT-Thread和N32G457的迷你键盘设计方案

冬至子 来源:Blues_Jiang 作者:Blues_Jiang 2023-08-07 16:04 次阅读

应用背景

机械键盘在最近几年发展迅猛,功能也逐渐丰富,在开源环境中也存在几个发展迅猛的开源项目,比如QMK。这些项目对STM32之类的芯片虽然有所支持,但是相关资料也会少很多,所以项目之初我是希望可以将QMK作为一个软件包接入RT-Thread,但是由于对其了解不够深入,最后项目变成了完成键盘为主(主要PCB已经画回来了)。

本次作品,是希望借实现一个小键盘接触QMK之类的开源项目,并将其接入RT-Thread,这样对于机械键盘这个行业而言,主控芯片的选择会丰富很多。

实现功能

本项目主要为一个通过USB HID协议对电脑进行通信的机械键盘(30左右键+3个编码器),添加WS2812的灯珠,添加1.14寸OLED显示屏,均完成基础功能编写测试(存在部分不稳定的bug)。通过RT-Thread为每一个设备建立线程,实现了互相通讯,实现了部分互动特效。

开发板和RT-Thread使用情况概述

本次设计对键盘部分设计了PCB以及顶部定位板的PCB,使用40P的FPC排线将所有所需引脚引出,通过杜邦线连接到主控板,使用的主控板为国民技术提供的N32G457开发板,将所有IO引出,考虑之下,作为前期项目,采取了杜邦线的形式。

在设计PCB的时候,考虑到整体键盘一体性,有做额外设计,将主控部分放置于顶层定位板处,床层PCB通过FPC排线进行连接。当然由于时间与资源关系并没有完成该部分,定位板只做定位板使用,是便于调试的选择。

在软件层面该程序使用RT-Thread 4.1.0为主控系统,部分内容通过对软件包的修改完成。

硬件框架

如图:

1.jpg

实装了OLED,WS2812b,和键盘本体,通过FPC排线接到转接板,通过杜邦线连接到开发板。
对于机械键盘部分,原理图如下。

1.jpg

软件框架说明

1.jpg

针对每一个外设都有做线程,USB接收的信息有CapsLock和NumsLock,这类事件通过Event公告。

keyboard线程是10ms扫描一次,先扫描矩阵键盘,再扫描旋转编码器。

当发现有按键需要发送出去,在线程内先打包好,然后通过消息队列发送出去。

软件模块说明

由于N32G45X的BSP并不支持USB设备,在移植尝试进行了一些时间后,由于本身并未研究过USB设备,在仍然希望最终结果相对完整的前提下,选择了另一种方法。根据国民技术提供的N32G457的库函数,内部包含了部分使用USB向电脑发送数据的例程,本次项目将该部分例程魔改,并未初始化USB的device,但对USB设备分配了一个线程,使用RT-Thread的方法进行桥接,发送所需数据到例程中设备向USB主机发送设备的位置,最终实现了成功枚举HID设备并正常进行打字输入。

现阶段软件在打字部分已经比较完善,ws2812b部分存在bug,会出现颜色偏差。

对SPI部分驱动后续有进行小修复,验证通过,后续会提交PR。

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

    关注

    19

    文章

    460

    浏览量

    41656
  • OLED显示屏
    +关注

    关注

    6

    文章

    202

    浏览量

    30322
  • RT-Thread
    +关注

    关注

    31

    文章

    1149

    浏览量

    38900
  • STM32芯片
    +关注

    关注

    0

    文章

    38

    浏览量

    4311
  • N32G457
    +关注

    关注

    0

    文章

    16

    浏览量

    831
收藏 人收藏

    评论

    相关推荐

    基于N32G457 RT-Thread的设计作品集分享

    1、基于RT-ThreadN32G457的智能工业网关的设计方案基于RT-Thread系统和N32G457开发板,简单的实现了modbus
    发表于 03-11 17:49

    作品分享-基于RT-Thread系统和N32G457开发板开发的电子围栏设计

    基于RT-Thread系统和N32G457开发板开发的电子围栏设计,主要采用的是N32G457开发板,并搭载AIR724 4G模块作为数据传输模块,通过采集GPS的数据,并将该设备的经
    发表于 03-14 14:25

    基于RT-ThreadN32G457迷你键盘

    推出N32G457 RT-Thread设计大赛期间作品。由于疫情影响加上其他各种原因,本应在3月25日结束的比赛在今日终于完成了一个比较完整的作品,无论是否可以参赛,还是希望对大家有所帮助。先放个图
    发表于 04-18 14:49

    求一种基于RT-ThreadN32G457的室内互联控制系统设计方案

    1、基于RT-Thread系统和N32G457开发板开发的一室内互联控制系统基于RT-Thread系统和N32G457开发板开发的一室内互联控制系统;硬件部分由ESP8266WIFI模
    发表于 06-15 15:36

    分享一种基于RT-ThreadN32G457的运动姿态解算设计

    1、基于RT-ThreadN32G457的运动姿态解算基本框架如上图所示,设计框架由硬件和软件两部分组成,其中硬件主要包括N32G457主控板和MPU6050模块,软件部分主要包括eMPL的移植(
    发表于 06-23 10:24

    基于RT-ThreadN32G457的测距雷达采集显示的设计方案

    1、基于RT-ThreadN32G457的测距雷达采集显示功能介绍采集测距雷达数据,经过开发板处理后,将数据在LCD显示屏上显示,同时在串口输出距测距信息。硬件框图**软件框图原作者:TLLED
    发表于 07-05 16:08

    基于RT-ThreadN32G457的温度气压显示系统设计

    1、基于RT-ThreadN32G457的温度气压显示系统设计此次基于RTT和N32G457开发实现u8g2 spi 硬件驱动显示及bmp280 传感器驱动。整体架构如下:原作者:x
    发表于 07-21 11:44

    基于RT-ThreadN32G457的智能家居demo相关资料介绍

    1、基于RT-ThreadN32G457的智能家居demo简介本文使用 N32G457 开发板,移植 RT-Thread 操作系统,增加 ESP8266 WIFI 模块模拟了一个小型
    发表于 08-22 15:09

    基于RT-ThreadN32G457的继电器控制加热设备制作方案

    1、基于RT-ThreadN32G457的继电器控制加热设备制作此项目是移植现有的加热设备程序到RT-Thread 框架,主要是基于RT-Thread框架及对应的软件包(bottom
    发表于 08-26 15:55

    基于RT-ThreadN32G457的智能字符识别系统设计方案

    1、基于RT-ThreadN32G457的智能字符识别系统  应用背景:提高文本信息录入效率  实现功能:通过对需要录入信息进行拍照,对照片进行OCR,实现录入信息快速录入  硬件框架  软件框架  原作者:panshi
    发表于 09-02 15:41

    基于RT-ThreadN32G457的简易示波器设计方案推荐

    1、怎样去设计一种基于RT-ThreadN32G457的简易示波器应用背景没啥应用背景,纯属个人兴趣项目。我当时在整理公司的驱动代码,想借鉴一下大公司的一些先进理念,rt-thread驱动框架做得
    发表于 09-09 15:39

    基于RT-ThreadN32G457的数字气压表设计相关资料分享

    1、基于RT-ThreadN32G457的数字气压表设计  基于RT-Thread系统和N32G457的数字气压表的设计。气压传感器使用国产的华普HP5806气压传感器,RTC时钟使
    发表于 10-11 16:44

    基于RT-ThreadN32G457的电子墨水屏电子钟设计方案

    1、基于RT-ThreadN32G457的电子墨水屏电子钟设计本方案可以用于桌摆时钟及定时器,用于倒计时提醒,查看时间等场景。定时器功能同时显示了倒计时时长已经定时到达时间,方便设置预期的提醒时间
    发表于 10-28 17:29

    基于RT-ThreadN32G457的温度气压显示系统设计方案

    1、基于RT-ThreadN32G457的温度气压显示系统设计  此次基于RTT和N32G457开发实现u8g2 spi 硬件驱动显示及bmp280 传感器驱动。  整体架构如下:原
    发表于 10-31 17:35

    基于RT-ThreadN32G457的嵌入式目标识别系统设计实现

    1、基于RT-ThreadN32G457的嵌入式目标识别系统设计  本演示示例移植苏州大学计算机科学与技术学院王宜怀教授团队的金葫芦嵌入式人工智能:物体认知系统中的代码在N32G457上实现。可以识别单独的英文字母A B C
    发表于 11-30 11:36