В данной части статьи я простым языком поведаю вам о том, как написать собственный BLE сервис на микроконтроллере ESP32 для дальнейшего управления непосредственно с iPhone, а так же раскрою пару фишек, благодаря которым вы сохраните себе своё время и нервы.
User
Конструкторы, деструкторы, операторы — частые практики при программировании на C++
Данная статья служит шпаргалкой при написании классов с различными перегрузками операторов на примере тривиального класса строки (и ещё нескольких). Описанное здесь позволяет избежать копирования кода из одного конструктора или оператора в другой, что значительно снижает вероятность появления ошибок, но может привести к незначительному уменьшению производительности.
Data Visualizer — отображение данных с микроконтроллера
Почитав несколько историй о том как программисты передают данные с микроконтроллеров на ПК, с целью их удобного отображения на большом экране (SCADA, LabView), пришло мне в голову рассказать еще об одном способе для этого. Способ не новый, но, похоже, не очень известный. Способ заключается в применении программы Atmel Data Visualizer или ее последователя - MPLAB Data Visualizer.
Пишем «Hello, World!» на Си для OpenWRT
Мне стало интересно, как можно скомпилировать код на языке Си для OpenWRT на мой роутер.
В интернете инструкции имеются, но расплывчатые и то им уже по 6-8 лет. Поэтому, в этой статье собрана актуальная информация по компиляции.
Получение TOTP-токенов на умнейших из тупых часов
Недавно получил свой заказ с новой логической платой от Sensor Watch для вездесущих классических часов Casio F-91W. Модель F-91W не требует представления. Это наверняка самые популярные кварцевые часы в мире, которых в общей сложности было продано около 90 миллионов.
В купленной мной плате Sensor Watch оригинальный кварцевый механизм F-91W заменён новым мозгом на базе ARM Cortex M0+. В ней используются оригинальный ЖК-дисплей, толкатели для кнопок и пьезодинамик. Эта программируемая плата, и проект Sensor Watch также предоставляет простой в плане модификаций набор циферблатов и небольшие дополнительные приложения.
В устройстве нет Bluetooth, но комбинация легковесного, проверенного временем корпуса с долгоживущей батареей и функциональностью, которую без проблем можно воссоздать дома, на удивление великолепна. Где-то за час я смог: заменить плату, настроить двухфакторную аутентификацию (2FA) для своих аккаунтов Google и GitHub, чтобы получать наиболее часто используемые OTP-коды прямо на своё запястье, и написать циферблат-счётчик, который можно использовать для отсчёта шагов или взмахов при гребле на лодке.
Как стать продакт-менеджером бесплатно? Программа обучения с нуля
В современном мире, где скорость развития технологий постоянно растёт, одной из ключевых профессий является продакт-менеджер. Конечно, данная профессия востребована во многих сферах жизни, но сегодня речь будет об IT.
Мы составили программу обучения «Продакт-менеджер с нуля», которая состоит только из бесплатных курсов. Если вы размышляете над тем, чтобы освоить новую профессию, можете воспользоваться нашей программой.
Программируем микроконтроллер STM32 на Rust
Самопаркующийся авто за 500 строк кода
TLDR
В этой статье мы научим авто самостоятельно парковаться с помощью генетического алгоритма.
Мы создадим первое поколение авто с произвольными геномами, которое будет вести себя примерно так:
Примерно на сороковом поколении авто начнут понимать, что такое авто-парковка, и начнут приближаться к парковочному месту:
BLE под микроскопом. Андроид. Часть1
Занимаясь разработками BLE на микроконтроллерах, всегда встает вопрос управления ими при помощи смартфона. Для этого я обычно использую замечательную программу NRF Connect. Однако у нее так же есть свои ограничения. Поэтому с завистью глядя на разработчиков Андроида, мне всегда хотелось освоить программу Android Studio. И вот, наконец, мне это удалось :-) Я не стал гуру в этом, но теперь я могу писать приложения для работы с устройствами BLE. Поэтому я хочу помочь таким же "железячникам" как и я поднять свои навыки в BLE на новый уровень.
6-шаговая коммутация BLDC моторов
В нашем проекте контроллера сервоприводов применяется чип семейства Renesas Synergy S5D9. Чип содержит периферийный блок специально предназначенный для 6-шагового управления. Попробую показать как этот блок применить для управления BLDC мотором и какие грабли разложены на пути.
Gcov/Lcov — покрытие кода и отчет по нему
Рассказываю о том, как сделать отчет о покрытии кода
Gcov — свободно распространяемая утилита для исследования покрытия кода. Gcov генерирует точное количество исполнений для каждого оператора в программе и позволяет добавить аннотации к исходному коду. Gcov поставляется как стандартная утилита в составе пакета GCC.
Lcov — графический интерфейс для gcov. Он собирает файлы gcov для нескольких файлов с исходниками и создает комплект HTML-страниц с кодом и сведениями о покрытии. Также генерируются страницы для упрощения навигации. Lcov поддерживает покрытие строк, функций, ветвлений.[6]
Compiler Explorer — уникальный проект для исследования компилируемого кода
CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:
Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.
В основе CE лежит очень простая идея. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера).
CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.
То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.
Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Почему для меня так важен алгоритм CORDIC
CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin
, cos
, tan
и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Создание системы управления электродвигателями в наноспутнике
Целью работы является создание системы управления электродвигателями в наноспутнике. Установка положения спутника в пространстве осуществляется с помощью электродвигателей, снабженных маховиками. В докладе рассмотрен один из возможных алгоритмов управления электродвигателем.
Данная статья является продолжением первой статьи, в которой было рассмотрено создание печатной платы для управления электродвигателем и описаны основные моменты алгоритма управления PMSM Control, в этой статье больше внимания уделено самому алгоритму и его программной реализации.
Управление обратным маятником в MATLAB Simulink без формул. Настройка PID регуляторов
Простой и популярной реализацией закона управления обратным маятником является PID регулятор. Современные средства настройки коэффициентов PID регулятора позволяют решать подобные задачи нажатием пары кнопок даже без знания математики, физики и вообще без каких-либо технических знаний. Рассмотрим пример настройки PID регуляторов в Simulink для классического обратного маятника.
Объект управления (Plant)
Модель перевернутого маятника соберем в библиотеке Multibody. Для этого нам не понадобится знание физики и математики. Библиотека Multibody предоставляет нам готовые блоки степеней свободы, твердых тел, преобразований координат, которые нужно только верно соединить. Собираем подсистемы отдельно для маятника и отдельно для тележки, и собираем все вместе. Результат на рисунке, модель в прикрепленных файлах.
Начало Aircrack-ng и WEF
Предисловие
Рад приветствовать всех читателей статьи! С сегодняшнего дня запускаю новую рубрику моих статей "Без про-v-ода", в серии этих статей я буду обозревать различные методы, фишки, инструменты, устройства и всё что связано в вардрайвингом. Думаю не секрет, что довольно многие скажем так начинали свой путь с того "Как взломать Wi-Fi соседа?", а дальше углублялись в эту тему и находили что-то намного интересней чем просто бесплатный интернет.
Введение
Поскольку эта статья является первой в рубрике, я хочу познакомить тебя с основой инструментов вардрайвинга Aircrack-ng и с инструментами которые ты сможешь использовать практически сразу в Kali Linux. Так же хочу тебя дополнительно познакомить с хорошим фреймворком по атакам на беспроводные сети, который лёгок в установке и настройке, и послужит отличным помощником в изучении атак на беспроводные точки доступа.
Дисклеймер: Все данные, предоставленные в данной статье, взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.
Aircrack-ng
SDR приемник GPS на микроконтроллере
В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.
Лучшие практики модульного тестирования
В этой статье мы рассмотрим лучшие практики модульного тестирования. Сначала я объясню, что такое модульное тестирование и почему мы должны использовать его в наших проектах. Затем мы рассмотрим лучшие практики модульного тестирования. Я приведу пример кода с использованием фреймворка xUnit для написания модульных тестов в проектах на .Net.
Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную
Меня давно интересовало, как работают беспроводные клавиатуры, но как-то не сильно вдавался в подробности, пока не возникла идея превратить свою механическую клавиатуру в беспроводную. Честно говоря, не думал, что узнаю так много нового и интересного.
Вероятно, у многих есть любимая проводная клавиатура, и было бы интересно подключить её к компьютеру или планшету, не используя провода. Для этого существует несколько решений, которые можно купить или спаять самостоятельно. Но можно это сделать, написав относительно простую программу и настроив должным образом Linux на одноплатном или стационарном компьютере, ноутбуке.
Не имея навыков пайки, вы сможете создать полезное Bluetooth-устройство, а ваше понимание Bluetooth и Linux уже не будет прежним, если вы, конечно, не являетесь экспертом в этих областях.
Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Делаю игрулю на Playdate на чистом C. Глава 1
Не так давно (год назад на самом деле) я приобрёл необычную игровую консоль Playdate.
Она такая маленькая, жёлтая и имеет крутилку (крэнк или иногда в дословном переводе с испанского кривошип). Ах да, у неё еще экран монохромный. Не чёрно-белый - чёрно-белый экран умеет показывать оттенки серого
Information
- Rating
- Does not participate
- Registered
- Activity