將樹莓派Pico變成帶有觸摸屏界面的USB-HID設(shè)備
將您的樹莓派Pico變成帶有觸摸屏界面的USB-HID設(shè)備!在這個(gè)項(xiàng)目中,我們將在Arduino IDE中設(shè)置編程環(huán)境,為3.5”Pico Touch LCD屏蔽配置庫,測試基本功能,創(chuàng)建簡單的按鈕(用于復(fù)制和粘貼),顯示自定義圖標(biāo),甚至使用Windows環(huán)境變量來啟動(dòng)程序。
設(shè)置編程環(huán)境
安裝Arduino IDE
?從Arduino官方網(wǎng)站下載Arduino IDE并將其安裝到您的計(jì)算機(jī)上。
?安裝完成后,打開Arduino IDE。
?轉(zhuǎn)到File > Preferences。
查找其他董事會(huì)管理器URL并添加以下URL:
單擊OK保存更改。
安裝Raspberry Pi Pico單板包
?進(jìn)入Tools > Board > Boards Manager....
?在搜索欄中,輸入Pico。
?安裝Raspberry Pi Pico/RP2040 (Earle F. Philhower, III) -版本3.9.1(或最新版本)。
?安裝完成后,選擇“Tools > Board > Raspberry Pi RP2040 Boards > Raspberry Pi Pico”。
安裝所需的庫
?通過Tools > Manage Libraries打開庫管理器。
?搜索TFT_eSPI并安裝它。
?重復(fù)TFT_eWidget和Adafruit_TinyUSB。
配置TFT_eSPI
?導(dǎo)航到Arduino庫文件夾。通常,它位于:Documents/Arduino/libraries/TFT_eSPI
?您將找到一個(gè)User_Setup_Select.h和一個(gè)名為user_setup的文件夾。
?將downloadduser_setup_select .h復(fù)制到TFT_eSPI主文件夾中(覆蓋現(xiàn)有文件夾)。
?將下載的setup60_rp2040_ili9341 .h復(fù)制到user_setup子文件夾中。
Arduino“Tools”菜單設(shè)置
確保您選擇了:
第一個(gè)測試:硬件和庫驗(yàn)證
配置完軟件環(huán)境后,是時(shí)候測試Raspberry Pi Pico和顯示屏蔽了。
下面是一個(gè)示例草圖(initialTest.ino),它檢查了顯示器的基本功能,包括一些圖形測試和觸摸校準(zhǔn)。您可以將下面的代碼粘貼到新的Arduino草圖中,或者打開initialTest。你下載的文件附帶的Ino。
這段代碼是做什么的?
?初始化屏幕,校準(zhǔn)觸摸屏(并將校準(zhǔn)數(shù)據(jù)保存到flash文件系統(tǒng)),然后執(zhí)行快速圖形測試(線、矩形、圓和文本)。
?不斷切換反轉(zhuǎn)顯示,以便您可以看到效果。
創(chuàng)建簡單的按鈕:復(fù)制和粘貼
接下來,我們將添加觸摸屏按鈕,以便Pico可以通過USB向您的計(jì)算機(jī)發(fā)送類似鍵盤的命令。這是通過Adafruit_TinyUSB實(shí)現(xiàn)的,它允許您的Pico充當(dāng)人機(jī)接口設(shè)備(HID)。
下面是一個(gè)簡單的例子,創(chuàng)建了兩個(gè)標(biāo)簽為“復(fù)制”和“粘貼”的按鈕。為此,使用example_SimpleButtons.ino
編譯警告說明
在編譯時(shí),您可能會(huì)看到關(guān)于將字符串常量轉(zhuǎn)換為char*的警告。發(fā)生這種情況是因?yàn)锽uttonWidget類使用char*作為label參數(shù),但是“COPY”和“PASTE”是字符串字面值(它們是const char*)。盡管有警告,代碼仍然可以工作。理想情況下,您應(yīng)該修改ButtonWidget類以接受const char*來避免警告。
顯示圖標(biāo):將PNG圖像轉(zhuǎn)換為C數(shù)組
您可以在按鈕上添加圖標(biāo)而不是文本標(biāo)簽。例如,您可能希望顯示一個(gè)小的PNG圖像。為此,您將PNG文件轉(zhuǎn)換為C數(shù)組,然后在屏幕上繪制它。
轉(zhuǎn)換工具:“ImageConverter 565 V1.2”
?從GitHub下載UTFT庫(作為.zip)。
?解壓縮它,然后導(dǎo)航到其中的Tools文件夾。
?運(yùn)行ImageConverter 565 V1.2工具。
?點(diǎn)擊打開圖像,選擇你的。png文件(例如,arduino.png)。
?單擊Save以生成包含像素?cái)?shù)據(jù)的.c文件。
在該.c文件中,您將發(fā)現(xiàn)一個(gè)16位值的大數(shù)組。將該數(shù)組復(fù)制到一個(gè)新的頭文件中(例如,ardicon.h)。同時(shí)為寬度和高度定義兩個(gè)變量(例如,ardicon_w = 128;和ardicon_h = 128;)。
你的ardicon.h可能看起來像這樣在頂部:
在草圖中使用圖標(biāo)
?將ardicon.h復(fù)制到草圖文件夾中。
?#在你的代碼中包含“ardicon.h”。
?確保你有tft.setSwapBytes(true);如果顏色出現(xiàn)錯(cuò)誤,則在調(diào)用pushImage()之前。
使用example_Button_with_icon。添加一個(gè)新按鈕并在其上繪制圖標(biāo):
使用Windows環(huán)境變量分配操作
自定義按鈕動(dòng)作的一個(gè)強(qiáng)大方法是使用Windows環(huán)境變量。例如,您可以創(chuàng)建一個(gè)環(huán)境變量來存儲(chǔ)Arduino IDE的路徑,然后讓一個(gè)按鈕自動(dòng)啟動(dòng)它。
創(chuàng)建一個(gè)新的環(huán)境變量(Windows)
?按Windows鍵,搜索“控制面板”。
?在“系統(tǒng)和安全”下,單擊“系統(tǒng)”。
?.在左側(cè)選擇“高級(jí)系統(tǒng)設(shè)置”。
?在“系統(tǒng)屬性”窗口中,單擊“環(huán)境變量”。
?在User變量(僅限當(dāng)前用戶)或System變量(所有用戶)下,單擊New。
?輸入一個(gè)變量名(例如,ARDU)并將其值設(shè)置為Arduino IDE可執(zhí)行文件的路徑。
?通過在所有對(duì)話框窗口上單擊OK來保存這些更改。
?使用方法:按WIN + R,輸入%ARDU%打開Arduino IDE。
示例:從按鈕啟動(dòng)Arduino IDE
下面是一個(gè)草圖(example_startArduino.ino),它演示了如何打開Windows“運(yùn)行”對(duì)話框,輸入%ARDU%,然后按Enter:
當(dāng)你點(diǎn)擊圖標(biāo)時(shí),Pico模擬按下Windows + R,然后輸入%ARDU%,然后按Enter,啟動(dòng)Arduino IDE。
擴(kuò)展:增加三個(gè)帶有圖標(biāo)的按鈕
通過遵循上述相同的原則,您可以用多個(gè)按鈕填充屏幕,每個(gè)按鈕都有不同的圖標(biāo)和操作。例如,你可以為鎖定電腦、打開文件資源管理器或關(guān)閉電腦指定快捷方式。
想法是完全一樣的:
?創(chuàng)建其他ButtonWidget實(shí)例。
?將新的PNG圖標(biāo)轉(zhuǎn)換為。h文件。
?使用pushImage()在每個(gè)按鈕的區(qū)域上繪制它們。
?將按鈕的按下動(dòng)作映射到您想要自動(dòng)執(zhí)行的擊鍵/快捷鍵。
草圖FullDisplay。Ino包含六個(gè)按鈕(您將需要所有圖標(biāo)文件)。由于圖標(biāo)是這個(gè)項(xiàng)目獨(dú)有的,如果您想擴(kuò)展自己的圖標(biāo),只需復(fù)制該結(jié)構(gòu)即可。代碼為每個(gè)圖標(biāo)引用額外的。h文件(例如,Ardicon.h, Exploricon.h, Lockicon.h, Pwdownicon.h),每個(gè)文件都必須從PNG圖像中生成。
原理保持不變:每個(gè)按鈕都有一個(gè)按下和釋放功能,觸發(fā)一系列的HID鍵盤報(bào)告。
本文編譯自hackster.io