當我看到一種新型的處理器板時,我覺得自己有責任將其製成氣球追蹤器,因此當我被要求幫助測試新型的Raspberry Pi Pico時,這就是我的第一個想法。它具有大量的I / O – SPI端口,I2C和串行端口全部可用–加上獨特的功能,可以使用可編程PIO模塊添加額外的外圍設備,因此毫無疑問,它是非常實用的。而且與典型的微控制器相比,它具有更多的記憶體。
追蹤器零件 因此,基本的追蹤器具有GPS接收器和無線電發送器。為了將它們連接到Raspberry Pi Pico,我使用了一個原型板,在其中安裝了UBlox GPS接收器,LoRa無線電發射器以及Pico本身的插座。
使C / C ++工具鏈正常工作的最簡單方法是在Raspberry Pi 4上安裝。我無法完全實現VSCode集成(我認為是手指麻煩),但是無論如何,我很高興使用編輯器和單獨的構建窗口進行編碼。因此,最終我的工作是在Windows PC上使用Notepadd ++編輯代碼,並在Raspberry Pi 4上提供源代碼。然後打開了一個ssh窗口來運行編譯/鏈接步驟,並單獨運行一個除錯器。除錯器透過Raspberry Pi Pico的除錯端口將二進製文件下載到Raspberry Pi Pico。
對於程序的常規除錯輸出,我將Raspberry Pi Pico串行端口連接至連接回PC的FTDI USB串行TTL適配器-請參見下圖。
在某些時候,我將重訪此設置。首先,現在可以將其printf到虛擬USB串行端口,從而釋放該Raspberry Pi Pico串行端口。其次,我需要使VSCode集成正常工作。
遺憾的是,默認情況下,Raspberry Pi Pico的C工具鏈不支持線程編碼。我選擇了與Arduino一起使用的方法,而不是在添加支持的情況下對其進行重建。因此,主要代碼從分別初始化每個模塊開始,然後位於一個緊密的循環中,每個循環每個模組調用一次。然後由每個模組迅速返回控制,以便循環保持快速運行,並且沒有模組等待很長的時間。
板溫度也可以透過ADC4進行測量。儘管對於追蹤器而言,它沒有外部溫度測量有用,所以我為此添加了BME280設備。Raspberry Pi Pico示範包含透過SPI連接的BME的代碼,但是我選擇了I2C,因此我需要用I2C調用替換SPI調用。BME280還可以回傳壓力(可能是氣球追蹤器最有趣的環境測量值)和濕度。
降落預測 到目前為止,我所做的所有事情都可以在基本的AVR晶片上完成,例如Arduino Mini Pro,還有一些備用空間。但是,一個非常有用的額外功能是添加對著陸點的預測。