LINUX.ORG.RU

Возможна ли на практике передача пары мегабайт данных по BT от внешнего устройства в Android-приложение в спящем телефоне?

 , ,


0

2

Самодельный девайс на базе какой-то ARM-платки с BT-интерфейсом лежит на столе, телефон лежит в кармане в обычном спящем режиме. Беру устройство, нажимаю на нём кнопку, устройство думает и сливает «в телефон» (в моё самописное android-приложение) 5 мегабайт произвольных данных в пределах минуты, а приложение это обрабатывает и засылает на какой-то сервер в интернете. Возможно ли такое на практике? Судя по тому, что умные браслеты что-то там сливают в телефон иногда, вопрос имеет право на жизнь, но я не знаю когда они это сливают - возможно только когда юзер берёт в руки телефон происходит этот апдейт?

Есть какие-то принципиальные препятствия в современных аппаратно-софтварных архитектурах типичных android-телефонов на то, чтобы какое-то спаренное с ними BT-устройство внезапно в любой момент времени по своей инициативе начало лить «в телефон» (в какое-то приложение) мегабайты данных, когда телефон просто спокойно спал на столе?

Дайте пару ключевых слов, названий каких-то методов API в андроиде, в которые мне надо погуглить, чтобы понять всю эту картину и что-то попробовать поделать?

Устройство - его пока нет, но предположительно это будет raspberry pi zero 2w с каким-то самописным софтом на сишечке. Задача устройства будет по нажатию кнопки проснуться, начать запись и кодирование звука в OPUS 25kpbs, а после минуты записи слить это по BT в приложение на телефоне. Этакий тупой диктофон для быстрых речевых заметок без собственных мозгов. Кстати принимаются советы о том, какую компактную ARM-платку можно поюзать для оцифровки звука с внешнего микрофона: у этого zero 2w я чё-то не нашёл встроенного audio adc. Нужен хотя-бы 1 канал 44100 hz и питание на электретный микрофон, ну либо mems-микрофоны встроенные в платку, что менее удобно, поскольку хочется подключить проводную гарнитуру.



Последнее исправление: lesopilorama (всего исправлений: 1)
Ответ на: комментарий от Stanson

Но у тебя денег нету такой купить. Поэтому ты хочешь за 3 копейки сделать себе аналогичный.

Ну денег у меня точно в разы больше твоего, но цель-то не сделать аналогичное. Ты жопой там что-ли тред читаешь? Причём не своей? Тред же не про создать микрофон, который позволяет риалтайм записывать что-то в любом приложении андроида, а записать вовне и скинуть массив байтиков. Жесть сколько раз ещё повторять-то.

lesopilorama
() автор топика
Ответ на: комментарий от Stanson

BT модуль в режиме A2DP source (или вообще кастомный протокол) + собственное приложение?

Не работает оно так в современном мире, как уже объяснялось, иначе на рынке бы было полно BT-микрофонов, а они все через кастомный USB-C хост работают по какому-то своему радиопротоколу.

Так почему бы не сделать его точно так же как сделаны дорогие качественные микрофоны

Так и не понял кстати чо в них может быть дорогого, если блютутх чипы китайцы клипают вагонами, а MEMS-микрофоны с исключительно бомбическим качеством стоят тоже три копейки. Штатный микрофон, который стоит в среднестатистической мобиле samsung - пишет звук просто суперо-окуительно, но целый телефон с ним в составе стоит дешевле, чем эти оверпрайсные странные беспроводные микрофоны. Думаю вас там разводят с ценой, просто серия маленькая у них, покупанов мало.

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 1)
Ответ на: комментарий от Stanson

Или тебе надо куда-то малину пристроить? Так она жрёт на порядки больше чем BT модуль.

Жрать-то она будет только когда ты пишешь голосовую заметочку. Там немного. С кирпичом ты обоссался там далее по тексту.

Вообще, конечно, забавная смесь высокомерия и невежества. У тебя в роду каких-нибудь Виндзоров поганых не было?

Ты какой-то стрёмный и слабо шарящий. Это гораздо хуже, чем высокомерие и предки-виндзоры шизанутые.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Непонятно как работал

Раз 10 объяснил, а ему непонятно :)

работают через usb-c кастомный приёмник.

Или напрямую по Bluetooth через специальное приложение. Инструкцию читал?

странно почему они от блютутха уходят?

Кто уходит?

Ну денег у меня точно в разы больше твоего

Так купи тыщ за 15 себе качественный микрофон Bluetooth, а не тупи на форуме.

Тред же не про создать микрофон, который позволяет риалтайм записывать что-то в любом приложении андроида, а записать вовне и скинуть массив байтиков.

Ты не поверишь, но абсолютно все BT микрофоны именно так и работают. Оцифровывают фрагмент звукового сигнала, сжимают его и скидывают массив байтиков. :)

Жесть сколько раз ещё повторять-то.

От того что ты свою бессмысленную пургу повторишь ещё 100500 раз она от этого смысл не приобретёт.

Не работает оно так в современном мире, как уже объяснялось, иначе на рынке бы было полно BT-микрофонов

Всё прекрасно работает. На рынке полно BT-микрофонов. Обычные HFP/HSP от 1 тыр. С высоким качеством (типа 44000 16 и иногда стерео) от 15 тыр. Выбираешь и покупаешь.

