Pull to refresh
38
0
Send message

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

Level of difficultyMedium
Reading time10 min
Views15K
image


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments37

Как запустить сотовую сеть стандарта AMPS при помощи SDR

Level of difficultyHard
Reading time12 min
Views9.6K
Приветствую всех!

Многие из нас всё ещё помнят такой стандарт связи как AMPS. В лучшие времена он, как и другой аналоговый стандарт NMT-450, был достаточно популярен на просторах России. И, возможно, у кого-то из нас даже был такой телефон.



Хотя сети общего пользования прекратили работу уже давным-давно, при помощи некоторого оборудования и софта всё ещё возможно дать старым телефонам возможность вновь зазвонить.
Итак, в сегодняшней статье разберёмся, как запустить сотовую сеть стандарта AMPS. Узнаем, с какими сложностями придётся столкнуться и как заставить всё это работать. Традиционно будет много интересного.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments32

Диффузионные модели в CV. Что за зверь?

Level of difficultyEasy
Reading time7 min
Views7.2K

Всех приветствую! Статья посвещена диффузионным моделям в компьютерном зрение. Цель статьи сформировать понимания (надеюсь) работы данного типа моделей. Попытаемся разобраться что это такое и как это устроено.

Если объяснять в двух словах, то идея заключается в следующем: берем картинку, постепенно добавляем к ней шум в течении некоторого количества шагов, а после обучаем нейронку восстанавливать из зашумленной картинки исходную.

Если хочется узнать побольше, то welcome!

Продолжение смотреть в источнике....
Total votes 8: ↑7 and ↓1+6
Comments0

Разбираем TLS по байтам. Кто такой этот HTTPS?

Level of difficultyMedium
Reading time32 min
Views23K


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только мало детей знают, что это значит и как работает.

Я, изучая веб-разработку, узнал об HTTP. Разобраться в нём несложно: в каждой статье о протоколе множество наглядных примеров запросов и ответов. Затем узнал о схеме HTTPS, с которой всё не так наглядно. В ней используется то ли SSL, то ли TLS, и что-то где-то шифруется, и зачем-то нужны какие-то сертификаты. Короче, всё расплывалось в тумане: где пример ответа, запроса, сертификата, как его создать, зачем он нужен и почему гайд по созданию http-сервера уже написал каждый школьник, а https-сервер — недоступная для начинающих разработчиков роскошь?

В связи с этим, предлагаю обсудить протокол TLS и его роль в вебе. Статья состоит из двух частей. В первой поговорим о защите соединения: от чего и как защищаемся, почему именно так, а не иначе, сколько и каких ключей для этого нужно, и разберёмся с системой сертификатов; а в конце создадим свой сертификат и посмотрим, как его использовать для разработки.

Во второй обсудим, как это дело реализуется в протоколе TLS и разберём формат TLS-пакетов по байтам. Статьи рассчитаны в первую очередь на изучающих веб-разработку, знакомых с HTTP и жаждущих осознать, кто такое https. Но материал актуален для любых применений TLS, будь то веб или не веб.
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments21

Проектируем узлы печатной платы с учетом особенностей монтажа при массовом производстве. Подход DFA

Reading time18 min
Views13K

Сегодня мы рассмотрим, что стоит учесть в конструкторской документации, чтобы защититься от проблем на этапе автоматизированного монтажа компонентов на плате. Я покажу, как можно организовать подбор элементов, их взаимное расположение и разводку для монтажа, чтобы увеличить коэффициент выхода годных плат и упростить их диагностику на производстве.

Подход, на который мы будем опираться, называется DFA — Design for Assembly (проектирование для сборки). Набор методов DFA гарантирует возможность сборки компонентов на плате, когда она поступит на монтажный участок, и позволяет отправлять плату в тираж без страха потерять деньги и время.

Читать далее
Total votes 55: ↑55 and ↓0+55
Comments32

Как я делал солнечную зарядку для своего моноколеса и вот что получилось

Level of difficultyEasy
Reading time7 min
Views14K

Получилось так, что с недавнего времени, я обзавелся личным электротранспортом, который называется моноколесо. Долго я шел к этому, но всё же решился и ни о чем не жалею, даже наоборот, испытываю полный восторг от поездок на этом сногсшибательном транспорте. А еще очень люблю поезки на природу, а езда на моноколесе на природу умножают эту любовь на 100500. Но есть одно «НО» и об этом далее...

Читать далее
Total votes 99: ↑99 and ↓0+99
Comments80

IoT и его криптонит

Level of difficultyEasy
Reading time11 min
Views1.9K

В одной из предыдущих статей я уже затрагивал тему IoT. В этой статье речь тоже пойдёт об этой концепции. При этом топик опять же затрагивает вопросы безопасности, но в более широком смысле.

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

Многие устройства IoT также являются частью концепции домашней автоматизации и, соответственно, в той или иной мере обладают схожими преимуществами и недостатками. Пожалуй, главной «ахиллесовой пятой» обеих концепций являются вопросы обеспечения безопасности, и если ранее до массового распространения этих технологий на безопасность как большинству пользователей, так и производителей было плевать с высокой колокольни, то сегодня эта проблема носит достаточно острый характер. В 2021 году количество устройств IoT превысило 13,8 миллиарда, и ожидается, что к 2025 году их число как минимум удвоится. Такое количество разнородных подключённых устройств и объём данных, которыми они обмениваются, заставляют нервничать многих специалистов по безопасности. Этот вопрос становится ещё более существенным, когда понимаешь, что более 90% всего трафика между устройствами IoT не зашифровано.

В результате хорошо известные угрозы и атаки, такие как распределённый отказ в обслуживании (DDoS) и «человек посередине» (Man-in-the-Middle, MitM), достаточно легко и непринуждённо применяются для компрометации систем IoT. Хотя DDoS является самой популярной атакой на системы вообще, в сфере IoT MitM может её затмить. Если первая метафорически сравнима с ударом дубиной по голове, то вторая — это укол шпагой. Атаки MitM обычно более сложны, чем другие, и их трудно идентифицировать. Обычно они включают в себя широкий спектр мероприятий, в которых злоумышленник располагается в центре коммуникации, перехватывая контроль над каналами связи.

Дальше-больше..
Total votes 5: ↑5 and ↓0+5
Comments3

Робототехнические манипуляторы с компьютерным зрением

Level of difficultyEasy
Reading time8 min
Views6.8K
Картинка Freepik

Есть одна весьма любопытная область приложения усилий, которая позволит как прокачать свои навыки в целом ряде областей, так и получить на выходе весьма любопытное изделие, которое может быть интересно многим — это создание роботизированных манипуляторов.

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

Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments3

Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы

Level of difficultyEasy
Reading time17 min
Views11K

Языковые модели (NLP) сейчас активно развиваются и находят себе всё больше интересных применений. Начиналась же их эпоха с классики жанра — D&D. Это настольная игра, где несколько друзей или просто знакомых синхронно галлюцинируют, представляя себя командой героев в некоем вымышленном мире. Прав же во внутриигровых выборах тот, кто выкинул большее число на игральной кости. Судить сейчас об их мотивации у меня нет никакого желания, да и статья вообще-то не об этом.

Важно только понимать, что движущей силой сюжета в их сессиях является лишь один из игроков, называемый Dungeon Master. Когда только начали появляться первые GPT-модели, одной из первых хотелок гиков оказалось желание сварить из нейросетей автоматического Dungeon Masterа.

Так и появился AIDungeon — уникальная для своего времени (2019 год) вещь, которая не сильно потеряла в популярности и по сей день. Однако, если вы любите смотреть глубже, то играть в него вам быстро надоест. Я же в своей серии из нескольких статей (посвящённых GPT) стараюсь показать простому обывателю механизм безболезненного использования нейросетевых моделей в простых проектах при помощи Python и Hugging Face Transformers.
Приступим
Total votes 64: ↑64 and ↓0+64
Comments11

Сравнение датчиков температуры. Часть 2, цифровые

Level of difficultyEasy
Reading time7 min
Views7.2K

Как обмануть родителей и не идти в школу? Есть простой рецепт. Берем градусник, нагреваем его при помощи фена или обогревателя до требуемой температуры 38 °C, имитируем хриплый голос и сопли, демонстрируем все обозначенное взрослым. Но получится ли провернуть такую операцию, если градусник цифровой? К счастью, да, проверено на медицинском термометре WT-03 BASE фирмы B.Well. Проверено теоретически, конечно, я же уже взрослый.

Ртутный градусник имеет интересное свойство запоминать максимальную температуру. В электронном термометре эту функцию заменяет программа. Есть некоторый начальный порог, что-то около 30 °C и если затем положить прибор в холодильник, то он покажет последнее максимальное значение. Нет необходимости удерживать требуемую для обмана температуру продолжительное время. Отлично.

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments17

Простой комплект для изучения сантиметровых радиоволн (СВЧ)

Level of difficultyEasy
Reading time6 min
Views14K

Добрый день, решил написать статью про изготовление простого демонстрационного комплекта для изучения СВЧ радиоволн из максимально доступных компонентов, при этом не ставя под угрозу здоровье любопытствующих. Когда я учился в школе, ходил заниматься в радиотехнический кружок, и на уроках физики все ждал - когда можно будет потрогать руками школьный СВЧ передатчик и приемник, который был представлен в учебнике физики.

Читать далее
Total votes 125: ↑124 and ↓1+123
Comments21

Обучение нейронной сети обнаружению людей на аэроснимках

Level of difficultyEasy
Reading time6 min
Views7.8K

