Очень много одинаковых картинок с осцилографа)
Но стоит ещё написать про оверсемплинг, потому что это важно.
Итак я измеряю напряжение много раз и суммирую его в переменную.
Оверсемплинг - это когда мы много раз померяли, потом поделили на количество измерений, чтобы получить среднее.
Если эти действия делать кратными степени двойки, то вместо деления можно просто сделать побитовый сдвиг на рарзмер степени, что очень красиво и богоугодно.
Итак я использую по умолчанию степень 8, и получаю 2^8=256 измерений.
Всё что находится внутри этих измерений обернуто мьютексом, т.е. фриртосу сказано что это очень важный процесс, и не смей влезать сюда со своими другими задачами.
Вводную часть рассказал, теперь посмотрим на картинку:
- ширина клеточки 5ms
- ширина расколбаса ~6 клеточек или 30ms
- внутри должно быть 256 измерений
- делим 30/256 = 0,117ms на кажый цикл
И, о боже! 🥳 это число совпадает с длинной цикла на предыдущих картинках.
Максимум при которой система ещё работает - это 2^8=2048 внутри мьютекса.
Но стоит ещё написать про оверсемплинг, потому что это важно.
Итак я измеряю напряжение много раз и суммирую его в переменную.
Оверсемплинг - это когда мы много раз померяли, потом поделили на количество измерений, чтобы получить среднее.
Если эти действия делать кратными степени двойки, то вместо деления можно просто сделать побитовый сдвиг на рарзмер степени, что очень красиво и богоугодно.
Итак я использую по умолчанию степень 8, и получаю 2^8=256 измерений.
Всё что находится внутри этих измерений обернуто мьютексом, т.е. фриртосу сказано что это очень важный процесс, и не смей влезать сюда со своими другими задачами.
Вводную часть рассказал, теперь посмотрим на картинку:
- ширина клеточки 5ms
- ширина расколбаса ~6 клеточек или 30ms
- внутри должно быть 256 измерений
- делим 30/256 = 0,117ms на кажый цикл
И, о боже! 🥳 это число совпадает с длинной цикла на предыдущих картинках.
Максимум при которой система ещё работает - это 2^8=2048 внутри мьютекса.
Начинается всё конечно с макетки, собираем "схему" =)
Накидываем быстренько проект в VsCode используя официальный плагин для работы с esp32 - https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension
Можно конечно и platformio воспользоваться, но потыкав более "родные" инструменты уже не хочется. Когда отладка для stm32 приедет - там наверно будут с platformio ковыряться, инструмент тож прекрасный.
Знач так, как понятно из картинки - будем мигать лампочками. И чем хорошо использовать в качестве фреймворка esp-IDF а не Arduino - так это обилие прекрасного кода, который легко подключается в систему.
Для проекта буду использовать эту либу:
https://github.com/CalinRadoni/ESP32DLEDController
Подключил и сразу завелось - как же это приятно =)
Накидываем быстренько проект в VsCode используя официальный плагин для работы с esp32 - https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension
Можно конечно и platformio воспользоваться, но потыкав более "родные" инструменты уже не хочется. Когда отладка для stm32 приедет - там наверно будут с platformio ковыряться, инструмент тож прекрасный.
Знач так, как понятно из картинки - будем мигать лампочками. И чем хорошо использовать в качестве фреймворка esp-IDF а не Arduino - так это обилие прекрасного кода, который легко подключается в систему.
Для проекта буду использовать эту либу:
https://github.com/CalinRadoni/ESP32DLEDController
Подключил и сразу завелось - как же это приятно =)
This media is not supported in your browser
VIEW IN TELEGRAM
Видос:)
диоды в реальности выглядят конечно сильно лучше чем на экране.
диоды в реальности выглядят конечно сильно лучше чем на экране.
Что же ещё есть на бредборде кроме ws2812?
Фоторезистор и ИК-ресивер.
На ИК-ресивере перепутана полярность питания (VCC/GND) - но он не сгорел) Такие неприятности - самое сложное в отладке физических девайсов и попыток определения почему код не работает.
А дальше нужно просто получать сигналы с любого пункта, и кто-же в этом нам поможет? Официальная дока от Експрессива) они местами прям удивляют подходом, молодцы!
Теперь вся необходимая периферия проверена и можно распаивать на макетке.
Фоторезистор и ИК-ресивер.
На ИК-ресивере перепутана полярность питания (VCC/GND) - но он не сгорел) Такие неприятности - самое сложное в отладке физических девайсов и попыток определения почему код не работает.
А дальше нужно просто получать сигналы с любого пункта, и кто-же в этом нам поможет? Официальная дока от Експрессива) они местами прям удивляют подходом, молодцы!
Ctrl+C → Ctrl+V
и я ощущаю себя великим программистом оседлавшим irDA.Теперь вся необходимая периферия проверена и можно распаивать на макетке.
На затею нужно 13+ метров ленты. В итоге по факту оказалось 2 катушки по 5 + 1 метровая чёрная — итого 11 метров (и не хватило 2х).
Одна лента оказалась не рабочая (видимо когда-то умудрился её спалить), и ещё 5метров в силиконовом кожухе и без липки - решил её оставить для другой затеи.
Для питания на такой длине - через каждый метр будем подводить питание с толстого 2.5mm медного провода - тогда точно напряжение нигде не просядет и лента будет равномерно светиться по всей длине. На то чтобы наделать необходимое количество отводов у кабеля и у ленты ушло туева туча времени.
Дальше всё это удовольствие с матами монтируем на потолок, и уаля! И выглядит нарядно даже с недостающими парой метров.
Одна лента оказалась не рабочая (видимо когда-то умудрился её спалить), и ещё 5метров в силиконовом кожухе и без липки - решил её оставить для другой затеи.
Для питания на такой длине - через каждый метр будем подводить питание с толстого 2.5mm медного провода - тогда точно напряжение нигде не просядет и лента будет равномерно светиться по всей длине. На то чтобы наделать необходимое количество отводов у кабеля и у ленты ушло туева туча времени.
Дальше всё это удовольствие с матами монтируем на потолок, и уаля! И выглядит нарядно даже с недостающими парой метров.