Перейти к содержимому

Фотография

Поделки на ESP32


Сообщений в теме: 53

#26 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 26 января 2019 - 15:58

espressif обновила в примерах UART парсер nmea , но он работает только для группировки GPS . (его можно урезать процентов на 70, не нужно парсить все подряд, кроме RMC, и проверять CRC)

https://github.com/e...n/nmea_parser.c

 

SoftSerial так и не родили для ESP-IDF.


Сообщение отредактировал Aleksk: 26 января 2019 - 16:03

  • 0

#27 FStager

FStager

    Яхтенный капитан

  • Капитан
  • 1 777 сообщений
  • Из:Москва

Отправлено 26 января 2019 - 19:49

espressif обновила в примерах UART парсер nmea , но он работает только для группировки GPS

Откуда такой вывод?
  • 0

#28 asso

asso

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 557 сообщений
  • Из:Бургас
  • Судно: Topper ISO
  • Название: Midlife Crisis

Отправлено 26 января 2019 - 22:07

espressif обновила в примерах UART парсер nmea , но он работает только для группировки GPS . (его можно урезать процентов на 70, не нужно парсить все подряд, кроме RMC, и проверять CRC)

https://github.com/e...n/nmea_parser.c

 

SoftSerial так и не родили для ESP-IDF.

 

Молодцы китайцы, заботятся о пользователях.  Может и соф  Если бы этот пример был когда я подключал GPS, это сэкономило бы мне время.  Но в итоге я вообще от взаимодействия с GPS через NMEA отказался и начал использовать проприетраный протокол производителя GPS. Он побыстрее и имеет больше возможностей.

 

SoftwareSerial есть для ESP32 в среде Arduino.  Под читсый FreeRTOS его наверное то же можно портировать.


  • 0

#29 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 27 января 2019 - 02:15

Откуда такой вывод?

они сами написали про это.

If the GPS module supports multiple satellite navigation system (e.g. GPS, BDS), then the satellite ids and descriptions may be delivered in different statements (e.g. GPGSV, BDGSV, GPGSA, BDGSA), depend on the version of NMEA protocol used by the GPS module. This example currently can only record id and description of satellites from one navigation system. However, for other statements, this example can parse them correctly whatever the navigation system is.

https://github.com/e...nmea0183_parser

 

не понятно почему на этом завершили.  Могли бы и доделать для всех группировок, лишних десять строк кода.


Сообщение отредактировал Aleksk: 27 января 2019 - 02:18

  • 0

#30 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 27 января 2019 - 02:33

 

SoftwareSerial есть для ESP32 в среде Arduino.  Под читсый FreeRTOS его наверное то же можно портировать.

народ поговаривает, что ESP-IDF находится под обёрткой из Ардуино. Т.е. адаптировали ESP-IDF под Arduino IDE.

 

Фигня какая то с Ардуиной происходит. Пока не отключишь USB кабели от USB_to_COM  конвертеров , а у меня они подключены к UART1 и  UART2 на ESP32 devkit v1 (UART0 для отладки), программирование не проходит. 

=======================================================

Configuring flash size...

Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB

Compressed 8192 bytes to 47...

A fatal error occurred: Timed out waiting for packet content

========================================================

 

Что же теперь, каждый раз питание периферии отключать при закачке прошивки?  <_<


Сообщение отредактировал Aleksk: 27 января 2019 - 02:36

  • 0

#31 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 27 января 2019 - 10:18

народ поговаривает, что ESP-IDF находится под обёрткой из Ардуино. Т.е. адаптировали ESP-IDF под Arduino IDE.

 

Фигня какая то с Ардуиной происходит. Пока не отключишь USB кабели от USB_to_COM  конвертеров , а у меня они подключены к UART1 и  UART2 на ESP32 devkit v1 (UART0 для отладки), программирование не проходит. 

.....

А что это вы такое делаете? Если не секрет и почему 32, а не старый вариант, там, вроде, нет таких заморочек, а разрядность не сильно и важна.


  • 0

#32 asso

asso

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 557 сообщений
  • Из:Бургас
  • Судно: Topper ISO
  • Название: Midlife Crisis

Отправлено 27 января 2019 - 11:47

народ поговаривает, что ESP-IDF находится под обёрткой из Ардуино. Т.е. адаптировали ESP-IDF под Arduino IDE.

 

Так и есть, на ESP32 работает ESP-IDF, а на него сверху добавили слой совместимости с Ардуино.  С проблемой перепрошивки не сталкивался


  • 0

#33 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 27 января 2019 - 16:30

Так и есть, на ESP32 работает ESP-IDF, а на него сверху добавили слой совместимости с Ардуино.  С проблемой перепрошивки не сталкивался

да я вроде разобрался, покурив тырнет и даташит. GPIO2 нельзя при прошивке отрывать от земли (а дальше можно с ним работать как с обычным пином, на нем у меня сидит конвертер USB_COM, он то и подтягивал к плюсу питания).  Там пять пинов которые при перезагрузке или прошивке изначально подтянуты к земле или питанию, они задают режим работы в этот момент их трогать нельзя.  И так мало пинов, так часть из них с такими прибабахами. :)


  • 0

