在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

聚豐項目 > 基于AB32VG1的墨水屏智能日歷

基于AB32VG1的墨水屏智能日歷

項目背景 本項目是【RT-Thread x RISC-V 應用創新大賽】參賽項目之一。 本項目有什么創新點(實現了哪些功能)? 1. 相比紙質日歷,無需手動翻頁; 2. 相比紙質日歷,可以顯示實時天氣信息; 3. 相比LCD/OLED屏的同類產品,電子墨水屏的功耗更低,更節能環保;

xusiwei1236 xusiwei1236

分享
1 喜歡這個項目
團隊介紹

xusiwei1236 xusiwei1236

團隊成員

許思維 軟件工程師

分享
項目簡介
項目背景 本項目是【RT-Thread x RISC-V 應用創新大賽】參賽項目之一。 本項目有什么創新點(實現了哪些功能)? 1. 相比紙質日歷,無需手動翻頁; 2. 相比紙質日歷,可以顯示實時天氣信息; 3. 相比LCD/OLED屏的同類產品,電子墨水屏的功耗更低,更節能環保;
硬件說明

硬件部分

本項目主要包括五個硬件模塊:

  1. AB32VG1開發板,作為主控制器控制其他外設;

  2. ESP8266 WiFi模塊,用于聯網獲取時間和實時天氣信息;

  3. 微雪的Arduino墨水屏擴展板,用于驅動墨水屏,同時帶有一個128KB的SPI RAM芯片(用于作為顯存),和一個T-Flash卡槽(沒用到);

  4. 4.2英寸三色墨水屏,分辨率400x300,用于顯示畫面,一幀畫面至少需要占用45KB 內存(400 x 300 x 3 / 8 = 45000);

  5. W25Q128閃存模塊,容量16MB,用于存儲中文字體;


硬件模塊間連接

五個硬件模塊之間的整體連接關系如下圖:

模塊連接關系



開發板引腳分配

開發板和外設的引腳連接關系(電源部分):

外設供電

主要使用到的資源,以及開發板和外設的引腳連接關系(控制部分):

引腳連接關系

具體使用情況說明:

  1. RTC

    • 用于保存當前時間和日期,以及時間的自動遞增;

  2. UART1

    • 連接ESP-01S模塊,用于實現聯網獲取時間和實時天氣信息;

  3. SPI1

    • 連接墨水屏擴展板,用于和上面的SRAM芯片、墨水屏芯片通信;

  4. GPIO

    • 連接墨水屏擴展板上的RAM_CS,用于輸出SRAM的片選信號

    • 連接墨水屏擴展板上的EPD_CS,用于輸出墨水屏的片選信號;

    • 連接墨水屏擴展板上的EPD_DC,用于輸出墨水屏的數據/命令信號;

    • 連接墨水屏擴展板上的EPD_RST,用于輸出墨水屏的復位信號;

    • 連接墨水屏擴展板上的EPD_BUSY,用于墨水屏的繁忙狀態的輸入;

    • 連接W25Q128模塊的CS,用于輸出閃存芯片的片選信號;

    • 開發板自帶的三個按鍵,用于作為輸入按鍵;

  5. 3V3/GND

    • 連接ESP-01S模塊,用于向ESP8266芯片供電;

    • 連接墨水屏擴展板,用于向SRAM和墨水屏供電;

    • 連接W25Q128模塊,用于向閃存芯片供電;


軟件說明

軟件部分

本項目的軟件部分基于RT-Thread物聯網操作系統,除了本項目開發的業務邏輯代碼外,還使用了一些RT-Thread 內核API、一些RT-Thread軟件包,以及一些三方組件,下面分別介紹。

主代碼倉:https://gitee.com/swxu/e-calender.git

下載命令:git clone --recursive https://gitee.com/swxu/e-calender.git

部分組件通過git submodule引用了其他代碼倉,具體見.gitmodules文件;


組件框圖

軟件各部分的組件框圖如下:

軟件組件圖


業務代碼

本項目開發的業務代碼位于applications目錄下,具體文件功能如下(大部分是.c和.h兩個文件):

  1. amap_location_api 高德IP定位API;

  2. amap_weather_api 高德天氣預報API;

  3. chinese_date_api 農歷查詢API;

  4. flash_init.c 閃存分區掛載(依賴RT-Thread內核的fatfs支持);

  5. http_api_utils http工具函數;

  6. hzk16 HZK16漢字字體相關接口;

  7. hzk16_data HZK16漢字字體數據;

  8. hzk16_setup 將HZK16字體安裝到閃存分區;

  9. key_task 按鍵掃描任務;

  10. kvdb 封裝了FlashDB里面的KVDB,更容易使用;

  11. main.c 程序入口;

  12. network_task 網絡任務,用于處理網絡請求(由于UART串口傳輸速度較慢,查詢較慢,所以單獨放在一個任務里面執行);

  13. time_utils 時間處理工具函數;

  14. ui_consts UI常量;

  15. ui_draw UI繪制,界面繪制邏輯單獨放在了這里面;

  16. ui_task UI任務,調用ui_draw實現相關功能;



RT-Thread軟件包

