Sergey
подскажите плиз с какой стороны браться, потому что я не особо спец:)
Смотря какая цель. Если нужны часы, то начинать с Яндекс маркета. Если нужны бесценные знания, то с сайта espressif
Sergey
Часы есть, секса не хватает 😂
Тогда открывай документацию
Dmitry
а насколько полноценный С++ в ESP-IDF ?
Vladimir
а насколько полноценный С++ в ESP-IDF ?
А в чем мерить? Синтаксис полноценный. По классике - с++ это си с классами. Ньюансы конечно есть - скажем стандартные потоки…. В общем дискомфорта не будет
DeFensy 🛡⚔️ AntiSpamBot
Dmitry Ponyatov, вам повышена репутация!🌟 Сейчас она составляет 1. Продолжайте в том же духе 😉 🔖ads: Бот создан в @botsbaseru
Tonchik
Я бы сказал, что от ООП в embedded стоило бы идти в функции и структуры, это по классическим понятиям (а так вообще бы надо сравнить) поменьше памяти жрёт
S
Подскажите. Кто нибудь делал связку mosquitto mqtt с collectd? Какой формат у subscribe топиков в collectd?
Max
https://www.youtube.com/watch?v=NbVZDLIajm8
Max
CodeCell is a ESP32-C3 mini development board for robots, wearables, smart home projects Engineer and YouTuber Carl Bugeja recently developed CodeCell, a tiny ESP32-C3 development board designed as the brain for robots, wearables, and smart home devices. This module features a nine-axis inertial measurement unit (IMU) for motion fusion and an optional VCNL4040 light sensor. It includes a USB Type-C port for data and power as well as… https://www.cnx-software.com/2024/10/29/codecell-is-a-esp32-c3-mini-development-board-for-robots-wearables-smart-home-projects/
Макс
Всем доброго времени суток! Я пытаюсь законнектить esp32 lolin32 и st7789 с помощью библиотеки tft_espi. Я настроил файл user_setup.h, но это не помогло Read_user_setup говорит следующее: [code] TFT_eSPI ver = 2.5.43 Processor = ESP32 Frequency = 240MHz Transactions = Yes Interface = SPI Display driver = 7789 Display width = 240 Display height = 240 MOSI = GPIO 23 MISO = GPIO 19 SCK = GPIO 18 TFT_CS = GPIO 5 TFT_DC = GPIO 4 TFT_RST = GPIO 0 TFT_BL = GPIO 26 Font GLCD loaded Font 2 loaded Font 4 loaded Font 6 loaded Font 7 loaded Font 8 loaded Smooth font enabled Display SPI frequency = 40.00 [/code] Код у меня базированный: #include <TFT_eSPI.h> TFT_eSPI tft = TFT_eSPI(); // создаем экземпляр объекта TFT_eSPI void setup() { tft.init(); // инициализируем дисплей tft.setRotation(1); // поворачиваем дисплей на 90 градусов tft.fillScreen(TFT_BLACK); // очищаем экран черным цветом } void loop() { tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); // устанавливаем позицию курсора tft.setTextColor(TFT_WHITE, TFT_BLACK); // устанавливаем цвет текста и фона tft.setTextSize(2); // устанавливаем размер шрифта tft.println("Hello, World!"); // выводим текст на дисплей delay(2000); } Если кто-то сталкивался с подобной проблемой, помогите, пожалуйста!
Agent
Всем доброго времени суток! Я пытаюсь законнектить esp32 lolin32 и st7789 с помощью библиотеки tft_espi. Я настроил файл user_setup.h, но это не помогло Read_user_setup говорит следующее: [code] TFT_eSPI ver = 2.5.43 Processor = ESP32 Frequency = 240MHz Transactions = Yes Interface = SPI Display driver = 7789 Display width = 240 Display height = 240 MOSI = GPIO 23 MISO = GPIO 19 SCK = GPIO 18 TFT_CS = GPIO 5 TFT_DC = GPIO 4 TFT_RST = GPIO 0 TFT_BL = GPIO 26 Font GLCD loaded Font 2 loaded Font 4 loaded Font 6 loaded Font 7 loaded Font 8 loaded Smooth font enabled Display SPI frequency = 40.00 [/code] Код у меня базированный: #include <TFT_eSPI.h> TFT_eSPI tft = TFT_eSPI(); // создаем экземпляр объекта TFT_eSPI void setup() { tft.init(); // инициализируем дисплей tft.setRotation(1); // поворачиваем дисплей на 90 градусов tft.fillScreen(TFT_BLACK); // очищаем экран черным цветом } void loop() { tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); // устанавливаем позицию курсора tft.setTextColor(TFT_WHITE, TFT_BLACK); // устанавливаем цвет текста и фона tft.setTextSize(2); // устанавливаем размер шрифта tft.println("Hello, World!"); // выводим текст на дисплей delay(2000); } Если кто-то сталкивался с подобной проблемой, помогите, пожалуйста!
Во-первых - что-либо вешать на GPIO0, когда есть куча свободных пинов, это конечно просто гениально. Во-вторых - не знаю, как в этой либе, но обычно при объявлении указываются и пины. В-третьих - не знаю, как в этой либе, но часто init() возвращает что-нибудь и можно хотя-бы посмотреть проинициализировался ли дисплей.
Макс
Во-первых - что-либо вешать на GPIO0, когда есть куча свободных пинов, это конечно просто гениально. Во-вторых - не знаю, как в этой либе, но обычно при объявлении указываются и пины. В-третьих - не знаю, как в этой либе, но часто init() возвращает что-нибудь и можно хотя-бы посмотреть проинициализировался ли дисплей.
1) А что плохого в GPIO0? 2) Сам был удивлен, что здесь не надо указывать пины в объявлении, они указываются в отдельном файле User_Setup.h, который лежит в папке с библиотекой, плюсом с этой библиотекой идет пример, вывод из которого я уже выложил ранее, исходя из него, в программе верно указаны все пины 3) Я просмотрел метод init этой либы, он ничего не возвращает
Макс
я попробовал либу adafruit_st7789 - с ней все работает хорошо, но меня жутко раздражает, что при отрисовке дисплея он мерцает. Я буду очень благодарен вам, если вы подскажете, что можно сделать для ускорения вывода на экран(помимо увеличения частоты spi и неполной отрисовки дисплея)
⁸⁰⁸ ᶜᵒᵐᵖᵃᶜᵗ
то есть, что ты вообще отрисовываешь?
Макс
то есть, что ты вообще отрисовываешь?
Я отрисовываю циферблат, но не весь, а только ту область, где находятся стрелки Если кратко, то суть моей программы такова: Выполнить расчёт всех координат Далее в цикле: Залить круг в центре экрана с радиусом самой длинной стрелки Вывести все элементы(стрелки, штрихи по кругу, цифры) Ждать секунду
⁸⁰⁸ ᶜᵒᵐᵖᵃᶜᵗ
Я отрисовываю циферблат, но не весь, а только ту область, где находятся стрелки Если кратко, то суть моей программы такова: Выполнить расчёт всех координат Далее в цикле: Залить круг в центре экрана с радиусом самой длинной стрелки Вывести все элементы(стрелки, штрихи по кругу, цифры) Ждать секунду
Отрисуй один раз круг и выкинь функцию зачистки экрана. Когда у тебя отрисуется первая стрелка циферблата и сделает шаг вперёд, отрисуй черную линию на то же место где стрелка была до шага, тем самым закрасив свой след
⁸⁰⁸ ᶜᵒᵐᵖᵃᶜᵗ
и не придётся каждый раз зачищать и перерисовывать элементы
⁸⁰⁸ ᶜᵒᵐᵖᵃᶜᵗ
Dmitry
с чем может быть связано что сборка не видит инклюдник компонента?
индзэец
ну тут лучше лезть в конфигм смотреть какие папки там просматриваются
индзэец
ещё там какая нибудь кирилица и пробелы тоже играют роль
Fidel Khuzin
Парни, по-любому подобную проблему обсуждали, если что сори что снова пишу. Что это за поведение контроллера? Последняя wled установлена. Работала вроде все ок, и внезапно такая фигня. Роутер устройство регает, но по ip зайти не могу. Помогите пожалуйста Если не в тот топик написал скорректируйте пожалуйста
Яков
Доброй ночи
Яков
Мужики делаю диммер на Atmega8
Яков
Наблюдаю проблему что через пару периодов прерывание на детектор нуля не срабатывает
Яков
#define F_CPU 8000000UL // Частота микроконтроллера 8 МГц #define ZERO_PIN 2 // Пин детектора нуля (INT0) #define DIMMER_PIN 4 // Пин для управления симистором #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t dimmer_delay = 5000; // Время задержки включения симистора (в микросекундах) void setup_pins(void) { DDRD &= ~(1 << ZERO_PIN); // Устанавливаем ZERO_PIN как вход PORTD |= (1 << ZERO_PIN); // Включаем подтягивающий резистор DDRD |= (1 << DIMMER_PIN); // Устанавливаем DIMMER_PIN как выход } void setup_external_interrupt(void) { MCUCR |= (1 << ISC01); // Прерывание по нисходящему фронту на INT0 GICR |= (1 << INT0); // Разрешаем прерывание INT0 } void setup_timer1(void) { TCCR1A = 0; // Обычный режим работы, без PWM TCCR1B = (1 << WGM12) | (1 << CS11); // CTC, делитель 8 (1 мкс на такт) TIMSK |= (1 << OCIE1A); // Разрешаем прерывание по совпадению OCR1A } void start_timer1(uint16_t delay) { TCNT1 = 0; // Обнуляем счетчик таймера OCR1A = delay; // Устанавливаем значение сравнения TCCR1B |= (1 << CS11); // Запускаем таймер с делителем 8 } void stop_timer1(void) { TCCR1B &= ~(1 << CS11); // Останавливаем таймер } ISR(TIMER1_COMPA_vect) { PORTD |= (1 << DIMMER_PIN); // Включаем симистор stop_timer1(); TCNT1 = 0; // Останавливаем таймер после срабатывания } ISR(INT0_vect) { TCNT1 = 0; PORTD &= ~(1 << DIMMER_PIN); // Выключаем симистор на пересечении нуля start_timer1(dimmer_delay); // Запускаем таймер с задержкой } int main(void) { setup_pins(); setup_external_interrupt(); setup_timer1(); sei(); // Включаем глобальные прерывания while (1) { // Основной цикл программы, можно изменять значение dimmer_delay // например, с помощью аналогового ввода } }
Яков
Вод код
Яков
Есть тут спецы по AVR
Яков
Вот схема вместо ардуино стоит atmega8 тактируется от внутреннего генератора на 8мгц
Яков
R2 и R5 убрал. Давали помехи.
Яков
Собрано все на макетке.
Яков
На Осцилографе четко видно как отрабатывает схема и через пару периудов пропускает синусоиду полностью. Из за этого лампочка мегает
Dmitry
с чьим то непониманием конфигов cmake
да, проблема была в структуре каталогов
Vlad
а ничего что это boot?
я на GPIO0 сделал штатный factory reset при прижатии дольше 10 сек, вполне себе тикает.
Agent
я на GPIO0 сделал штатный factory reset при прижатии дольше 10 сек, вполне себе тикает.
Да вообще нет проблем. Работать будет. Но лучше его не юзать, когда есть другие пины. По-моему это очевидно.
Vlad
Да вообще нет проблем. Работать будет. Но лучше его не юзать, когда есть другие пины. По-моему это очевидно.
конечно. у меня нюанс только в том, что это готовый покупной контроллер, и кнопоцка на нем только такая, на GPIO0
Agent
конечно. у меня нюанс только в том, что это готовый покупной контроллер, и кнопоцка на нем только такая, на GPIO0
Тогда конечно это вариант. Но я говорил про свободную распиновку, где подключай к чему хочешь. И вот если новичок привыкает зачем-то юзать gpio0, то рано или поздно он туда подключит, скажем, енкодер и плата никогда не выйдет из режима прошивки) Кстати тоже самое его ждет с енкодером на gpio12.
Павел
господа подскажите, есть esp8266 работала, и вот я решил подключить ее, питание есть, по консоли вижу ее, но вайфай не работает, она не подключается ни к какой сети, и в тасмота инсталларе после прошивки нет visit device
Павел
И нет поиска сетей
Andy
Диагностирование устройства по фото - это вам к гадалке :) Сюда лучше логи, а не фото :)
Alex
Всех приветствую🫡 Извините за глупый вопрос,просто я ещё новичок(второй день в программирование) Купил esp32 вместе с платой расширения,сама esp работает нормально,но когда она в плате расширения светодиод горит а пк её не видит,подскажите так и должно быть или я что то не понимаю. Заранее спасибо
Alex
Alex
ॐ मणि पद्मे हूँ;
подскажите плиз с какой стороны браться, потому что я не особо спец:)
Изучить: Электротехника, научиться паять. Изучить схемотехнику. После этого что попытаться сделать.
Alexander
Здравствуйте, подскажите пожалуйста. Есть 4 переменных резистора - задача стоит одновременно измерять с них выходное напряжение до 5 вольт. Как лучше это сделать на esp32 nodemcu devkit1? Через резисторы или есть способ лучше?
DeFensy 🛡⚔️ AntiSpamBot
Alexey, вам повышена репутация!🌟 Сейчас она составляет 1. Продолжайте в том же духе 😉 🔖ads: Бот создан в @botsbaseru
Alexander
Цэль, точность?
Цель подменять напряжение в большую или меньшую сторону через цифровые резисторы, точность в десятку желательна
Alexey
Спасибо
начни с этого. Тут системный подход. https://www.youtube.com/watch?v=g1pJ3RYAPwE
Splum
Цель подменять напряжение в большую или меньшую сторону через цифровые резисторы, точность в десятку желательна
Питай резисторы от vcc еспхи либо ставь энкодер, резисторы это максимально ненадежно
Alexander
Питай резисторы от vcc еспхи либо ставь энкодер, резисторы это максимально ненадежно
Нужно в автоматическом режиме, переменные резисторы - это датчики положения кузова авто на пневмоподвеске. Нужно сделать плату управления подвеской.
Alexander
Питай резисторы от vcc еспхи либо ставь энкодер, резисторы это максимально ненадежно
Резисторы цифровые такие купил вроде как https://aliexpress.ru/item/1005003116976912.html?sku_id=12000024189209818&spm=a2g2x.productlist.search_results.0.55022d5bkWLpHH
Splum
😭
Alexander
😭
Жить не будет? Есть другой вариант?
Tonchik
Нужно в автоматическом режиме, переменные резисторы - это датчики положения кузова авто на пневмоподвеске. Нужно сделать плату управления подвеской.
Они сотрутся ))) вспомни как ты едешь на машине? Ее трясет. Там механическое воздействие адовое… Ну и вообще это как раз поле для экспериментов: брать все возможные компоненты и сравнивать их эффективность на имеющемся механизме
Alexey
Комрады, а кто нибудь пользуется esp-idf? Если да, то в чем половой смысл этого?
Alexey
ты не поймёшь
Не умеешь объяснять?
Ruslan
обьяснять — это дорого, откуда у детей деньги на половые вопросы
Tonchik
Кто сотрется? Это заводское решение, они с покупки стоят
Ну тогда вариант с подключением цифровой платы прям у датчика очень хороший вариант. Что б не вмешивалось сопротивление контактов и проводки между
Ruslan
А зачем ты тут?
ты не поймёшь
Alexey
ты не поймёшь
Расслабся. дрочи дальше
Ruslan
ты забавный
Alexey
Когда нельзя но очень хочется - тогда можно
Когда есть VSC или AduinoIDE, есть у этого какие нибудь преимущества? Или что она такого делает, что не могут другие системы программирования?
Alexander
Ну тогда вариант с подключением цифровой платы прям у датчика очень хороший вариант. Что б не вмешивалось сопротивление контактов и проводки между
Ставить его у датчика плохой вариант, у подвески есть заводской блок управления в салоне, в который приходят провода от всех колес, хочу в разрыв проводки.