#34 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 27 января 2019 - 16:34

 Если не секрет и почему 32,

Богатая начинка, скорость арифметики (рабочий FPU для float), размер и цена. Автопилот надо перевести на нормальную платформу (пульт управления - смартфон).

 

Сделал тест на простейшие арифметические  операции в цикле по миллиону на каждую -

 

=============================================
WeMos D1 mini (ESP8266F)
 
80MHz float 
time for 1 mio. plus calculations in s: 0.65
time for 1 mio. minus calculations in s: 0.76
time for 1 mio. multiplications in s: 1.25
time for 1 mio. divisions in s: 3.44
time for 1 mio. analog reads in s: 95.00
 
160MHz float
time for 1 mio. plus calculations in s: 0.32
time for 1 mio. minus calculations in s: 0.38
time for 1 mio. multiplications in s: 0.63
time for 1 mio. divisions in s: 1.72
time for 1 mio. analog reads in s: 81.40
 
80MHz double  (Soft WDT reset ctx: cont sp: 3ffef7b0 end: 3ffefa00 offset: 01b0)
time for 1 mio. plus calculations in s: 0.89
time for 1 mio. minus calculations in s: 1.01
time for 1 mio. multiplications in s: 2.44
time for 1 mio. divisions in s: 9.83
time for 1 mio. analog reads in s: 95.00
 
160MHz double
time for 1 mio. plus calculations in s: 0.45
time for 1 mio. minus calculations in s: 0.50
time for 1 mio. multiplications in s: 1.23
time for 1 mio. divisions in s: 4.92
time for 1 mio. analog reads in s: 81.40
 
===============================================
ESP-32 WROOM DEV KIT V1
 
240MHz float
time for 1 mio. plus calculations in s: 0.02
result= 122862.06
time for 1 mio. minus calculations in s: 0.03
result= 1.00
time for 1 mio. multiplications in s: 0.04
result= 2.71
time for 1 mio. divisions in s: 0.22
result= 1.00
time for 1 mio. analog reads in s: 9.70
 
240MHz double
time for 1 mio. plus calculations in s: 0.23
result= 123001.00
time for 1 mio. minus calculations in s: 0.27
result= 1.00
time for 1 mio. multiplications in s: 0.45
result= 2.72
time for 1 mio. divisions in s: 2.53
result= 1.00
time for 1 mio. analog reads in s: 9.80

Сообщение отредактировал Aleksk: 27 января 2019 - 16:51

  • 0

#35 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 27 января 2019 - 16:47

Ага.


  • 0

#36 asso

asso

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 557 сообщений
  • Из:Бургас
  • Судно: Topper ISO
  • Название: Midlife Crisis

Отправлено 27 января 2019 - 19:08

да я вроде разобрался, покурив тырнет и даташит. GPIO2 нельзя при прошивке отрывать от земли (а дальше можно с ним работать как с обычным пином, на нем у меня сидит конвертер USB_COM, он то и подтягивал к плюсу питания).  Там пять пинов которые при перезагрузке или прошивке изначально подтянуты к земле или питанию, они задают режим работы в этот момент их трогать нельзя.  И так мало пинов, так часть из них с такими прибабахами. :)

 

Я планировал у себя для оставить на ESP32 только беспроводную связь и логику, а для работы с периферией подключать к ней Tiva-C.  На Tiva-C столько портов что есть где разгуляться :)  Процессор там слабенький, но для простой пересылки данных его за глаза хватит.


  • 0

#37 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 27 января 2019 - 21:39

У меня АП на основе Тивы. Справляется, вроде.


  • 0

#38 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 27 января 2019 - 23:38

У меня АП на основе Тивы. Справляется, вроде.

Ещё бы, она избыточна (eсли это Tiva-C) , если не использовать всякие украшения интерфейса для пользователя. Это ближайший аналог STM32F401 или чуть дальше ядра ESP32.  На железе с производительностью в сто раз меньше (или на том же самом, но на интерпретаторе типа Lua , uPython , MMBasic), автопилот так же будет замечательно работать (проверено pic32mx795f512h + MMBasic). 

Если не понравится на вкус ESP32 , вернусь к STM32F411. :) 


Сообщение отредактировал Aleksk: 27 января 2019 - 23:39

  • 0

#39 FStager

FStager

    Яхтенный капитан

  • Капитан
  • 1 777 сообщений
  • Из:Москва

Отправлено 28 января 2019 - 02:17

Могли бы и доделать для всех группировок, лишних десять строк кода.

Что не так с функцией
static esp_err_t parse_item(esp_gps_t *esp_gps)
?
  • 0

#40 dreamer

dreamer

    Яхтенный капитан

  • Капитан
  • 1 645 сообщений
  • Из:Хабаровск
  • Судно: Ямаха30
  • Название: Эрма

Отправлено 28 января 2019 - 03:37

