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

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

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

SDR приемник GPS на микроконтроллере

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

В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.

Читать далее
Всего голосов 162: ↑161 и ↓1 +160
Комментарии 209

Как перестать «ходить на дырку» на даче и не надышаться миазмами

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

Эта статья адресована тем, кто сам занимается строительством канализации на даче.

Миллионы дач в России ранее были оборудованы туалетами типа "сортир с выгребной ямой". С этого многие начинали и многие этим и закончили. Но по мере продвижения ИИ в массы и вообще развития технологий, многие задумались о том, что душ доме на даче это хорошо. А также нормальный тубзик. В котором можно нормально гнездится и почитать газету в интернете, Хабр или что-то еще полезное, а не напряженно ждать вцепится ли в тебя рой мух или нет. Опять же эстетика сортира уже устарела.

Читать далее
Всего голосов 147: ↑114 и ↓33 +81
Комментарии 225

DUST ATTACK транзакция в блокчейне с подтверждением изоморфизма на общую сумму 10000 BTC

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

В этой статье мы раскроем обширную тему: “Dust Attack” известная как: "Dusting Attack" или "Crypto Dust". Возможно каждый пользователь криптовалют или держатель большой суммы монет BTC, ETH замещал на своем криптовалютном кошельке поступление незначительно малой суммы монет в satoshi, это поступление маскируется под видом "Donate", но на самом деле это целая математический отточенная система по отъёму всех накопленных монет кошелька на балансе. Рассмотрим две различные примеры пылевой атаки, чтобы пролить свет на все тонкости этой манипуляции и какие риски могут ждать пользователей и держателей популярной криптовалюты Биткоин. Для проведение пылевой атаки большую роль играет подтверждение изоморфизма майнерами, т.к. с 2022 по 2024 года многие криптовалютные сервисы и аппаратные кошельки активно борются с пылевой атакой. На данный момент широкую популярность получил способ самостоятельно создавать пылевые транзакции на собственном холодном кошельке.

Читать далее
Всего голосов 21: ↑5 и ↓16 -11
Комментарии 16

Стреляем в будущее

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

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

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

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

30 фильмов про IT и киберпанк, которые можно пересмотреть на новогодних праздниках

Время на прочтение 10 мин
Количество просмотров 48K
На новогодних праздниках можно позволить себе отдохнуть и посмотреть старое и новое кино. Фильмы про IT подбирал так, чтобы можно было найти на любой вкус. Ниже список, которым решил с вами поделиться.

Читать дальше →
Всего голосов 62: ↑45 и ↓17 +28
Комментарии 99

«Магическая константа» 0x5f3759df

Время на прочтение 9 мин
Количество просмотров 120K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →
Всего голосов 212: ↑210 и ↓2 +208
Комментарии 188

Безопасно рисуем иконки в ПЗУ и ловим UB в C++ коде на IAR компиляторе

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

Доброго времени суток хабровчане. Давненько я не писал, был довольно сильно занят семьей, начались тренировки и нужно каждый день возить детей. Но вот наконец-то есть время чтобы немного вспомнить про разработку ПО.

Сегодня будем выводить иконку на черной белый графический LCD — но это слишком простая задача. Потому что перед тем как её вывести, необходимо её нарисовать. Рисовать можно в Paint, потом использовать генератор, который переведет растровое изображение в код и использовать его для вывода на экран.

Но мы не ищем простых путей, поэтому иконку будем рисовать сами на С++ для CortexM4 микроконтроллера и сразу в ПЗУ, чтобы не зависеть от всех этих внешних программ, заодно и посмотрим как можно отловить ошибки в уже существующем коде (студентов), которые никто не заметил (даже PVS-Studio).

А еще некоторые компиляторы запрещают делать UB для кода исполняющегося во времени компиляции, поэтому можно отлавливать и UB. Например, мой IAR прекрасно ловит переполнения int. Но обо всем поподробнее.

Чтобы было просто — рисовать будем круг.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 37

Другой взгляд на многопоточность

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

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

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 26

Применение биполярных транзисторов с микроконтроллерами

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

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

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

Источник опорного напряжения — один из принципов и одна из реализаций

Время на прочтение 13 мин
Количество просмотров 21K
Как не счесть «алмазов в каменных пещерах» — так не счесть случаев, когда необходимо втиснуть какую-нибудь характеристику «непрерывного» внешнего мира в «дискретное» нутро цифровых алгоритмов или извлечь обратно. Как помнят многие — это делается с помощью аналого-цифровых (АЦП, ADC) и цифро-аналоговых (ЦАП, DAC) преобразователей. Но только более посвящённые — обратят при этом внимание на источник опорного напряжения для преобразований (ИОН, Reference), который во многом определяет стабильность и абсолютную точность полученного результата. Конечно, есть некоторое число случаев, когда можно произвести измерение или генерацию отношения двух токов или напряжений. Тогда достаточно подать большее из них на опорный вход преобразователя. Но это — именно «некоторое число».

Желающих ознакомиться с одним из принципов и одной из реализаций температурно-стабильного ИОН — приглашаю под кат. Помощь в этом — предоставит симулятор LTSPICE (несмотря на то, что человек с КДПВ сказал: «My favorite CAD is solder»). Желательно — знание закона Ома, правил Кирхгофа, принципов работы биполярного транзистора (на уровне модели Эберса-Молла) и идеального операционного усилителя.

КДПВ1: Robert Allan Pease — the czar of bandgap. «Орденские цепи» — из ИМС стабилизаторов в корпусе TO-3.


