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

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

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

STM32. Подготавливаем среду разработки в Linux

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров23K
В недавнем времени получилось так, что у меня появилась пара интересных проектов, где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки как в первый раз. Плюсом, последние проекты, которые я делал для STM32 — выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно переехал в Linux — возникла необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений.

Всем, кому интересно — добро пожаловать под кат.

Читать дальше →
Всего голосов 53: ↑52 и ↓1+61
Комментарии35

Скрытые возможности элемента <input>

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

Элемент <input> в HTML самый интересный.

Большинство его собратьев вне зависимости от своих атрибутов ведут себя одинаково. При этом атрибут type элемента <input> может принимать 22 разных значения, которые не только меняют его поведение, но и влияют на внешний вид (зачастую в ущерб стилистике).

Элемент <input> отвечает за всё, начиная с текстового ввода и чекбоксов, заканчивая переключателями и кнопкой для сброса всех полей в форме. В этой статье я опишу не только различные типы <input>, но и сопутствующие атрибуты, о которых вы могли не знать, и которые делают этот элемент более удобным и применимым в различных ситуациях. Приступим!
Читать дальше →
Всего голосов 83: ↑82 и ↓1+101
Комментарии22

Затыкаем рот Windows 10

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


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

Однако жизнь сложная штука и не ограничивается только стандартными вариантами. Существуют ситуации, когда подобная сетевая активность операционной системы (ОС) нежелательна и даже вредна. За примерами далеко ходить не надо. Попробуйте подключить к Интернету давно не используемый резервный компьютер, собранный на старом железе. Пока софт на нём не обновится, использовать его будет практически невозможно, всё будет дико тормозить и еле шевелиться. А если вам в этот момент нужно срочно что-то сделать?

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Всего голосов 170: ↑160 и ↓10+196
Комментарии311

Загружаем OpenIPC по сети на камеру без удаления заводской прошивки

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


Многие уже слышали о проекте OpenIPC, который представляет собой альтернативную универсальную прошивку для камер видеонаблюдения. Сегодняшний пост для тех, кто хочет попробовать этот софт, кто дружит с Linux, но далёк от программатора, паяльника, фена и многих подобных вещей, которые, как правило, сопровождают смену прошивки и путь обратно к заводской. Ведь многие боятся, что залив новую прошивку, она не заработает, а дороги к родной уже не будет. И эти опасения вполне оправданы, потому как на большинстве плат производители всеми средствами ограничивают возможности создания бэкапов. С каждой новой версией это становится сделать всё сложнее. Ещё такой вариант загрузки будет удобен администраторам, кому требуется обслуживать огромное количество одинаковых камер, ведь одно изменение в директории обновит сразу все камеры.

Из дополнительных железок нам понадобится мультиметр, USB UART-адаптер на 3.3 вольта и dupont-проводки от макетной платы, чтобы подключиться к камере. Сегодня будем настраивать загрузку OpenIPC на камере с сервера вместо классической загрузки с микросхемы флэш-памяти. Если понравится, можно даже оставить работать камеру таким образом навсегда.

Особенно такой вариант будет удобен тем, кто разрабатывает программы для камеры, и нужно быстрым и удобным способом подкидывать в систему программы, модули ядра, менять ядро и саму корневую файловую систему. А также тем, кто использует камеру как одноплатный компьютер вместо плодово-ягодных плат.
Дальше о том, как заставить загружаться камеры с сервера по сети
Всего голосов 60: ↑60 и ↓0+60
Комментарии7

Блокировка рекламы в браузере (User CSS)

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

Поделюсь опытом, как я блокирую рекламу в браузере Chrome (к счастью, мне хватает одного), пользуясь базовыми знаниями HTML/CSS.

Читать далее
Всего голосов 18: ↑13 и ↓5+10
Комментарии17

Структура драйвера Linux для одноплатного компьютера

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

Здраствуйте меня зовут Дмитрий. Недавно я написал статью как собрать прошивку для одноплатного компьютера Orange PI i96 с нуля. Если вы не читали то очень советую. И там я упоминал что для того чтобы собрать прошивку на новом ядре Linux, мне пришлось переписать драйверы с учетом архитектуры Device Tree, которую использует современное ядро. В этой статье я опишу как я это сделал.

Читать далее
Всего голосов 34: ↑33 и ↓1+35
Комментарии5

На чём изучают электронику китайцы? Контроллер светофора

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


Привет, Хабр! Сегодня мы изучим ещё одну секретную китайскую плату, предназначенную для экзамена по электронике.

Разработчики этого учебного пособия уделили особое внимание распространённой микросхеме прецизионного интегрального таймера КР1006ВИ1 (NE555), про особенности и возможности которого многие из нас смогут узнать немало нового.
Будет интересно!
Всего голосов 26: ↑25 и ↓1+33
Комментарии10

100 ватт по USB или как работает Power Delivery

Время на прочтение9 мин
Количество просмотров169K
Почитав вот этот пост и сопутствующую ему дискуссию, я решил попробовать внести ясность в то, что такое USB Power Delivery и как это работает на самом деле. К сожалению у меня сложилось впечатление, что большинство участников дискуссии воспринимают 100 ватт по USB слишком буквально, и не до конца понимают что за этим стоит на уровне схематики и протоколов.

Итак, кратко – основные пункты:

  • USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до 12V@1.5А, до 12V@3А, до 12-20V@3А и до 12-20V@4.75-5А
  • Кабели и порты для Power Delivery сертифицируются и имеют дополнительные пины в разьеме
  • Тип кабеля и его соответствие профилю определяются автоматически через дополнительные пины и определение типа USB коннектора (микро, стандарт, A, B и т.д.)
  • Обычные USB кабели (не Power Delivery) сертифицируются только по первому профилю до 5V@2A
  • При подключении распределяются роли, между тем кто дает ток (Source / Источник ) и кто потребляет (Sink / Приемник)
  • Источник и Приемник обмениваются сообщениями по специальному протоколу, который работает параллельно традиционному USB
  • В качестве физического носителя протокол использует пару – VBus / GND. Именно поэтому Power Delivery не зависит от основного USB протокола и обратно совместим с USB 2.0 и 3.0
  • Используя сообщения, источник и приемник могут в любой момент времени меняться ролями, изменять силу тока и/или напряжение, уходить в спячку или просыпаться, и т.д.
  • По желанию устройства могут поддерживать управление PD через традиционные USB запросы, дескрипторы и т.д.

Под катом — детали.
Читать дальше →
Всего голосов 77: ↑76 и ↓1+75
Комментарии36

Пишем расширение Chrome, которое ворует вообще всё

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

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

Мы добьёмся двух целей:

  • Исследуем грани возможного для расширений Chrome
  • Продемонстрируем, что вы подвержены опасности, если не будете аккуратны с тем, что устанавливаете.

Примечание: на самом деле реализация этого расширения — злодейство. Вам не следует использовать в злонамеренных целях полномочия расширений, красть пользовательские данные и создавать зловредные браузерные расширения. Любые реализации, производные расширения или применение этих техник без разрешения Национальной баскетбольной ассоциации не рекомендуются.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+37
Комментарии12

Передаем данные с одноплатника Repka Pi (или Raspberry Pi) в интернет по GSM связи через модуль SIM868 и GPRS протоколу

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

Всегда ли вы берете с собой смартфон? Наверное да, ведь это удобно, когда под руками есть все каналы связи.

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

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

Еще не так давно все это было реализовать довольно затруднительно, но сейчас доступны недорогие модули на базе SIM868, в которых есть все необходимое.

В этой статье мы расскажем о том, как настроить обмен данными по каналам GPRS мобильных провайдеров между микрокомпьютерами Raspberry Pi или Repka Pi с сервером, размещенном в интернете. Для обмена будем использовать модуль GSM/GPRS/GNSS Bluetooth HAT.

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

Управление сервоприводами, часть 4. Управление «сервами» по I2C с Repka Pi через серво-драйвер Robointellect Controller

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

В предыдущих статьях нашей серии про сервоприводы мы рассказывали, как они устроены, как можно управлять сервоприводами с помощью широтно-импульсной модуляции ШИМ (Pulse Width Modulation,  PWM) с помощью контроллеров Robointellect Controller 001, а также напрямую через GPIO через генератор ШИМ на плате микрокомпьютера Repka Pi.

В четвертой статье серии статей про сервоприводы мы расскажем, как управлять сервоприводами с помощью контроллеров Robointellect Controller 001 или PCA9685, подключенных к Repka Pi через шину I2C.

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

Как загружается процессор Intel x86

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

Когда мы включаем компьютер, он успевает совершить несколько этапов работы ещё до того, как загрузится операционная система. В этом посте будет рассмотрено, как загружается типичный процессор с архитектурой x86. Это очень сложный и многоступенчатый процесс. Здесь его структура будет представлена только в самом общем виде. От загрузочной прошивки зависит, каким именно путём процессор придёт к тому состоянию, в котором сможет загрузить операционную систему. Мы проследим этот процесс на примере опенсорсной загрузочной прошивки coreboot.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+40
Комментарии21

