最近在看無人機方面的源碼,準備看倆套,分別是Crazy和PX4的。后者略微有些復雜,但是干貨太干,準備之后看。這里就先看Crazy的。
這個無人機呢,是全部開源的。在其官網上面有很多關于這個無人機的東西,這篇文章就來說說里面的一個配件,就是將信號放大的小玩意兒~不止是放大信號,而且還可以連接電腦,用電腦來控制飛行器,連接手機,手機又可以控制飛行器,就是一個天線一樣的東西。

這個dongle其實我是不知道怎么翻譯的,大部分的翻譯叫做加密狗。。。
https://www.bitcraze.io/documentation/hardware/crazyradio_pa/crazyradio_pa-datasheet.pdf這是設計的數據手冊


Crazyradio PA是基于Nordic Semiconductor的nRF24LU1 +的遠程開放式USB無線硬件。它具有一個20dBm功率放大器,LNA,并已與Crazyflie兼容固件進行了預編程。功率放大器擴大了范圍,與Crazyflie 2.X無人機一起提供了長達1公里(視線)的范圍,并且從Crazyradio PA到Crazyradio PA的視距范圍達到了2公里。

就是另外一種開源的飛控之間做了橋接
Crazyradio PA不僅可以與Crazyflie和Crazyflie 2.X一起使用。由于它是一個開放項目,具有從頭開始編寫的固件和Python API以供使用,因此對于需要比WiFi范圍更長且帶寬要求不相同的系統來說,這是一個很好的構建塊。硬件隨附了最新的固件以及引導加載程序,該引導加載程序可通過USB進行固件升級,而無需任何其他硬件。
https://github.com/bitcraze/crazyflie2-nrf-firmware
隨便找了點芯片的配置

可以看到是一個增強的51單片機,與外界SPI連接,以及有AES的加密功能
https://launchpad.net/gcc-arm-embeddedsudo apt-get installgcc-arm-none-eabigdb-arm-none-eabibinutils-arm-none-eabi
如果開啟藍牙功能需要用arm的gcc去編譯

里面運行的兩套協議,一套是STM32和芯片之間的協議,一種是設備間連接
+-----------+------+-----+=============+-----+-----+| START | TYPE | LEN | DATA | CKSUM |+-----------+------+-----+=============+-----+-----+
syslink是串行連接,1MB的速率
START是2字節常量,0xBC 0xCF。
TYPE定義數據包的類型
LENGTH和類型均為uint8_t,定義數據長度。
CKSUM是2個字節的Fletcher 8位校驗和。
上層是藍牙系統的收發。