Если вам понадобилось обучить нейронную сеть обнаруживать объекты на изображении или в видеопотоке, то для вас есть хорошие новости - уже существуют простые в использовании готовые инструменты. Наверняка кто-то из читателей такими пользуется. Например модель YOLOv8 хорошо тренируется на новых данных "из коробки". И, наверное, права была посетитель выставки, которая около стенда демонстрирующего обнаружение животных на видео c БПЛА сказала: "Что тут такого. Я за 10 строчек кода такое сделаю".
Но что, если сделал все по инструкции, а оно не работает так как хочется?

Читать далее
Total votes 6: ↑3 and ↓30
Comments11

Как сделать Stable Diffusion XL ещё умнее, используя отрицательные подсказки

Level of difficultyEasy
Reading time9 min
Views8.8K

В прошлом месяце Stability AI выпустила Stable Diffusion XL 1.0 (SDXL) и дала открытый доступ к его исходному коду всем желающим. Как добиться более точных и детальных генераций, скормив сетке плохие примеры?

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments0

LlamaIndex: создаем чат-бота без боли и страданий. Часть 2

Level of difficultyEasy
Reading time5 min
Views5.1K

Продолжаем изучать фреймворк для создания AI-ботов. В этой части узнаем про тонкости индексирования собственной базы документов.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments9

Волновое сопротивление остроносых судов

Reading time14 min
Views10K

Что может нам рассказать бурун у форштевня о форме подводных потоков, огибающих судно?

Ранее я уже писал статью «Борьба с волновым сопротивлением у водоизмещающих кораблей» про волновое сопротивление кораблей на примере тупоносых плоскодонных речных барж (см. ссылку).

Теперь настало время разобраться с волновым сопротивлением остроносых судов.

Дополнительным мотивом к написанию статьи стал ТВ-репортаж с военно-морского парада в Санкт-Петербурге 30 июля 2023 года.

Там на видео показали динамику бурунов при обтекании носа  подводной лодки, при этом были видны удивительные процессы встречных  течений, которые в статичных изображениях на фотографиях опознать и понять не получается. (см.рис.1-2). Вот ссылка на видео с тайм кодом на проход подводной лодки с буруном.

Читать далее
Total votes 49: ↑46 and ↓3+43
Comments61

За секунды: полировка металлов электричеством

Level of difficultyMedium
Reading time7 min
Views17K

Меня всегда привлекали технологии, относительно доступные для обычного человека, и в то же время несколько необычные и незнакомые широкому кругу людей.

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

Дальше мы обзорно поговорим о ней, а желающие смогут задуматься о применении её в своих проектах.
Читать дальше →
Total votes 79: ↑79 and ↓0+79
Comments32

И имя нам легион…

Level of difficultyEasy
Reading time11 min
Views3.4K

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

Массивное распараллеливание и разделение общих задач, обеспечиваемое совместной работой простых механизмов, намного эффективнее и экономичнее использования одного более сложного. По этому поводу со времён товарища Форда ни у кого вопросов не возникает. А если посмотреть соревнования F1, то там это кажется настолько органичным, что будто по-другому и нельзя.

Важным аспектом роевых моделей является то, что управление по определению децентрализовано и распределено между членами роя, что также повышает надёжность и отказоустойчивость всей системы. Помимо этого, немаловажными качественными характеристиками таких систем являются их гибкость и масштабируемость.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments14

Разработка сервопривода с BLDC мотором

Level of difficultyMedium
Reading time16 min
Views13K

Открытый проект серво‑контроллера MC50 продолжает развиваться. На этот раз поговорим о создании сервопривода.

Сервоприводы в умном доме нужны повсеместно: в запорных кранах, в электрических замках, в моторизированных кронштейнах и столах, в автоматических дверях, калитках, окнах, маркизах, воротах, поворотных видеокамерах, регулируемых креслах, электро‑пандусах и проч. Поэтому технология сервоприводов весьма востребована и тут есть где развернуться творчеству.

Читать далее
Total votes 64: ↑63 and ↓1+62
Comments43

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Level of difficultyEasy
Reading time11 min
Views334K

В серии предыдущих статей я описывал, почему повсеместно используемые VPN- и прокси-протоколы такие как Wireguard и L2TP очень уязвимы к выявлению и могут быть легко заблокированы цензорами при желании, обозревал существующие гораздо более надежные протоколы обхода блокировок, клиенты для них, а также описывал настройку сервера для всего этого.

Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments304

Ethereum Contract ABI Specification. Взаимодействие с контрактом

Level of difficultyMedium
Reading time11 min
Views3.3K

В данной статье я хочу познакомить вас с тем, как осуществляется кодирование данных в транзакции в соответствии с Contract ABI Specification. Мы вручную разберём весь процесс кодирования, создадим контракт и произведём вызов его методов. В конце я покажу как при помощи Contract ABI создать объект-оболочку через web3.js, и через него вызывать методы контракта.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0
1
23 ...

Information

Rating
3,597-th
Registered
Activity