Smart Eye ki baze sou ekran sikilè DWIN

——Soti nan DWIN Developer Forum

Pwojè sous louvri fowòm pwomotè DWIN rekòmande pou tout moun fwa sa a se yon woutin trè enteresan pou similye mouvman je moun.Enjenyè a te itilize plizyè materyèl foto je moun pou reyalize fonksyon tankou mouvman globil je, kliyote, rekonesans figi ak swiv.

Entwodiksyon nan solisyon sous louvri:

1. UI imaj materyèl

Nòt editè a: ekran entelijan DWIN baze sou foto pou konplete devlopman UI, ki ka fasilman reyalize divès efè ekspozisyon.

dytrgf (1)

2. Devlopman entèfas

Li se relativman senp yo devlope koòdone a atravè lojisyèl DGUS, epi sèlman de kontwòl grafik yo bezwen.Nan woutin sa a, enjenyè a te chwazi yon ekran entelijan wonn 2.1 pous.

dytrgf (2)

3. Reyalize animasyon blink

Kite foto po je yo parèt youn apre lòt nan entèval:

//Blink animasyon

anile blink_animat(anile)

{

if(blink_flag == 0)

{

blink_cnt++;

if(blink_cnt >= 4)

{

blink_flag = 1;

}

}

lòt bagay

{

blink_cnt–;

si(blink_cnt <= 0)

{

blink_flag = 0;

}

}

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

}

anile blink_run()

{

estatik u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt>= 2000000)

{

run_timer_cnt = 0;

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

}

}

4. Reyalize boul je yo gade bò gòch ak dwa natirèlman.

Sa a se menm jan ak kliyote, men li bezwen konpare tan an nan osilator la kristal kontwole mouvman an je.Apre anpil fwa nan debogaj, enjenyè a te fèt seri kòd sa a.

//Animasyon boul je

void eyeball_animat(void)

{

eyeball_timer_cnt++;

if(eyeball_timer_cnt < 50)

{

eyeball_cnt = 20;

}

else if(eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

else if(eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

else if(eyeball_timer_cnt < 53)

{

eyeball_cnt = 94;

}

else if(eyeball_timer_cnt < 103)

{

eyeball_cnt = 94;

}

else if(eyeball_timer_cnt < 104)

{

eyeball_cnt = 80;

}

else if(eyeball_timer_cnt < 105)

{

eyeball_cnt = 50;

}

else if(eyeball_timer_cnt < 106)

{

eyeball_cnt = 20;

}

else if(eyeball_timer_cnt < 107)

{

eyeball_cnt = -10;

}

else if(eyeball_timer_cnt < 108)

{

eyeball_cnt = -40;

}

else if(eyeball_timer_cnt < 158)

{

eyeball_cnt = -54;

}

else if(eyeball_timer_cnt < 159)

{

eyeball_cnt = -40;

}

else if(eyeball_timer_cnt < 160)

{

eyeball_cnt = -10;

}

else if(eyeball_timer_cnt < 161)

{

eyeball_cnt = 20;

eyeball_timer_cnt = 0;

}

//Deplase agoch ​​ak dwa

// si(drapo_zye == 0)

// {

// eyeball_cnt++;

// if(eyeball_cnt >= 94)

// {

// eyeball_flag = 1;

//}

//}

// lòt bagay

// {

// eyeball_cnt–;

// if(eyeball_cnt <= -54)

// {

// eyeball_flag = 0;

//}

//}

if(eyeball_cnt >= 0)

{

eyeball_pos[0] = 0×00;

eyeball_pos[1] = eyeball_cnt;

}

lòt bagay

{

eyeball_pos [0] = 0xFF;

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

}

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

}

void eyeball_run ()

{

estatik u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt>= 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5. Ajoute ESP32 rekonesans figi reyalize mouvman an nan je swiv figi an.

Metòd pwosesis la isit la se ke lè figi a detekte, je yo pa deplase poukont yo, epi yo defini yon varyab pou ogmante nan bouk la pandan y ap.Lè ogmantasyon an rive nan yon sèten valè, je yo ap deplase poukont yo.Lè pò seri a resevwa done, varyab sa a pral otorize, ak Lè sa a, sèlman deplase je yo dapre pozisyon nan figi an.Kòd prensipal la se jan sa a:

if(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

lòt bagay

{

eyeball_run();

}

extern u32 rec_data_timer_cnt;

extern u16 eyeball_timer_cnt;

void Communication_CMD(u8 st)

{

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

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#if(Type_Communication==1)

Dekri_8283(st);

#elif(Type_Communication==2)

Dekri_Modbus(st);

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Tan poste: Jun-26-2023