Smart Eye Stèidhichte air DWIN Circular Screen

——Bho Fòram Luchd-leasachaidh DWIN

Tha am pròiseact stòr fosgailte fòram leasaiche DWIN a chaidh a mholadh airson a h-uile duine an turas seo na chleachdadh inntinneach airson a bhith ag atharrais air gluasad sùilean daonna.Chleachd an t-innleadair grunn stuthan dealbh sùla daonna gus gnìomhan leithid gluasad ball-sùla, priobadh, aithneachadh aghaidh agus leantainn.

Ro-ràdh gu fuasglaidhean stòr fosgailte:

1. Stuth ìomhaigh UI

Nòta neach-deasachaidh: Tha scrion smart DWIN stèidhichte air dealbhan gus leasachadh UI a chrìochnachadh, as urrainn diofar bhuaidhean taisbeanaidh a thoirt gu buil gu furasta.

dytrgf (1)

2. Leasachadh eadar-aghaidh

Tha e an ìre mhath sìmplidh an eadar-aghaidh a leasachadh tro bhathar-bog DGUS, agus chan eil a dhìth ach dà smachd grafaigeach.Anns a’ chleachdadh seo, thagh an innleadair scrion smart cruinn 2.1-òirleach.

dytrgf (2)

3. Dèan eòlas air beothachadh blink

Leig leis na dealbhan de na h-eyelids a bhith air an taisbeanadh aig amannan:

// Beothachadh blink

falamh blink_animat (falamh)

{

ma tha(blink_flag == 0)

{

blink_cnt++;

ma tha(blink_cnt>= 4)

{

blink_flag = 1;

}

}

eile

{

blink_cnt –;

ma tha(blink_cnt <= 0)

{

blink_flag = 0;

}

}

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

}

falamh blink_run()

{

statach u32 run_timer_cnt = 0;

run_timer_cnt++;

ma tha (run_timer_cnt> = 2000000)

{

run_timer_cnt = 0;

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

blink_animat();

dàil_ms(30);

}

}

4. Dèan cinnteach gu bheil na sùilean-sùla a' coimhead clì is deas gu nàdarra.

Tha seo coltach ri blinking, ach feumaidh e coimeas a dhèanamh eadar ùine an oscillator criostail gus smachd a chumail air gluasad sùla.Às deidh iomadh turas debugging, dhealbhaich an t-innleadair an seata chòdan a leanas.

// Beothachadh ball-sùla

falamh sùla_animat (falamh)

{

ball-sùla_timer_cnt++;

ma tha (eyeball_timer_cnt < 50)

{

ball-sùla_cnt = 20;

}

eile ma tha (eyeball_timer_cnt < 51)

{

ball-sùla_cnt = 50;

}

eile ma tha (eyeball_timer_cnt < 52)

{

ball-sùla_cnt = 80;

}

eile ma tha (eyeball_timer_cnt < 53)

{

ball-sùla_cnt = 94;

}

eile ma tha (eyeball_timer_cnt < 103)

{

ball-sùla_cnt = 94;

}

eile ma tha(eyeball_timer_cnt < 104)

{

ball-sùla_cnt = 80;

}

eile ma tha(eyeball_timer_cnt < 105)

{

ball-sùla_cnt = 50;

}

eile ma tha (eyeball_timer_cnt < 106)

{

ball-sùla_cnt = 20;

}

eile ma tha(eyeball_timer_cnt < 107)

{

ball-sùla_cnt = -10;

}

eile ma tha(eyeball_timer_cnt < 108)

{

ball-sùla_cnt = -40;

}

eile ma tha(eyeball_timer_cnt < 158)

{

ball-sùla_cnt = -54;

}

eile ma tha(eyeball_timer_cnt < 159)

{

ball-sùla_cnt = -40;

}

eile ma tha(eyeball_timer_cnt < 160)

{

ball-sùla_cnt = -10;

}

eile ma tha(eyeball_timer_cnt < 161)

{

ball-sùla_cnt = 20;

ball-sùla_timer_cnt = 0;

}

// Gluais air chlì is deas

// ma tha(sùilean_flag == 0)

// {

// ball-sùla_cnt++;

// ma tha(sùilean_cnt>= 94)

// {

// eyeball_flag = 1;

// }

// }

// eile

// {

// ball-sùla_cnt–;

// ma tha(sùilean_cnt <= -54)

// {

// eyeball_flag = 0;

// }

// }

ma tha (eyeball_cnt>= 0)

{

ball-sùla_pos[0] = 0 × 00;

ball-sùla_pos[1] = ball-sùla_cnt;

}

eile

{

ball-sùla_pos[0] = 0xFF;

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

}

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

}

falamh sùla_run()

{

statach u32 run_timer_cnt = 0;

run_timer_cnt++;

ma tha (run_timer_cnt> = 20000)

{

run_timer_cnt = 0;

ball-sùla_animat();

}

}

5. Cuir aithne aghaidh ESP32 ris gus gluasad nan sùilean às deidh an aghaidh a thoirt gu buil.

Is e an dòigh giollachd an seo nuair a lorgar an aghaidh, nach bi na sùilean a’ gluasad leotha fhèin, agus tha caochladair air a mhìneachadh gu àrdachadh anns an lùb ùine.Nuair a ruigeas an àrdachadh luach sònraichte, gluaisidh na sùilean leotha fhèin.Nuair a gheibh am port sreathach dàta, thèid an caochladair seo a ghlanadh, agus an uairsin gluais na sùilean a-mhàin a rèir suidheachadh an aodainn.Tha am prìomh chòd mar a leanas:

ma tha(rec_data_timer_cnt <1000000)

{

rec_data_timer_cnt++;

}

eile

{

ball-sùla_run();

}

taobh a-muigh u32 rec_data_timer_cnt;

taobh a-muigh u16 eyeball_timer_cnt;

falamh Conaltradh_CMD(u8 st)

{

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

{

rec_data_timer_cnt = 0;

ball-sùla_timer_cnt = 0;

#if(Type_Communication==1)

Thoir cunntas_8283(st);

#elif(Type_Communication==2)

Thoir cunntas air_Modbus(st);

#deireadh

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Ùine puist: Jun-26-2023