基本工作原理
Arduino代碼分為兩部分:
Master&Slave,Master是控制板程序,
從站是黑眼圈程序。
主
運(yùn)行機(jī)制:
啟動控制面板后,將初始化setup()部分。
1)初始化NRF模塊并啟動ACK模式。
2)初始化模擬IO:A0 A1。對應(yīng)于搖桿電位器。
3)初始化按鈕被中斷。(該按鈕直接將中斷用于輸入,而不是進(jìn)行掃描。無論如何,對于XD來說中斷就足夠了)
4)初始化OLED并顯示Black Eye圖標(biāo)兩秒鐘。
初始化完成后,loop()中的控制板將繼續(xù)通過NRF(命令7)發(fā)送數(shù)據(jù),并嘗試獲取ACK返回數(shù)據(jù)包。
如果返回的數(shù)據(jù)包的數(shù)據(jù)正確返回,則連接成功,并且屏幕進(jìn)入工作模式。
ACK返回數(shù)據(jù)包中包含以下信息:伺服速度,電池電壓,圖像傳輸開關(guān)狀態(tài)和伺服開關(guān)狀態(tài)。
無論連接是否成功,控制板仍將發(fā)送控制命令:
命令1/2/3/4:用于控制伺服
命令5/6/8:用于控制伺服電源/圖像傳輸功率/更改伺服速度
如果Command7的發(fā)送沒有響應(yīng)超過3秒鐘,則確定連接已斷開。
奴隸
運(yùn)行機(jī)制:
與Master相似,setup()初始化NRF和IO。A0獲取電池電壓,control1 / 2用于切換控制圖像傳輸和轉(zhuǎn)向器電源的MOS管。
在循環(huán)()中,將繼續(xù)從Mster接收命令,經(jīng)過處理后,通過ack返回。