Читать дальше →
Всего голосов 68: ↑66 и ↓2 +64
Комментарии 15

Володя, где мой компьютер? Проблемы школьной информатики в России

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

Я вовсе не считаю, что количество часов нужно сокращать. Мое представление было бы таковым, если бы сам предмет информатики был крайне узким. Но это не так. Информатика достаточно широкая и комплексная наука, которая нуждается в изучении отдельных её областей, чтобы было хоть какое-то понимание. На деле же ученики даже не заинтересованы, поскольку они лишь поверхностно изучают тот объект, с которым сталкиваются ежедневно...

Читать далее
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 205

Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7

Время на прочтение 9 мин
Количество просмотров 14K
Привет, Хабр!

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


Одна из весьма полезных и при этом почему-то в готовом виде нигде не описанных возможностей на микроконтроллерах Cortex-M (всех) — это возможность проверки корректности адреса в памяти. С её помощью можно определять размеры флэша, ОЗУ и EEPROM, определять наличие на конкретном процессоре конкретной периферии и регистров, прибивать упавшие процессы при сохранении общей работоспособности ОС и т.п.
Читать дальше →
Всего голосов 72: ↑72 и ↓0 +72
Комментарии 41

Duff's device или loop unrolling в Си своими руками

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

Выглядит ли следующий код валидным С++ кодом? Если да, то какое значение будет выведено в результате его работы?

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

Производительность распределенного хранилища: препродакшн тесты

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

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

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

Нужно сказать, что больше всего я работал с Ceph, поэтому в основном методология строится исходя из этого опыта, но, если не вдаваться в детали, то подход к тестированию более-менее одинаков для всех распределенных программных хранилищ данных (SDS).
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 2

Hello Word смарт-контракт для TON (FreeTON)

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

Одна из интересных тем, о которой мне хотелось бы сегодня рассказать - это программирование смарт-контрактов. За язык на котором мы будем программировать свой смарт возьмем Solidity, а в качестве платформы будем использовать FreeTON

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

Запуск Adobe Flash в Chromium браузере после 12 января 2021

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

В сети все еще существует какое-то количество страниц, написанных с использованием веб-фреймворка Adobe Flex, а также языка Action Script. Для того, чтобы переписать их на современный лад, многие будут рады продолжить пользоваться инструментами разработчика (Dev Tools), как в Google Chrome.

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

Владельцы MAPS.ME отменили изменения и вернули старое приложение. Надолго ли?

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

Слева — старое приложение, справа — декабрьская версия от южнокорейцев. Источник: «Смерть MAPS.ME?»

В ноябре 2020 года Mail.Ru Group продала MAPS.ME южнокорейской компании Daegu Limited (входит в состав платёжной системы Parity.com), и уже 20 декабря 2020 года новые владельцы выпустили обновление, которое практически убило приложение.

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

К счастью, новые владельцы осознали глубину своей ошибки и откатили изменения. В апдейте от 30 декабря 2020 года восстановлена вся функциональность. Казалось бы, победа? Справедливость восторжествовала? Нет, в это слабо верится.
Читать дальше →
Всего голосов 70: ↑63 и ↓7 +56
Комментарии 58

Швеция: что ждать от релокейта к суровым северянам

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

Стокгольм по праву называют скандинавской Силиконовой долиной. 

Cюда стоит ехать за работой в прогрессивных компаниях, которые являются лидерами отрасли: Spotify, Klarna, Erisson, Skype, Minecraft и др. Предлагаем вдохновиться карьерными перспективами и посмотреть рассказ Александра Любоженко об опыте переезда в Стокгольм и работе в Spotify.

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

Что ждет разработчика после переезда? Говорим про перспективы для IT-специалиста, структуру расходов и особенности релокейта. 

Читать про релкоейт в Швецию
Всего голосов 43: ↑34 и ↓9 +25
Комментарии 324

Поиск замены депозита в облигациях с учетом того, что с 1 января 2021 года все выплаты облагаются налогами

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

Полгода назад, летом 2020 года я написал скрипт поиска ликвидных облигаций на Мосбирже (статья в закладках у 194 человек, рейтинг +45). Скрипт нужен для поиска облигаций, которые можно купить прямо сейчас с доходностью гораздо выше банковского вклада.

Сейчас, в начале 2021 года модифицировал прошлогодний скрипт, потому что проценты по вкладам так и остаются на очень низких уровнях, а с началом 2021 года ещё и изменения в налоговом кодексе РФ подоспели. 

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

Облигации как замена вклада в 2021 году
Всего голосов 60: ↑59 и ↓1 +58
Комментарии 65

Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения

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


Издеваться мы будем над микросхемой GD32VF103CBT6, являющейся аналогом широко известной STM32F103, с небольшим, но важным отличием: вместо ядра ARM там используется ядро RISC-V. Чем это грозит нам, как программистам, попробуем разобраться.


Кратко перечислю характеристики контроллера:


  • Напряжение питания: 2.6 — 3.6 В
    • Максимальная тактовая частота: 108 МГц
    • Объем ПЗУ (flash): 128 кБ
    • Объем ОЗУ (ram): 32 кБ
    • Объем Backup регистров (сохраняемых после сброса): 42 х 16 бит = 84 байта.
    • АЦП+ЦАП: 2 штуки АЦП по 10 каналов и 12 бит каждый плюс 2 ЦАП по 12 бит.
    • Разумеется, куча прочей периферии вроде таймеров, SPI, I2C, UART и т. д.
Всего голосов 36: ↑35 и ↓1 +34
Комментарии 38

Информация

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