Купил на днях Samsung Galaxy S 23 Ultra...
Когда узнал что на Galaxy S 23 Ultra можно ставить свой звук при вынимании и вставляя обратно стилус...
Когда узнал что на Galaxy S 23 Ultra можно ставить свой звук при вынимании и вставляя обратно стилус...
Собственно, вот и весь вопрос. Есть скажем слабенький Realme за какие-то 10-12 тыщ. Хоноры или Ксяоми за 30-50. Или вообще Самсунги Ультра, Айфоны за сотку. А есть ли разница в точности определения позиции GPS и записи GPS треков? От программы для записи, я так понимаю, это особо не зависит, она получает данные от датчика...
Мысль была купить дешевый смарт, и таскать его вместо навигатора, а основной телефон использовать для фото и коммуникаций.
В наше время, из-за санкций одноплатники стали стоить каких-то «конских» денег. Даже б/у RaspberryPi Zero стоит 2-3 тысячи рублей на барахолках, что, мягко скажем, не совсем лояльная цена для «самого дешевого одноплатного компьютера в мире». Конечно, Orange Pi Zero всё ещё можно купить в пределах 1.500-2.000 рублей, но как по мне и эта цена не слишком лояльна за те характеристики, который предлагает такой одноплатник. С другой стороны, Android-планшеты 10-летней давности продаются на барахолках по 100-300 рублей, что выглядит гораздо привлекательнее, причём на некоторые устройства практически без костылей можно установить полноценный дистрибутив Linux! Вероятно, многие читатели скажут мол «автор бомж» и будут правы: ведь в рамках этой статьи, я хочу рассказать о том, как использовать полурабочий древний планшет в качестве полноценного одноплатника путём подключения его к микроконтроллеру и выводу GPIO! Сегодня мы с вами: узнаем, как подключить микроконтроллер к шине UART в планшете и научимся работать с последовательной шиной в Android прямо из Java и нативных программ. Интересна моя концепция антикризисного одноплатника? Тогда добро пожаловать под кат!
Пожалуй, нельзя сказать, что подобная концепция пристраивания старых планшетов — вопрос исключительно цены. 2-3 тысячи рублей не такие уж и большие деньги и при желании можно купить хотя-бы Б/У, но всё таки полноценный одноплатник с нормальной GPIO-гребенкой. Однако здесь стоит вопрос не столько дешевизны, сколько E-Waste: зачем выкидывать в помойку потенциально рабочие планшеты с живым процессором, если их можно пристроить куда-то ещё?
На самом деле, планшеты с ROOT-доступом уже из коробки могут выполнять весьма полезные задачи, как, например, хостинг http-сервера для домашней страницы, работать как панель с часиками и погодой, или, например, работать в качестве HMI-панели для оформления заказов в шаурмечной. Кроме того, многие планшеты на базе смартфонных чипсетов (MediaTek, Spreadtrum) имеют полноценный Bluetooth-модуль, что позволяет «подружить» планшет с микроконтроллером через радиоканал, что значительно расширяет возможный спектр применений.
Преимуществ у такого подхода много: у «пожилого» планшета уже есть большой, достаточно качественный (хороший TN, либо даже IPS) дисплей с тачскрином, который поддерживает мультитач, GPU для вывода 3D-графики, 3.5мм для вывода звука + встроенные динамики, а также весьма неплохое, по сравнению с дешевыми одноплатниками, железо. Звучит весьма вкусно для цены в 300 рублей: собрать хоть немного похожую конфигурацию на базе RPi выйдет в 10-15 тысяч рублей (учитывая дороговизну MIPI-матриц с тачскринами + цену самой «малинки» и обвязки для аудиотракта).
Но при всех перечисленных достоинствах, атрибутом любого полноценного одноплатника является наличие GPIO — и даже здесь мы сможем с вами выкрутится! Первый способ, о котором я чуть выше вскользь рассказал, позволяет реализовать общение с МК и «ногодрыг» через BT-радиоканал, но минусы такого подхода очевидны (МК с BT дороже, радиоканал потребляет дополнительную энергию, некоторые могут посчитать BT небезопасным). Однако есть и второй подход, который заключается в использовании диагностических пятачков UART на плате устройства для наших личных целей!
С таким подходом можно использовать как «голый» Linux, используя концепцию, которую я представил в этой статье, так и взаимодействовать из Java-приложений для Android (что даёт уже, как минимум, удобный GUI-фреймворк). Сегодняшняя статья будет «без воды», только чистая конкретика, поэтому давайте перейдем к реализации!
Как я уже говорил выше — в рамках данной статьи мы рассмотрим использование UART в планшете для наших собственных целей. UART — это двунаправленная полнодуплексная цифровая шина, которая позволяет обеспечить стабильную передачу данных при относительно невысокой скорости, измеряемой вбодах. То есть, быстро стримить картинку с её помощью вы не сможете, но сможете, например, получить состояние входов МК, прочитать что-то на шине I2C, используя мост UART -> I2C или, например, прочитать показания датчиков, которые МК предварительно опросил.
Сама по себе концепция очень простая: многие китайские производители планшетов и смартфонов не только разводят UART в виде отдельного пятачка на плате, но и подписывают его, задействуя UART-канал как вывод для логов ядра, а иногда и предоставляя доступ к рутовой консоли! В свою очередь, из юзерспейса мы можем получить доступ к UART с помощью устройства/dev/ttyS<x>на подавляющем числе чипсетов и/dev/ttyMT<x>на MediaTek. Однако учтите, что в некоторых случаях придется патчить загрузчик, дабы редиректнуть логи ядра в /dev/null.
Однако наличие UART на плате — не всегда признак того, что он сконфигурирован в системе верно. Например, на смартфонах с чипсетами SC6820 нормально завести UART я так и не смог, а на некоторых устройствах на базе MT657x нужно патчить загрузчик, дабы он «увидел» нужный канал UART! В моём случае, героем статьи стал планшет Prestigio, у которого отказал тачскрин, но был доступен UART:
Конкретно в моём случае, после установки последней официальной прошивки планшет перестал слать логи на UART и устройство /dev/ttyMT3 оказалось доступным для наших операций, в вашем же случае может потребоваться настройка devicetree, или просто патчинг загрузчика, дабы редиректнуть консоль на другой вывод UART. Кроме того, необходимо обязательно получить root-доступ хотя-бы к adb shell, поскольку доступ к /dev/tty устройствам возможен только от имени суперпользователя. Как же проверить UART на возможность чтения/записи? Сначала нам необходимо взять ESP32 или любой UART-USB преобразователь, припаять сигнальные линии RX/TX и использовать любую программу для работы с последовательным портом, например Putty. Заходим в adb shell, и пишем что-нибудь в консоль:
Вуаля! Всё работает :)
Работает? Замечательно, значит мы сможем использовать планшет вместе с микроконтроллером! Переходим к практической реализации нашего приложения!
Я специально решил выделить для Java-подхода отдельный раздел, поскольку просто взять и открыть /dev/ttyMT3 с помощью FileInputStream не выйдет. Дело в том, что даже несмотря на наличие root-доступа, по факту ни одно Android-приложение его не имеет (за исключением подписанных системных в папке /system/app/) и для всех операций, требующих повышенных привилегий, либо распаковывают и запускают внешнюю нативную программу из под суперпользователя, либо с помощью специального костыля с запуском sh-программ читают/пишут нужные блочные устройства сами. Связано это с тем, что все Android-приложения работают в хост-процессе app_process, который форкается (отпочковывается) от «главного» процесса, который запущен из под «простого» пользователя, который не находится в группе system.
Здесь концепция также очень простая: su имеет аргумент -c, который позволяет запустить команду от имени root-пользователя и возвращает объект процесса, дабы мы потом могли перехватить stdout:
Таким образом, для чтения текстовых данных из UART'а нам достаточно лишь периодически «слушать» stdout команды cat и обрабатывать данные:
Костыль, но со вкусом :) Если вас не устраивает такой подход или ваше приложение значительно более комплексное, вы можете использовать UART и из под нативных программ.
Работа с последовательными портами в Linux не отличается от работы с любыми другими файлами и устройствами: вызовов open, read, write и close обычно хватает и лишь иногда к ним в довесок нужен ioctl.
int fd = open("/dev/ttyMT3", O_RDWR);
int result = write(fd, command, strlen(command));
Для работы с терминалом необходимо использовать модуль termio который предоставляет все необходимые структуры для настройки режима работы терминала, в т.ч и бодрейт. Дело в том, что изначально последовательное устройство настроено на режим работы в качестве терминала, т.е драйвер отдаст данные только после того, как устройство на UART пошлёт \n, или превысит размер внутреннего буфера для сообщения. Если вам нужно работать с бинарными данными и получать их «на лету» — необходимо настроить последовательный порт в «binary» режим:
tcgetattr(modemFd, &tio);
tio.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
tio.c_oflag &= ~(OPOST);
tio.c_cflag |= (CS8);
tio.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
tcsetattr(modemFd, TCSAFLUSH, &tio);
Если же вам достаточно текстового терминального режима, то можно продолжить как есть и использовать fgets, fscanf и прочие удобные функции из libc! О том, как собрать нативную программу для смартфона и как вообще выбросить Android из него, читайте в моей отдельной статье.
Вот таким образом можно использовать проводную шину в планшете для собственных нужд! Как видите, совершенно ничего сложного и используя эти наработки, я реализовал уже не один проект! Надеюсь, материал вам был интересен и полезен :) Пишите своё мнение, можно ли использовать дешевые планшеты по 300 рублей в качестве одноплатников?
Статья была подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю! Ну а больше подробностей о будущем контенте, как обычно, в первом комменте! Также у меня есть свой Telegram-канал, куда я выкладываю свои мысли, советы по ремонту и моддингу различных гаджетов, а также вовремя публикую ссылки на новые статьи!
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
Что выбрать?
Производительность:
* S24 Ultra: лидирует благодаря Snapdragon 8 Gen 3.
* Xiaomi 14 Ultra: Dimensity 9200 ненамного уступает.
* iPhone 15 Pro Max: A17 Bionic обеспечивает высокую производительность, но оптимизирован для iOS.
Камера:
* S24 Ultra: 200 МП + 10 МП + 10 МП + 10 МП.
* Xiaomi 14 Ultra: 200 МП + 50 МП + 12 МП + 5 МП.
* iPhone 15 Pro Max: 48 МП + 12 МП + 12 МП.
Все три телефона отлично снимают, но у S24 Ultra потенциально лучшая детализация.
Экран:
* S24 Ultra: 6.8", Dynamic AMOLED 2X, 1440 x 3088 пикселей.
* Xiaomi 14 Ultra: 6.7", LTPO AMOLED, 1440 x 3200 пикселей.
* iPhone 15 Pro Max: 6.7", Super Retina XDR OLED, 1284 x 2778 пикселей.
У всех отличные экраны, но Xiaomi 14 Ultra имеет более высокое разрешение.
Аккумулятор:
* S24 Ultra: 5500 мАч, зарядка 45 Вт.
* Xiaomi 14 Ultra: 5000 мАч, зарядка 120 Вт.
* iPhone 15 Pro Max: 4352 мАч, зарядка 25 Вт.
Xiaomi 14 Ultra лидирует по скорости зарядки, но S24 Ultra имеет более емкий аккумулятор.
Цена:
* Xiaomi 14 Ultra: ≈ 723 USD.
* S24 Ultra: ≈ 850 USD.
* iPhone 15 Pro Max: ≈ 1099 USD.
Xiaomi 14 Ultra - самый доступный вариант.
Выбор:
* Максимальная производительность и камера: S24 Ultra.
* Быстрая зарядка и доступная цена: Xiaomi 14 Ultra.
* Экосистема Apple: iPhone 15 Pro Max.
Рекомендую ознакомиться с обзором:
* Битва титанов на YouTube: https://m.youtube.com/watch?v=ulNFFUvoorA
Мы уже не раз говорили о «мигрирующих» технологиях из других стран в Россию, которые в дальнейшем представляются как «отечественные». Черный рынок импортируемого «железа» влечет за собой не только проблемы в импортозамещении, работе Реестра и т.п., но также формирует большую проблему в разработке ПО. Хорошим примером здесь может являться отечественная оперативная система для мобильных телефонов «Аврора».
Сразу скажем, что данная статься пишется не с целью критики импортозамещения в сфере информационных технологий, а с целью выявления процессов, которые криминализируют и подрывают этот процесс.
Разработка ОС «Аврора» ведётся с 2016 года российской компанией «Открытая мобильная платформа». «Аврора» задумывалась и разрабатывалась специально для российского корпоративного сегмента с защищенной мобильной инфраструктурой. Основной клиент ОС это большие корпорации и госкомпании, которым необходим повышенный уровень ИБ, в том числе для контроля внутренних данных и личных устройств сотрудников. «Аврора» добавлена в реестр отечественного ПО и имеет несколько сертификатов безопасности: ФСБ России АК1/КС1 и АК2/КС2, ФСТЭК на платформу управления и ФСТЭК А4.
Тем не менее об Авроре знают достаточно узкий сегмент интересующихся, а пользовались и того меньше. В чем заключается проблема и при чем тут черный рынок импортируемых комплектующих?
Одним из ключевых минусов «Авроры» является ее низкая сочетаемость с привычными девайсами: iPhone, Samsung, Xiaomi, HONOR, Huawei и другими. А точнее она с ними совершенно не дружит. Для использования «Авроры» необходимы уникальные устройства. Это сложная, долгая и дорогостоящая задача, решение которой было сделано далеко не самое верное. Для «Авроры» начали разрабатываться гаджеты из китайских компонентов, которые были представлены как отечественные. Результат – силы, мощности и мозги потрачены на дорогостоящее «переизобретение» доступных и дешевых китайских смартфонов, которые мы не можем обслуживать, так как не обладаем контролем над производством компонентов.
Несмотря на очевидную бесперспективность такого направления, попытка была предпринята. Ростех создал смартфон AYYA T1 на «Авроре», и из партии в пять тысяч устройств продал 905 штук за два года. Продажам не помог даже уход иностранных брендов с рынка. Также не помог и запрет на пользование продукцией Apple в рабочих целях.
Другая существенная проблема «Авроры» - это изоляция. Изоляция в нескольких направлениях.
Нишевая изоляция
Напомним, что «Аврора» это, в первую очередь, корпоративные и госклиенты. Однако, они не могут использовать её полноценно, потому что им нет полного спектра профессиональных приложений. Если компания или учреждение вводит «Аврору», то им необходимо закладывать отдельные расходы на разработку новых приложений, их тестирование и т.д. Это ведет к следующей проблеме
Кадровая изоляция
И если это не совсем изоляция, но приводит проблема нехватки квалифицированных кадров именно к изоляции ОС. В силу ограниченного спектра пользователей, начинающие разрабы и тестировщики предпочитают iOS или Android. Больше клиентов, рынок более подвижен или возможностей большей. Таким образом, Аврора остается обделена профессиональными кадрами.
Технологическая изоляция
В силу того, что проблема самих гаджетов, для которых «Аврора» писалась, была решена не совсем корректно, получилось так, что с технической точки зрения все, с чем сочетается «Аврора», является китайскими гаджетами, собранными в России. В контексте времени, это только увеличивает возможности кибератак, снижает защищенность и уровень контроля над устройством.
Видимо, такие истории неизбежны в процессе становления отечественного рынка IT решений. Как мы уже сказали выше, это лишь пример того, как не стоит делать,
Как часто Вы задумываетесь о разрешении экрана Вашего смартфона? Вероятно, не так часто, пока он не начнет выдавать странные цвета или размывать изображения. Но знаете ли вы, что этот параметр может существенно повлиять на Ваш ежедневный опыт использования телефона? 🤯
Разрешение экрана - это количество пикселей, которые он может отображать по вертикали и горизонтали. Чем выше разрешение, тем более четким и детализированным будет изображение. Но стоит ли всегда гнаться за максимальным разрешением? 🤔
Во-первых, высокое разрешение экрана может повысить потребление энергии, что негативно скажется на работе аккумулятора. Во-вторых, если Вы не планируете заниматься профессиональной фотосъемкой или редактированием видео на своем телефоне, то, вероятно, Вам не нужно так много пикселей. 😅
Однако, если Вы любитель игр или кино, то высокое разрешение экрана может стать для Вас настоящим подарком. Изображение будет более насыщенным и детализированным, что значительно улучшит Ваш опыт. 🎮🎬
Так что, прежде чем купить новый смартфон, задумайтесь, на что Вы собираетесь его использовать. Если Вам нужно только звонить и читать сообщения, то высокое разрешение экрана - это скорее излишество. А если Вы планируете использовать телефон для игр и просмотра контента, то этот параметр стоит учитывать. 🤓
Бюджетный сегмент (до 20 000 рублей):
* Realme C50s:
* Мощный процессор Unisoc T616.
* 6.58" HD+ дисплей.
* Тройная камера 50 МП.
* Аккумулятор 5000 мАч.
* Цена: около 12 000 рублей.
* Samsung Galaxy A15:
* Процессор MediaTek Helio G88.
* 6.6" FHD+ дисплей.
* 48 МП камера.
* Аккумулятор 5000 мАч.
* Цена: около 15 000 рублей.
* POCO M5s:
* Процессор MediaTek Helio G96.
* 6.43" AMOLED дисплей.
* 64 МП камера.
* Аккумулятор 5000 мАч.
* Цена: около 18 000 рублей.
Средний сегмент (20 000 - 40 000 рублей):
* Realme 9i:
* Процессор Snapdragon 680.
* 6.6" FHD+ дисплей 90 Гц.
* 50 МП камера.
* Аккумулятор 5000 мАч.
* Цена: около 23 000 рублей.
* Samsung Galaxy A54 5G:
* Процессор Exynos 1280.
* 6.5" Super AMOLED дисплей 120 Гц.
* 64 МП камера.
* Аккумулятор 5000 мАч.
* Цена: около 32 000 рублей.
* Xiaomi Redmi Note 12 Pro:
* Процессор MediaTek Dimensity 920 5G.
* 6.67" AMOLED дисплей 120 Гц.
* 108 МП камера.
* Аккумулятор 5000 мАч.
* Цена: около 35 000 рублей.
Флагманский сегмент (от 40 000 рублей):
* Samsung Galaxy S24:
* Процессор Snapdragon 8 Gen 2.
* 6.1" Dynamic AMOLED 2X дисплей 120 Гц.
* 108 МП камера.
* Аккумулятор 4000 мАч.
* Цена: от 70 000 рублей.
* Apple iPhone 15:
* Процессор Apple A17 Bionic.
* 6.1" OLED дисплей 120 Гц.
* 48 МП камера.
* Аккумулятор 3800 мАч.
* Цена: от 80 000 рублей.
* OnePlus 11 Pro:
* Процессор Snapdragon 8 Gen 2.
* 6.7" LTPO3 AMOLED дисплей 120 Гц.
* 50 МП камера.
* Аккумулятор 5000 мАч.
* Цена: от 65 000 рублей.
Помните:
* Цены могут меняться.
* **Перед покупкой