ESP32 — недорогой микроконтроллер с низким энергопотреблением, при этом обладающий неплохой производительностью. Двух ядерный 32-разрядный процессор может работать с частотой до 240 МГц. Самое интересное в нем — это наличие большого количества периферийных интерфейсов, включающих Bluetooth, Wi-Fi, Ethernet, USB, последовательные порты и многое другое. У китайцев цены на ESP32 начинаются примерно от $5.

А сколько на самом деле кушает тока ESP32 ?


  • 0

#41 asso

asso

    Рулевой 1-го класса

  • Основной экипаж
  • PipPipPipPipPipPip
  • 557 сообщений
  • Из:Бургас
  • Судно: Topper ISO
  • Название: Midlife Crisis

Отправлено 28 января 2019 - 12:50

Все зависит от использования.  Вот тут люди измеряли: http://bbs.esp32.com...opic.php?t=2662  Самый большой потребитель это передача через Wi-Fi, Bluetooth раза в два экономичней.


  • 0

#42 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 28 января 2019 - 12:58

Все зависит от использования.  Вот тут люди измеряли: http://bbs.esp32.com...opic.php?t=2662  Самый большой потребитель это передача через Wi-Fi, Bluetooth раза в два экономичней.

А чего измерять - от плотности потока информации.


  • 0

#43 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 28 января 2019 - 14:23

А чего измерять - от плотности потока информации.

и от дизайна платы. По ссылке выше уменьшили на треть ток потребления, просто отпилив стеклотекстолит под антенной . :blink:

Насколько понял, надо плату питать от отдельного источника для надежной работы Wi-Fi. Импульсы потребляемого тока 600мА для USB2.0 превышают порог стандартных 500мА.


Сообщение отредактировал Aleksk: 28 января 2019 - 14:27

  • 0

#44 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 28 января 2019 - 15:05

Что не так с функцией

static esp_err_t parse_item(esp_gps_t *esp_gps)
?

 

Вы как программист и ответьте.

Я не программист, тем не менее не нашел в этом коде следов парсинга сентенций $GNRMC , $GLRMC ,  $GARMC,  только $GPRMC  (как и было обещано разработчиками). RMC - привёл для примера чтобы не писать звездочки,  можно взять GLL  или любую другую.


  • 0

#45 FStager

FStager

    Яхтенный капитан

  • Капитан
  • 1 777 сообщений
  • Из:Москва

Отправлено 28 января 2019 - 16:12

Вы как программист и ответьте.

Я ничего не понимаю во встроенных системах.
 

Я не программист, тем не менее не нашел в этом коде следов парсинга сентенций $GNRMC , $GLRMC ,  $GARMC,  только $GPRMC  (как и было обещано разработчиками).

 
else if (strstr(esp_gps->item_str, "RMC")) {
esp_gps->cur_statement = STATEMENT_RMC;
}
Парсится только хвост, без префикса - имени конкретной спутниковой системы. С моей точки зрения этот код будет работать с любой спутниковой системой, но там всё зависит от макросовых констант, которые зависят от, и в которых мне лень разбираться.
Короче, я считаю, что этот пример будет работать независимо от того, от какой именно спутниковой системы он будет получать сентенции nmea.
  • 0

#46 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 28 января 2019 - 17:14

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

 

К делу не относится, но я подметил, что очень старые системы работают с GN, похоже это общее правило.


  • 0

#47 Aleksk

Aleksk

    Яхтенный капитан

  • Капитан
  • 13 763 сообщений
  • Из:Ленинград
  • Судно:
  • Название: Неспешный

Отправлено 28 января 2019 - 18:29

 С моей точки зрения этот код будет работать с любой спутниковой системой,

как пишут авторы , того что есть не достаточно для идентификации всех сообщений  в случае приемника GNSS , и предлагают ручками допилить код парсера. Строку RMC библиотека в любом случае видимо правильно разберёт, в отличии от строк с перечислением спутниковых группировок и их параметров.


  • 0

#48 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 02 февраля 2019 - 13:38

....ESP32 devkit v1 ..

Выписал себе такую для пробы. https://www.aliexpre....40694c4dgyaN7R


  • 0

#49 БАР

БАР

    Яхтенный капитан

  • Инженер
  • 25 655 сообщений
  • Из:СПб
  • Судно: СТ-31э
  • Название: Авось

Отправлено 02 февраля 2019 - 14:36

Выписал себе такую для пробы. https://www.aliexpre....40694c4dgyaN7R

И мне такая пришла. Только не представляю, когда до нее руки дойдут.

Буду благодарен, если позволите идти по Вашим следам, которые Вы оставите на форуме. :)


  • 0

#50 StrangerM

StrangerM

    чужой

  • Модератор форума
  • 15 683 сообщений
  • Из:СПб
  • Судно: МН
  • Название: Stranger

Отправлено 02 февраля 2019 - 15:48

Ну, единственное чего в голову приходит это гарминовский эхомап 54 через пару недель придет с эНМЕА2000, так через ВайФай его в двух направлениях в сеть подключить, например, АИС в него, а глубину из него. А вообще, посмотреть с отключенным ВайФай как замену STM32F103 - расходную для всяких поделок.


  • 0



Ответить



  


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей