• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

BLE модули TB-04/TB-03F (TLSR8253F512)

nikolz

Well-known member
Это вы про TOF? Скорее всего он не подойдет. Объектов будет много, они все высокоподвижны и их нужно отличать друг от друга.
ps: Чувствую что огребу проблем с их подвижностью и на ble, но в качестве макета думаю оно должно справится. Особенно если выкрутить в ноль мощность маячка (чтобы его видели только ближайшие к нему приемники)
Если объекты подвижны, то ничего не получится.
Они будут забивать друг друга в эфире. В итоге у Вас уйдет много времени на оценку мощности сигнала.
Почитайте учебники по радионавигации. Вы хотите использовать амплитудный метод - это самый неточный метод.
--------------
Если хотите делать пеленг положения объекта то надо делать как в авиации в прошлом веке.
объект пеленгует три станции и по ним вычисляет свои координаты, потом передает их на землю.
В этом случае постоянно работают лишь станции-маяки.
-------------------
TOF позволяет пеленговать несколько объектов одновременно.
 

pvvx

Активный участник сообщества
Они будут забивать друг друга в эфире.
С какого фигу?
А - видимо опять "погулять" и очередные выдумки наплодить, чтобы вам разжевывали?
Без объяснений - тупой usb-bt свисток BT4.0(!), без антенн, торчит из usb разъема пластмассой на 4 мм - антенна где-то там в нутре разъема :)
Вот уже пол года принимает:
1646461852835.png
25 только зарегистрированных устройств и нет никаких недочетов, разрывов, глюков и т.д. Это вам не ESP и WiFi :p
Охват - весь домик 6x6, в каждом углу, полу, чердак и т.д. и улица.
Из них только по интересующим для наблюдения температурам:
1646462117621.png
Так что гуляйте мимо, раз не шарите :p
 

pvvx

Активный участник сообщества
Уж лучше поговорите о чем потупее :)
К примеру о обогреве всего этого хозяйства:
1646462808659.png
Потребление единственного обогревателя и внешняя температура.
 

pvvx

Активный участник сообщества
ps: Чувствую что огребу проблем с их подвижностью и на ble, но в качестве макета думаю оно должно справится. Особенно если выкрутить в ноль мощность маячка (чтобы его видели только ближайшие к нему приемники)
Для примера стационарный прием от стационарных датчиков BLE- уровни RSSI (те, что ещё не удалил для записи в базу, проглядел, а то жрут SSD в "HA" ныне уже по 4GiB в сутки...):
1646463474390.png
 

pvvx

Активный участник сообщества
А для nikolz - Солнышко начало вылезать из за леса :)
Можно запитывать датчики от солнечных панелек, но не каждый день:
1646464579745.png
 

nikolz

Well-known member
Это вы про TOF? Скорее всего он не подойдет. Объектов будет много, они все высокоподвижны и их нужно отличать друг от друга.
ps: Чувствую что огребу проблем с их подвижностью и на ble, но в качестве макета думаю оно должно справится. Особенно если выкрутить в ноль мощность маячка (чтобы его видели только ближайшие к нему приемники)
У вас объекты летают или ползают?
Какая максимальная скорость?
как часто Вы хотите определять их местоположение?
В зависимости от этого можно более конкретно оценить возможность хотелки, прежде , чем пилить.
 

pvvx

Активный участник сообщества
У вас объекты летают или ползают?
Это имеет какое-то значение?
Какая максимальная скорость?
как часто Вы хотите определять их местоположение?
Говорят, что максимальная скорость равна "скорости света", но она не равна скорости передачи информации.
Для детей есть пример - светим лазером на один край Луны и перемещаем луч на другой. Получаем время перемещения пятна более скорости света.
Вы про этот случай?
В зависимости от этого можно более конкретно оценить возможность хотелки, прежде , чем пилить.
Хотелки не зависят от физических единиц.
Определение положения с описанными вариантами от ТС используется только для двух случаев:
1. Игры-соревнования пионеров. Т.е. выбрать "победителя" - создать иерархию.
2. Наказание рабов. Тут все требуемые характеристики, необходимые в реализации устройства, уже известны.
 

pvvx

Активный участник сообщества
Если хотите делать пеленг положения объекта то надо делать как в авиации в прошлом веке.
объект пеленгует три станции и по ним вычисляет свои координаты, потом передает их на землю.
В этом случае постоянно работают лишь станции-маяки.
Вам о чем ни будь говорит название "Bluetooth LE" с сравнении с другими RF технологиями?
Потребление маяка в "Bluetooth LE" на порядки меньше, чем постоянно принимающего устройства.
Это не реактивный самолет, у которого бп на Мегаватты, да и даже он может выдать импульс в Гигаватты выкинув в сопло разовые электроды и ядовитую примесь в топливо, без существенных потерь на тягу. Такое пеленгуется и на другой стороне шарика...
 
Прошу прощения исчезал на время, перекинули на другой проект.

У вас объекты летают или ползают? Какая максимальная скорость?
Бегают :) метр - два в секунду максимум.

как часто Вы хотите определять их местоположение?
Пропорционально максимальной скорости их перемещения вестимо. Лучше с двойным запасом.

Почитайте учебники по радионавигации. Вы хотите использовать амплитудный метод - это самый неточный метод.
Тут задача несколько отличается от типовой для радиолокации. Там пеленгуемый объект всегда находится вне воображаемой прямой линии от одного радара до другого(да и чаще всего вообще вне плоскости на которой расположены эти радары). В моем-же случае объект напротив всегда находится на пересечении линий нескольких "радаров" . Я приводил достаточно похожий пример. Представьте себе что маячки встроены в биллиардные шары, а приемники равномерно расположены по периметру стола или даже под(над) его поверхностью.
sshot-12.jpg
В принципе, при необходимости, можно наладить перекрестный обмен информацией и между "шариками" (типа шарик один "видит" шарик два, а шарик три не "видит").

Для примера стационарный прием от стационарных датчиков
папа децибелл всего колебания? имхо можно пренебречь.
 
Как пока я вижу решение задачи в первом приближении.

В качестве приемников используем проект AdScanerTrg уважаемого pvvx. По возможности упрощаем его код до состояния при котором он только собирает уровни сигнала с находящихся рядом с ним "маяков" и рассылает их в виде рекламы в эфир.

Дальше в ход вступает смартфон, он подписывается на рекламу от предопределенных приемников (для начала 4 штук) и ведет базу местоположений маяков, о которых ему докладывают приемники. Дальше надо будет нарисовать картинку биллиардного стола из сообщения выше с расположенным на нем маячком(маячками) . Как то так.
 

nikolz

Well-known member
Как пока я вижу решение задачи в первом приближении.

В качестве приемников используем проект AdScanerTrg уважаемого pvvx. По возможности упрощаем его код до состояния при котором он только собирает уровни сигнала с находящихся рядом с ним "маяков" и рассылает их в виде рекламы в эфир.

Дальше в ход вступает смартфон, он подписывается на рекламу от предопределенных приемников (для начала 4 штук) и ведет базу местоположений маяков, о которых ему докладывают приемники. Дальше надо будет нарисовать картинку биллиардного стола из сообщения выше с расположенным на нем маячком(маячками) . Как то так.
Не в обиду будет сказано, но Вы делаете типичную ошибку аля-кулибина - Начинаете строительство дома с найденного на свалке кирпича.
----------------------------------
А хорошо бы начинать хотя бы с проекта.
----------------------------
Чтобы выбрать материал строительства хорошо бы сначала посчитать хотелки.
---------------------------
Из ваших ответов непонятно (возможно пропустил) следующее:
Какой размер всего поля, по которому бегают шарики?
С какой точностью (погрешностью ) Вам надо определять местоположение шариков.
--------------
Пример для наглядности,
Допустим , что поле 2x2 метра, тогда шарик пролетает его за 1 секунду
Если есть 10 шариков, и каждый посылает рекламу через 0.1 секунды,
то очередной опрос шарика будет через секунду.
В итоге , первый раз -шарик был у одного борта,
а второй - у другого. и так для всех десяти.
---------------
Вопрос - оно вам надо?
 

pvvx

Активный участник сообщества
Пример для наглядности,
Допустим , что поле 2x2 метра, тогда шарик пролетает его за 1 секунду
Если есть 10 шариков, и каждый посылает рекламу через 0.1 секунды,
то очередной опрос шарика будет через секунду.
nikolz - есть такая наука - математика. В ней есть дробные числа и разные представления для написания. Например в десятичной системе счисления. И написание "0.1" есть одна десятая часть. Т.е. в одной единице содержится 10 частей "0.1".
И от грузчика двигающегося 1 метр в секунду будет принято 10 точек через каждые 10 сантиметров.
Вопрос - оно вам надо?
Безусловно. Кол-во передвижений каждого грузчика создает кол-во корочек хлеба выдаваемых ему, с вычетом разбитого товара.
 
А хорошо бы начинать хотя бы с проекта.
В данный момент я делаю "протип", демонстрационный образец. О реальном проекте речь пойдет сильно позже ( если вообще пойдет ).

Какой размер всего поля, по которому бегают шарики?
Примерно хоккейно-волейбольная площадка. Меньше футбольного поля, вероятнее всего достаточно большая комната. Давайте вместо биллиарда используем в качестве примера хоккей. Маячки в карманах у хоккеистов. датчики по периметру площадки аналогично лузам в биллиардном столе.

Если есть 10 шариков, и каждый посылает рекламу через 0.1 секунды... то очередной опрос шарика будет через секунду.
А разве опрос не будет параллельным? шарики посылают рекламу через 0.1 независимо друг от друга. Приемник принимает уровень их сигнала с максимально доступной ему скоростью сканирования эфира (не устанавливая с ними соединения). Предположим цикл сканирования занимает 0.5 секунды. Если все 10 шариков поменяют свое местоположение приемник узнает о всех 10 шариках через 0.5 .. 1.0 сек.
 

pvvx

