85

E-Learning. Часть 14. Тестирование ESP32

Доброго всем времени суток, продолжаю серию постов про образовательную робототехнику. Здесь я описываю результаты и просто ход выполнения своей научной работы.


Кратко: разрабатываю специальную робо-накидку на одежду, которая сможет оцифровывать часть двигательных навыков мастеров своего дела и передавать это тем, кто только учится.


О чем этот пост: о переходе со схемы ESP8266 на ESP32 и небольшом анализе минимальной\максимальной частоты приема на конечном сервере.


За время с прошлого поста я переосмыслил схему в очередной раз. Решил попробовать завести ESP32, так как чисто теоретически она должна была дать лучшую производительность (которую и будем замерять далее конкретно под мою задачу).


Задачи:

1. Замерить частоту передачи данных по проводу (по COM-порту). В зависимости от величины БОД и формата пакета.

2. Замерить частоту передачи при беспроводной доставке UDP пакетов.

3. Оценить нижнюю и верхнюю границу частоты передачи данных на разных аппаратных точках доступа Wi-Fi.

4. Оценить на сколько плавает частота передачи данных.


Что я использовал:

1. Замер питания. USB тестер (замерял 3 часа работы - итог 300 ма ест ESP32):

2. Роутер tp-link tl-wr841n-300mbit.

3. Sony Experia ZL.

4. Программатор для ESP32.

5. Ноутбук Lenovo Z580 в качестве сервера приема данных.

Поехали.

Часть 1. Проводные тесты


Для начала надо прошить нашу плату. Вот так


Тест 1: Передача строки

Serial.println("-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83");

Тест 2: Таже самая строка, но без минусов.

Тест 3: Serial.println("-0.83,-0.83,-0.83,-0.83,-0.83,-0.83");

Тест 4: Тоже самое, но без минусов.


Тест 1 передает по одному значению с каждого датчика на руке. 6 осей. 18 сенсоров максимум. Итого 108 значений. Значения с минусом передаются медленнее. Ибо знак минус это тоже информация, которую нужно передать.

Конечно очевидно, что чем больше БОД, тем быстрее улетают данные. Для значения более 2000000 время исполнения одного цикла смотрел уже через Python (библиотека pySerial, код короткий, смотрите на скрине).

Плюс питоновкой реализации в том, что мы не ограничены фиксированными значениями, которые предлагает arduino ide.


При значении более 2500000 БОД на первом и втором тесте вылазят ошибки. При более 3000000 уже и короткая строка не успевает.

Такие тесты нужны узнать что экономнее - передавать на сервер по одному значению или все сразу. Если сравнивать значения на одну ось, то получается что все данные сразу передавать выгоднее примерно на 3% +-. Окей, хорошо.

Стабильные результаты при 2000000 БОД хуже 3070000 БОД в среднем на чуть более 60%.

При этом верхняя граница для частоты данных (1 Герц считаю как все сенсоры за 1 секунду передали каждый по 6 значений данных на каждую свою ось, итого 108 цифр).


Вывод по части 1:

300 Гц у нас в кармане. (хотя и 60 хватает так-то)

Часть 2. Беспроводные тесты.


От POST запросов я отказался. Получилось переслать UDP пакеты.

Прошивка для ESP32

Сервер приема и сохранения данных на Python 2.7 (Сам код я разбирать не буду, главное что он считает реальное число Гц принятых на ноутбуке).


Для работы схемы нужно организовать локальную сеть между ESP32 и сервером. Например, через роутер домашний или точку доступа с телефона. Для этого и ESP32 и ноутбук подключаем к одному роутеру. В данных тестах я буду использовать два:


1) tp-link tl-wr841n

2) Sony Experia старенькую уже.


Так же стоит учитывать, что больше ничем другим эти точки доступа не занимались. Даже к интернету не подключены. И симки не было в телефоне. Пробовал еще на своем рабочем D-Link DIR-815/AC, но результаты в конце (да и данные были некорректно собраны для него).


Сами собранные данные (21 599) последовательных данных на каждую выборку):

1) Данные tp-link tl-wr841n

2) Данные Sony Experia


Код для анализа данных в Jupyter Notebok (Язык Python 2.7)


1) Строим гистограмму и функцию плотности вероятности. (tp-link tl-wr841n)

Общая:

Отдельно выделил центральный пик, который составляет 97.87% (21 139) от всех данных.

Это значит, что большинство значений более 1290 Гц!

Левый промежуток 0.04 % (8).

Правый 2.09 % (452)

Среднее значение 1348.184777

Разброс  191.242387

Минимальное  310.000000

Максимальное  3966.000000


Что ж, воодушевляет. Посмотрим чем удивит мобилка.

2) Общая

Центральная (считал как средняя плюс-минус половину разброса). 94.67 % (20448)

Левая 2.65 % (573)

Правая 2.68 % (578)

Можно заметить, что иногда частота время от времени удваивается от среднего значения в 2-3% случаев. С чем связано не знаю.


0 mean 1155.241446

1 std 165.123428

2 min 223.000000

3 max 3437.000000


1100 Гц выдает. Очень хорошо.

Мой D-Link DIR-815/AC при интернет серфинге и просмотре фильма с подцепленного на роутер жесткого диска (по FTP протоколу) среднее значение было 300 Гц (когда мало серфили, то 900 Гц).


Далее можно еще выявить зависимость от расстояния между передатчиком-роутером-приемником. Влияние препятствий...

В следующих постах:

1) О том как жить с плавающей частотой передачи данных.

2) Об автоматической корректировке взаимозависимых гироскопов+акселерометров.

3) О сборке макета углов Эйлера для тестирования гироскопов и акселерометрах.

Наука | Научпоп

9.5K постов83K подписчиков

Правила сообщества

Основные условия публикации

- Посты должны иметь отношение к науке, актуальным открытиям или жизни научного сообщества и содержать ссылки на авторитетный источник.

- Посты должны по возможности избегать кликбейта и броских фраз, вводящих в заблуждение.

- Научные статьи должны сопровождаться описанием исследования, доступным на популярном уровне. Слишком профессиональный материал может быть отклонён.

- Видеоматериалы должны иметь описание.

- Названия должны отражать суть исследования.

- Если пост содержит материал, оригинал которого написан или снят на иностранном языке, русская версия должна содержать все основные положения.


- Посты-ответы также должны самостоятельно (без привязки к оригинальному посту) удовлетворять всем вышеперечисленным условиям.

Не принимаются к публикации

- Точные или урезанные копии журнальных и газетных статей. Посты о последних достижениях науки должны содержать ваш разъясняющий комментарий или представлять обзоры нескольких статей.

- Юмористические посты, представляющие также точные и урезанные копии из популярных источников, цитаты сборников. Научный юмор приветствуется, но должен публиковаться большими порциями, а не набивать рейтинг единичными цитатами огромного сборника.

- Посты с вопросами околонаучного, но базового уровня, просьбы о помощи в решении задач и проведении исследований отправляются в общую ленту. По возможности модерация сообщества даст свой ответ.


Наказывается баном

- Оскорбления, выраженные лично пользователю или категории пользователей.

- Попытки использовать сообщество для рекламы.

- Фальсификация фактов.

- Многократные попытки публикации материалов, не удовлетворяющих правилам.

- Троллинг, флейм.

- Нарушение правил сайта в целом.


Окончательное решение по соответствию поста или комментария правилам принимается модерацией сообщества. Просьбы о разбане и жалобы на модерацию принимает администратор сообщества. Жалобы на администратора принимает @SupportComunity и общество Пикабу.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества