Pull to refresh
1
0

User

Send message

Присосаться к I2C. Сделай простой логический анализатор

Reading time2 min
Views20K
Здравствуйте. Хочу показать простой USB-логический анализатор, который можно собрать на любой отладочной плате с микроконтроллером STM32F042 например NUCLEO-F042K6 от ST. А впрочем, по ссылкам найдёте исходники и легко переделаете на любой другой из этого семейства. В этой конструкции 8 каналов. Под них в микроконтроллере задействованы порты PA0-PA7. Максимальная частота выборки – 8 МГц. Максимальная частота входного сигнала – 2 МГц. Максимальное количество выборок на канал – 4096.

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


Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments30

Курс молодого бойца PostgreSQL

Reading time13 min
Views541K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments59

Краткое руководство по переменным в CSS (причины использования, синтаксис и примеры)

Reading time6 min
Views13K


Я уже достаточно давно экспериментирую с CSS-переменными. Если вы к ним еще не подступались, вы можете воспользоваться этим кратким руководством, чтобы быстро во всем сориентироваться и приступить к работе.
Total votes 28: ↑24 and ↓4+20
Comments8

Открытый вебинар «Механизмы контейнеризации Linux»

Reading time1 min
Views6.1K
Всем привет!

Делимся новым открытым уроком, который провёл Александр Румянцев — преподаватель курса «Администратор Linux». На вебинаре разбиралось современное состояние механизмов контейнеризации и контейнеризация cgroups и cgroups-based, как она реализована в ядре, что такое namespace и почему cgroups — это группы.


Ждём комментарии и вопросы тут или можете задать их преподавателям сегодня на дне открытых дверей.
Total votes 23: ↑21 and ↓2+19
Comments1

Лайфхаки изготовления двухслойных плат (ЛУТ)

Reading time8 min
Views63K

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


Кому интересно посложнее, подороже и поточнее, можно делать фоторезистом, но наша методика (основным элементом которой является особая бумага) позволяет стабильно прорабатывать шины 0.3/0.3 мм, так что в нашем сообществе бытует мнение что тян фоторезисты не нужны.


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


Под катом я поделюсь детерминированной методикой изготовления двухслойных печатных плат по технологии ЛУТ с различными резервными схемами на случай косяков. От идеи до включения. Будем работать с KiCad, Inkscape, наждачкой, утюгом, персульфатом аммония и гравёром.


Total votes 50: ↑50 and ↓0+50
Comments152

Многозадачная Ардуина: таймеры без боли

Reading time7 min
Views117K
Не каждый ардуинщик знает о том, что помимо стартового кода в setup и бесконечного цикла в loop, в прошивку робота можно добавлять такие кусочки кода, которые будут останавливать ход основного цикла в строго определенное заранее запланированное время, выполнять свои дела, затем аккуратно передавать управление в основную программу так, что она вообще ничего не заметит. Такая возможность обеспечена механизмом прерываний по таймеру (обычное дело для любого микроконтроллера), с её помощью в прошивку можно вносить элементы реального времени и многозадачности.

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

Сегодня я избавлю вас от страданий.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments24

Atmega328p + ENC28J60 = мост между UART и Ethernet

Reading time2 min
Views15K
image

Создавая различную электронику и программируя AVR, STM и т.п. всегда встает вопрос как ее подключить к другой периферии для управления и передачи информации, например, к компьютеру.

Есть много различных решений: COM, RS482, WiFi, Zigbee, ZWave, Ethernet и т.п. Из всех вариантов я пробовал WiFi, Zigbee, Ethernet, все остальное крайне неудобно или устарело.

Я хочу рассказать и поделиться, как можно использовать чип ENC28J60 от Microchip и Atmega328p для создания «моста» (далее по тексту) между UART и Ethernet.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Пишем модуль ядра Linux: I2C

Reading time15 min
Views37K
Хабр, привет!

Данная статья посвящена разработке I2C (Inter-Integrated Circuit) модуля ядра Linux. Далее описан процесс реализация базовой структуры I2C драйвера, в которую можно легко добавить реализацию необходимого функционала.

Опишем входные данные: I2C блок для нового процессора «зашитый» на ПЛИС, запущенный Linux версии 3.18.19 и периферийные устройства (EEPROM AT24C64 и BME280).

Принцип работы I2C достаточно прост, но если нужно освежить знания, то можно почитать тут.


Рисунок 1. Временная диаграмма сигналов шины I2C
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments6

Солнечная батарея на балконе: тестирование контроллера заряда

Reading time4 min
Views46K
Привет geektimes!

В предыдущей части была рассмотрена и проверена работа платы BMS, обеспечивающей корректный заряд литий-ионного аккумулятора. Китайская почта наконец доставила Solar charge controller, так что пора протестировать и его.

image

Результаты тестирования под катом.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments17

Климатическая система в квартире своими руками — часть 2

Reading time5 min
Views29K
В июне 2016 года я опубликовал статью «Климатическая система в квартире своими руками», вызвавшую положительную реакцию сообщества. Тогда я только что собрал климатическую систему, не успел её протестировать, и вообще был немножко в эйфории от своей победы над оборудованием и материалами.

Сейчас, два года спустя, я решил написать об опыте использования системы. Вкратце, всё работает, но потребовало некоторого доведения до ума, а именно:
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments76

Mikrotik RoS, полезные мелочи

Reading time5 min
Views177K
Распространенность оборудования Mikrotik растет с каждым днем, все больше устройств, а значит и RoS, появляется не только в корпоративном секторе, но и у обычных, домашних пользователей.
К сожалению, не смотря на вполне нормальные настройки по умолчанию, которые можно сделать через Quick Set, в интернете можно встретить множество советов очистить конфигурацию, и сделать как-то по «особому», с «нуля». В этой статье я хочу поделится своим опытом и дать рекомендации, как изменить конфигурацию из Quick Set под свои нужды, при этом сохранив достаточный уровень защищенности.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments28

«Умный дом» на Arduino для бытовки

Reading time23 min
Views93K


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

Ключевые особенности:

  • Датчик параметров электросети — счётчик электроэнергии «Нева» по RS-485;
  • Удалённая модификация web-страницы управления, лежащей на SD-карте;
  • Надёжное включение группы датчиков температуры Dallas на длинных линиях;
  • Графики изменения параметров без привлечения облачных сервисов;
  • Отказоустойчивые решения (внешний вотчдог, ИБП, авторестарт роутера);
  • Защита изернет-шилда от зависаний при помехах от силовых реле;
  • Законченная конструкция в корпусе на DIN-рейку.
Далее о принципах построения системы и о её реализации
Total votes 41: ↑41 and ↓0+41
Comments80

Система сбора данных на ESP. Часть II. LifeOfFlowers

Reading time5 min
Views22K


Доброго времени суток! Вот и пришло время для второй статьи на тему ESP. Я расскажу про устройство, которое позволит получать информацию о микроклимате вокруг Ваших цветов (если, конечно, они у Вас имеются) и получать уведомления, о том, что их жизни что-то угрожает.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments89

Отладка многопоточных программ на базе FreeRTOS

Reading time13 min
Views35K

image

Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (вообще не врубаешься) о том, что на самом деле происходит. Классика жанра: «Я выделил целых 3КБ операционной системе и запустил всего 3 задачи со стеком по 128Б, а на четвертую уже почему-то не хватает памяти» или «А сколько вообще стека я должен выделить задаче? Столько достаточно? А столько?». Многие решают данные задачи путем проб и ошибок, поэтому в этой статье я решила объединить большинство моментов, которые, в настоящее время, значительно упрощают мне жизнь и позволяют более осознанно отлаживать многопоточные программы на базе FreeRTOS.

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

В данной статье я расскажу о следующих моментах:


  1. Настройка OpenOCD для работы с FreeRTOS.
  2. Не забываем включать хуки.
  3. Статическое или динамическое выделение памяти?
  4. Сказ, о параметре configMINIMAL_STACK_SIZE.
  5. Мониторинг использования ресурсов.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments22

Как объяснить родственникам кто вы в мире ИТ на примере булочек

Reading time3 min
Views18K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to Explain Your Tech Job to Your Family» автора Mischa von Nachtigal.


Список метафор, которые с легкостью помогут вам передать суть вашей профессии в ИТ за обеденным столом.

Итак поехали!
Читать дальше →
Total votes 50: ↑29 and ↓21+8
Comments37

Выбираем веб-шрифты: руководство для начинающих

Reading time11 min
Views65K
Устраните элемент таинственности в выборе шрифтов с нашим пошаговым руководством

Если всё сделать правильно, то типографика становится невероятно мощным инструментом. Обратимся к сочинениям Роберта Брингхёрста, чья книга «Основы стиля в типографике» (The Elements of Typographic Style) десятилетиями служила остроумным справочником для профессионалов. Там вы найдёте возвышенную формулировку ремесла. По Брингхёрсту, типографика «существует для уважения контента», а правильная типографика «показывает каждый элемент, каждое отношение между элементами и каждый логический нюанс текста».

Может, эти слова кажутся вдохновляющими или пугающими. Но очевидный факт в том, что правильный выбор типографики всегда отражает конкретные потребности самого проекта. Это не только эстетические потребности, но также технические и функциональные — и очень разные сообщения вы можете создать из фрагментов текста, прокручивая выпадающий список от Alegreya до Zapf Dingbats. Некоторые шрифты лучше работают в заголовках, а другие хорошо читаются в абзацах. Некоторые семейства достаточно велики, чтобы вместить международные алфавиты и специальные символы. И если шрифт идёт в разных стилях (например, курсив или малые прописные) и начертаниях (от тончайшего Hairline до ультра-чёрного), то по мере сборки проекта он предоставит больше возможностей для тонкой настройки дизайна.

Конечно, есть о чём подумать, но некоторые из наиболее важных соображений — это практические и функциональные особенности проекта. Начав с уже известных вещей и пройдя по следующим пунктам, вы найдёте шрифт, который соответствует вашим нуждам.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments1

Дайджест новостей из мира PostgreSQL. Выпуск №3

Reading time4 min
Views6.6K
Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.

Релизы

Вышел релиз PostgreSQL 10.2
В списке исправлений десятки пунктов. Например: устранение сбоев параллельных процессов при использовании более чем одного узла Gather (Томас Мунро) или Изменение поведения оператора cube ~> int в расширении contrib/cube для обеспечения его совместимости с поиском kNN(Александр Коротков). Одновременно вышли исправления версий 9.x. Напоминаем, что в новой нумерации 10.2 это минорный релиз.
Postgres Pro 10.2.1 Standard
доступен на сайте Postgres Professional Выпуск включает все новые возможности, появившиеся в PostgreSQL 10, а также исправления ошибок, вошедшие в PostgreSQL 10.2. Среди исправлений уже от Postgres Professional:
  • Утилита pg_probackup обновлена до версии 2.0.14 (исправлено поведение ptrack и резервного копирования страниц в условиях гонки; исправлено прерывание параллельного резервного копирования ptrack); добавлено новое состояние резервного копирование (ORPHAN), указывающее, что одна из предыдущих резервных копий испорчена.
  • Обновлён модуль pg_variables.
  • Модуль pg_pathman обновлён до версии 1.4.9. В этой версии исправлена обработка ONLY во всех типах запросов.
Подробности здесь.
2ndQuadrant объявила о выходе версии OmniDB 2.5
Новая версия графического клиента PostgrSQL приблизилась к заявленной цели: стать универсальным клиентом БД. Объявлено, что в новой версии есть базовая поддержка Oracle: можно управлять, соединяться и взаимодействовать с базами Oracle, использовая бóльшую часть функционала, доступного для пользователей PostgreSQL. Появилась новая панель DDL. Релиз 2.5 сопровождался серией статей, например: Oracle with OmniDB ключевого разработчика Вильяма Ивански.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments17

Нотной грамоте учат неправильно*

Reading time11 min
Views243K

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


Предполагается, что студент должен страдать самостоятельно освоить ноты, путем многократного повторения. И вообще, если «ниасилил», значит у тебя нет Таланта — иди мести двор.


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


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


* Дисклеймер

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


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


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


Эффективность я оценивал исключительно на себе, поскольку сей субъект оказался самым доступным для исследования.

Читать дальше →
Total votes 124: ↑123 and ↓1+122
Comments212

Начинающим на Arduino: Упаковываем конечный автомат в отдельный класс и библиотеку

Reading time9 min
Views33K

В прошлой статье про написание конечных автоматов я обещал упаковать наш гениальный код в виде класса на C++ для повторного удобного использования. Делать буду так же на примере своей старой разработки SmartButton. Итак, влезаем в непонятный мир ардуининых библиотек и ООП.


Папки с библиотеками

Читать дальше →
Total votes 15: ↑9 and ↓6+3
Comments59

История языков программирования: 100% «чистый» Си, без единого «плюса»

Reading time13 min
Views86K
image

Популярность языка программирования Си трудно переоценить, особенно вспоминая его былые заслуги. Наверное, каждый разработчик, как минимум, знает о его существовании, и, как максимум, пробовал на нем программировать. Си является предшественником таких языков, как C++, Objective-C, C#, Java.

Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Более того, на Си написано множество операционных систем.

Конечно, Си не идеален: создатели языка – Кен Томпсон и Деннис Ритчи – долгое время дорабатывали его. Стандартизация Си продолжается до сих пор. Он существует более 45 лет и активно используется.

С ним часто ассоциируют не один, а два языка программирования — C/C++. Однако ниже речь пойдет именно о «чистом» Си.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments182

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity