Вы скажете, что я грохнулся с дубу - но это проблемы дуба, так что знакомьтесь с еще одним моим небольшим проектом:
Advanced System for Automotive Interface (ASAI)
Начнем по порядку - Относительно недавно отец взял Шкоду Фелицию 1.3
Не сказать что машина плохая, просто обслуживайте в нужное время и все ¯\_(ツ)_/¯
Небольшая вырезка из истории (кому лень - пропускайте):
В общем в машине +- настроили механику, просто заказываем новые детали начиная и обновляем. Но как-то подумали, что действительно было бы круто поставить хоть какие нибудь мозги для управления машиной (Ибо сейчас грубо говоря она работает на физических законах). Так что было принято решение начать этот небольшой проектик
Какие основные задачи/функции для ASAI могу выделить:
- Вывод на яркий 9 дюймовый дисплей с соотношением сторон 3 на 4 (С тачскрином естественно)
- Поддержка автономной записи с 4-х камер + 1 микрофон (у водителя) на SSD/HDD диск (С низким потреблением электроэнергии)
- GPS, навигатор, построение маршрута и тд.
- Аудио система - благодаря кастомизации мы можем сами установить любые динамики и сабвуферы
- Поддержка воспроизведения музыки с Блютуза (звонки тоже, поэтому нужен микрофон у водителя)
- Управление и вывод информации с внутренностей движка (Например открытие клапана по кол-ву оборотов)
- И когда будем добавлять подсветку в салон, то ее управление с ASAI было бы неплохим решением (Светомузыка дааа 🤩)
Считайте это самописный бортовой компьютер, полностью контролируемый и с открытым исходным кодом
Писать я буду очевидно на С++, но если придется писать драйвера на линуксе, то еще займусь С
Проблем с электроникой не будет, ведь все будет завязано вокруг сервоприводов (открытие на определенный угол) + Мосфеты (Включение/Выключение силовой электроники, замена старым релюшкам)
Конкретно про внутрянку ASAI:
- Дисплей возьму от планшетов, не стану брать готовые дисплеи для Rapberry Pi. Да, мы не ищем легких путей... А вообще они TFT'шные (Первые сенсорные телефоны использовали их кста), ультра темные и лагучие.
- Виновником торжества думал брать Raspberry Pi 3B+, но ее GPU аппаратно ограничен для дисплеев уровня планшетов и тд.
- От чего взял +- компромиссное решение - STM32H750. Этот микроконтроллер (?) имеет несколько ядер, способен запустить минимальный линукс, а самое главное - в него вшит модуль для общения с дисплеями любого уровня! (Дак еще оно полностью программируемое, кайф же. Кому интересно - я про
- Ну а раз STM32H750 имеет много всего, то думаю возьму ее вместо Rapberry Pi 3B+ (Тем более программатор у меня есть, а я всегда хотел поиграться с STM)
Основные задачи (Да, я любитель все делить на задачи):
- Выбрать дисплей, разобраться с его подключением и как бы выглядел его код (в теории)
- Купить дисплей, STM, подключить их и написать минимальный рабочий код для вывода на дисплей + обработка тачскрина
- После - взять самое легковесное ядро Линукса (чтобы не париться над многозадачностью, разделение процессов, файловой системой и тд. да еще и гит будет :3)
- И переписать рабочий код в драйвер под линукс (На С, даааа)
- И как только 7 кругов ада будет окончены, я смогу приступить к написанию программной базы ASAI, который будет состоять из центрального модуля + модуль рендера UI. А остальные просто будут дописываться и добавляться (Как раз изучу CMake)
Как-то так, всем доброе утро а я спать :)
Advanced System for Automotive Interface (ASAI)
Адаптивная Система Автомобильного Интерфейса (АСАИ/АСАЙ)Начнем по порядку - Относительно недавно отец взял Шкоду Фелицию 1.3
Не сказать что машина плохая, просто обслуживайте в нужное время и все ¯\_(ツ)_/¯
Небольшая вырезка из истории (кому лень - пропускайте):
Предыдущий хозяин поставил 100-ватные фары (какого болта? Сам не знаю). И итогом когда он их включал, то потребление было такое большое, что аккумулятор не заряжался, а разряжался. Но раз уж он разряжается, то это 100% проблема аккумулятора (нет). Они взяли в КАЖДУЮ ШТУКУ В САЛОНЕ (Кондиционер, Приборка, Радио, Задние камеры и тд.) поставили СУКА ВЫКЛЮЧАТЕЛЬ! (типа модульно включил что тебе надо и все). То что мы с оцтом приахерели, ничего не сказать :)
В общем в машине +- настроили механику, просто заказываем новые детали начиная и обновляем. Но как-то подумали, что действительно было бы круто поставить хоть какие нибудь мозги для управления машиной (Ибо сейчас грубо говоря она работает на физических законах). Так что было принято решение начать этот небольшой проектик
Какие основные задачи/функции для ASAI могу выделить:
- Вывод на яркий 9 дюймовый дисплей с соотношением сторон 3 на 4 (С тачскрином естественно)
- Поддержка автономной записи с 4-х камер + 1 микрофон (у водителя) на SSD/HDD диск (С низким потреблением электроэнергии)
- GPS, навигатор, построение маршрута и тд.
- Аудио система - благодаря кастомизации мы можем сами установить любые динамики и сабвуферы
- Поддержка воспроизведения музыки с Блютуза (звонки тоже, поэтому нужен микрофон у водителя)
- Управление и вывод информации с внутренностей движка (Например открытие клапана по кол-ву оборотов)
- И когда будем добавлять подсветку в салон, то ее управление с ASAI было бы неплохим решением (Светомузыка дааа 🤩)
Считайте это самописный бортовой компьютер, полностью контролируемый и с открытым исходным кодом
Писать я буду очевидно на С++, но если придется писать драйвера на линуксе, то еще займусь С
Проблем с электроникой не будет, ведь все будет завязано вокруг сервоприводов (открытие на определенный угол) + Мосфеты (Включение/Выключение силовой электроники, замена старым релюшкам)
Конкретно про внутрянку ASAI:
- Дисплей возьму от планшетов, не стану брать готовые дисплеи для Rapberry Pi. Да, мы не ищем легких путей... А вообще они TFT'шные (Первые сенсорные телефоны использовали их кста), ультра темные и лагучие.
- Виновником торжества думал брать Raspberry Pi 3B+, но ее GPU аппаратно ограничен для дисплеев уровня планшетов и тд.
- От чего взял +- компромиссное решение - STM32H750. Этот микроконтроллер (?) имеет несколько ядер, способен запустить минимальный линукс, а самое главное - в него вшит модуль для общения с дисплеями любого уровня! (Дак еще оно полностью программируемое, кайф же. Кому интересно - я про
DSI Host = Display Serial Interface Host)- Ну а раз STM32H750 имеет много всего, то думаю возьму ее вместо Rapberry Pi 3B+ (Тем более программатор у меня есть, а я всегда хотел поиграться с STM)
Основные задачи (Да, я любитель все делить на задачи):
- Выбрать дисплей, разобраться с его подключением и как бы выглядел его код (в теории)
- Купить дисплей, STM, подключить их и написать минимальный рабочий код для вывода на дисплей + обработка тачскрина
- После - взять самое легковесное ядро Линукса (чтобы не париться над многозадачностью, разделение процессов, файловой системой и тд. да еще и гит будет :3)
- И переписать рабочий код в драйвер под линукс (На С, даааа)
- И как только 7 кругов ада будет окончены, я смогу приступить к написанию программной базы ASAI, который будет состоять из центрального модуля + модуль рендера UI. А остальные просто будут дописываться и добавляться (Как раз изучу CMake)
Как-то так, всем доброе утро а я спать :)
P.S. Название ASAI 100% вышло чисто случайно :3❤🔥3❤1🔥1
От создателей легендарного шедевра "Новая папка (2)", покорившего сердца миллионов пользователей, представляем вам долгожданное продолжение - "Новая папка (3)"
Этот проект взял в себя все лучшее из предыдущих версий, сохранил фирменную простоту названия и привнес в мир бескомпромиссную инновацию - порядковый номер в скобках, увеличенный на единицу!
Особая гордость - это эксклюзивная коллекция бекапов из неработающего гита, собранных после множества конфликтов слияния коммитов, где каждая попытка объединенить коммит превращается в эпичную битву(и сломанный репозиторий)
"Новая папка (3)" - это не просто папка. Это символ новой эры в организации файлов, наследие, которое мы передадим будущим поколениям!
Этот проект взял в себя все лучшее из предыдущих версий, сохранил фирменную простоту названия и привнес в мир бескомпромиссную инновацию - порядковый номер в скобках, увеличенный на единицу!
Особая гордость - это эксклюзивная коллекция бекапов из неработающего гита, собранных после множества конфликтов слияния коммитов, где каждая попытка объединенить коммит превращается в эпичную битву
"Новая папка (3)" - это не просто папка. Это символ новой эры в организации файлов, наследие, которое мы передадим будущим поколениям!
❤6🎉1
𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
Йееу, аппарат на оценочку ⚡А фото в реке ждите в RootTool Blog+
Помните эту зверь-машину? Вот ее состояние спустя одну... ТЫСЯЧУ... километров...
Именно столько я прокатался за 3 месяца. А как? Ну поехали:
- 3 раза катался к другу в Раменское: 3*80 = 240 км
- Ночной велофестиваль в Москве + Там же остался и катался до самого утра: 140 км
- 4 раза ехал в гребанные Мытищи за радиодеталями для ASAI: 3*20*2 = 120 км (3 раза по 20 км туда-обратно)
- В остальные дни по вечерам катался по городу в доль и поперег (от Воронка и до Гагаринской). В среднем это 10 км, а за 3 месяца (с учетом, что в редкие дни могу не кататься): 10*50 = 500 км
240+140+120+500=1000 км. Конечно от такого подшипник на заднем колесе развалился к чертям собачим :)
Именно столько я прокатался за 3 месяца. А как? Ну поехали:
- 3 раза катался к другу в Раменское: 3*80 = 240 км
- Ночной велофестиваль в Москве + Там же остался и катался до самого утра: 140 км
- 4 раза ехал в гребанные Мытищи за радиодеталями для ASAI: 3*20*2 = 120 км (3 раза по 20 км туда-обратно)
- В остальные дни по вечерам катался по городу в доль и поперег (от Воронка и до Гагаринской). В среднем это 10 км, а за 3 месяца (с учетом, что в редкие дни могу не кататься): 10*50 = 500 км
240+140+120+500=1000 км. Конечно от такого подшипник на заднем колесе развалился к чертям собачим :)
🤯3😱1😭1
Эта погнутая деталь (прошлый пост, фото 1) когда-то была пыльником подшипника (этот пост, фото 2). Она прижимается контр-гайкой (этот пост, фото 1, левая сторона) и на ней катаются шарики подшипника.
Со временем она стачивается и шарики начинают свободно ходить и люфтить. А за 1000 километров они успевают внутри выбить, сточить и разломать что только можно (и как видите сам шарик стал квадратным: прошлый пост, фото 2)
В принципе это нормальный износ, но я бы погрешил на дешевость металла...
В любом случае не стал рисковать и взял полностью новое проверенное заднее колесо Шимано. Среди велосипедистов говорят оно очень износостойкое, но посмотрим как говорится..
Со временем она стачивается и шарики начинают свободно ходить и люфтить. А за 1000 километров они успевают внутри выбить, сточить и разломать что только можно (и как видите сам шарик стал квадратным: прошлый пост, фото 2)
В принципе это нормальный износ, но я бы погрешил на дешевость металла...
В любом случае не стал рисковать и взял полностью новое проверенное заднее колесо Шимано. Среди велосипедистов говорят оно очень износостойкое, но посмотрим как говорится..
❤3🔥1
Yoo
Слегка не в тему, но все же - решил засветиться где-нибудь еще, та и попробовать себя в переводе песен, почему бы и нет?
Знакомьтесь: Dose Dose by manika
Сказать честно: Песня охренительно красивая. Хоть и название смущает, но в тексте упоминаний почти 0 (около 2-х строчек)
Зато песня сама очень приятная, всегда слушаю ее чтобы сосредоточиться.
Перевод делал своими лапками, он больше адаптирован под распевку, чем прям на 100% сохранение смысла (но все равно вышло неплохо как по мне-)
Клип на YT: тык
Оригинал на Genius: тык
Перевод на Genius: тык
(Да, изначально оригинала не было на Genius, пришлось запариться и добавлять самому ¯\_(ツ)_/¯)
Слегка не в тему, но все же - решил засветиться где-нибудь еще, та и попробовать себя в переводе песен, почему бы и нет?
Знакомьтесь: Dose Dose by manika
Сказать честно: Песня охренительно красивая. Хоть и название смущает, но в тексте упоминаний почти 0 (около 2-х строчек)
Зато песня сама очень приятная, всегда слушаю ее чтобы сосредоточиться.
Перевод делал своими лапками, он больше адаптирован под распевку, чем прям на 100% сохранение смысла (но все равно вышло неплохо как по мне-)
Клип на YT: тык
Оригинал на Genius: тык
Перевод на Genius: тык
(Да, изначально оригинала не было на Genius, пришлось запариться и добавлять самому ¯\_(ツ)_/¯)
🥰3❤1
Оке-оке-оке. Прошлый пост вам не зашел. Компенсируем этим постом про ASAI
Небольшой sneak peek к модулю для приборной панели для ASAI (Напомню: АСАЙ - Адаптивная Система Автомобильного Интерфейса)
Пока-что конкретно этот модуль выполняет только базовые функции:
- Управление подсветкой приборной панели (RGB-Лента)
- Выбора режима подсветки с легко программируемыми эффектами
- TM1637 для вывода времени и другой информации
- Энкодер для управления подсветкой, переключения между менюшками и тд.
- DS1302 для подсчета текущего времени, не смотря на отключения автомобильного питания (старый сдох от старости, 1993-2025, F🫡)
За последние 2 дня конечно потерял нюх в режиме сна, ибо нужно быстро собрать приборку. Весь день паяю, всю ночь пишу код. Вчера написал 3 легковесные библиотеки:
Накиньте ❤️/🔥 если вам интересно про них (И выпуск исходники в открытый доступ конечно)
А я.. досматривать сон пойду чтоль...
Небольшой sneak peek к модулю для приборной панели для ASAI (Напомню: АСАЙ - Адаптивная Система Автомобильного Интерфейса)
Пока-что конкретно этот модуль выполняет только базовые функции:
- Управление подсветкой приборной панели (RGB-Лента)
- Выбора режима подсветки с легко программируемыми эффектами
- TM1637 для вывода времени и другой информации
- Энкодер для управления подсветкой, переключения между менюшками и тд.
- DS1302 для подсчета текущего времени, не смотря на отключения автомобильного питания (старый сдох от старости, 1993-2025, F🫡)
За последние 2 дня конечно потерял нюх в режиме сна, ибо нужно быстро собрать приборку. Весь день паяю, всю ночь пишу код. Вчера написал 3 легковесные библиотеки:
RootTM1637, RootDS1302 и RootEncoderНакиньте ❤️/🔥 если вам интересно про них (И выпуск исходники в открытый доступ конечно)
А я.. досматривать сон пойду чтоль...
❤6🔥2
Многострадальческий опыт написания бота на С++ и почему это того стоит
Здорова всем бессонным. Тоже не спится, поэтому напишу небольшое сообщение. Как вы знаете - я большой любитель Плюсов (В принципе это мой любимый язык программирования)
Конкретно сегодня на повестке ночи - наш бот E.C.H.O, как мы уменьшели использование ОЗУ с ~80 МБ до 8 и причем тут вообще С++
Конечно, можно было пойти в оптимизацию Питона, но будем честны? Все угодно ты можешь написать на Питоне, а Питон ты можешь написать на С++ хвхвхвхвх. Та и вообще Питон это язык интерпретируемый (выполняется в реальном времени), со своей виртуальной средой, всякими наворотами и тд. А я напомню - Оперативки категорически мало!
Выбор очевиден - Компилируемый С++, но это же тяжело... Нихера, скажу я так! Было конечно пару проблем, но в целом путь самурая пройден. Расскажу про основные моменты:
А теперь у нас есть весь цикл для создания бота: От написание кода -> Тест на рабочем пк -> Сборка под сервер (релиз)
А главное:нахера зачем это все? Ну...
- Во-первых: Мне, как кодеру на С++, сложновато писать где-то еще (Особенно Питон 💀), ибо я любитель строгой типизации данных, структуры, перечисления, шаблоны, классы с ООПшкой, а также предкомпилируемые условия и вычисления (а.к.а. Макросы).
- Во-вторых: Если грамотно писать код, то создание переменных и аллокаций идет к минимуму = Меньше использование ОЗУ.
- Та и в принципе Питон и оптимизация это две несовместимые вещи. Кто-бы что не говорил, но вся оптимизации Питона упираются в вынесение функций в С++ код, который уже хоть как-то компилируется заранее (Вы OpenCV скачайте, сами увидите в консоли как он сидит компилирует С++ файлы лол)
Интересно ваше мнение: Сделать ли статью на telegraph и/или на Хабре? Расскажу про полную установку и настройку. Ибо раз уж я пишу этот пост - то значит уже давно решил все упомянутые выше проблемы (Бонусом тестовый проект с ботом прикреплю, чего мелочиться)
Мораль истории такова: Кто ищет оптимизацию, тот всегда найдет (Даже если это стоило 14 часов в Райдере)
Высыпайтесь
Здорова всем бессонным. Тоже не спится, поэтому напишу небольшое сообщение. Как вы знаете - я большой любитель Плюсов (В принципе это мой любимый язык программирования)
Конкретно сегодня на повестке ночи - наш бот E.C.H.O, как мы уменьшели использование ОЗУ с ~80 МБ до 8 и причем тут вообще С++
Все началось с сервера за полторы шаурмы в месяц - полностью оправдал себя. Вылетает так, что я и6ал. Хотя без прикрас - держится стабильно на Debian 11, но оставляет около 100 МБ ОЗУ
По началу у меня не было опыта работы с ТГ-Ботами, поэтому пошел по самому простому пути - закачал какие-то индуские библиотеки, с ИИшкой накинул на Питоне бота и ахерел от вылетов - Система, мягко говоря, ЧАСТЕНЬКО перезагружала бота от переполнения ОЗУ, а тот в свою очередь писал сообщение админам, мол, был перезапущен (По 2 раза в день 😭)
Конечно, можно было пойти в оптимизацию Питона, но будем честны? Все угодно ты можешь написать на Питоне, а Питон ты можешь написать на С++ хвхвхвхвх. Та и вообще Питон это язык интерпретируемый (выполняется в реальном времени), со своей виртуальной средой, всякими наворотами и тд. А я напомню - Оперативки категорически мало!
Выбор очевиден - Компилируемый С++, но это же тяжело... Нихера, скажу я так! Было конечно пару проблем, но в целом путь самурая пройден. Расскажу про основные моменты:
- Установка TgBot: Дааа, эту библиотеку фиг установишь, если не знаешь как работать с CMake
- Работа с CMake: У меня еще не было опыта в CMake, но с ним я познал удовольствия жизни и теперь если я скажу что CMake плохой то знайте - меня взломали :D
- Установка зависимостей: В Линуксе - pip install... (фанаты Линукса - ваш звездный час), а в Виндовсе... - Брр, абра кадабра, бадабум! АХ БИЛЛ ГЕЙТС РАЗРЕШИ МНЕ УСТАНОВИТЬ ЭТОТ ПАКЕТ В ВИНДУ ПЖПЖПЖ 😭 (Немного тяжко, но в целом vcpkg спас ситуацию)
- Сборка проекта под Линукс: Вот НИКОГДА не спрашивайте, как я это сделал. А, вы все еще тут? Ну в целом я сначала пошел собирать проект на сервере, но когда сервер ТУПО ПЕРЕЗАГРУЗИЛСЯ ОТ НАГРУЗКИ ХВХВХВХВ (Сборка не самая простая задача), то пошел билдить на своем пк и тут опять Билл Гейтс....
- Эмуляция Debian 11: Сука, да! Если нужно собрать бота на Debian 11, то думай как Debian 11! А ирония в том, что штатный WSL (Эмулятор Линукса для Винды) содержит в себе только Debian 12, который ну ни как не подходит для сборки проекта на Debian 11. Решение?
- Docker: Я не знаю, где я так нагрешил.... Но мне пришлось скачать Docker, чтобы с него как-то выкачать образ Debian 11 (эти овощи в Debian не дают скачать старые версии системы), установить систему в WSL и уже в WSL работать с Debian 11...
Пздц, я знаю. Но что теперь?
А теперь у нас есть весь цикл для создания бота: От написание кода -> Тест на рабочем пк -> Сборка под сервер (релиз)
А главное:
- Во-первых: Мне, как кодеру на С++, сложновато писать где-то еще (Особенно Питон 💀), ибо я любитель строгой типизации данных, структуры, перечисления, шаблоны, классы с ООПшкой, а также предкомпилируемые условия и вычисления (а.к.а. Макросы).
- Во-вторых: Если грамотно писать код, то создание переменных и аллокаций идет к минимуму = Меньше использование ОЗУ.
- Та и в принципе Питон и оптимизация это две несовместимые вещи. Кто-бы что не говорил, но вся оптимизации Питона упираются в вынесение функций в С++ код, который уже хоть как-то компилируется заранее (Вы OpenCV скачайте, сами увидите в консоли как он сидит компилирует С++ файлы лол)
Интересно ваше мнение: Сделать ли статью на telegraph и/или на Хабре? Расскажу про полную установку и настройку. Ибо раз уж я пишу этот пост - то значит уже давно решил все упомянутые выше проблемы (Бонусом тестовый проект с ботом прикреплю, чего мелочиться)
Мораль истории такова: Кто ищет оптимизацию, тот всегда найдет (Даже если это стоило 14 часов в Райдере)
Высыпайтесь
❤4👍1🔥1