Smart Ido Bisa Allon madauwari na DWIN

——Daga Dandalin Masu Haɓaka DWIN

Shirin bude tushen dandalin DWIN da aka ba da shawarar ga kowa a wannan lokacin wani abu ne mai ban sha'awa na yau da kullun don kwaikwayon motsin idanun ɗan adam.Injiniyan ya yi amfani da kayan hoton ido da yawa don gane ayyuka kamar motsin ido, kiftawa, gane fuska da bin.

Gabatarwa ga buɗaɗɗen mafita:

1. UI image abu

Bayanan Edita: DWIN mai kaifin allo yana dogara ne akan hotuna don kammala ci gaban UI, wanda zai iya fahimtar tasirin nuni daban-daban cikin sauƙi.

dytrgf (1)

2. Ci gaban Interface

Abu ne mai sauƙi don haɓaka ƙa'idar ta hanyar software na DGUS, kuma ana buƙatar sarrafawar hoto guda biyu kawai.A cikin wannan aikin yau da kullun, injiniyan ya zaɓi allo mai wayo mai girman inci 2.1.

dytrgf (2)

3. Gane kifta rayarwa

Bari a nuna hotunan fatar ido bi da bi a tazara:

// Blink animation

blink_animat(void)

{

idan (flag_flag == 0)

{

blink_cnt++;

idan (blink_cnt >> = 4)

{

blink_flag = 1;

}

}

wani

{

blink_cnt-;

idan (blink_cnt <= 0)

{

blink_flag = 0;

}

}

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

}

blink_run()

{

a tsaye u32 run_timer_cnt = 0;

run_timer_cnt++;

idan (run_timer_cnt> = 2000000)

{

run_timer_cnt = 0;

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

blink_animat();

Jinkirta_ms(30);

}

}

4. Gane kwallan ido suna kallon hagu da dama a zahiri.

Wannan yayi kama da kiftawa, amma yana buƙatar kwatanta lokacin oscillator crystal don sarrafa motsin ido.Bayan sau da yawa na gyara kurakurai, injiniyan ya tsara waɗannan saitin lambobin.

// Ƙwallon ido

fanko eyeball_animat(void)

{

eyeball_timer_cnt++;

idan (eyeball_timer_cnt < 50)

{

kwallon ido_cnt = 20;

}

idan kuma (eyeball_timer_cnt < 51)

{

kwallon ido_cnt = 50;

}

idan kuma (eyeball_timer_cnt < 52)

{

kwallon ido_cnt = 80;

}

idan kuma (eyeball_timer_cnt < 53)

{

kwallon ido_cnt = 94;

}

idan kuma (eyeball_timer_cnt < 103)

{

kwallon ido_cnt = 94;

}

idan kuma (eyeball_timer_cnt < 104)

{

kwallon ido_cnt = 80;

}

idan kuma (eyeball_timer_cnt <105)

{

kwallon ido_cnt = 50;

}

idan kuma (eyeball_timer_cnt < 106)

{

kwallon ido_cnt = 20;

}

idan kuma (eyeball_timer_cnt < 107)

{

kwallon ido_cnt = -10;

}

idan kuma (eyeball_timer_cnt <108)

{

kwallon ido_cnt = -40;

}

idan kuma (eyeball_timer_cnt < 158)

{

kwallon ido_cnt = -54;

}

idan kuma (eyeball_timer_cnt <159)

{

kwallon ido_cnt = -40;

}

idan kuma (eyeball_timer_cnt < 160)

{

kwallon ido_cnt = -10;

}

idan kuma (eyeball_timer_cnt < 161)

{

kwallon ido_cnt = 20;

eyeball_timer_cnt = 0;

}

//Matsa hagu da dama

// idan (tutar_kwallon ido == 0)

// {

// Kwallon_cnt++;

// idan (kwallon ido_cnt>= 94)

// {

// Tutar_kwallon ido = 1;

// }

// }

// da sauransu

// {

// Kwallon_cnt–;

// idan (kwallon ido_cnt <= -54)

// {

// Tutar kwallon ido = 0;

// }

// }

idan (kwallon ido_cnt >> 0)

{

ƙwallon ido [0] = 0×00;

eyeball_pos[1] = kwallon ido_cnt;

}

wani

{

eyeball_pos[0] = 0xFF;

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

}

rubuta_dgus_vp (0×3111, (u8 *)&kwallon ido, 2);

}

banza eyeball_run()

{

a tsaye u32 run_timer_cnt = 0;

run_timer_cnt++;

idan (run_timer_cnt> = 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5. Ƙara ESP32 fuska fitarwa don gane motsin idanu bin fuska.

Hanyar sarrafawa a nan ita ce idan aka gano fuska, idanu ba sa motsi da kansu, kuma ana bayyana ma'anar canji don karuwa a lokacin madauki.Lokacin da haɓaka ya kai wani ƙima, ƙwallon ido za su motsa da kansu.Lokacin da tashar tashar jiragen ruwa ta karɓi bayanai, za a share wannan canjin, sannan kuma motsa idanu kawai gwargwadon matsayin fuska.Babban lambar shine kamar haka:

idan (rec_data_timer_cnt <1000000)

{

rec_data_timer_cnt++;

}

wani

{

eyeball_run();

}

extern u32 rec_data_timer_cnt;

waje u16 eyeball_timer_cnt;

Sadarwa_CMD (u8 st)

{

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

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#idan (Nau'in_Sadarwa==1)

Bayani_8283(st);

#elif(Nau'in_Sadarwa==2)

Bayyana_Modbus (st);

#duk

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Lokacin aikawa: Juni-26-2023