Search
Write a publication
Pull to refresh
0
0
Василий @Phantovas

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

Send message

Прошивка и отладка STM32 в VSCode под Windows

Reading time7 min
Views44K

На хабре уже есть немало информации об отладке МК в VSCode на Linux, также было написано как настроить тулчейн для работы под Windows в QT Creator, Eclipse, etc.

Пришло и моё время написать похожую, но для VS Code и под Widnows.

Инициализация проекта будет проводиться с помощью STM32CubeMX. Сборкой будет управлять CMake с тулчейном stm32-cmake. В качестве компилятора используется ARM GNU Toolchain. Тестовым стендом является NUCLEO-F446ZE.

Читать далее

Как собрать самодельный принтер/плоттер

Level of difficultyMedium
Reading time10 min
Views24K
Картинка youtube-канал «stefanopadoan art»

Есть один весьма примечательный вид ЧПУ-устройств, который не оставит равнодушным никого — самодельный принтер.

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

И именно об интересных путях создания подобного устройства мы и поговорим в этой статье.
Читать дальше →

5 полезных расширений Chrome для тестировщиков

Reading time4 min
Views26K

На вашу продуктивность влияют инструменты, которые вы используете. Чтобы повысить свою продуктивность, вы можете использовать различные расширения, которые дополняют функциональность браузера и позволяют быстрее выполнять больше задач. 

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

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

Читать далее

Топ-15 шпаргалок для программистов и WEB-разработчиков

Reading time4 min
Views41K

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

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

Хватит разговоров, давайте перейдем к делу.

Читать далее

Lazarus-AVR, №2. Как получить кросс-компилятор для микроконтроллеров AVR с помощью Fpcupdeluxe

Reading time2 min
Views3.3K

Микроконтроллеры: AVR; Среда программирования IDE Lazarus 32х (кросс-платформенный) (ОС: Windows 64х).

В прошлой статье я описывал подключение компилятора Avr к IDE Lazarus, но у меня не работало автодополнение кода (при нажатии ctrl+пробел появляется выпадающее меню с вариантами кода). Спустя 29 дней разборок я добился корректной работы автодополнения. Что бы отделить "мух от котлет" (не все используют fpcupdeluxe) я решил вынести описание работы с fpcupdeluxe в отдельную статью.

Читать далее

Подключение Sagemcom F@st 2804, v7 на OpenWRT к WiFi

Reading time4 min
Views7.6K

В данной статье хочу рассказать о результатах двухдневной борьбы с данным устройством. Речь пойдёт об ADSL роутере, который Росстелеком "выдавала" своим клиентам. Рассматривать буду версию с двумя чёрными USB.

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

Я нашёл два способа как решить проблему с конфигурациями (у Вас могут заработать как оба, так и не одного, учитывайте это).

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

Читать далее

Изучение TypeScript — Полное руководство для начинающих. Часть 1 — Введение и примитивные типы данных

Reading time5 min
Views111K

Всем привет. Меня зовут Лихопой Кирилл и я - Fullstack-разработчик.

Представляю вашему вниманию cвою первую статью на Хабре, a точне перевод англоязычной статьи, на тему изучения TypeScript (TS, Тайпскрипт).

Другие части:
Часть 2 - Ссылочные типы данных
Часть 3 - Классы и интерфейсы
Часть 4 - Литералы и дженерики
Часть 5 - Строгий режим и сужение типов

Читать далее

Visual Studio Code: переносим Find Widget вниз

Reading time2 min
Views3.9K

В далеком 2017 году некто Peng Lyu (rebornix) задался вопросом о наилучшем пользовательском интерфейсе для Find Widget в Visual Studio Code. В ходе дискуссии было выбрано всем нам знакомое поведение поисковой строки в VSCode. И там же было отвергнуто предложение о возможности закрепления поисковой строки в нижней части редактора.

Читать далее

Резервное копирование репозиториев с github, gitlab

Reading time1 min
Views10K
main