Жрать-то она будет только когда ты пишешь голосовую заметочку. Там немного.

Ага, для малины это выглядит так - включиться, загрузить систему, поднять соединение, передать данные, зашатдаунится. :)

С кирпичом ты обоссался там далее по тексту.

Да это ты срёшь тут кирпичами :) Ну какой нормальный человек будет по десятку ответов на одно сообщение писать? :) :) :)

Ты какой-то стрёмный и слабо шарящий.

Потому что натыкал носом в то как надо делать, но у тебя лапки и денег нету? Конечно это стрёмно для ардуинщика.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Всё прекрасно работает. На рынке полно BT-микрофонов. Обычные HFP/HSP от 1 тыр. С высоким качеством (типа 44000 16 и иногда стерео) от 15 тыр. Выбираешь и покупаешь.

Никуя нет. HFP/HSP говнища навалом, а дальше пустота на рыночке.

lesopilorama
() автор топика

Ещё раз поясню чё хочется: не хочется зависеть от телефона во время говорения. Телефон чисто как роутер, через что когда-нибудь оно уйдёт. Вместо телефона девайс может научиться работать через wi-fi домашнего роутера в какой-то момент. Девайс должен быть туп и максимально прост и практичен, как пистолет, рация, ласты, очки - предполагает понятный годами не меняющийся и надёжный тип работы: достал, кнопку нажал, наговорил, пикнуло - заепца. То есть, буквально как диктофон у Малдера и Скалли из сериала Икс Филес, когда они труп вскрывают. Но диктофон чуть поумнее - такой, который скинет это по BT в телефонное приложение или возможно по wi-fi сразу мне на сервер - опции зашиваются в девайс через UART какими-то тупыми кастомными параметрами. Качество, с которым эта штука пишет звук тоже хочется иметь топовое, определяемое только моей реализацией - банально стабильный OPUS 25kbps одинаковый всегда.

В чём проблема с блютусными «хорошими» микрофонами: телефон где-то есть в момент говорения, 2.4 ghz эфир чист во время говорения, в телефоне села батарейка - ты лососнул лососца - опять прямая зависимость от телефона. В телефоне играет музон через BT наушники - тебе пися, ты должен пойти остановить воспроизведение, потому что BT может не осилить туда-сюда этот ваш A2DP полный доплекс не вывезет.

В дефолтных линуксах и андроидах «входящий» высококачественный A2DP вообще не реализован никуя, тупо не вкомпилен туда. Поэтому все bluetooth-микрофоны высокого качества стримят какие-то свои проприетарные байтики в какое-то своё приложение - ну то есть пойди запусти это приложение сначала. Как-то так. Короче это уже всё вторично - этого тупо уже тупиковый ненадёжный путь.

Базово девайс имеет 3 кнопки, 1-2 микрофона и дырка под jack 3.5 mic и светодиод для пикания.

кнопку А нажал и подождал когда красный замигал - говоришь кнопку А нажал ещё раз - встало на паузу, горит жёлтый - тут обдумываешь мысль дальше кнопку А нажал - продолжается запись, горит красный кнопку Б нажал - всё отменилось и выключилось кнопку С нажал - радостно помигало сохранило и выключилось (коммит)

Можно как в рации: держишь - оно пишет. И 2 кнопки - «отмена», «сохранить».

Дальше что там происходит определяется прошивкой и настройками через UART изменяемыми изредка. Типа там адрес точки доступа, пароль, куда скидывать, когда, битрейт кодирования, вся куйня. Тащемта всё.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

в телефоне села батарейка - ты лососнул лососца - опять прямая зависимость от телефона.

Я бы начал с того сколько ты хочешь иметь возможность работы от аккума своего диктофона(режим работы + режим ожидания + режим передачи данных периодически). И какой вес аккумулятора будет приемлим. И отсюда рассчитать приемлимое потребление платы.

Так RPi хорош если от сети, так как там полноценный Linux но вот стартовать он будет от 15 секунд а значит его прийдется держать в режиме ожидания(надо смотреть сколько он в этом режиме будет потреблять).

С другой стороны ESP32 и тому подобные будут стартовать меньше чем за секунду и должны потреблять меньше RPi но там обычно нету полноценного Linux и надо какой-либо RTOS ставить а значит больше возни с программированием, зато больше контроль за железкой.

V1KT0P ★★
()
Ответ на: комментарий от V1KT0P

Так RPi хорош если от сети, так как там полноценный Linux но вот стартовать он будет от 15 секунд а значит его прийдется держать в режиме ожидания(надо смотреть сколько он в этом режиме будет потреблять).

Но можно же работать с ним аналогично ESP32, то есть клепать самодельный бинарь вместо линукса.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Но можно же работать с ним аналогично ESP32, то есть клепать самодельный бинарь вместо линукса.

Сомневаюсь что под RPi свой бинарь будет проще. В случае ESP32 работа с любым устройством BT или Wifi предполагается самостоятельно либо небольшой библиотекой которая не зависит от ОС. В случае RPi предполагается Linux и использование драйверов для BT или Wifi, как бы не пришлось портировать сложные линуксовые драйверы в свой бинарь, я бы сперва это дело проверил.

V1KT0P ★★
()