Миша
Может ли esp32 быть AP и использовать ESP-NOW одновременно?
Resident
Подскажите , как усилить сигнал блютуса?
Смотря на сколько далеко нужно Может будет иметь смысл перейти на другую частоту На 868mhz куча пультов всяких
┈━═ᗩחᵈ𝓻ⲉყ═━┈
Есть отличные видео курсы на торрент по электротехнике, в том числе и про индуктивные и ёмкостные нагрузки. Например Дмитрий Забирало рассказывает все доступно. У него так же отличный курс по программированию AVR.
Sergey
Подскажите , как усилить сигнал блютуса?
Ble 5.0 умеет на 100 метров в прямой видимости передавать, но с маленьким битрейтом
Sergey
Ну и насчёт антенны нужно позаботиться
Vlad
всем привет почему может не работать SPI-коннект к акселерометру qmi8658 ? #define SPI_MOSI (15) коричневый провод SDA на платке #define SPI_SCK (16) оранжевый провод SCL на платке #define SPI_MISO (17) зеленый провод ADO на платке #define IMU_CS (18) // оторвал его от VDD и присобачил его на GND чтобы переключить в SPI, т.к. CS: I2C/ I3C /SPI-UI selection Pin. (If 1: I2C-UI Mode: I2C/I3C communication enabled, SPI idle mode) (If 0: SPI-UI mode: I2C/I3C disabled) c i2c платка работаЛА ОК.
Anton
жарко же там
Vlad
Ты какую то хрень сделал с пином cs…
т.е. его постоянно активным нельзя оставить ?
Vlad
т.е. его постоянно активным нельзя оставить ?
а вообще логично, там же управление по фронтам cs, наверняка, а я его статичным захерачил...
Max
Экологичное расставание с Алисой: строим полностью локальный и приватный голосовой ассистент Идея отказаться от использования Яндекс Алисы в системе умного дома возникла у меня после новости о принятии Госдумой законопроекта, касающегося штрафов за поиск и доступ к экстремистским материалам в интернете. Казалось бы, при чём тут голосовой помощник? Однако Яндекс входит в реестр организаторов распространения информации, что означает определённые юридические и технические обязательства по хранению и передаче данных. Хотя я не ищу ничего, выходящего за рамки интересов автоматизации, желание иметь полностью автономный, локально работающий умный дом - без зависимости от интернета и облачных сервисов - стало для меня ещё актуальнее. Тем более что сейчас единственным слабым звеном в моём умном доме остается Яндекс Алиса - которая требует постоянного интернет-соединения даже для выполнения простейших команд управления локальными устройствами. В этой статье я расскажу, как и на что планирую заменить Алису, чтобы сохранить привычный голосовой контроль, но без сторонних подключений и рисков для приватности. Алиса, извини https://habr.com/ru/articles/930340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=930340
Vlad
всем привет почему может не работать SPI-коннект к акселерометру qmi8658 ? #define SPI_MOSI (15) коричневый провод SDA на платке #define SPI_SCK (16) оранжевый провод SCL на платке #define SPI_MISO (17) зеленый провод ADO на платке #define IMU_CS (18) // оторвал его от VDD и присобачил его на GND чтобы переключить в SPI, т.к. CS: I2C/ I3C /SPI-UI selection Pin. (If 1: I2C-UI Mode: I2C/I3C communication enabled, SPI idle mode) (If 0: SPI-UI mode: I2C/I3C disabled) c i2c платка работаЛА ОК.
Получилось таки прицепиться к китайскому акселерометру qmi8658 по spi (готовой платки-модуля - НЕТУ, это "наколенный" тест), действительно - CS требует свой отдельный пин для управления обязательно. но результаты не утешительны: 1) аксель через spi читается быстро, полосу частот 8000 Гц позволяет 2) и быстрых мозгов SRAM у контроллера счас в притык, но хватает обрабатывать массив данных с акселя для 8000 Гц (PSRAM не годится из-за тормозов), но ... 3) ... но теперь уже не хватает скорости процессора S3 :) - он в полтора раза отстает, не успевает обрабатывать, и частотный спектр в результате - вычислен, но он смещен в полтора раза вверх.
Evgeniy
Не понятно, почему спектр смещен
Vlad
Не понятно, почему спектр смещен
#define SAMPLES 8192 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 16384 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 8000 // Максимальная анализируемая частота, Гц, 'Параметр Формула Пример для SAMPLES=1024, SAMPLE_RATE=2000 Гц 'Частотное разрешение (Δf) Δf = SAMPLE_RATE / SAMPLES 2000 / 1024 ≈ 1.95 Гц (шаг между точками FFT) 'Полоса Найквиста MAX_FREQ ≤ SAMPLE_RATE / 2 2000 / 2 = 1000 Гц (теоретический максимум) 'Практический максимум MAX_FREQ ≤ 0.4 × SAMPLE_RATE 0.4 × 2000 = 800 Гц (рекомендуемый максимум) 'Время сбора данных T = SAMPLES / SAMPLE_RATE 1024 / 2000 = 0.512 сек Если читать контроллер с акселерометра не успевает за "Время сбора данных T", то спектр смещен вверх, растянут
Vlad
Найквиста можно заменить на Котельникова, если коробит :)
Evgeniy
Так откуда смещение, если в проц упирается - получишь тот же частотный спектр, разве что реже цикл обработки будет вызываться?
Vlad
ну фактически измеряю время всего цикла измерения (и обработки отдельно), и оно получается не 0.5 сек, а больше 0.6 при вот этих настройках желаемых для 8000 Гц полосы. а если поставить настройки пониже для 4000 Гц полосы (4096/8192/4000) - то время измерения уже 0.5 сек всегда. и при этом (для 8000 Гц отлаживаемых) оборотная частота, главная гармоника получается в спектре - что-то около 130 Гц, а должна быть около 100 в реальности
Evgeniy
Пускай тогда в режим без переполнения fifo переходит, а с приостановкой сбора данных с акселерометра
Evgeniy
На те самые 100 мс
Vlad
тут цикл обработки не учитывается, речь все только про скорость чтения с акселя. через i2c было гораздо медленнее, шина 400 кГц. другой датчик до 4500 Гц работает через SPI скоростью 7 МГц полностью ОК, а вот у этого SPI уже может 15 МГц и полоса обещана до 8000 Гц, но ... уже проц 240 МГц который, не успевает, _я_так_соображаю_, в SRAM складывать...
Vlad
даже атмега на половине тактовой в spi успевала складывать, хоть и с задержкой в 1 бит в из-за особенностей модуля SPI, а тут на 240мгц и не успевает... Попробуйте использовать DMA чтоль...
детали не вспомните ? именно там пытались максимальную скорость выжать, для получения максимальной полосы частот И ОДНОВРЕМЕННО наилучшего частотного разрешения в 1...2 Гц ?
Ашот
детали не вспомните ? именно там пытались максимальную скорость выжать, для получения максимальной полосы частот И ОДНОВРЕМЕННО наилучшего частотного разрешения в 1...2 Гц ?
с esp32 работал очень давно, но быстрый гуглинг дает ограничение частоты SPI в 80мгц если на родных пинах и 26 мгц при полном дуплексе и подключении через GPIO matrix. Так что смотрите в код, должно все работать на 15 мгц
Max
Vibration Anomaly Detection using XIAO ESP32-S3 It is an lightweight intelligent solution designed to monitor and identify abnormal vibration patterns in real-time. https://www.hackster.io/killingjacky/vibration-anomaly-detection-using-xiao-esp32-s3-ad3ffc
Vlad
ну буферы создаются для осей на базе размерности SAMPLES, которая нужна уже минимум 8192 // Общие буферы для всех осей float accelData[SAMPLES]; // Буфер для данных акселерометра (одна ось за раз) float fftReal[SAMPLES]; // Реальная часть FFT float fftImag[SAMPLES]; // Мнимая часть FFT
Ашот
так в esp32 520кб озу, да и еще внешняя в PSRAM есть 4+мб, и при этом появляеся проблема выделить 96кб?
Vlad
так в esp32 520кб озу, да и еще внешняя в PSRAM есть 4+мб, и при этом появляеся проблема выделить 96кб?
вы так и не допоняли специфику, похоже. Если стоит задача выжать максимум полосы частот анализа и при этом частотное разрешение не хуже 1 Гц - нужно, чтобы все условия выполнялись, укладываясь _в_теоретический_срок_ - практически, иначе - смещенный спектр (ну кривой нереальный), а для этого: 1) соотношения частоты и размерности буферов - чтобы были максимальные, и чтобы RAM - хватало с запасом на прочие операции, не только FFT 2) скорость интерфейса датчика - была максимальная для получения данных и наполнения буферов 3) скорость RAM - максимальная, PSRAM QSPI - в 10 раз медленнее SRAM; PSRAM OPI (esp32-s3r8) - вдвое медленнее SRAM - я это лично проверил уже 4) ну и скорость самого проца - должна быть такой, чтобы ничего из предыдущих пунктов - не тормозило.
Vlad
вы так и не допоняли специфику, похоже. Если стоит задача выжать максимум полосы частот анализа и при этом частотное разрешение не хуже 1 Гц - нужно, чтобы все условия выполнялись, укладываясь _в_теоретический_срок_ - практически, иначе - смещенный спектр (ну кривой нереальный), а для этого: 1) соотношения частоты и размерности буферов - чтобы были максимальные, и чтобы RAM - хватало с запасом на прочие операции, не только FFT 2) скорость интерфейса датчика - была максимальная для получения данных и наполнения буферов 3) скорость RAM - максимальная, PSRAM QSPI - в 10 раз медленнее SRAM; PSRAM OPI (esp32-s3r8) - вдвое медленнее SRAM - я это лично проверил уже 4) ну и скорость самого проца - должна быть такой, чтобы ничего из предыдущих пунктов - не тормозило.
и, ковыряясь в теме, я последовательно упирался в каждое из этих ограничений: скорость i2c, размер памяти SRAM, скорость PSRAM... и теперь, похоже, и скорость камня тоже ограничивает... Нихрена ни по чему запаса нету, получается, в камне. А самым "узким горлом" должен быть только сам датчик (его скорость измерения и отдачи по SPI).
ok-home
так для него тоже надо еще дополнительный буфер. а памяти уже и так нету
А сейчас в какой буфер драйвер spi сваливает данные ? драйверу ровно все равно в пулинге забирать данные или в дма, буфер один и тот же
Ашот
ну либа датчика читает данные по одной точке (3 оси), а потом я сам набиваю в буфер
Ну так переделайте либу на потоковое чтение, а то вы ищите проблему не там Это как искать ключи не там где потерял, а под фонарем, потому что там светло
Vlad
:)
Ашот
Stm32 например через dma может спокойно переварить поток почти в половину тактовой частоты, на дисплей 72-80мгц spi вполне выплёвывает непрерывным потоком. Да и есп32 также умеет быстро на дисплей гнать данные по тому же spi
Vlad
теперь, действительно, я понимаю, что узкое место ПО СКОРОСТИ - это именно либа, которая датчик читает. а вот по объему памяти пока так и не понимаю, почему быстро упираюсь в потолок
Ашот
теперь, действительно, я понимаю, что узкое место ПО СКОРОСТИ - это именно либа, которая датчик читает. а вот по объему памяти пока так и не понимаю, почему быстро упираюсь в потолок
Так в внешнюю память тоже желательно не по 1 байту по случайным адресам писать, а блоками и линейно, тогда скорость будет куда выше
Vlad
я так понимаю что либа fft тоже себе памяти под времянки кушает ?
нее, мои внешние буферы в инициализации FFT: // Общие буферы для всех осей float accelData[SAMPLES]; // Буфер для данных акселерометра (одна ось за раз) float fftReal[SAMPLES]; // Реальная часть FFT float fftImag[SAMPLES]; // Мнимая часть FFT // Единственный объект FFT ArduinoFFT<float> FFT = ArduinoFFT<float>(fftReal, fftImag, SAMPLES, SAMPLE_RATE); А я чего-то как-то совсем из виду и упустил, что либой же читаю. причем, разными _готовыми_ либами под разные аксели. но ведь там вряд ли огромные буферы, под периодическое чтение по одному набору данных. и либы все на 99.9% - без DMA. Ардуиновые либы, универсальные ж
Ник
так в esp32 520кб озу, да и еще внешняя в PSRAM есть 4+мб, и при этом появляеся проблема выделить 96кб?
Нет там 520кб, если чуть глубже капнуть, а если ещё глубже то и буфера больше 160 или 190кб нельзя выделить)
Max
ReSpeaker XMOS XVF3800 4-mic array board features ESP32-S3 module, also works over USB Seeed Studio’s “ReSpeaker XMOS XVF3800 with XIAO ESP32S3” board is a 4-mic array board with XMOS XVF3800 voice processor and ESP32-S3 wireless MCU for standalone operation, but it can also be used as a USB microphone array for computers and SBCs. The Respeaker mic array family was first introduced in 2016, and new models have… https://www.cnx-software.com/2025/07/29/respeaker-xmos-xvf3800-4-mic-array-board-features-esp32-s3-module-works-over-usb/
Max
https://www.camthink.ai/product/neoeyes-ai-camera-ne101/
Vlad
счас вот еще подъехали RS485-датчики проводные, до 5000 Гц - по идее, и их надо как-то включать в код, но тут уже UART, а не SPI. но, как я теперь понимаю, с FFT - без DMA вообще глупо даже и начинать возиццо
ну лажа же, как можно читать 10 регистров (двухбайтовых) Modbus RTU где максимальная скорость 115 кбод желая иметь частотный анализ до 5000 Гц :)
Vlad
Плохая скорость, китайские gsm модемы, давно 921600 или более умеют по uart, печально =(
они-то молодцы, а мне тут начальство подогнало rs485 датчики про которые заявляется 5000 Гц. а когда купили, в доках оказывается 115 кбод максимум, как ни крути 200-300 Гц, если вообще ничо больше не делать камню
Resident
М - маркетинг
Rain
https://github.com/RainNameless/SD2_Ticker
Rain
esp 8266
Agent
esp 8266
И чо?
#
Здравствуйте, кто может поделиться ссылкой на esp 32 на АлиЭкспресс? А то в каждого продавца своя маркировка на чипе и хз что оригинальное а что нет
#
А какой нада? Esp32-d esp32-e esp32-eu?
Но я особо не шарю, мне для метеостанции комнатной. Читал что есть wroom32 он может подойти.
Денис
https://github.com/RainNameless/SD2_Ticker
мы это уже видели и шо? повторяшка
Max
RemuterMCS: BT remote control for mike, camera, speakers Use an M5StickC to remotely mute/unmute your computer's microphone, camera, or speakers via Bluetooth. https://www.hackster.io/wjcarpenter/remutermcs-bt-remote-control-for-mike-camera-speakers-e3940e
Agent
А у кого есть esp32s3?
Много у кого
Agent
Вам че, реально поиском нем найти что нужно? Не, я еще могу понять когда даташит не могут прочитать (не, не могу), но теперь уже и на али товар надо помочь найти?
🍀
Вам че, реально поиском нем найти что нужно? Не, я еще могу понять когда даташит не могут прочитать (не, не могу), но теперь уже и на али товар надо помочь найти?
Да я не прошу помощи найти за меня, просто спросил продавца в котом человек уверен, сам заказал клон и он у меня накрылся через 2 недели
emmett
Если ты про память то 2 варианта. Или унести свои буфера в псрам или посмотреть в меню конфиг там вроде можно буфера вайфая перенести в псрам
SPI RAM настроил, а как туда перенести буфера не нашел. Вычитал, что вроде если и можно, то только RX
ok-home
emmett
А, ну это я сделал, но что то выигрыш минимален.
emmett
и количество буферов уменьшил wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); cfg.static_rx_buf_num = 4; // Было 10 (по умолчанию) cfg.dynamic_rx_buf_num = 2; // Было 32
Vlad
Фонарик неотвратимо приближаеццо :)
55
Фонарик неотвратимо приближаеццо :)
Ты наконец купил правильную плату ?
Vlad
Ты наконец купил правильную плату ?
ага, с третьего раза, амперметр трехканальный
Evgeniy
Фонарик неотвратимо приближаеццо :)
Интересно сравнить затраты времени на такой макет и первую версию на ПП
Sergey
Интересно сравнить затраты времени на такой макет и первую версию на ПП
Если у человека нет под рукой склада с компонентной базой, то макетка будет явно быстрее. Выпаивать с отладок и впаивать на свою плату трудозатратненько, тем более для новичка
Vlad
Интересно сравнить затраты времени на такой макет и первую версию на ПП
нифига не интересно - ясное дело, что никому такое не нужно, ни делать, ни покупать. мне вот любопытно только лишь ... поиспользовать, насколько это реально удобно\полезно в плане идеи освещения, т.е. способа управления яркостью и временем жизни фонарика. ну а поиспользовать без изготовления - нереально :)
Evgeniy
Мне достался налобник нахаляву, с двумя режимами, но вся партия их - брак. В выключенном состоянии высаживают батарейки, так что они нагреваются.
Vlad
нифига не интересно - ясное дело, что никому такое не нужно, ни делать, ни покупать. мне вот любопытно только лишь ... поиспользовать, насколько это реально удобно\полезно в плане идеи освещения, т.е. способа управления яркостью и временем жизни фонарика. ну а поиспользовать без изготовления - нереально :)
если пока допустить, что идея жизнеспособная, то глядя на мою фотку становится ясно, почему таких фонарей не делают. ну реально ж громоздко и дорого. и разумеется, я про нормальную плату, где все интегрально на рассыпухе компактно наговнячено