Резервное копирование репозиториев с git серверов на основе github и gitlab по токену. Скрипт скачивает все Ваши репозитории доступные по токену и архивирует их. Давно хотел написать такой инструмент т.к. использую и те и те сервера в работе и личных целях. У меня полно старых проектов которые хранятся только на git, если с ним что-то случится, то их уже не будет.

Читать дальше →

Об инновациях. Или Neo4J на страже Telco

Reading time5 min
Views2K

Всем добрый день.

В своей предыдущей статье я уже упомянул о разрабатываемой нами системе, которая решает, казалось бы, не решаемую задачу - а именно автодискавери сетевых элементов в сетях телеком операторов, построение топологий, поиск путей прохождения трафика на основе информации, полученной из самих сетевых элементов. При этом стоит уточнить, что система не нуждается в интеграции со сторонними системами управления, такими как NCE (бывший Huawei u2000 TN), SoEM (СУ Ericsson), Aviat Provision, NFM-P (Nokia), и любыми другими. Т.е. система самодостаточна и способна работать в полностью автономном режиме.

Начну с той проблемы, которая возникла много десятилетий тому назад - и название этой проблемы - актуальная информация о состоянии сетей в режиме он-лайн. Дело в том, что мультисервисные сети давно стали мультивендорными - т.е. в каком-то филиале N любого провайдера связи, с течением времени скопилось множество разновендорного оборудования - сети MEN построены на Cisco, Huawei, Nokia. РРЛ - NEC, Huawei, Nokia и т.д. до бесконечности и в разных последовательностях. И т.к. каждый вендор не стремится создать универсальную СУ, которая могла хотя бы нарисовать топологию мультивендорной сети, приходится изобретать велосипед раз за разом.

Чаще всего велосипеды получались не далеко едущими, одноколесными, неудобными, без сидения или колес. Даже в системах управления крупных вендоров, функциональность не блистала. Более менее вменяемое я увидел в СУ Huawei - NCE. Но опять таки - каждый домен типов оборудования на своих вкладках, и единую топологию не получить - т.е. нельзя отобразить единовременно и на одной подложке сеть MBH (MEN+RRL). Не говоря уже о единовременном отображении специфических проблем, за которыми следят операторы связи - высокая утилизация интерфейсов, BBE/ES/SES/UAS, FCS, RSL Low, QoS Drop по очередям и пр.

Читать далее

Немного про ПИД-регуляторы или «велосипед автоматизации». Часть 4

Reading time7 min
Views9K

Мир развивается, а «велосипед» остается.

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

В большинстве случаев ПИД-регулятор полностью справляется со своей задачей и обеспечивает регулирование технологических параметров с требуемым качеством. Подход к настройке на технологических процессах, метод подбора коэффициентов, универсален и не зависит от объекта автоматизации: подаешь возмущение ступенчатым изменением уставки, смотришь по трендам реакцию контура и подбираешь коэффициенты, чтобы получить нужный «горбик» и сходимый переходной процесс. В большинстве случаев этого достаточно. Такому подходу легко обучить не только инженеров АСУТП, но и специалистов с небольшой инженерной подготовкой, прибористов, слесарей КИП, операторов.

Читать далее

STM32 BluePill + RNDIS, или делаем из нехитрых приспособлений троллейбус…

Reading time13 min
Views21K

Привет, Хабр. Год назад я круто изменил направление своей деятельности с desktop разработчика на программиста микроконтроллеров. Хочу поговорить о том, как прошел этот год, поделиться своими наблюдениями, рассказать в одном месте о чем никто не рассказывает. А, еще и RNDIS на STM32F103 поднимем.

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

...и знать ничего не хотят

Git for Windows: вклад в проект с помощью патча

Reading time15 min
Views9.2K

Существуют разные способы совместной работы над исходным кодом проекта. Так получилось, что сначала я познакомился с тем, как работать с командой «git push», посылая свои изменения в удаленный репозиторий, и как создать на сайте «GitHub» форк для отправки из него запроса на принятие изменений («pull request», сокращенно «PR»). И только после этого я узнал о том, что существует способ обмена изменениями в код с помощью файлов-патчей.

