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