—— د DWIN پراختیا کونکي فورم څخه
د DWIN پراختیا کونکي فورم خلاصې سرچینې پروژه دا ځل د هرچا لپاره وړاندیز شوې د انسان د سترګو حرکت سمولو لپاره خورا په زړه پوري معمول دی.انجینر د انسان د سترګو عکسونو ډیری توکي کارولي ترڅو دندو درک کولو لپاره لکه د سترګو حرکت ، ټوخی کول ، د مخ پیژندنه او تعقیب.
د خلاصې سرچینې حلونو پیژندنه:
1. د UI انځور مواد
د مدیر یادونه: د DWIN سمارټ سکرین د UI پراختیا بشپړولو لپاره د عکسونو پراساس دی ، کوم چې کولی شي په اسانۍ سره د مختلف ښودنې اغیزې احساس کړي.
2. د انٹرفیس پراختیا
د DGUS سافټویر له لارې د انٹرفیس رامینځته کول نسبتا ساده دي ، او یوازې دوه ګرافیک کنټرولونو ته اړتیا ده.په دې معمول کې، انجنیر د 2.1 انچ ګردي سمارټ سکرین غوره کړ.
3. د سترګو د حرکت حرکت احساس کړئ
اجازه راکړئ چې د سترګو عکسونه په وقفو سره ښکاره شي:
// ړنګ حرکت
void blink_animat( باطل)
{
که (ټپکی_بیرغ == 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);
}
باطل blink_run()
{
static u32 run_timer_cnt = 0;
run_timer_cnt++;
که (run_timer_cnt >= 2000000)
{
run_timer_cnt = 0;
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
blink_animat();
ځنډ_ms(30);
}
}
4. پوه شئ چې د سترګو ګولۍ په طبیعي توګه چپ او ښي خوا ته ګوري.
دا د ړنګولو سره ورته دی، مګر دا اړتیا لري چې د سترګو حرکت کنټرولولو لپاره د کرسټال اوسیلیټر وخت پرتله کړي.د ډیری وخت ډیبګ کولو وروسته ، انجینر د کوډونو لاندې سیټ ډیزاین کړ.
// د سترګو حرکت حرکت
void eyeball_animat ( باطل)
{
eyeball_timer_cnt++;
که (د سترګو_ټیمر_cnt <50)
{
eyeball_cnt = 20;
}
نور که (د سترګو_ټیمر_cnt <51)
{
eyeball_cnt = 50;
}
نور که (د سترګو_ټیمر_cnt <52)
{
eyeball_cnt = 80;
}
نور که (د سترګو_ټیمر_cnt <53)
{
eyeball_cnt = 94 ;
}
نور که (د سترګو_ټیمر_cnt <103)
{
eyeball_cnt = 94 ;
}
نور که (د سترګو_ټیمر_cnt <104)
{
eyeball_cnt = 80;
}
نور که (د سترګو_ټیمر_cnt <105)
{
eyeball_cnt = 50;
}
نور که (د سترګو_ټیمر_cnt <106)
{
eyeball_cnt = 20;
}
نور که (د سترګو_ټیمر_cnt <107)
{
eyeball_cnt = -10;
}
نور که (د سترګو_ټیمر_cnt <108)
{
eyeball_cnt = -40;
}
نور که (د سترګو_ټیمر_cnt <158)
{
eyeball_cnt = -54 ;
}
نور که (د سترګو_ټیمر_cnt <159)
{
eyeball_cnt = -40;
}
نور که (د سترګو_ټیمر_cnt <160)
{
eyeball_cnt = -10;
}
نور که (د سترګو_ټیمر_cnt <161)
{
eyeball_cnt = 20;
eyeball_timer_cnt = 0;
}
// کیڼ او ښي خوا ته حرکت وکړئ
// که (د سترګو_بیرغ == 0)
// {
// eyeball_cnt++;
// که (د سترګو بال_cnt >= 94)
// {
// سترګې_پرچم = 1 ;
// }
// }
// نور
// {
// eyeball_cnt–;
// که (eyeball_cnt <= -54)
// {
// سترګې_پرچم = 0 ;
// }
// }
که (د سترګو بال_cnt >= 0)
{
د سترګو بال_پوز[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);
}
باطل د سترګو بال_رن ()
{
static 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)
تشريح_Modbus(st);
#endif
uart[st].Rx_F=0;
uart[st].Rx_Num=0;
}
}
د پوسټ وخت: جون-26-2023