Активный участник сообщества
Предположим цикл сканирования занимает 0.5 секунды. Если все 10 шариков поменяют свое местоположение приемник узнает о всех 10 шариках через 0.5 .. 1.0 сек.
Цикл сканирования занимает время приема рекламы, т.е. миллисекунды. Приемник может быть включен всегда и прием ведется по прерыванию. После приема рекламного пакета возможна его ретрансляция во что угодно, или накопление и последующая передача.
Ваш разговор уже ушел в стадию обучения nikolz.
Вопрос - оно вам надо?
 

pvvx

Активный участник сообщества
Специфика выбранного SDK от Telink к данному модулю не может включать режим сканирования когда угодно. Отключать может. Включать - нет. Включение сканирования происходит только при объявлении включения режима сканирования в режиме рекламы и включается после события передачи рекламы (beacon) автоматически. Устройство обязано объявить себя перед сканированием.
Есть варианты обхода этого правила... Спрашивайте у nikolz :)
 
Отключать может. Включать - нет.
Но как я понял он может однажды его включить и никогда не выключать? Меня это вполне устраивает. тут немного подумал и решил что в первом приближении не нужно делать отдельный "маячок" для шарика, разве что потом когда задумаюсь об потреблении батареек. А пока можно использовать приемники как передатчики.
 

pvvx

Активный участник сообщества
Тут показана возможная диаграмма:
Сканирование включается после передачи рекламы автоматически, а отключение сканирования программно.
Т.е. если в режиме рекламы включить опцию сканирования, то приемник начинает работать только после передачи рекламных пакетов и происходит это автоматически.
А задание-вызов функции включения рекламы начинает работать (сама передача рекламных пакетов) после паузы в заданный интервал рекламы.
Т.е. вызвав функцию включения сканирования придется ждать следующей рекламной передачи и уже после неё включится сканирование.
По другому включить приемник в SDK не представлено.
 

pvvx

Активный участник сообщества
Для режима мастер есть функция соединения, которая тоже включает приемник (сканирование), но она приведет к соединению. Таково её назначение.
Но как я понял он может однажды его включить и никогда не выключать?
Да. Но должен быть включен режим рекламы и она должна работать, т.к. её события вызывают включение и обработку-арбитраж приемника (распределение интервалов переключений по каналам и если заданы - паузы).
Меня это вполне устраивает. тут немного подумал и решил что в первом приближении не нужно делать отдельный "маячок" для шарика, разве что потом когда задумаюсь об потреблении батареек. А пока можно использовать приемники как передатчики.
Очень сложно не сделать простой "маячок", т.к. SDK именно на это и заточена. "Мачок" имеет самый минимум текста программы, в отличии от других функций. :)
 

pvvx

Активный участник сообщества
В BLE сложный тайминг RF – это и вызывает массу зависимостей. И чем он лучше организован, тем меньше пропусков приема при распределении time-line на передачи. А меньше пропусков и точное временное распределение = меньше потребление. Чего не сказать о BLE в ESP.
ESP32 и т.д. не может работать на своих RC генераторах в BLE - не хватает точности их хода и учетов времени включения отключения спящих режимов...
 

nikolz

Well-known member
В данный момент я делаю "протип", демонстрационный образец. О реальном проекте речь пойдет сильно позже ( если вообще пойдет ).



Примерно хоккейно-волейбольная площадка. Меньше футбольного поля, вероятнее всего достаточно большая комната. Давайте вместо биллиарда используем в качестве примера хоккей. Маячки в карманах у хоккеистов. датчики по периметру площадки аналогично лузам в биллиардном столе.



А разве опрос не будет параллельным? шарики посылают рекламу через 0.1 независимо друг от друга. Приемник принимает уровень их сигнала с максимально доступной ему скоростью сканирования эфира (не устанавливая с ними соединения). Предположим цикл сканирования занимает 0.5 секунды. Если все 10 шариков поменяют свое местоположение приемник узнает о всех 10 шариках через 0.5 .. 1.0 сек.
Размер поля уточнили. Теперь давайте уточним скорость движения . Если по полю ходят люди пешком, то это 1-2 м в секунду, а если это хоккей, то это до 50 метров в секунду (рекорд для хоккеистов)
-----------------
Далее про то сколько ms или секунд Вы будете принимать и передавать
Действительно, время передачи короткого пакета BLE порядка 3 ms . Но Ваши шарики должны передавать последовательно, так как принять одновременно Вы можете лишь от одного.
Если шарики будут излучать рекламу скажем через 0.1 сек, то все 10 шариков вы примите не раньше чем через 1 секунду. А с учетом того, что эфир будет ими засран, реально будет гораздо дольше.
Но даже если будет 1 секунда, то Ваш смартфон должен принимать данные каждые 0.1 сек успеть их обработать и что-то с ними делать (показать он их вам точно не успеет)
----------------------
Относительно проекта, Вы не поняли.
Проект - это расчеты на бумаге, а не пайка паяльником.
-------------------------------
Просчитать всегда менее затратно,
голова же не только ,
чтобы говорить и шапку носить, иногда ей полезно думать.
--------------------
Но если думать лень, то можно начать пилить, паять, рубить, копать, а потом начать думать.
 
Сверху Снизу