本項目使用到的RT-Thread軟件包位于packages目錄下:

  1. bluetrum_sdk

    • RT-Thread Studio創建項目時自帶,包含了二進制的libhal.a

  2. at_device

    • 提供ESP8266 AT命令構造和響應解析功能,實現聯網;

    • 修改:將所有sscanf都替換為atoi和strtol了(測試過程中間發現,每次send/recv會crash在sscanf里面);

    • 修改后代碼倉:https://gitee.com/swxu/fal.git

  3. netutils

    • 提供網絡時間協議(NTP)的實現,實現從網絡獲取時間、設置時間;

  4. webclient

    • 提供了超文本傳輸協議(HTTP)客戶端的實現,用于天氣查詢請求的發送和接收;

  5. cJSON

    • 一個輕量級的純C實現的JSON字符串解析庫,用于解析天氣查詢響應的JSON字符串;

    • 未做修改

  6. FlashDB

    • 一個嵌入式數據庫,提供了鍵值數據庫(KVDB)和時序數據庫(TSDB)兩類API,同時提供了一些msh的測試命令;

    • 修改:開啟了DEBUG日志,bench命令中的KV測試次數改為100

    • 代碼倉:https://gitee.com/swxu/FlashDB.git

  7. fal

    • 閃存抽象層,FlashDB依賴的軟件包,提供了閃存操作的封裝和抽象,同時提供了一些msh的測試命令;

    • 修改:添加了w25q128的移植文件;

    • 代碼倉:https://gitee.com/swxu/fal.git

  8. gbk2utf8

    • GBK和UTF8互相轉換,HTTP API返回的漢字是UTF8編碼的;



其他三方軟件包

本項目使用到的其他三方軟件均來自外設模塊供應商,代碼放在board目錄下,包括:

  1. epaper

    • 微雪墨水屏擴展板驅動軟件包,來自微雪的E-Paper_Shield頁面;

    • 刪除了無用的代碼,包括不是4.2寸屏幕的代碼、以及SD卡驅動;

    • 修改了GPIO相關的代碼,改為用RT-Thread的pin驅動接口;

    • 修改了SPI相關的代碼,改為用重新實現的bsp_spi接口;

    • 添加了基于RT-Thread finsh的墨水屏測試程序(繪制棋盤格、全屏填充、輸出引腳測試),可以在shell模式下通過命令調用執行;

  2. w25qxx

    • W25Q128 閃存驅動,來自微雪的W25QXX DataFlash Board頁面;

    • 修改了GPIO向代碼,改為使用RT-Thread的pin驅動接口;

    • 修改了SPI相關代碼,改為用重新實現的bsp_spi接口;

    • 添加了基于RT-Thread msh的RAM測試程序(字模式、頁模式、流模式),可以在shell模式下通過命令調用執行;

  3. 重新實現的bsp_spi.h和bsp_spi.c

    • 使用了greedyhao大佬提供的硬件SPI初始化代碼

    • SPI接收和發送,使用了Bluetrum技術群中的SDK_AB53XX_V061_20190103.zip里面的相關代碼;

    • greedyhao大佬提供的驅動,實現部分全部在libhal.a中,暫時不太好移植到RT-Thread驅動框架上;


演示效果

IMG_top.png

評論區(2 )
  • zhd0305: 好犀利啊!

    回復

  • xusiwei1236: 說明:
    1. 圖片上的日期是因為一開機沒有聯網同步時間(陽歷和農歷對應關系會緩存在閃存里面,如果閃存里面沒有才會聯網查詢),默認的RTC時間是2021年1月29號;
    2. 視頻是21號晚上錄制的,這個版本里面添加了開機同步時間的代碼,所以插上電等一會刷新出來的就是當前日期;

    回復

主站蜘蛛池模板: 资源视频在线观看 | 亚州怡红院| 四虎免费大片aⅴ入口 | 777奇米影音 | 天天色天天搞 | 人人射人人干 | 亚洲aa在线 | 操女人免费视频 | 欧美爱爱网 | 扛着高跟鞋丝袜腿呻吟视频 | 国产亚洲婷婷香蕉久久精品 | 久久精品福利 | 亚洲va久久久噜噜噜久久男同 | 青青热久免费精品视频在线观看 | 国产免费好大好硬视频 | 777色淫网站女女免费 | 色噜噜成人综合网站 | 中国人69xxx大全 | 一个人看aaaa免费中文 | 天天躁狠狠躁夜躁2021 | 色婷婷综合网 | 狠狠色丁香六月色 | 色www视频永久免费 色www视频永久免费软件 | 日本吻胸抓胸激烈视频网站 | 四虎永久在线观看免费网站网址 | 亚洲第一区二区快射影院 | 俄罗斯小屁孩cao大人免费 | 午夜毛片免费观看视频 | 99国产精品久久久久久久成人热 | 91av视频在线 | 国产精品热久久毛片 | 青草视频久久 | 另类激情亚洲 | 国产午夜人做人视频羞羞 | 澳门久久精品 | 欧美另类色 | 黑色丝袜美美女被躁视频 | 69ww免费视频播放器 | 天天天操天天天干 | 久久久免费精品 | 久久福利国产 |