0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于RT-Thread和N32G457的迷你鍵盤設計方案

冬至子 ? 來源:Blues_Jiang ? 作者:Blues_Jiang ? 2023-08-07 16:04 ? 次閱讀

應用背景

機械鍵盤在最近幾年發(fā)展迅猛,功能也逐漸豐富,在開源環(huán)境中也存在幾個發(fā)展迅猛的開源項目,比如QMK。這些項目對STM32之類的芯片雖然有所支持,但是相關資料也會少很多,所以項目之初我是希望可以將QMK作為一個軟件包接入RT-Thread,但是由于對其了解不夠深入,最后項目變成了完成鍵盤為主(主要PCB已經(jīng)畫回來了)。

本次作品,是希望借實現(xiàn)一個小鍵盤接觸QMK之類的開源項目,并將其接入RT-Thread,這樣對于機械鍵盤這個行業(yè)而言,主控芯片的選擇會豐富很多。

實現(xiàn)功能

本項目主要為一個通過USB HID協(xié)議對電腦進行通信的機械鍵盤(30左右鍵+3個編碼器),添加WS2812的燈珠,添加1.14寸OLED顯示屏,均完成基礎功能編寫測試(存在部分不穩(wěn)定的bug)。通過RT-Thread為每一個設備建立線程,實現(xiàn)了互相通訊,實現(xiàn)了部分互動特效。

開發(fā)板和RT-Thread使用情況概述

本次設計對鍵盤部分設計了PCB以及頂部定位板的PCB,使用40P的FPC排線將所有所需引腳引出,通過杜邦線連接到主控板,使用的主控板為國民技術提供的N32G457開發(fā)板,將所有IO引出,考慮之下,作為前期項目,采取了杜邦線的形式。

在設計PCB的時候,考慮到整體鍵盤一體性,有做額外設計,將主控部分放置于頂層定位板處,床層PCB通過FPC排線進行連接。當然由于時間與資源關系并沒有完成該部分,定位板只做定位板使用,是便于調(diào)試的選擇。

在軟件層面該程序使用RT-Thread 4.1.0為主控系統(tǒng),部分內(nèi)容通過對軟件包的修改完成。

硬件框架

如圖:

1.jpg

實裝了OLED,WS2812b,和鍵盤本體,通過FPC排線接到轉(zhuǎn)接板,通過杜邦線連接到開發(fā)板。
對于機械鍵盤部分,原理圖如下。

1.jpg

軟件框架說明

1.jpg

針對每一個外設都有做線程,USB接收的信息有CapsLock和NumsLock,這類事件通過Event公告。

keyboard線程是10ms掃描一次,先掃描矩陣鍵盤,再掃描旋轉(zhuǎn)編碼器。

當發(fā)現(xiàn)有按鍵需要發(fā)送出去,在線程內(nèi)先打包好,然后通過消息隊列發(fā)送出去。

軟件模塊說明

由于N32G45X的BSP并不支持USB設備,在移植嘗試進行了一些時間后,由于本身并未研究過USB設備,在仍然希望最終結(jié)果相對完整的前提下,選擇了另一種方法。根據(jù)國民技術提供的N32G457的庫函數(shù),內(nèi)部包含了部分使用USB向電腦發(fā)送數(shù)據(jù)的例程,本次項目將該部分例程魔改,并未初始化USB的device,但對USB設備分配了一個線程,使用RT-Thread的方法進行橋接,發(fā)送所需數(shù)據(jù)到例程中設備向USB主機發(fā)送設備的位置,最終實現(xiàn)了成功枚舉HID設備并正常進行打字輸入。

現(xiàn)階段軟件在打字部分已經(jīng)比較完善,ws2812b部分存在bug,會出現(xiàn)顏色偏差。

對SPI部分驅(qū)動后續(xù)有進行小修復,驗證通過,后續(xù)會提交PR。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PCB布線
    +關注

    關注

    20

    文章

    463

    瀏覽量

    41976
  • OLED顯示屏
    +關注

    關注

    6

    文章

    214

    瀏覽量

    30600
  • RT-Thread
    +關注

    關注

    31

    文章

    1251

    瀏覽量

    39751
  • STM32芯片
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4350
  • N32G457
    +關注

    關注

    0

    文章

    16

    瀏覽量

    905
