Я на STM32 можно сказать впервые. Но прям интересно как тут живут старожилы.
Высчитывать эти прескайлеры и периоды - прям странное и бесящее действо. Ещё и единички не забудь отнять, чтобы цифры выглядели максимально тупо и не интуитивно.
Я же не машина, чтобы время тиками измерять и считать от 0, мне подавай миллисекунды.
Завёл себе табличку в екселе, а на время разработки втащил высчитывание периодов прямо в код.
Теперь моя несчастная лампочка взмаргивает по православному, 1 раз в секунду.
ЗЫ: хотелось бы и от cubeMX UX здорового человека, а не UX-курильщика.
Высчитывать эти прескайлеры и периоды - прям странное и бесящее действо. Ещё и единички не забудь отнять, чтобы цифры выглядели максимально тупо и не интуитивно.
Я же не машина, чтобы время тиками измерять и считать от 0, мне подавай миллисекунды.
Завёл себе табличку в екселе, а на время разработки втащил высчитывание периодов прямо в код.
Теперь моя несчастная лампочка взмаргивает по православному, 1 раз в секунду.
ЗЫ: хотелось бы и от cubeMX UX здорового человека, а не UX-курильщика.
https://github.com/0015/ThatProject
Хорошая подборка кода под esp32
к ютуб каналу https://www.youtube.com/c/ThatProject/videos
Хорошая подборка кода под esp32
к ютуб каналу https://www.youtube.com/c/ThatProject/videos
А вообще список хороших примеров можно оказывается посмотреть по звёздам
https://github.com/topics/esp32-idf
и проект выше занимает там 2ю строчку
https://github.com/topics/esp32-idf
и проект выше занимает там 2ю строчку
Сегодня сетап такой:
Esp32, динамик, "осцилограф", енкодер.
По Stm32G031K8T6 защитываю себе поражение.
Слишком сложно, ниасилил. Отладка Stm32G031K8T6 уезжает в шкаф.
По отдельному модулю на stm32 видимо стоит призвать на помощь профессионалов, и в качестве микроконтроллера оставить f103.
Возвращаюсь к ковырянию esp32.
После stm многие вещи в микроконтроллерах становятся понятнее.
Например для того чтобы щёлкать ногами мощности контроллера не нужны - для этого есть всякие хардварные инструменты.
На esp32 для переключения ног попробую использовать модуль RMT.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html
Esp32, динамик, "осцилограф", енкодер.
По Stm32G031K8T6 защитываю себе поражение.
Слишком сложно, ниасилил. Отладка Stm32G031K8T6 уезжает в шкаф.
По отдельному модулю на stm32 видимо стоит призвать на помощь профессионалов, и в качестве микроконтроллера оставить f103.
Возвращаюсь к ковырянию esp32.
После stm многие вещи в микроконтроллерах становятся понятнее.
Например для того чтобы щёлкать ногами мощности контроллера не нужны - для этого есть всякие хардварные инструменты.
На esp32 для переключения ног попробую использовать модуль RMT.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html
Media is too big
VIEW IN TELEGRAM
(5 минут мотаю до 10kHz и слушаю)
Драйвером управлять очень просто.
И вообще многое в esp32 сделано для людей.
У STM я жаловался, что считать в тиках и отнимать единицу - ну слишком нечеловечно.
А как это у esp32?
Просто говоришь драйверу RMT какая нужна частота в обычных герцах и он всё понимает.
Минимум 611Hz, а максимум в мегагерцах. Мой "осцилограф" столько не может, сколько может выдать RMT.
И с примерами всё сильно проще - из документации ссылка на 5 примеров различного использования этого функционала
https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt
Я взял на основу пример morse_code который выдаёт SOS на нужной частоте.
Драйвером управлять очень просто.
И вообще многое в esp32 сделано для людей.
У STM я жаловался, что считать в тиках и отнимать единицу - ну слишком нечеловечно.
А как это у esp32?
Просто говоришь драйверу RMT какая нужна частота в обычных герцах и он всё понимает.
Минимум 611Hz, а максимум в мегагерцах. Мой "осцилограф" столько не может, сколько может выдать RMT.
И с примерами всё сильно проще - из документации ссылка на 5 примеров различного использования этого функционала
https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt
Я взял на основу пример morse_code который выдаёт SOS на нужной частоте.
Media is too big
VIEW IN TELEGRAM
(6 минут мотаю до 100kHz и ничего не слышно после 15kHz)
Предел моего игрушечного "осцилографа" - 200kHz.
Когда покупал его за 2 тыщи - думал ну зачем мне больше =)
Но скоро приедет уже другой, за 4 тыщи русских рублей от которого ожидаю в 2 раза больше удовольствия.
Есть легенда о том что высокая частота переключения ног способствует их очистке.
"Взрослые" кондуктометры тоже делают такую болталку, но не на протяжении всей работы,
а только перед измерениями.
Скорее всего физика этого процесса ультразвуковая, а ультразвуковые ванны работают с частотами от 25 до 130 кГц..
Процитирую случайные статьи из интернета:
Предел моего игрушечного "осцилографа" - 200kHz.
Когда покупал его за 2 тыщи - думал ну зачем мне больше =)
Но скоро приедет уже другой, за 4 тыщи русских рублей от которого ожидаю в 2 раза больше удовольствия.
Есть легенда о том что высокая частота переключения ног способствует их очистке.
"Взрослые" кондуктометры тоже делают такую болталку, но не на протяжении всей работы,
а только перед измерениями.
Скорее всего физика этого процесса ультразвуковая, а ультразвуковые ванны работают с частотами от 25 до 130 кГц..
Процитирую случайные статьи из интернета:
Для наиболее эффективной кавитации очищающая жидкость должна содержать как можно меньше растворенного газа.
Под видео много текста не положить, продолжение:
С помощью RMT все эти частоты легко достижимы.
до 40 Мегагерц вроде можно, а это уже метровые волны, радиосвязь (ВЧ) и немного телевещания.
...
Интенсивность кавитации обратно пропорциональна ультразвуковой частоте: с увеличением ультразвуковой частоты уменьшаются размеры кавитационных пузырьков и их результирующее воздействие на очищаемую поверхность. Компенсировать уменьшение интенсивности ультразвукового воздействия с увеличением частоты можно только увеличением мощности облучения.
...
- 20-30 кГц способствуют быстрому растворению поверхностных загрязнений и не вызывают повреждения изделий.
- сверхнизкие частоты (меньше 20 кГц) могут приводить к появлению проблем разрушения.
- для большинства процессов отмывки предпочтительной является частота в диапазоне от 35 до 45 кГц. Частоты в этом диапазоне гарантируют наиболее быстрое и эффективное растворение загрязнений, особенно в пазах и полостях.
- частоты выше менее эффективны.
С помощью RMT все эти частоты легко достижимы.
до 40 Мегагерц вроде можно, а это уже метровые волны, радиосвязь (ВЧ) и немного телевещания.
IOT / Esp32 / FreeRTOS / Arduino / stm32
Длительное тестирование началось 26 окт. Запомним эти цифры: 1616mV - напряжение на делителе 2517mV - опорное напряжение. Китайский мультиметр при этом считает что 2507mV, так что есть вероятность что АЦП у esp32 плохо калиброван и привирает.
краткое содержание предыдущих серий:
- сделал штуку которая меряет EC (кондкуторметр)
- чтобы проверить стабильность работы - одно устройство поместил в термо-бокс с подогревом, которому приказано долго жить при одинаковой температуре 25°C (26 октября)
- пришлось немного повозиться со стабильностью питания
- сырые значения EC постепенно сползали. Сначала это было достаточно резкие изменения заметные в течении суток, но постепенно значения приходили в стабильное состояние.
- оно почти неделю проработало отностильностабильно
- что-то случилось с нагревалкой, и она стала постоянно греть. Температура в боксе была 30+ градусов. Я забил наблюдать за этой штукой, работает и работает, какая разница что показывает, потом верну температуру в 25 градусов и посмотрю хорошо ли всё с девайсом.
Последнее значение на графике было 1672mV
- сделал штуку которая меряет EC (кондкуторметр)
- чтобы проверить стабильность работы - одно устройство поместил в термо-бокс с подогревом, которому приказано долго жить при одинаковой температуре 25°C (26 октября)
- пришлось немного повозиться со стабильностью питания
- сырые значения EC постепенно сползали. Сначала это было достаточно резкие изменения заметные в течении суток, но постепенно значения приходили в стабильное состояние.
- оно почти неделю проработало отностильностабильно
- что-то случилось с нагревалкой, и она стала постоянно греть. Температура в боксе была 30+ градусов. Я забил наблюдать за этой штукой, работает и работает, какая разница что показывает, потом верну температуру в 25 градусов и посмотрю хорошо ли всё с девайсом.
Последнее значение на графике было 1672mV
Вчера случайно понял в чём была проблема.
Оказывается из-за того что воткнул в одну USB зарядку 2 прибора - у них объединилась земля и китайский терморегулятор решил что выключаться ему не нужно.
Ну чтож, теперь питание у терморегулятора и нагревателя разные, и температура поддерживается на одном уровне. За месяц работы значения можно считать что не сползли.
Волны на графике - это колебания температуры. Устройство стоит близко к окну, а за бортом -25 градусов
Оказывается из-за того что воткнул в одну USB зарядку 2 прибора - у них объединилась земля и китайский терморегулятор решил что выключаться ему не нужно.
Ну чтож, теперь питание у терморегулятора и нагревателя разные, и температура поддерживается на одном уровне. За месяц работы значения можно считать что не сползли.
Волны на графике - это колебания температуры. Устройство стоит близко к окну, а за бортом -25 градусов
Мне тут повзрослому переписали код под STM32 блюпил)
Чтобы ногами дрыгало на аппаратных таймерах,
и АЦП измеряло тоже аппаратно. Вобщем чтобы всё что
можно аппаратно, а остальное без FreeRTOS =)
Результаты измерения спамит в UART и на дисплей.
Значения уставок конфигурируются по UART и сохраняются в памяти микроконтроллера. Шик!
Не грех и откалибровать это дело сразу, чтобы работать с реальными значениями.
Чтобы ногами дрыгало на аппаратных таймерах,
и АЦП измеряло тоже аппаратно. Вобщем чтобы всё что
можно аппаратно, а остальное без FreeRTOS =)
Результаты измерения спамит в UART и на дисплей.
Значения уставок конфигурируются по UART и сохраняются в памяти микроконтроллера. Шик!
Не грех и откалибровать это дело сразу, чтобы работать с реальными значениями.
Давно небыло вестей, потому что занимаюсь веб-частью, а это не в тематике канала.
Девайс который мне сделали "по взрослому" с того времени лежит на столе и работает, но показания колбасит.
Скорее всего это из-за высокой частоты смены ногл - 50kHz, или из-за недостаточного количества выборок. Частоту нможно настроить даже через UART, а количество выборок поправить в коде. Но копаться с этим пока не в приоритете, переключился на другие задачи.
Девайс который мне сделали "по взрослому" с того времени лежит на столе и работает, но показания колбасит.
Скорее всего это из-за высокой частоты смены ногл - 50kHz, или из-за недостаточного количества выборок. Частоту нможно настроить даже через UART, а количество выборок поправить в коде. Но копаться с этим пока не в приоритете, переключился на другие задачи.
IOT / Esp32 / FreeRTOS / Arduino / stm32
Недостающий кусок ленты 3м для потолка и мощный блок на 5v и 10 китайских ампер. До этого ленту только на 50 пунктов из 255 зажигал, а хочу по полной
буду использовать в своих проектах (с)
Диоды закрепил на потолке. 13 метров адресной ленты которая прекрасно светилась. Но в какой-то момент управляющий провод от esp-хи лежащей на столе перевихался, там получился оборванный контакт который передал на линию странную команду от которой всё заколбасило и лента потухла 😭
Теперь на линии короткое замыкание. Без демонтажа её можно разделить на 3 части (5+5+3) и относительно локализовать проблему. Но возиться с этим особо желания нет. Сначала закажу ещё 5 метров адресной ленты, чтобы "ремонт" выполнить за один подход.
Диоды закрепил на потолке. 13 метров адресной ленты которая прекрасно светилась. Но в какой-то момент управляющий провод от esp-хи лежащей на столе перевихался, там получился оборванный контакт который передал на линию странную команду от которой всё заколбасило и лента потухла 😭
Теперь на линии короткое замыкание. Без демонтажа её можно разделить на 3 части (5+5+3) и относительно локализовать проблему. Но возиться с этим особо желания нет. Сначала закажу ещё 5 метров адресной ленты, чтобы "ремонт" выполнить за один подход.
уже 2 недели как к нам вернулись графики. Хотелось бы сравнить это с предыдущими графиками, но хер) этих данных у меня нет - только в скринах канала.
Оказываетя я у бакета настроил хранение данных 30 дней и отключить это не получается. Надо видимо добавить ещё один бакет в котором данные будут храниться вечно и переделать программу которая перекладывает данные из mqtt в influx.
За 2 недели мы видим следующее: 3 дня данные стабилизировались с 1690 до 1670. А потом поменялись с 1672 до 1659 - т.е. колебания за полторы недели меньше 15mV.
Оказываетя я у бакета настроил хранение данных 30 дней и отключить это не получается. Надо видимо добавить ещё один бакет в котором данные будут храниться вечно и переделать программу которая перекладывает данные из mqtt в influx.
За 2 недели мы видим следующее: 3 дня данные стабилизировались с 1690 до 1670. А потом поменялись с 1672 до 1659 - т.е. колебания за полторы недели меньше 15mV.
Поскольку сегодня у нас день проблем, то ловите ещё одну =)
9 часов без данных, потому что интернет вечера подтупливал и я ребутнул роутер. А девайс не переподключился к mqtt =) Т.е. девайс не корректно отрабатывает событие "пропал вифи"
А ещё сервер mqtt работет конечно с TLS, и подписан он с помощью сертификата от letsEncrypt у которого время жизни 3 месяца. За 2 недели до конца срока сертификат перевыпускается и сервер нужно перезапустить чтобы он подхватил новый сертификат. После этого конечно-же данные перестают поступать. Т.е. девайс не корректно отрабатывает событие "mqtt disconnect"
9 часов без данных, потому что интернет вечера подтупливал и я ребутнул роутер. А девайс не переподключился к mqtt =) Т.е. девайс не корректно отрабатывает событие "пропал вифи"
А ещё сервер mqtt работет конечно с TLS, и подписан он с помощью сертификата от letsEncrypt у которого время жизни 3 месяца. За 2 недели до конца срока сертификат перевыпускается и сервер нужно перезапустить чтобы он подхватил новый сертификат. После этого конечно-же данные перестают поступать. Т.е. девайс не корректно отрабатывает событие "mqtt disconnect"
Ну и на последок.
В тестовом девайсе при "постоянной" температуре мы меняем падение напряжения. И это вобщем-то ок, но температуру мы меряем в коробке а не в водичке.
А термометр который выведен в графики - это просто херь, потому что там не подходящий делитель напряжения: для термистора 100k нужен и резистор на 100, а там какой-то другой. Вобщем стоит впаять нормальный =) этот кусок тоже под переделку.
В тестовом девайсе при "постоянной" температуре мы меняем падение напряжения. И это вобщем-то ок, но температуру мы меряем в коробке а не в водичке.
А термометр который выведен в графики - это просто херь, потому что там не подходящий делитель напряжения: для термистора 100k нужен и резистор на 100, а там какой-то другой. Вобщем стоит впаять нормальный =) этот кусок тоже под переделку.
This media is not supported in your browser
VIEW IN TELEGRAM
Первым делом поправим баг в схеме и отправим девайс снова в работу.
Причину нашёл достаточно быстро. С помощью джамперов можно переключить 10/100kΩ. Чтобы гребенку каждый раз не паять - там стоит нулевое сопротивление которое заменяет джампер на 10. Его нужно выпаять, но вместо его я выпаял подтягивающий резистор.
Такую мелочь руками впаивать сложно, по-этому просто перекинул всё на другую отладку где всё сделал правильно.
Причину нашёл достаточно быстро. С помощью джамперов можно переключить 10/100kΩ. Чтобы гребенку каждый раз не паять - там стоит нулевое сопротивление которое заменяет джампер на 10. Его нужно выпаять, но вместо его я выпаял подтягивающий резистор.
Такую мелочь руками впаивать сложно, по-этому просто перекинул всё на другую отладку где всё сделал правильно.
Если питать esp-ху от внешнего стабилизатора,то слышится шум на частоте 4kHz.
Видимо какой-то стабилизатор на плате работает не в режиме.
С прошлой платой у меня ещё была распаяна микруха заряда батареи, и я решил откусить ей ноги.
Думал просто разобраться с ногами будет проще чем убирать её целиком, потому-что микросхема припаивается ещё в середине корпуса.
Но вместе с откусыванием ног отвалилась и плата. Оказывается что в середине она не была припаяна, вот такой сюрприз. Почему так произошло - хз, при следующем заказе нужно будет проследить за такими моментами.
UPD: подсказывают что возможно всё утекло в дырочки, т.к. в слоях вроде все правильно. Дырочки стоит делать минимально-возможными.
Видимо какой-то стабилизатор на плате работает не в режиме.
С прошлой платой у меня ещё была распаяна микруха заряда батареи, и я решил откусить ей ноги.
Думал просто разобраться с ногами будет проще чем убирать её целиком, потому-что микросхема припаивается ещё в середине корпуса.
Но вместе с откусыванием ног отвалилась и плата. Оказывается что в середине она не была припаяна, вот такой сюрприз. Почему так произошло - хз, при следующем заказе нужно будет проследить за такими моментами.
UPD: подсказывают что возможно всё утекло в дырочки, т.к. в слоях вроде все правильно. Дырочки стоит делать минимально-возможными.
This media is not supported in your browser
VIEW IN TELEGRAM
А ещё на последней ревизии платы с esp32 очень большой шум при питании от кренки на плате.
Микруху заряда я выпилил ещё в предыдущем посте, но проблема не решилась. До этого была сдоовая кренка, а теперь маленькая. А ещё внизу есть операционник и ацп по i2c, до которых я ещё так и не добрался в процессе тестирования.
Такого шума достаточно чтобы плата не могла подключится к wifi+mqtt (после этого события гаснет синий диод на плате)
Микруху заряда я выпилил ещё в предыдущем посте, но проблема не решилась. До этого была сдоовая кренка, а теперь маленькая. А ещё внизу есть операционник и ацп по i2c, до которых я ещё так и не добрался в процессе тестирования.
Такого шума достаточно чтобы плата не могла подключится к wifi+mqtt (после этого события гаснет синий диод на плате)
👍1