Iliso eliSmart eliSekwe kwiscreen seSetyhula seDWIN

——Ukusuka kwiQonga labaphuhlisi be-DWIN

I-DWIN yomphuhlisi weforum yeprojekthi evulekileyo yomthombo ovulekileyo ecetyiselwe wonke umntu ngeli xesha yinkqubo enomdla kakhulu yokulinganisa intshukumo yamehlo abantu.Injineli yasebenzisa izixhobo ezininzi zemifanekiso yamehlo omntu ukuqonda imisebenzi efana nentshukumo yebhola yeliso, ukuqhwanyaza, ukuqaphela ubuso kunye nokulandela.

Intshayelelo kwizisombululo zomthombo ovulekileyo:

1. Isixhobo somfanekiso we-UI

Inqaku loMhleli: Isikrini esilumkileyo se-DWIN sisekwe kwimifanekiso yokugqiba uphuhliso lwe-UI, enokuqonda ngokulula iziphumo ezahlukeneyo zokubonisa.

idytrgf (1)

2. Uphuhliso lwe-interface

Kulula ukuphuhlisa ujongano ngesoftware ye-DGUS, kwaye zimbini kuphela izilawuli zegraphic ezifunekayo.Kule nkqubo, injineli yakhetha i-2.1-intshi engqukuva yesikrini esihlakaniphile.

idytrgf (2)

3. Qonda oopopayi beqhwanyaza

Vumela imifanekiso yeenkophe iboniswe ngokulandelelanayo ngamaxesha athile:

//Ukuqhwanyaza oopopayi

blink_animat engekho (ingekho)

{

ukuba(blink_flag == 0)

{

blink_cnt++;

ukuba(blink_cnt >= 4)

{

blink_flag = 1;

}

}

enye into

{

blink_cnt–;

ukuba(blink_cnt <= 0)

{

blink_flag = 0;

}

}

bhala_dgus_vp(0×3000, (u8 *)&blink_cnt, 2);

}

ukuqhwanyaza_ akukho ()

{

i-static u32 run_timer_cnt = 0;

run_timer_cnt++;

ukuba(run_timer_cnt >= 2000000)

{

run_timer_cnt = 0;

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

blink_animat();

Libaziseko_ms(30);

}

}

4. Qonda ukuba iibhola zamehlo zijonge ngakwesobunxele kwaye zilungile ngokwemvelo.

Oku kufana nokuqhwanyaza, kodwa kufuneka kuqhathanise ixesha le-crystal oscillator ukulawula ukunyakaza kwamehlo.Emva kwamaxesha amaninzi okulungisa ingxaki, injineli yela le seti ilandelayo yeekhowudi.

// oopopayi bebhola yamehlo

ibala leliso_elingenanto

{

eyeball_timer_cnt++;

ukuba(ibhola_yexesha_cnt <50)

{

iliso_cnt = 20;

}

ngenye indlela ukuba( eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

ngenye indlela ukuba( eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

ngenye indlela ukuba( eyeball_timer_cnt < 53)

{

iliso_cnt = 94;

}

ngenye indlela ukuba( eyeball_timer_cnt < 103)

{

iliso_cnt = 94;

}

ngenye indlela ukuba(ibhola yemehlo_timer_cnt <104)

{

eyeball_cnt = 80;

}

ngenye indlela ukuba( eyeball_timer_cnt < 105)

{

eyeball_cnt = 50;

}

ngenye indlela ukuba(ibhola yemehlo_timer_cnt <106)

{

iliso_cnt = 20;

}

ngenye indlela ukuba( eyeball_timer_cnt < 107)

{

eyeball_cnt = -10;

}

ngenye indlela ukuba( eyeball_timer_cnt < 108)

{

iliso_cnt = -40;

}

ngenye indlela ukuba( eyeball_timer_cnt < 158)

{

iliso_cnt = -54;

}

ngenye indlela ukuba( eyeball_timer_cnt < 159)

{

iliso_cnt = -40;

}

ngenye indlela ukuba(ibhola yemehlo_timer_cnt <160)

{

eyeball_cnt = -10;

}

ngenye indlela ukuba( eyeball_timer_cnt < 161)

{

iliso_cnt = 20;

eyeball_timer_cnt = 0;

}

//Hambisa ekhohlo nasekunene

// ukuba( iflegi yeliso == 0)

// {

// eyeball_cnt++;

// ukuba(ibhola yemehlo_cnt >= 94)

// {

// iflegi yeliso = 1;

// }

// }

// okunye

// {

// ibala leliso_cnt–;

// ukuba(ibhola_cnt <= -54)

// {

// iflegi yeliso = 0;

// }

// }

ukuba(ibhola_cnt >= 0)

{

iliso_ipos[0] = 0×00;

iliso_ipos[1] = i-eyeball_cnt;

}

enye into

{

eyeball_pos[0] = 0xFF;

eyeball_pos[1] = (i-eyeball_cnt & 0xFF);

}

write_dgus_vp(0×3111, (u8 *)&eyeball_pos, 2);

}

baleka iliso elingenanto ()

{

i-static u32 run_timer_cnt = 0;

run_timer_cnt++;

ukuba(run_timer_cnt >= 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5. Yongeza i-ESP32 yokunaka kobuso ukuqonda intshukumo yamehlo alandela ubuso.

Indlela yokucubungula apha kukuba xa ubuso bufunyenwe, amehlo awahambi ngokwawo, kwaye i-variable ichazwa ngokunyuka kwi-loop ngelixa.Xa ukunyuka kufikelela kwixabiso elithile, iibhola zamehlo ziya kuhamba ngokwazo.Xa i-port ye-serial ifumana idatha, oku kuguquguqukayo kuya kucinywa, kwaye emva koko ukuhambisa amehlo kuphela ngokwendawo yobuso.Ikhowudi ephambili yile ilandelayo:

ukuba(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

enye into

{

bhola_yemehlo ();

}

ngaphandle u32 rec_data_timer_cnt;

extern u16 eyeball_timer_cnt;

Unxibelelwano olungenanto_CMD(u8 st)

{

ukuba((uart[st].Rx_F==1 )&&(uart[st].Rx_T==0))

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#ukuba(Uhlobo_loNxibelelwano==1)

Describe_8283(st);

#elif(Type_Communication==2)

Describe_Modbus(st);

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Ixesha lokuposa: Jun-26-2023