Smart Eye miorina amin'ny DWIN Circular Screen

——Avy amin'ny DWIN Developer Forum

Ny tetikasa DWIN developer forum open source natolotry ny rehetra tamin'ity indray mitoraka ity dia fomba fanao tena mahaliana amin'ny fanaovana simulation ny fihetsiky ny mason'olombelona.Nampiasa fitaovana sarin'ny mason'olombelona maromaro ilay injeniera mba hahatanteraka ny fiasa toy ny fihetsehan'ny eyeball, ny mitselatra, ny famantarana ny tarehy ary ny manaraka.

Fampidirana ny vahaolana open source:

1. Fitaovana sary UI

Fanamarihan'ny mpamoaka lahatsoratra: Ny efijery maranitra DWIN dia mifototra amin'ny sary hamitana ny fivoaran'ny UI, izay afaka mahatsapa mora foana ny fiantraikan'ny fampisehoana isan-karazany.

dytrgf (1)

2. Fampandrosoana ny interface

Tsotra ny fampivelarana ny interface amin'ny alàlan'ny rindrambaiko DGUS, ary fanaraha-maso an-tsary roa ihany no ilaina.Amin'ity fomba fanao ity, nisafidy efijery maranitra 2.1 santimetatra ny injeniera.

dytrgf (2)

3. Fantaro ny sarimiaina blink

Avelao ny sarin'ny hodimaso hifandimby haseho amin'ny elanelana:

// Animation blink

void blink_animat(void)

{

raha(blink_flag == 0)

{

blink_cnt++;

raha(blink_cnt >= 4)

{

blink_flag = 1;

}

}

hafa

{

blink_cnt–;

raha(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++;

raha(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. Tsarovy fa mijery ankavia sy havanana ho azy ny bola-maso.

Izany dia mitovy amin'ny mikitroka, fa mila mampitaha ny fotoanan'ny oscillator kristaly mba hifehezana ny fihetsiky ny maso.Taorian'ny im-betsaka ny debugging, ny injeniera dia nanamboatra ireto andian-kaody manaraka ireto.

//Animation eyeball

void eyeball_animat(void)

{

eyeball_timer_cnt++;

raha(eyeball_timer_cnt < 50)

{

eyeball_cnt = 20;

}

raha tsy izany (eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

raha tsy izany (eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

raha tsy izany (eyeball_timer_cnt < 53)

{

eyeball_cnt = 94;

}

raha tsy izany (eyeball_timer_cnt < 103)

{

eyeball_cnt = 94;

}

raha tsy izany (eyeball_timer_cnt < 104)

{

eyeball_cnt = 80;

}

raha tsy izany (eyeball_timer_cnt < 105)

{

eyeball_cnt = 50;

}

raha tsy izany (eyeball_timer_cnt < 106)

{

eyeball_cnt = 20;

}

raha tsy izany (eyeball_timer_cnt < 107)

{

eyeball_cnt = -10;

}

raha tsy izany (eyeball_timer_cnt < 108)

{

eyeball_cnt = -40;

}

raha tsy izany (eyeball_timer_cnt < 158)

{

eyeball_cnt = -54;

}

raha tsy izany (eyeball_timer_cnt < 159)

{

eyeball_cnt = -40;

}

raha tsy izany (eyeball_timer_cnt < 160)

{

eyeball_cnt = -10;

}

raha tsy izany (eyeball_timer_cnt < 161)

{

eyeball_cnt = 20;

eyeball_timer_cnt = 0;

}

//Mandrosoa miankavia sy miankavanana

// raha(eyeball_flag == 0)

// {

// eyeball_cnt++;

// raha(eyeball_cnt >= 94)

// {

// eyeball_flag = 1;

// }

// }

// hafa

// {

// eyeball_cnt–;

// raha(eyeball_cnt <= -54)

// {

// eyeball_flag = 0;

// }

// }

raha(eyeball_cnt >= 0)

{

eyeball_pos[0] = 0×00;

eyeball_pos[1] = eyeball_cnt;

}

hafa

{

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++;

raha(run_timer_cnt>= 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5. Ampio ny ESP32 face recognition mba hahatsapana ny fihetsiky ny maso manaraka ny tarehy.

Ny fomba fanodinana eto dia ny hoe rehefa hita ny tarehy dia tsy mihetsika ho azy ny maso, ary misy fari-pitsipika iray voafaritra mba hitombo ao amin'ny loop.Rehefa tonga amin'ny sanda iray ny fisondrotana dia hihetsika ho azy ireo ny maso.Rehefa mahazo angon-drakitra ny seranan-tsambo serial, dia ho voafafa io miovaova io, ary avy eo dia mihetsika ihany ny maso araka ny toeran'ny tarehy.Ny kaody fototra dia toy izao manaraka izao:

raha(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

hafa

{

eyeball_run();

}

extern u32 rec_data_timer_cnt;

ivelany u16 eyeball_timer_cnt;

void Communication_CMD(u8 st)

{

raha((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)

Describe_Modbus(st);

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Fotoana fandefasana: Jun-26-2023