色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

聚豐項目 > 基于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號晚上錄制的,這個版本里面添加了開機同步時間的代碼,所以插上電等一會刷新出來的就是當前日期;

    回復

主站蜘蛛池模板: 与嫂子同居的日子在线观看 | 一起碰一起噜一起草视频 | 香艳69xxxxx有声小说 | 亚洲欧美国产综合在线 | 青青草国产自偷拍 | 中文字幕亚洲欧美在线视频 | 成人无码在线超碰视频 | 欧美香蕉大胸在线视频观看 | 国产精品女上位好爽在线短片 | 四虎国产一区 | 亚洲国产中文在线视频免费 | 亚洲综合国产精品 | 挺弄抽插喷射HH | 国产曰韩无码亚洲视频 | xxx免费观看 | 不知火舞vs精子 | 色视频色露露永久免费观看 | 91系列在线观看免费 | 午夜影院视费x看 | 5566精品资源在线播放 | 午夜福利92看看电影80 | 十次啦中文网 | 女教师跟黑人男朋友激情过后 | 亚洲狠狠网站色噜噜 | 国产专区青青在线视频 | 快播av网址 | 快乐激情站 | chinesedaddy80老年人 | 九九热视频在线观看 | 777ZYZ玖玖资源站最稳定网址 | 美女靠逼漫画 | 第一怡春院 | 麻豆乱码一卡二卡三卡视频 | 国产成人精品视频免费大全 | 免费视频网站嗯啊轻点 | 久久香蕉国产免费天天 | 国产精品久久久久久久久免费下载 | 色多多污网站在线观看 | 亚洲精品中文字幕无码A片蜜桃 | 久久午夜夜伦鲁鲁片无码免费 | 欧美 亚洲 日韩 中文2019 |