Súil Chliste Bunaithe ar Scáileán Ciorclach DWIN

——Ó Fhóram Forbróirí DWIN

Is gnáthamh an-suimiúil é tionscadal foinse oscailte an fhóraim fhorbróra DWIN atá molta do gach duine an uair seo chun gluaiseacht súile daonna a insamhladh.Bhain an t-innealtóir úsáid as roinnt ábhar pictiúr súl daonna chun feidhmeanna a bhaint amach mar ghluaiseacht súl, caochadh, aithint aghaidhe agus leanúint.

Réamhrá ar réitigh foinse oscailte:

1. Ábhar íomhá Chomhéadain

Nóta don Eagarthóir: Tá scáileán cliste DWIN bunaithe ar phictiúir chun forbairt Chomhéadain a chomhlánú, ar féidir leis na héifeachtaí taispeána éagsúla a bhaint amach go héasca.

ditrgf (1)

2. Forbairt comhéadan

Tá sé sách simplí an comhéadan a fhorbairt trí bhogearraí DGUS, agus níl ach dhá rialú grafach ag teastáil.Sa ghnáthamh seo, roghnaigh an t-innealtóir scáileán cliste babhta 2.1-orlach.

ditrgf (2)

3. Beochan blink a bhaint amach

Bíodh pictiúir na n-eyelids ar taispeáint ar a seal ag eatraimh:

//Beochan blink

ar neamhní blink_animat(folamh)

{

má(blink_flag == 0)

{

blink_cnt++;

má(blink_cnt >= 4)

{

blink_flag = 1;

}

}

eile

{

blink_cnt–;

má(blink_cnt <= 0)

{

blink_flag = 0;

}

}

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

}

neamhní blink_run()

{

statach u32 run_timer_cnt = 0;

rith_timer_cnt++;

má(run_timer_cnt>= 2000000)

{

rith_timer_cnt = 0;

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

blink_animat();

Moill_ms(30);

}

}

4. A thuiscint go bhfuil cuma na súile ar chlé agus ar dheis go nádúrtha.

Tá sé seo cosúil le blinking, ach ní mór é a chur i gcomparáid le ham an oscillator criostail chun gluaiseacht súl a rialú.Tar éis go leor uaireanta dífhabhtaithe, dhear an t-innealtóir an tsraith cód seo a leanas.

//Beochan eyeball

eyeball_animat(folamh) ar neamhní

{

eyeball_timer_cnt++;

má(eyeball_timer_cnt < 50)

{

eyeball_cnt = 20;

}

eile más rud é( eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

eile más rud é( eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

eile más rud é( eyeball_timer_cnt < 53)

{

eyeball_cnt = 94;

}

eile más rud é( eyeball_timer_cnt < 103)

{

eyeball_cnt = 94;

}

eile más rud é( eyeball_timer_cnt < 104)

{

eyeball_cnt = 80;

}

eile más rud é( eyeball_timer_cnt < 105)

{

eyeball_cnt = 50;

}

eile más rud é( eyeball_timer_cnt < 106)

{

eyeball_cnt = 20;

}

eile más rud é( eyeball_timer_cnt < 107)

{

eyeball_cnt = -10;

}

eile más rud é( eyeball_timer_cnt < 108)

{

eyeball_cnt = -40;

}

eile má(eyeball_timer_cnt < 158)

{

eyeball_cnt = -54;

}

eile más rud é( eyeball_timer_cnt < 159)

{

eyeball_cnt = -40;

}

eile más rud é( eyeball_timer_cnt < 160)

{

eyeball_cnt = -10;

}

eile má(eyeball_timer_cnt < 161)

{

eyeball_cnt = 20;

eyeball_timer_cnt = 0;

}

// Bog ar chlé agus ar dheis

// má(eyeball_flag == 0)

// {

// eyeball_cnt++;

// má(eyeball_cnt >= 94)

// {

// eyeball_flag = 1;

// }

// }

// eile

// {

// eyeball_cnt–;

// má(eyeball_cnt <= -54)

// {

// eyeball_flag = 0;

// }

// }

má(eyeball_cnt>= 0)

{

eyeball_pos[0] = 0×00;

eyeball_pos[1] = eyeball_cnt;

}

eile

{

eyeball_pos[0] = 0xFF;

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

}

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

}

neamhní eyeball_run()

{

statach u32 run_timer_cnt = 0;

rith_timer_cnt++;

má(run_timer_cnt>= 20000)

{

rith_timer_cnt = 0;

eyeball_animat();

}

}

5. Cuir aitheantas aghaidhe ESP32 leis chun gluaiseacht na súl tar éis an duine a bhaint amach.

Is é an modh próiseála anseo ná nuair a aimsítear an t-aghaidh, ní ghluaiseann na súile leo féin, agus sainmhínítear athróg go incrimint sa lúb ama.Nuair a shroicheann an t-incrimint luach áirithe, bogfaidh na liathróidí súl leo féin.Nuair a fhaigheann an calafort sraitheach sonraí, déanfar an t-athróg seo a ghlanadh, agus ansin bogadh na súile ach amháin de réir seasamh an duine.Is é seo a leanas an príomhchód:

if(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

eile

{

eyeball_run();

}

seachtrach u32 rec_data_timer_cnt;

seachtrach u16 eyeball_timer_cnt;

Cumarsáid ar neamhní_CMD(u8 st)

{

más rud é((uart[st].Rx_F===1 )&&(uart[st].Rx_T==0))

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#if(Type_Communication==1)

Déan cur síos_8283(st);

#elif(Type_Communication==2)

Déan cur síos ar_Modbus(st);

#deireadh

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Am postála: Meitheamh-26-2023