收藏 人收藏

    評論

    相關推薦

    基于N32G457 RT-Thread的設計作品集分享

    1、基于RT-ThreadN32G457的智能工業(yè)網(wǎng)關的設計方案基于RT-Thread系統(tǒng)和N32G457開發(fā)板,簡單的實現(xiàn)了modbus
    發(fā)表于 03-11 17:49

    作品分享-基于RT-Thread系統(tǒng)和N32G457開發(fā)板開發(fā)的電子圍欄設計

    基于RT-Thread系統(tǒng)和N32G457開發(fā)板開發(fā)的電子圍欄設計,主要采用的是N32G457開發(fā)板,并搭載AIR724 4G模塊作為數(shù)據(jù)傳輸模塊,通過采集GPS的數(shù)據(jù),并將該設備的經(jīng)
    發(fā)表于 03-14 14:25

    基于RT-ThreadN32G457迷你鍵盤

    推出N32G457 RT-Thread設計大賽期間作品。由于疫情影響加上其他各種原因,本應在3月25日結(jié)束的比賽在今日終于完成了一個比較完整的作品,無論是否可以參賽,還是希望對大家有所幫助。先放個圖
    發(fā)表于 04-18 14:49

    求一種基于RT-ThreadN32G457的室內(nèi)互聯(lián)控制系統(tǒng)設計方案

    1、基于RT-Thread系統(tǒng)和N32G457開發(fā)板開發(fā)的一室內(nèi)互聯(lián)控制系統(tǒng)基于RT-Thread系統(tǒng)和N32G457開發(fā)板開發(fā)的一室內(nèi)互聯(lián)控制系統(tǒng);硬件部分由ESP8266WIFI模
    發(fā)表于 06-15 15:36

    分享一種基于RT-ThreadN32G457的運動姿態(tài)解算設計

    1、基于RT-ThreadN32G457的運動姿態(tài)解算基本框架如上圖所示,設計框架由硬件和軟件兩部分組成,其中硬件主要包括N32G457主控板和MPU6050模塊,軟件部分主要包括eMPL的移植(
    發(fā)表于 06-23 10:24

    基于RT-ThreadN32G457的測距雷達采集顯示的設計方案

    1、基于RT-ThreadN32G457的測距雷達采集顯示功能介紹采集測距雷達數(shù)據(jù),經(jīng)過開發(fā)板處理后,將數(shù)據(jù)在LCD顯示屏上顯示,同時在串口輸出距測距信息。硬件框圖**軟件框圖原作者:TLLED
    發(fā)表于 07-05 16:08

    基于RT-ThreadN32G457的繼電器控制加熱設備制作方案

    1、基于RT-ThreadN32G457的繼電器控制加熱設備制作此項目是移植現(xiàn)有的加熱設備程序到RT-Thread 框架,主要是基于RT-Thread框架及對應的軟件包(bottom
    發(fā)表于 08-26 15:55

    基于RT-ThreadN32G457的智能字符識別系統(tǒng)設計方案

    1、基于RT-ThreadN32G457的智能字符識別系統(tǒng)  應用背景:提高文本信息錄入效率  實現(xiàn)功能:通過對需要錄入信息進行拍照,對照片進行OCR,實現(xiàn)錄入信息快速錄入  硬件框架  軟件框架  原作者:panshi
    發(fā)表于 09-02 15:41

    基于RT-ThreadN32G457的數(shù)字氣壓表設計相關資料分享

    1、基于RT-ThreadN32G457的數(shù)字氣壓表設計  基于RT-Thread系統(tǒng)和N32G457的數(shù)字氣壓表的設計。氣壓傳感器使用國產(chǎn)的華普HP5806氣壓傳感器,RTC時鐘使
    發(fā)表于 10-11 16:44

    基于RT-ThreadN32G457的電子墨水屏電子鐘設計方案

    1、基于RT-ThreadN32G457的電子墨水屏電子鐘設計本方案可以用于桌擺時鐘及定時器,用于倒計時提醒,查看時間等場景。定時器功能同時顯示了倒計時時長已經(jīng)定時到達時間,方便設置預期的提醒時間
    發(fā)表于 10-28 17:29

    基于RT-ThreadN32G457的溫度氣壓顯示系統(tǒng)設計方案

    1、基于RT-ThreadN32G457的溫度氣壓顯示系統(tǒng)設計  此次基于RTT和N32G457開發(fā)實現(xiàn)u8g2 spi 硬件驅(qū)動顯示及bmp280 傳感器驅(qū)動?! ≌w架構如下:原
    發(fā)表于 10-31 17:35

    基于RT-ThreadN32G457的嵌入式目標識別系統(tǒng)設計實現(xiàn)

    1、基于RT-ThreadN32G457的嵌入式目標識別系統(tǒng)設計  本演示示例移植蘇州大學計算機科學與技術學院王宜懷教授團隊的金葫蘆嵌入式人工智能:物體認知系統(tǒng)中的代碼在N32G457上實現(xiàn)??梢宰R別單獨的英文字母A B C
    發(fā)表于 11-30 11:36

    N32G457系列通用MCU RT_Thread設備注冊應用筆記

    N32G457系列通用MCU RT_Thread設備注冊應用筆記
    發(fā)表于 11-10 19:51 ?3次下載
    <b class='flag-5'>N32G457</b>系列通用MCU <b class='flag-5'>RT_Thread</b>設備注冊應用筆記

    N32G457系列通用MCU RT_Thread使用指南

    N32G457系列通用MCU RT_Thread使用指南
    發(fā)表于 11-11 21:50 ?0次下載
    <b class='flag-5'>N32G457</b>系列通用MCU <b class='flag-5'>RT_Thread</b>使用指南

    求一種基于RT-ThreadN32G457的便攜測距模塊設計方案

    背景:基于RT-Thread系統(tǒng)和N32G457開發(fā)板開發(fā)的一款便攜測距小模塊;
    發(fā)表于 08-07 16:30 ?425次閱讀
    求一種基于<b class='flag-5'>RT-Thread</b>和<b class='flag-5'>N32G457</b>的便攜測距模塊<b class='flag-5'>設計方案</b>