В этой статье я экспериментирую с командой «git diff», создаю тестовый проект и файл-патч из него в программах-оболочках «PowerShell» версии 7 и «Git Bash». Клонирую проект и применяю полученный файл-патч с помощью команды «git apply».

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

Читать далее

Lazarus-AVR, №1. Программирование микроконтроллеров AVR в IDE Lazarus

Level of difficultyEasy
Reading time3 min
Views9K

Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать - лень... Конечно, вспомнить Си - это 10-30 минут, но лень... Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.

Читать далее

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Reading time31 min
Views27K
image

В одной из своих прошлых статей я писал про подключение тактовой тактильной кнопки. И, казалось бы, такой простой вопрос, вызвал «бурю» в комментариях. Публика разделилась на два лагеря: на тех, кто все знает, но обычно молчит; и тех, кто не знает, и стесняется спросить. А я так и не понял, к какому лагерю отношусь!

Поиски в интернете по запросу «программирование кнопки для Arduino» выдает весьма противоречивый контент. Где-то код очень крутой, но из-за скудного описания не понятный. А где-то код очень простой, и от того не понятно, что с ним можно делать.

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

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

Дисклеймер. Текст рассчитан на публику, которая только начинает познавать азы программирования контроллеров Arduino. Запрещено к просмотру людям с ослабленной психикой или психикой с долголетней инженерной выдержкой и беременным женщинам (это так, на всякий случай, а то мало ли… британские ученые пока до исследований на эту тему не добрались). Материал предназначен исключительно для просмотра лицам, не достигшим 21 года.
Читать дальше →

Разбираемся что MySQL пишет на диск и зачем [часть 2]

Level of difficultyHard
Reading time9 min
Views6.4K

Это вторая часть моих копаний во внутренностях MySQL. В первой части [habr] были затронуты запись страниц данных на диск (с промежуточной записью в DoubleWrite buffer) и запись бинлогов (с батчингом в виде group commit). В этой части я расскажу про redo log и как все части MySQL координируются для достижения надежной работы.

Читать далее

Stm32 + USB на шаблонах C++. Продолжение'. Делаем MSC

Reading time12 min
Views6.6K

В продолжение темы применения современного C++, а именно шаблонов, в программировании микроконтроллеров рассматриваю реализацию еще одного популярного класса USB - Mass Storage, а также вопрос создания композитного устройства.

Читать далее

Микроконтроллеры Megawin серии MG32F02: модуль интерфейса SPI

Reading time35 min
Views2.1K

Продолжая цикл публикаций по микроконтроллерам на ядре Cortex-M0 компании Megawin (см. предыдущие статьи 1, 2, 3, 4, 5, 6 и 7), сегодня рассмотрим модуль интерфейса SPI в роли ведущего и ведомого, а также:

Читать далее

Алгоритмы для веб-разработчиков простыми словами (часть 3)

Reading time10 min
Views18K

Здравствуйте, друзья!

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

И сегодня мы узнаем, как устроена рекурсия, а также разберем алгоритм сортировки массива под названием Quick Sort или, как еще его называют, быстрая сортировка Хоара. Как вы уже догадались, этот алгоритм рекурсивный.

Если вы еще не читали нашу первую статью (про алгоритмы поиска и Big O нотацию), то можете найти ее здесь.

Ссылку на вторую статью (про алгоритмы сортировки и оценку сложности алгоритмов по скорости и памяти) вы можете найти здесь.

А сейчас давайте перейдем к теме статьи.

Рекурсия

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

Давайте взглянем на простой пример.

Читать далее

Как устроена виртуальная машина SQLite

Reading time10 min
Views18K

SQL — концептуально странный язык. Вы пишете ваше приложение на одном языке, скажем, на JavaScript, а затем направляете базе данных команды, написанные на совершенно другом языке — SQL. После этого база данных компилирует и оптимизирует эту команду на SQL, выполняет её и возвращает вам данные. Такой метод кажется ужасно неэффективным, но, всё-таки, ваше приложение может проделывать сотни таких операций в секунду. Просто безумие!

Но на самом деле всё ещё страннее.

Читать далее

Information

Rating
Does not participate
Location
Ставропольский край, Россия
Date of birth
Registered
Activity