https://github.com/younghyunjo/esp32-homekit
#интересныйпроект
Кнопочка которая должна сама интегрироваться в AppleHomeKit
#интересныйпроект
Кнопочка которая должна сама интегрироваться в AppleHomeKit
#стартаперское из одного чата
Прикольный проект, который висит на проводе, питается от трансформатора тока, и скидывает информацию о потреблении энергии по LoRA.
https://www.panpwr.ru/kak-eto-rabotaet/
А вот для него датчик:
https://www.aceinna.com/current-sensors/MCA1101-5-3
Прикольный проект, который висит на проводе, питается от трансформатора тока, и скидывает информацию о потреблении энергии по LoRA.
https://www.panpwr.ru/kak-eto-rabotaet/
А вот для него датчик:
https://www.aceinna.com/current-sensors/MCA1101-5-3
А вот и платки приехали.
Квест по ЕС-метру на stm32 HAL будет сильно упоротее чем на esp-idf
Квест по ЕС-метру на stm32 HAL будет сильно упоротее чем на esp-idf
Хотел вроде всё по простому сделать: взять прекрасную платформио и на ней накодить максимально примитивно.
Но дошёл до кнопочки "генерировать проект", а там нужно было выбрать в каком Toolchain/IDE собрать. Ну пошёл гуглить, понял что лучше делать это через
Ну не красота ли?
Но дошёл до кнопочки "генерировать проект", а там нужно было выбрать в каком Toolchain/IDE собрать. Ну пошёл гуглить, понял что лучше делать это через
Makefile
, а тут уже можно и на нормальную отладку посмотреть, чтобы точки останова ставить, и всякие переменные смотреть и даже состояние регистров.Ну не красота ли?
This media is not supported in your browser
VIEW IN TELEGRAM
Радует что сразу всё завелось и blink во фриртосе заработал)
С кучей инструментов отладки проходить квест будет сильно проще чем угадывать что могло пойти не так. Всё сведётся к «читай документацию и сорцы и делай как написано». У esp это делать сильно сложнее из-за закрытого ядра (дальше .h файлов там не пройти).
Работа с отладкой на первый взгляд сильно комфортнее чем у esp32. Прикольно что регистры можно менять прямо из гуя, например вручную включать/выключать ноги.
Но может это все лишь первое обманчивое впечатление)
С кучей инструментов отладки проходить квест будет сильно проще чем угадывать что могло пойти не так. Всё сведётся к «читай документацию и сорцы и делай как написано». У esp это делать сильно сложнее из-за закрытого ядра (дальше .h файлов там не пройти).
Работа с отладкой на первый взгляд сильно комфортнее чем у esp32. Прикольно что регистры можно менять прямо из гуя, например вручную включать/выключать ноги.
Но может это все лишь первое обманчивое впечатление)
IOT / Esp32 / FreeRTOS / Arduino / stm32
Получилась и тоге такая красота! Заказ обошёлся в $40+
Посмотрим ещё раз на этот рендер платы.
Во первых плата bluePill тут перевёрнута, она должна смотреть в другую сторону. Но это просто неправильно отпозиционированная 3D модель - типа ок, ничего страшного.
но САМОЕ ГЛАВНОЕ (тут без капса уже не обойтись), посмотрите на дорожку внизу платы, которая выбегает из J3 и убегает под плату к пину 3.3V.
А теперь попробуйте найти эту дорожку на приехавших платах - её там нет:(
А я почти два вечера убил пытаясь понять, почему даже базовые вещи у меня не работают.
Проверил герберы, которые генерятся - там дорожка есть.
Скачал герберы, которые прикреплены к заказу - там дорожки нет :( в какой момент она могла пропасть - ну хз.
Во первых плата bluePill тут перевёрнута, она должна смотреть в другую сторону. Но это просто неправильно отпозиционированная 3D модель - типа ок, ничего страшного.
но САМОЕ ГЛАВНОЕ (тут без капса уже не обойтись), посмотрите на дорожку внизу платы, которая выбегает из J3 и убегает под плату к пину 3.3V.
А теперь попробуйте найти эту дорожку на приехавших платах - её там нет:(
А я почти два вечера убил пытаясь понять, почему даже базовые вещи у меня не работают.
Проверил герберы, которые генерятся - там дорожка есть.
Скачал герберы, которые прикреплены к заказу - там дорожки нет :( в какой момент она могла пропасть - ну хз.
This media is not supported in your browser
VIEW IN TELEGRAM
После доработки платки всё сразу завелось.
Сейчас код сделан в том-же виде как и на esp32, повторяем до беспамятства цикл:
- переключаем ноги
- измеряем
- переключаем ноги
- изменяем
Получается 3 kHz, что не удивительно - частота тактирование тактирование у stm 70MHz против 160MHz на esp.
А вот использование нормального отладчика для меня новый и очень приятный опыт. Можно остановить работу микроконтроллера в любом месте и последить за интересующими переменными. А также можно исполнять команды по шагам что позволяет быстро находить ошибки.
Сейчас код сделан в том-же виде как и на esp32, повторяем до беспамятства цикл:
- переключаем ноги
- измеряем
- переключаем ноги
- изменяем
Получается 3 kHz, что не удивительно - частота тактирование тактирование у stm 70MHz против 160MHz на esp.
А вот использование нормального отладчика для меня новый и очень приятный опыт. Можно остановить работу микроконтроллера в любом месте и последить за интересующими переменными. А также можно исполнять команды по шагам что позволяет быстро находить ошибки.
Закончим сегодня всё на тех же 4+kHz,
но с выпиленной логикой esp32,
и реализацией на бодрых технологиях STM
Итак вместо упоротого цикла у нас теперь:
- таймер который дёргает ногами
- при переключении ног запускает АЦП на 8 измерений
- АЦП в режиме DMA, значит оно само складывает нам данные в массив
- (до этого момента процессор и не работал совсем)
- т.к. 8 - это 2 в 3 степени, то мы получаем среднее значение из 8 просто сложив их, а потом сделав битовый сдвиг в право на 3.
В общем всё это шевелится быстро и практически без участия процессора.
Реализация конечно скорее спортивная) потому что никому в здравом уме не нужно измерять EC с частотой 4+kHz.
А дискретизация с частотой 8kHz уже может использоваться в телефонах для оцифровки речи.
Осталось сделать чтобы АЦП измеряло напряжение не каждый раз когда дёргаются ноги,
а например каждый 100й раз =) и тогда EC будет измеряться 40 раз в секунду,
что тоже конечно дохрена для воды, но более чем достаточно для работы в любых других приборах.
но с выпиленной логикой esp32,
и реализацией на бодрых технологиях STM
Итак вместо упоротого цикла у нас теперь:
- таймер который дёргает ногами
- при переключении ног запускает АЦП на 8 измерений
- АЦП в режиме DMA, значит оно само складывает нам данные в массив
- (до этого момента процессор и не работал совсем)
- т.к. 8 - это 2 в 3 степени, то мы получаем среднее значение из 8 просто сложив их, а потом сделав битовый сдвиг в право на 3.
В общем всё это шевелится быстро и практически без участия процессора.
Реализация конечно скорее спортивная) потому что никому в здравом уме не нужно измерять EC с частотой 4+kHz.
А дискретизация с частотой 8kHz уже может использоваться в телефонах для оцифровки речи.
Осталось сделать чтобы АЦП измеряло напряжение не каждый раз когда дёргаются ноги,
а например каждый 100й раз =) и тогда EC будет измеряться 40 раз в секунду,
что тоже конечно дохрена для воды, но более чем достаточно для работы в любых других приборах.
This media is not supported in your browser
VIEW IN TELEGRAM
Зацените точность, с которой таймер держит частоту переключения лапок.
Аж душу греет 🥰
Аж душу греет 🥰
This media is not supported in your browser
VIEW IN TELEGRAM
Видимо я как-то странно перед созданием гербера подвигал этот разьем у дисплея tm1637,
и там и линия питания пропала, и зепля у разьёма не подцепилась :(
Вобщем нашёл ещё одну багу, прицепил землю, добавил библиотеку и дисплей заработал.
#ссылочки
Пока всё что сделано идёт по блогу https://istarik.ru/
АЦП: https://istarik.ru/blog/stm32/113.html
Таймер: https://istarik.ru/blog/stm32/118.html
Дисплей: https://istarik.ru/blog/stm32/132.html
Примеры реализации в его репозитории:
https://github.com/stDstm/Example_STM32F103/tree/master/TM1637_F103/Src
Если где-то чего-то с первого раза не понятно - смотрю на ютбубе в первую очередь народстрим https://www.youtube.com/watch?v=0fpdNWFnggQ и его описание на сайте.
Вот этот чувак ещё подробно и хорошо, но очень занудно разбирает устройство АЦП https://www.youtube.com/watch?v=_fCVWvL6Eq8
и там и линия питания пропала, и зепля у разьёма не подцепилась :(
Вобщем нашёл ещё одну багу, прицепил землю, добавил библиотеку и дисплей заработал.
#ссылочки
Пока всё что сделано идёт по блогу https://istarik.ru/
АЦП: https://istarik.ru/blog/stm32/113.html
Таймер: https://istarik.ru/blog/stm32/118.html
Дисплей: https://istarik.ru/blog/stm32/132.html
Примеры реализации в его репозитории:
https://github.com/stDstm/Example_STM32F103/tree/master/TM1637_F103/Src
Если где-то чего-то с первого раза не понятно - смотрю на ютбубе в первую очередь народстрим https://www.youtube.com/watch?v=0fpdNWFnggQ и его описание на сайте.
Вот этот чувак ещё подробно и хорошо, но очень занудно разбирает устройство АЦП https://www.youtube.com/watch?v=_fCVWvL6Eq8