Программируем Raspberry Pi на голом железе

Время на прочтение2 мин
Количество просмотров100K
До сих пор Raspberry Pi остается одним из самых популярных технологических гаджетов.На эту плату Вы можете установить практически любую операционную систему. Но сегодня мы поговорим о том, как писать программы для этой платы без операционной системе, пользуясь лишь аппаратными средствами.

В чем подвох?


На первый взгляд задача кажется тривиальной: скачиваем keil, создаем проект… Но все не так просто. Все среды программирования(keil, IAR, Atolic) поддерживают максимум ARM9.У нас же ARM11. Это связано с негласным правилом, что на голом железе пишут до ARM9, а после на Линуксе. Но все-таки есть одна лазейка: arm-none-eabi-gcc поддерживает любой ARM.
Вторая проблема заключается в том, что под данный процессор(BCM2835) нет никаких конфигурационных файлов, header'ов и т.д. Здесь нам на помощь придет загрузчик Raspberry Pi. И ничего, что он пропритетарный. Он выполняет две функции: инициализирует процессор и его периферию, а также передает управление ядру kernel.img. Мы просто замаскируем свою программу под ядро и загрузчик её запустит.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии62

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 2

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

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

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

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

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

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 1

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

Расширения браузера это web-приложения, которые устанавливаются в web-браузер чтобы расширить его возможности. Обычно для того чтобы воспользоваться расширением, пользователю нужно найти его в Chrome Web Store и установить.

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

Мы создадим расширение, которое называется Image Grabber, которое будет содержать интерфейс для подключения к web-странице и для извлечения из нее информации о всех изображениях. Далее, при нажатии на кнопку "GRAB NOW" список абсолютных URL этих изображений будет скопирован в буфер обмена. В этом процессе вы познакомитесь с фундаментальными строительными блоками, которые в дальнейшем можно будет использовать для создания других расширений.

Расширения, создаваемые таким образом для браузера Chrome совместимы с другими браузерами, основанными на движке Chromium и могут быть установлены, например, в Yandex-браузер или Opera.

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

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

Создаём своё расширение для Google Chrome

Время на прочтение5 мин
Количество просмотров229K
На хабре уже есть несколько статей о создании расширений для хрома, поделюсь своим опытом, затронув основные вещи и места, в которых у меня возникли трудности.
Что понадобится для создания расширения в двух словах:
1) Базовые знания Javascript
2) Базовые знания HTML
3) 5$

Покажу создание расширения для хрома на примере своего, созданного для подсчета «потерянного времени» в интернете. То есть это расширение считает время, проведенное на сайтах с возможностью определения посещенных сайтов по категориям: полезное время, либо потерянное время.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии15

Мессенжеру Signal угрожает коллапс после прекращения финансирования со стороны ЦРУ

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

16 ноября Мередит Уиттакер, президент Signal впервые опубликовала подробный анализ эксплуатационных расходов популярного приложения для обмена зашифрованными сообщениями. Причина беспрецедентного раскрытия информации проста: у платформы быстро заканчиваются деньги, и она остро нуждается в пожертвованиях, чтобы оставаться на плаву. Уиттакер не сообщила, что этот дефицит бюджета является, в значительной степени, результатом прекращения поддержки со стороны разведывательного сообщества США, которое щедро финансировало создание и поддержку Signal в течение нескольких лет,

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

Два секундомера на логических микросхемах

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


Привет, Хабр! Сегодня мы рассмотрим и соберём два цифровых таймера без микроконтроллера. Это прекрасные примеры того, каким образом можно добиться желаемого результата максимально простыми средствами.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии17

Симулятор электронных схем Qucs-S: обзор новшеств версии 2.1.0

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

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. Для работы Qucs рекомендуется использовать также открытый движок моделирования Ngspice. Первый релиз Qucs, на котором основан Qucs-S, состоялся в 2003 году. В декабре этого года программе исполняется 20 лет. Актуальным релизом Qucs-S на текущий момент является версия 2.1.0. Далее будет рассказано о функциях, добавленных в релизах, вышедших в этом году.

Осторожно! Далее имеются анимированные GIF.

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

Удивительный мир бинов банковских карт

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

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

Разобраться
Всего голосов 26: ↑23 и ↓3+35
Комментарии5

Информация

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