2024年4月26日 星期五

使Arduino Nano Every在ARDUINO IDE支援ATmega4809 48pin包裝

軟體環境
ARDUINO IDE 2.3.2
板函式庫MegaCoreX 1.1.2,https://github.com/MCUdude/MegaCoreX

ARDUINO IDE
選擇48pin,編譯時會產生以下錯誤

修正錯誤
修改C:\Users\<your_account>\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.1.2\boards.txt

加入
4809.menu.pinout.48pin_standard.upload.tool=avrdude_nanoevery 4809.menu.pinout.48pin_standard.upload.use_1200bps_touch=true 4809.menu.pinout.48pin_standard.upload.protocol=jtag2updi 4809.menu.pinout.48pin_standard.program.extra_params=-P{serial.port} -e




修改如下

重新編譯並燒錄完成



2024年2月22日 星期四

LVGL新增符號 (GUI Guider 1.7.0)

使用內建符號參考此處

軟體:
ARDUINO IDE 2.3.2
LVGL 8.3.11
NXP GUI Guider 1.7.0

硬體:
ESP32-C3
3.5" 480x320 TFT, ST7796U+GT911


1. 產生符號
1-1 前往https://fontawesome.com/,搜尋要自建的符號,找了兩個測試
記下circle-info的Unnicode是f05a,另外一個是f002

1-2 下載FontAwesome.woff字型

1-3 前往https://lvgl.io/tools/fontconverter,轉換字型
Name欄位輸入一個名稱,轉換後內容會成為檔名(如my_symbol.c),並且在.c中會用在#define和變數名,define會固定為大寫(如
#define MY_SYMBOL 1),變數名會跟著內容走(如const lv_font_t my_symbol)所以不要輸入全大寫的名稱,不然又定義又變數的,編譯時會出錯

Size欄位輸入要顯示的大小

Bpp欄位越高越清晰,但資料量也會跟著上升
1Bpp
4Bpp

TTF/WoFF file選擇剛下載的FontAwesome.woff字型

Range欄位輸入剛記下的f05a與f002,16進制加上0x,以英數逗點為分隔如0xf05a,0xf002,使用範圍為0xf05a-0xf05f,中間使用減號

按下Convert,轉換完成後自動下載my_symbol.c

2. 使用符號
輸入
f05a和f002,分別得到EF 81 9A和EF 80 82

2-2 GUI Guider程式設計
使用的組件

在screen輸入自定義程式碼
宣告字型
LV_FONT_DECLARE(my_symbol) 或 extern lv_font_t my_symbol;
更換label_1使用的字型
lv_obj_set_style_text_font(ui->screen_label_1, &my_symbol, LV_PART_MAIN|LV_STATE_DEFAULT);
顯示新增的符號,帶入UTF8值
lv_label_set_text(ui->screen_label_1, "\xEF\x81\x9A" "\xEF\x80\x82");

2-3 模擬

2-4 實做


2024年2月21日 星期三

LVGL使用內建符號 (GUI Guider 1.7.0)

使用新增符號參考此處

LVGL內建符號

GUI Guider操作
1. 使用的組件

2. 在screen加入自定義程式碼

Function Code欄位加入程式碼
lv_obj_set_style_bg_img_src(ui->screen_btn_1, SET_SYMBOL, 0);
lv_label_set_text(ui->screen_label_1, SET_SYMBOL);

3. 模擬畫面
#include欄位加入程式碼
#define SET_SYMBOL LV_SYMBOL_OK
#include欄位加入程式碼
#define SET_SYMBOL LV_SYMBOL_OK "Apply"
#include欄位加入程式碼
#define SET_SYMBOL LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY

參考:https://docs.lvgl.io/latest/en/html/overview/font.html







2023年9月20日 星期三

Adafruit Feather nRF52 Bluefruit,進入DC/DC模式 (ARDUINO IDE)

nRF52進入DC/DC模式程式碼:
NRF_POWER->DCDCEN = 1;
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);

範例一,在 softDeivce 協議棧初始化
NRF_POWER->DCDCEN = 1;
Bluefruit.begin();

範例二,在 softDeivce 協議棧初始化
Bluefruit.begin();
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);

備註:
硬體需對應修改

2023年8月2日 星期三

App Inventor 2 ASCII與數值間轉換 擴展套件

1. 功能:在ASCII碼與數值間互相轉換

2. APP畫面


修正ESP32-C3 (2.0.6)引用ESPAsyncWebServer函式庫的IPAddress出現錯誤

1. ARDUINO IDE顯示的錯誤訊息c:\Users\User\Documents\Arduino\libraries\ESP_Async_WebServer\src\AsyncWebSocket.cpp:832:28: error: call of overloaded 'IPAddress(unsigned int)' is ambiguous return IPAddress(0U);

2. 修正方法
在AsyncWebSocket.cpp搜尋return IPAddress(0U);
修改為return IPAddress((uint32_t)0);

備註:環境為ESP32開發板2.0.6版

使Arduino Nano Every在ARDUINO IDE支援ATmega4809 48pin包裝

軟體環境 ARDUINO IDE 2.3.2 板函式庫MegaCoreX 1.1.2, https://github.com/MCUdude/MegaCoreX ARDUINO IDE 選擇48pin,編譯時會產生以下錯誤 修正錯誤 修改C:\Users\<your_acc...