——С форума разработчиков DWIN
Рекомендуемый для всех на форуме разработчиков DWIN проект с открытым исходным кодом представляет собой очень интересную рутину для имитации движения человеческого глаза. Инженер использовал несколько материалов для изображения человеческого глаза для реализации таких функций, как движение глазного яблока, моргание, распознавание лиц и слеживание.
Введение в решение с открытым исходным кодом:
1. Материал изображения пользовательского интерфейса
Примечание редактора: интеллектуальный экран DWIN основан на изображениях для завершения разработки пользовательского интерфейса, который может легко реализовывать различные эффекты отображения.
2. Разработка интерфейса
Разработать интерфейс с помощью программного обеспечения DGUS относительно просто, и требуется всего два графических элемента управления. В этой рутине инженер выбрал 2,1-дюймовый круглый смарт-экран.

3. Реализуйте анимацию мигания
Пусть снимки век отображаются по очереди через определенные промежутки времени:
Анимация моргания
Пусть изображения век отображаются по очереди с интервалами:
//Blink animation
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;
}
else if(eyeball_timer_cnt < 51)
{
eyeball_cnt = 50;
}
else if(eyeball_timer_cnt < 52)
{
eyeball_cnt = 80;
}
else if(eyeball_timer_cnt < 53)
{
eyeball_cnt = 94;
}
else if(eyeball_timer_cnt < 103)
{
eyeball_cnt = 94;
}
else if(eyeball_timer_cnt < 104)
{
eyeball_cnt = 80;
}
else if(eyeball_timer_cnt < 105)
{
eyeball_cnt = 50;
}
else if(eyeball_timer_cnt < 106)
{
eyeball_cnt = 20;
}
else if(eyeball_timer_cnt < 107)
{
eyeball_cnt = -10;
}
else if(eyeball_timer_cnt < 108)
{
eyeball_cnt = -40;
}
else if(eyeball_timer_cnt < 158)
{
eyeball_cnt = -54;
}
else if(eyeball_timer_cnt < 159)
{
eyeball_cnt = -40;
}
else if(eyeball_timer_cnt < 160)
{
eyeball_cnt = -10;
}
else if(eyeball_timer_cnt < 161)
{
eyeball_cnt = 20;
eyeball_timer_cnt = 0;
}
//Move left and right
// 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, чтобы реализовать движение глаз, следующих за лицом.
Метод обработки здесь заключается в том, что при обнаружении лица глаза сами по себе не перемещаются, и в цикле while определяется переменная, которая увеличивается. Когда приращение достигнет определенного значения, глазные яблоки будут двигаться сами по себе. Когда последовательный порт получит данные, эта переменная будет очищена, и тогда можно будет перемещать только глаза в соответствии с положением лица. Основной код выглядит следующим образом:
if(rec_data_timer_cnt < 1000000)
{
rec_data_timer_cnt++;
}
else
{
eyeball_run();
}
extern u32 rec_data_timer_cnt;
extern 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)
Describe_Modbus(st);
#endif
uart[st].Rx_F=0;
uart[st].Rx_Num=0;
}
}
Время публикации: 26 июня 2023
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Степень применения [Основные параметры]
- Коммерческий класс
- Диагональ [Дисплей]
- 2.1"
- Разрешение [Дисплей]
- 480×480
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Защитное покрытие [Основные параметры]
- Нет
- Угол обзора(V.A.) [Дисплей]
- Широкий угол обзора, 85°/85°/85°/85°(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- D=53.3mm
- Светопропускание [Сенсорные параметры]
- Более 90%
- Срок жизни LED [Сенсорные параметры]
- Более 1 000 000 касаний
- Напряжение питания, тип. [Напряжение и ток]
- 5V
- В наличии
- Да
- Бренд
- DWIN
- Коллекция
- Круглые TFT-LCD DWIN
-
WTC
-
WN
-
350 nit
-
400 nit
- Степень применения [Основные параметры]
- Коммерческий класс
- Диагональ [Дисплей]
- 2.8"
- Разрешение [Дисплей]
- 480×480
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 300 nit
- Область отображения (Active Area, A.A.) [Дисплей]
- D=70.1mm
- Напряжение питания, тип. [Напряжение и ток]
- 5V
- Бренд
- DWIN
- Коллекция
- Круглые TFT-LCD DWIN
-
WTC
-
300 nit
- Наличие в России
- Да
- Диагональ [Дисплей]
- 8.0"
- Разрешение [Дисплей]
- 800×480
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 800 nit
- Угол обзора(V.A.) [Дисплей]
- Нормальный угол обзора, 70°70°/50°/70°(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 154.08×85.92
- Светопропускание [Сенсорные параметры]
- Более 90%
- Бренд
- DWIN
- Артикул
- HDW070_008LZ01
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Наличие в России
- Да
- Диагональ [Дисплей]
- 7.0"
- Разрешение [Дисплей]
- 1024×600
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 600 nit
- В наличии
- Да
- Бренд
- DWIN
- Артикул
- HDW070_008LZ05
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 10.4"
- Разрешение [Дисплей]
- 1024×768
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 300 nit
- Угол обзора(V.A.) [Дисплей]
- Широкий угол обзора, 85°/85°/85°/85°(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 210.20×158.55
- Светопропускание [Сенсорные параметры]
- Более 90%
- Бренд
- DWIN
- Артикул
- HDW104_001L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 12.1"
- Разрешение [Дисплей]
- 1280×800
- Срок жизни [Дисплей]
- ≥ 30 000ч
- Яркость [Дисплей]
- 300 nit
- Угол обзора(V.A.) [Дисплей]
- Нормальный угол обзора, 70/70/50/70(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 261.12x163.20
- Область просмотра (View Area, V.A.) [Дисплей]
- 262.7x164.8
- Светопропускание [Сенсорные параметры]
- Более 90%
- Бренд
- DWIN
- Артикул
- HDW121_001L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 7.0"
- Разрешение [Дисплей]
- 1024×600
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 300 nit
- Угол обзора(V.A.) [Дисплей]
- Широкий угол обзора, 85/85/85/85(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 154.08*85.92
- Светопропускание [Сенсорные параметры]
- Более 90%
- Срок жизни LED [Сенсорные параметры]
- Более 2 000 000 касаний
- Бренд
- DWIN
- Артикул
- HDW070_007L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Наличие в России
- Да
- Диагональ [Дисплей]
- 10.1"
- Разрешение [Дисплей]
- 1024×600
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 300 nit
- Угол обзора(V.A.) [Дисплей]
- Широкий угол обзора,85/85/85/85(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 222.70x125.30
- Светопропускание [Сенсорные параметры]
- Более 90%
- Срок жизни LED [Сенсорные параметры]
- LED
- Бренд
- DWIN
- Артикул
- HDW101_001L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 5.0"
- Разрешение [Дисплей]
- 800×480
- Яркость [Дисплей]
- 250 nit
- Угол обзора(V.A.) [Дисплей]
- 70/70/50/70(L/R/U/D)
- Область отображения (Active Area, A.A.) [Дисплей]
- 108.60×65.40
- Напряжение питания, тип. [Напряжение и ток]
- 5V
- Бренд
- DWIN
- Артикул
- HDW050_003L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 7.0"
- Разрешение [Дисплей]
- 800×480
- Яркость [Дисплей]
- 250 nit
- Бренд
- DWIN
- Артикул
- HDW070_008L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|
- Диагональ [Дисплей]
- 4.3"
- Разрешение [Дисплей]
- 480×800
- Срок жизни [Дисплей]
- ≥ 20 000ч
- Яркость [Дисплей]
- 250 nit
- В наличии
- Да
- Бренд
- DWIN
- Артикул
- HDW043 _ 001L
| Степень применения [Основные параметры] |
|
| Анти-УФ [Основные параметры] |
|
| WiFi | |
| FSK Bus [Interface] |
|