—— DWIN ئاچقۇچىلار مۇنبىرىدىن
بۇ قېتىم كۆپچىلىككە تەۋسىيە قىلىنغان DWIN ئاچقۇچىلار مۇنبىرى ئوچۇق كود تۈرى ئىنسانلارنىڭ كۆزىنىڭ ھەرىكىتىنى تەقلىد قىلىشتىكى ئىنتايىن قىزىقارلىق ئادەت.ئىنژېنېر كۆز ھەرىكىتى ، كۆزنى چاقنىتىش ، چىراي تونۇش ۋە ئەگىشىش قاتارلىق ئىقتىدارلارنى ئەمەلگە ئاشۇرۇش ئۈچۈن بىر نەچچە ئادەمنىڭ كۆز رەسىم ماتېرىيالىدىن پايدىلانغان.
ئوچۇق كودلۇق ھەل قىلىش چارىسى:
1. UI رەسىم ماتېرىيالى
مۇھەررىرنىڭ ئىزاھاتى: DWIN ئەقلىي ئىقتىدارلىق ئېكران رەسىملەرنى ئاساس قىلىپ UI تەرەققىياتىنى تاماملايدۇ ، ئۇ ھەرخىل كۆرسىتىش ئۈنۈمىنى ئاسانلا ھېس قىلالايدۇ.
2. كۆرۈنمە يۈز ئېچىش
DGUS يۇمشاق دېتالى ئارقىلىق كۆرۈنمە يۈزىنى تەرەققىي قىلدۇرۇش بىر قەدەر ئاددىي ، پەقەت ئىككى گرافىك كونترول قىلىش كېرەك.بۇ ئادەتتە ، ئىنژېنېر 2.1 دىيۇملۇق يۇمىلاق ئەقلىي ئىقتىدارلىق ئېكراننى تاللىدى.
3. غۇۋا كارتوننى ئەمەلگە ئاشۇرۇش
قاپىقىنىڭ رەسىملىرى ئۆز نۆۋىتىدە ئۆز نۆۋىتىدە كۆرسىتىلسۇن:
// كۆزنى چاقنىتىش
void blink_animat (void)
{
if (blink_flag == 0)
{
blink_cnt ++;
if (blink_cnt> = 4)
{
blink_flag = 1;
}
}
else
{
blink_cnt–;
if (blink_cnt <= 0)
{
blink_flag = 0;
}
}
write_dgus_vp (0 × 3000, (u8 *) & blink_cnt, 2);
}
void blink_run ()
{
static 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. كۆز قارىچۇقىنىڭ سول ۋە ئوڭ كۆرۈنۈشىنى تەبىئىي ھېس قىلىڭ.
بۇ كۆزنى چاقنىتىشقا ئوخشايدۇ ، ئەمما ئۇ كۆز ھەرىكىتىنى كونترول قىلىش ئۈچۈن خرۇستال تەۋرىنىش ۋاقتىنى سېلىشتۇرۇشقا موھتاج.ئىنژېنېر كۆپ قېتىم ھەل قىلىش ئارقىلىق ، تۆۋەندىكى بىر يۈرۈش كودلارنى لايىھەلەپ چىقتى.
// Eyeball animation
void eyeball_animat (void)
{
eyeball_timer_cnt ++;
if (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;
}
// سول ۋە ئوڭغا يۆتكەڭ
// if (eyeball_flag == 0)
// {
// eyeball_cnt ++;
// if (eyeball_cnt> = 94)
// {
// eyeball_flag = 1;
//}
//}
// else
// {
// eyeball_cnt–;
// if (eyeball_cnt <= -54)
// {
// eyeball_flag = 0;
//}
//}
if (eyeball_cnt> = 0)
{
eyeball_pos [0] = 0 × 00;
eyeball_pos [1] = eyeball_cnt;
}
else
{
eyeball_pos [0] = 0xFF;
eyeball_pos [1] = (eyeball_cnt & 0xFF);
}
write_dgus_vp (0 × 3111, (u8 *) & eyeball_pos, 2);
}
void eyeball_run ()
{
static u32 run_timer_cnt = 0;
run_timer_cnt ++;
if (run_timer_cnt> = 20000)
{
run_timer_cnt = 0;
eyeball_animat ();
}
}
5. ESP32 چىراي تونۇشنى قوشۇپ ، كۆزنىڭ كەينىدىكى ھەرىكەتنى ھېس قىلىڭ.
بۇ يەردىكى بىر تەرەپ قىلىش ئۇسۇلى شۇكى ، چىراي بايقالغاندا ، كۆزلەر ئۆزلىكىدىن ھەرىكەتلەنمەيدۇ ، ھەمدە دەۋرىيلىنىش دەۋرىدە ئۆزگىرىشچان مىقدار ئېنىقلىنىدۇ.كۆپەيتىش مەلۇم قىممەتكە يەتكەندە ، كۆز ئالمىسى ئۆزلۈكىدىن يۆتكىلىدۇ.تەرتىپلىك ئېغىز سانلىق مەلۇماتنى تاپشۇرۇۋالغاندا ، بۇ ئۆزگەرگۈچى مىقدار تازىلىنىدۇ ، ئاندىن پەقەت يۈزنىڭ ئورنىغا ئاساسەن كۆزنى ھەرىكەتلەندۈرىدۇ.ئاساسلىق كود تۆۋەندىكىچە:
if (rec_data_timer_cnt <1000000)
{
rec_data_timer_cnt ++;
}
else
{
eyeball_run ();
}
extern u32 rec_data_timer_cnt;
سىرتقى u16 eyeball_timer_cnt;
void Communication_CMD (u8 st)
{
if ((uart [st] .Rx_F == 1) && (uart [st] .Rx_T == 0))
{
rec_data_timer_cnt = 0;
eyeball_timer_cnt = 0;
#if (Type_Communication == 1)
Describe_8283 (st);
#elif (Type_Communication == 2)
Description_Modbus (st);
#endif
uart [st] .Rx_F = 0;
uart [st] .Rx_Num = 0;
}
}
يوللانغان ۋاقتى: Jun-26-2023