ஸ்மார்ட் ஐ DWIN வட்டத் திரையை அடிப்படையாகக் கொண்டது

——DWIN டெவலப்பர் மன்றத்திலிருந்து

இந்த நேரத்தில் அனைவருக்கும் பரிந்துரைக்கப்பட்ட DWIN டெவலப்பர் ஃபோரம் திறந்த மூல திட்டமானது, மனித கண்களின் இயக்கத்தை உருவகப்படுத்துவதற்கான மிகவும் சுவாரஸ்யமான வழக்கமாகும்.பொறியாளர் கண் பார்வை இயக்கம், சிமிட்டுதல், முகம் கண்டறிதல் மற்றும் பின்தொடர்தல் போன்ற செயல்பாடுகளை உணர மனித கண் படப் பொருட்களைப் பயன்படுத்தினார்.

திறந்த மூல தீர்வுகளுக்கான அறிமுகம்:

1. UI படப் பொருள்

எடிட்டரின் குறிப்பு: DWIN ஸ்மார்ட் ஸ்கிரீன் UI மேம்பாட்டை முடிக்க படங்களை அடிப்படையாகக் கொண்டது, இது பல்வேறு காட்சி விளைவுகளை எளிதாக உணர முடியும்.

dytrgf (1)

2. இடைமுக வளர்ச்சி

DGUS மென்பொருள் மூலம் இடைமுகத்தை உருவாக்குவது ஒப்பீட்டளவில் எளிதானது, மேலும் இரண்டு கிராஃபிக் கட்டுப்பாடுகள் மட்டுமே தேவை.இந்த வழக்கத்தில், பொறியாளர் 2.1-இன்ச் சுற்று ஸ்மார்ட் திரையைத் தேர்ந்தெடுத்தார்.

dytrgf (2)

3. பிளிங்க் அனிமேஷனை உணருங்கள்

கண் இமைகளின் படங்கள் இடைவெளியில் காட்டப்படட்டும்:

//பிளிங்க் அனிமேஷன்

void blink_animat(செல்லம்)

{

என்றால்(blink_flag == 0)

{

blink_cnt++;

என்றால்(blink_cnt >= 4)

{

சிமிட்டும்_கொடி = 1;

}

}

வேறு

{

சிமிட்டும்_cnt–;

என்றால்(blink_cnt <= 0)

{

blink_flag = 0;

}

}

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

}

void blink_run()

{

நிலையான u32 run_timer_cnt = 0;

ரன்_டைமர்_சிஎன்டி++;

if(run_timer_cnt >= 2000000)

{

run_timer_cnt = 0;

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

blink_animat();

தாமதம்(30);

}

}

4. கண் இமைகள் இயற்கையாக இடது மற்றும் வலதுபுறமாக இருப்பதை உணருங்கள்.

இது கண் சிமிட்டுவதைப் போன்றது, ஆனால் இது கண் அசைவைக் கட்டுப்படுத்த படிக ஆஸிலேட்டரின் நேரத்தை ஒப்பிட வேண்டும்.பல முறை பிழைத்திருத்தத்திற்குப் பிறகு, பொறியாளர் பின்வரும் குறியீடுகளின் தொகுப்பை வடிவமைத்தார்.

//கண் பார்வை அனிமேஷன்

வெற்றிடமான ஐபால்_அனிமேட்(வெற்றிடம்)

{

ஐபால்_டைமர்_சிஎன்டி++;

என்றால்(ஐபால்_டைமர்_சிஎன்டி < 50)

{

eyeball_cnt = 20;

}

இல்லையெனில் (ஐபால்_டைமர்_சிஎன்டி < 51)

{

eyeball_cnt = 50;

}

இல்லையெனில் (ஐபால்_டைமர்_சிஎன்டி < 52)

{

eyeball_cnt = 80;

}

இல்லையெனில் (ஐபால்_டைமர்_சிஎன்டி < 53)

{

eyeball_cnt = 94;

}

இல்லையெனில் (eyeball_timer_cnt < 103)

{

eyeball_cnt = 94;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 104)

{

eyeball_cnt = 80;

}

இல்லையெனில் (ஐபால்_டைமர்_சிஎன்டி < 105)

{

eyeball_cnt = 50;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 106)

{

eyeball_cnt = 20;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 107)

{

eyeball_cnt = -10;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 108)

{

eyeball_cnt = -40;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 158)

{

eyeball_cnt = -54;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 159)

{

eyeball_cnt = -40;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 160)

{

eyeball_cnt = -10;

}

வேறு என்றால்(ஐபால்_டைமர்_சிஎன்டி < 161)

{

eyeball_cnt = 20;

ஐபால்_டைமர்_சிஎன்டி = 0;

}

//இடது மற்றும் வலது பக்கம் நகர்த்தவும்

// if(eyeball_flag == 0)

// {

// eyeball_cnt++;

// if(eyeball_cnt >= 94)

// {

// ஐபால்_கொடி = 1;

// }

// }

//வேறு

// {

// eyeball_cnt–;

// if(eyeball_cnt <= -54)

// {

// ஐபால்_கொடி = 0;

// }

// }

என்றால்(கண்மணி_cnt >= 0)

{

ஐபால்_போஸ்[0] = 0×00;

eyeball_pos[1] = eyeball_cnt;

}

வேறு

{

ஐபால்_போஸ்[0] = 0xFF;

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

}

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

}

வெற்றிடமான ஐபால்_ரன்()

{

நிலையான u32 run_timer_cnt = 0;

ரன்_டைமர்_சிஎன்டி++;

if(run_timer_cnt >= 20000)

{

run_timer_cnt = 0;

ஐபால்_அனிமட்();

}

}

5. முகத்தைத் தொடர்ந்து கண்களின் இயக்கத்தை உணர ESP32 முக அங்கீகாரத்தைச் சேர்க்கவும்.

இங்குள்ள செயலாக்க முறை என்னவென்றால், முகம் கண்டறியப்பட்டால், கண்கள் தானாக நகராது, மற்றும் வேரியபிள் லூப்பில் அதிகரிப்பதற்கு ஒரு மாறி வரையறுக்கப்படுகிறது.அதிகரிப்பு ஒரு குறிப்பிட்ட மதிப்பை அடையும் போது, ​​கண் இமைகள் தானாகவே நகரும்.சீரியல் போர்ட் தரவைப் பெறும்போது, ​​இந்த மாறி அழிக்கப்படும், பின்னர் முகத்தின் நிலைக்கு ஏற்ப கண்களை மட்டுமே நகர்த்தவும்.முக்கிய குறியீடு பின்வருமாறு:

என்றால்(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

வேறு

{

ஐபால்_ரன்();

}

வெளிப்புற u32 rec_data_timer_cnt;

வெளிப்புற u16 ஐபால்_டைமர்_சிஎன்டி;

void Communication_CMD(u8 st)

{

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

{

rec_data_timer_cnt = 0;

ஐபால்_டைமர்_சிஎன்டி = 0;

#என்றால்(வகை_தொடர்பு==1)

விவரிக்கவும்_8283(st);

#elif(Type_Communication==2)

Modbus (st) விவரிக்கவும்;

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


இடுகை நேரம்: ஜூன்-26-2023