Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

3D рендер с редактором карт в Консоли (Часть 2)

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.6K

Сегодня я собираюсь продолжить рассказ про свой 3D рендер в командной строке Windows и разобрать те темы, которых не коснулся в 1 Части.

На этот раз в статье будет больше кода и меньше математики (а также много скриншотов).

Читать далее
Всего голосов 15: ↑15 и ↓0+21
Комментарии2

Головоломка «Сапёр» на Python в 66 строк и ее решение вероятностным алгоритмом

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.1K

Идея написать данную статью пришла после прочтения статьи Реализация сапёра в 100 строках чистого Ruby. Во-первых, мне показалось, что 100 строк кода многовато для такой простой по механике игры. Я бы мог написать более компактное решение на чистом С. Во-вторых, реализация не совсем корректна: в оригинальной игре нельзя проиграть первым ходом, более того, первая открытая ячейка не должна иметь в соседних ячейках мину.

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

Читать далее
Всего голосов 8: ↑8 и ↓0+12
Комментарии10

Создание процессора с нуля для чайников

Время на прочтение18 мин
Количество просмотров37K

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

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

В данной статьей мы пройдем путь создания процессора от единичного транзистора до работающего 8-битного процессора, и напишем свой ассемблер для него.

Читать далее
Всего голосов 112: ↑112 и ↓0+138
Комментарии70

Создаём сетевую карту на дискретной логике

Время на прочтение6 мин
Количество просмотров9.5K
Этот пост — продолжение моего проекта по созданию завершённой компьютерной системы на компонентах дискретной логики. У меня уже есть компьютер, способный выполнять сетевые приложения, например, HTTP-сервер или игру по LAN.

В прошлом году я изготовил адаптер физического уровня, преобразующий сигнал Ethernet 10BASE-T в SPI и обратно. Тогда для тестирования его работы я использовал микроконтроллер STM32, а теперь реализую модуль слоя MAC, чтобы подключить его к своему самодельному компьютеру.

Оба адаптера полнодуплексные и имеют отдельные передатчик и приёмник.


Компьютер целиком. Новый модуль находится справа внизу
Читать дальше →
Всего голосов 54: ↑54 и ↓0+70
Комментарии5

Работа с СОМ-портом на Си в linux

Время на прочтение18 мин
Количество просмотров73K
Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь.

Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.

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

Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.

В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А непонимание того, что там происходит и приводит к различным трудноуловимым багам.
Читать дальше →
Всего голосов 56: ↑53 и ↓3+69
Комментарии24

Земля в печатных платах | Слои, компоненты, секции, питание и переходы | Тренинг Рика Хартли

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров10K

В этой статье представлен большой тренинг Рика Хартли по разводке земли в печатных платах. Перевёл и озвучил данное видео Dmitry Muravyev, за что ему огромное спасибо. Я всего лишь сделала конспект этого замечательного тренинга, чтоб люди могли ознакомиться с ним быстрее, чем смотреть двухчасовое видео, либо вернуться к каким-то отдельным темам, если позабылось. Категорически рекомендую ознакомиться с источником.

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

Читать далее
Всего голосов 31: ↑31 и ↓0+38
Комментарии6

Расшифровка startup файла Arm Cortex-M

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров3.6K

В статье предпринята попытка разобраться в содержимое startup файла микроконтроллера STM32F4, построенного на базе ядра Arm Cortex M4. Для запуска ядра используется ассемблерный код, который и предстоит изучить. Для лучшего понимания материала необходимо иметь представление об архитектуре ядра Cortex M4. Сразу отмечу, что замечания и уточнения приветствуются, т. к. они позволят дополнить представленную информацию.

Читать далее
Всего голосов 9: ↑6 и ↓3+6
Комментарии19

DIY для шпиона: использование обнаружения объектов с помощью YOLOv8 в рамках военных стратегий

Время на прочтение8 мин
Количество просмотров8.9K

Применим геопространственную разведку для точного количественного учета воздушных судов противника? Используем для этого технологию обнаружения объектов YOLOv8 на основе аэрофотосъемки, выполненной разведывательными беспилотниками, что обеспечит надежное планирование военных действий.

В рамках глобальной системы мониторинга, известной как «The Machine». , функционируют разнообразные элементы. Данная система объединяет множество устройств, распределенных по всему земному шару, что обеспечивает комплексное наблюдение. Это позволяет государственным органам осуществлять мониторинг за индивидуальными лицами, анализировать общественные поведенческие тенденции и контролировать военные объекты на международном уровне. Геопространственная разведка (GEOINT) занимает центральное место в этой системе.

В этой статье основное внимание уделим GEOINT в качестве ключевого средства для мониторинга военных авиабаз противника. Такой подход к наблюдению за объектами и базирующейся на них авиацией способствует глубокой проработке стратегии и тактики ведения боевых действий.

Читать далее
Всего голосов 27: ↑23 и ↓4+24
Комментарии2

Перчатка-джойстик

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров7.3K

Это будет история моего проекта, который я развивал, будучи студентом.

Написать этот текст меня заставило следующее.

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

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

Читать далее
Всего голосов 57: ↑56 и ↓1+76
Комментарии25

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров52K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Всего голосов 312: ↑312 и ↓0+371
Комментарии132

Серьги из матрицы светодиодов

Время на прочтение7 мин
Количество просмотров10K

Изначально я представлял LED Industrial Piercing [перевод на Хабре] как проект, специально рассчитанный на использование светодиодов 0201. В конечном итоге они оказались совершенно не нужны. Светодиоды 0201 слишком малы! Очевидно, я должен был двинуться глубже, поэтому целью нового проекта стало размещение как можно большего их количества на поверхности серёжки-гвоздика.

Читать далее
Всего голосов 68: ↑67 и ↓1+93
Комментарии21

Взлом аппаратного ключа методом veni, vidi, vici

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров17K

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

Задача: Сделать так, чтобы можно было пользоваться оборудованием. Дистрибутив софта, требующего ключ, есть. Работает он под Windows. Просроченный ключ есть. Оборудованию около 10 лет.

Ниже описан путь решения со всеми ошибками.

Прочитать историю
Всего голосов 155: ↑152 и ↓3+182
Комментарии26

Миландр + GCC + VSCode. Пробуем мигать светодиодом на отечественном ARM32 микроконтроллере

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров11K

Год назад я написал статью об отладке STM32 микроконтроллеров из под VSCode, с компиляцией в GCC и сборкой с помощью CMake. А в декабре мне в руки попали две тестовые единицы отечественных микроконтроллеров К1986ВЕ92FI (MDR1211FI1). Производитель имеет свою библиотеку SPL на C, а также неплохую базу примеров инициализации и применения различной периферии в Keil и IAR; однако я, average C++20+ enjoyer , решил попробовать перенести свой тулчейн на новое железо.

Читать далее
Всего голосов 23: ↑21 и ↓2+28
Комментарии51

Bootloader. Part 1. Нюансы Cortex-M, устройство памяти stm32 и преднастройка

Время на прочтение8 мин
Количество просмотров13K

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

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии31

Осваиваем 3-рублёвые микроконтроллеры PADAUK

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров34K
image

Тайваньская фирма Padauk по праву считается производителем самых дешевых корпусных микроконтроллеров. Большим функционалом они не обременены, но несложные задачки для простых устройств могут выполнять.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+76
Комментарии56

Разработка универсального сетевого стабилизированного источника питания

Время на прочтение16 мин
Количество просмотров19K

Одна из самых популярных микросхем ШИМ для источников питания – это TL494. Именно на ней и построен мой универсальный преобразователь, который использую для питания различных самодельных устройств.

А не почитать ли мне про это..?
Всего голосов 36: ↑36 и ↓0+36
Комментарии36

Расчет импульсного трансформатора для двухтактного преобразователя и согласующих устройств

Время на прочтение12 мин
Количество просмотров41K

Несколько лет назад мне потребовалось рассчитать импульсный трансформатор для УЗИ сварочной установки. В инженерном ремесле всегда бывает избыток вопросов и недостаток готовых рецептов. Поэтому пришлось немного поработать и написать этот реферат.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии7

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.1K

Когда речь идет об измерении температуры несколькими датчиками, простое большинство определяет истину. Семь датчиков показывают температуру 25…26 °С, один – около 23…24 °С. Вывод напрашивается сам собой – истинная температура примерно 25,5 °С, а восьмой датчик даёт ложные значения.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии20

SamsPcbGuide, часть 15: Феранек, заблуждение Богатина и новый ЭМС-гуру

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров4.7K

Привет, Хабр! Давно не было повода написать, но вот информационная пружина сжалась. Сейчас в Яндексе занимаюсь разработкой печатных плат, входящих в состав робота. Возникает много нюансов, выходящих за пределы печатной платы: кабельные соединения и разъёмы, экранирование, помехи на уровне системы. По мере накопления и структурирования опыта добавлю новый раздел в руководство, а в этой статье делюсь координатами золотых приисков — информация для тех, кто любит копать и разбираться (моё почтением вам).

Читать далее
Всего голосов 13: ↑8 и ↓5+7
Комментарии28

Реверс инжиниринг в домашних условиях

Время на прочтение4 мин
Количество просмотров16K

Добрый день, хочу поделиться с читателями своим практическим опытом обратной разработке электронных плат. Эта статья будет ещё интересна предметом своего исследования. На примере я покажу как разобраться в работе устройства. При необходимости можно составить принципиальную электрическую схему и повторить печатную плату. Для примера я взял плату оси YAW гиростабилизированного подвеса камеры квадрокоптера dji mavic mini.

Итак приступим! Всю работу можно поделить на несколько этапов:

Читать далее
Всего голосов 58: ↑53 и ↓5+66
Комментарии43
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность