سمارٽ اکين جي بنياد تي DWIN سرڪيولر اسڪرين

—— DWIN ڊولپر فورم کان

DWIN ڊولپر فورم اوپن سورس پروجيڪٽ هر ڪنهن لاءِ تجويز ڪيو ويو آهي هن ڀيري انساني اکين جي حرڪت کي تخليق ڪرڻ لاءِ هڪ تمام دلچسپ معمول آهي.انجنيئر ڪيترن ئي انساني اکين جي تصويري مواد کي ڪم ڪرڻ لاء استعمال ڪيو جيئن اکين جي گول جي حرڪت، چمڪندڙ، منهن جي سڃاڻپ ۽ پٺيان.

اوپن سورس حل جو تعارف:

1. UI تصويري مواد

ايڊيٽر جو نوٽ: DWIN سمارٽ اسڪرين UI ڊولپمينٽ کي مڪمل ڪرڻ لاءِ تصويرن تي ٻڌل آھي، جيڪا آساني سان مختلف ڊسپلي اثرات کي محسوس ڪري سگھي ٿي.

ڊي ٽي آر ايف (1)

2. انٽرفيس جي ترقي

DGUS سافٽ ويئر ذريعي انٽرفيس کي ترقي ڪرڻ نسبتا آسان آهي، ۽ صرف ٻه گرافڪ ڪنٽرول جي ضرورت آهي.هن معمول ۾، انجنيئر هڪ 2.1 انچ گول سمارٽ اسڪرين چونڊيو.

ڊي آر ايف (2)

3. چمڪدار انيميشن کي محسوس ڪريو

پلڪن جون تصويرون وقفي وقفي سان ڏيکاريون وڃن:

// چمڪندڙ انيميشن

void blink_animat (void)

{

جيڪڏهن (blink_flag == 0)

{

blink_cnt++;

جيڪڏهن (blink_cnt >= 4)

{

blink_flag = 1؛

}

}

ٻيو

{

blink_cnt-؛

جيڪڏهن (blink_cnt <= 0)

{

blink_flag = 0؛

}

}

write_dgus_vp(0×3000، (u8 *)&blink_cnt، 2)؛

}

void blink_run()

{

جامد u32 run_timer_cnt = 0؛

run_timer_cnt++؛

جيڪڏهن (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. محسوس ڪريو اکين جي بالن کي قدرتي طور کاٻي ۽ ساڄي نظر اچي ٿو.

هي چمڪ چمڪائڻ جهڙو آهي، پر ان کي اکين جي حرڪت کي ڪنٽرول ڪرڻ لاءِ ڪرسٽل اوسيليٽر جي وقت جو مقابلو ڪرڻو پوندو.ڪيترائي ڀيرا ڊيبگ ڪرڻ کان پوءِ، انجنيئر ھيٺ ڏنل سيٽ ڪوڊ ٺاھيو.

// اکين واري انيميشن

void eyeball_animat (خالي)

{

eyeball_timer_cnt++؛

جيڪڏهن (eyeball_timer_cnt <50)

{

eyeball_cnt = 20؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <51)

{

eyeball_cnt = 50؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <52)

{

eyeball_cnt = 80؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <53)

{

eyeball_cnt = 94؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <103)

{

eyeball_cnt = 94؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <104)

{

eyeball_cnt = 80؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <105)

{

eyeball_cnt = 50؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <106)

{

eyeball_cnt = 20؛

}

ٻيو جيڪڏهن (eyeball_timer_cnt <107)

{

eyeball_cnt = -10;

}

ٻيو جيڪڏهن (eyeball_timer_cnt <108)

{

eyeball_cnt = -40;

}

ٻيو جيڪڏهن (eyeball_timer_cnt <158)

{

eyeball_cnt = -54;

}

ٻيو جيڪڏهن (eyeball_timer_cnt <159)

{

eyeball_cnt = -40;

}

ٻيو جيڪڏهن (eyeball_timer_cnt <160)

{

eyeball_cnt = -10;

}

ٻيو جيڪڏهن (eyeball_timer_cnt <161)

{

eyeball_cnt = 20؛

eyeball_timer_cnt = 0؛

}

// کاٻي ۽ ساڄي منتقل ڪريو

// جيڪڏهن ( eyeball_flag == 0)

// {

// eyeball_cnt++؛

// جيڪڏهن (eyeball_cnt >= 94)

// {

// eyeball_flag = 1؛

// }

// }

// ٻيو

// {

// eyeball_cnt-؛

// جيڪڏهن (eyeball_cnt <= -54)

// {

// eyeball_flag = 0؛

// }

// }

جيڪڏهن (eyeball_cnt >= 0)

{

eyeball_pos[0] = 0×00؛

eyeball_pos[1] = eyeball_cnt؛

}

ٻيو

{

eyeball_pos[0] = 0xFF؛

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

}

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

}

void eyeball_run()

{

جامد u32 run_timer_cnt = 0؛

run_timer_cnt++؛

جيڪڏھن (run_timer_cnt >= 20000)

{

run_timer_cnt = 0؛

eyeball_animat();

}

}

5. ESP32 منهن جي سڃاڻپ شامل ڪريو منهن جي پٺيان اکين جي حرڪت کي محسوس ڪرڻ لاء.

هتي پروسيسنگ جو طريقو اهو آهي ته جڏهن منهن جو پتو لڳايو وڃي ٿو، اکيون پنهنجو پاڻ ڏانهن منتقل نه ٿيون ڪن، ۽ هڪ متغير بيان ڪيو ويو آهي جڏهن لوپ ۾ اضافو وڌايو وڃي.جڏهن واڌارو هڪ خاص قدر تائين پهچي ٿو، اکين جي گولن کي پاڻ ڏانهن منتقل ڪيو ويندو.جڏهن سيريل پورٽ ڊيٽا وصول ڪري ٿي، هي متغير صاف ڪيو ويندو، ۽ پوء صرف منهن جي پوزيشن مطابق اکين کي منتقل ڪيو ويندو.مکيه ڪوڊ هن ريت آهي:

جيڪڏھن (rec_data_timer_cnt <1000000)

{

rec_data_timer_cnt++؛

}

ٻيو

{

eyeball_run();

}

extern u32 rec_data_timer_cnt؛

extern u16 eyeball_timer_cnt؛

void Communication_CMD(u8 st)

{

جيڪڏھن((uart[st].Rx_F==1 )&&(uart[st].Rx_T==0))

{

rec_data_timer_cnt = 0؛

eyeball_timer_cnt = 0؛

#if(Type_Communication==1)

بيان_8283(st)؛

#elif(Type_Communication==2)

بيان_ موڊبس(st)؛

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


پوسٽ ٽائيم: جون-26-2023