Search
Write a publication
Pull to refresh
24
0

Схемотехник/программист МК

Send message

STM32: FreeRTOS и пьезокерамический излучатель

Reading time12 min
Views26K
image

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

Много в интернете уроков «Подключаем пищалку к ардуино», только вот заканчиваются они проигрыванием «В траве сидел кузнечик» или озвучкой срабатывания RFID датчика. Наверное тем, кто занят этим профессионально и серьезно, не до ведения блогов и записи видеоуроков.

А ведь миниатюрный керамический динамик — шаг в сторону более дружелюбного интерфейса с человеком. Нажатия кнопок, касания сенсорной панели, реакция на различные события… Такая вот обратная связь в виде звукового отклика!

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

Тонкости проектирования силовой платы инвертора

Reading time6 min
Views26K
Всем привет! Скромными шагами продолжаю цикл статей про разработку железа электробайка. Начнем с самого интересного — инвертора, который управляет мотором. Хочу подробнее рассказать о тонкостях построения силовой платы и о температурном режиме транзисторов.


Модель варп ядра электробайка
Читать дальше →

Как получить лёд температурой +151°C

Reading time4 min
Views27K

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

Необычные свойства воды давно являются объектом пристального изучения учёных. Десять лет назад выяснилось, что внутри нанотрубок диаметром менее 2,5 нм вода не замерзает, а продолжает течь даже при температурах, близких к абсолютном нулю (−273,15°C). Странности на этом не заканчиваются.
Читать дальше →

Как использовать PVS-Studio бесплатно

Reading time6 min
Views48K
PVS-Studio FreeМы хотим помочь миру программного обеспечения лучше познакомиться с инструментами статического анализа кода и повысить качество программного обеспечения. Мы предоставляем возможность бесплатного использования анализатора PVS-Studio студентам в учебных целях, индивидуальным разработчикам и коллективам энтузиастов.

Введение


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

Думаю, что наш провал с CppCat был предопределён. Мир диктует свои законы, и, например, тот же Coverity ориентирован на корпоративные лицензии. Однако, это не значит, что нужно исключать другие варианты взаимодействия с миром.

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

Стоит пояснить нашу позицию. Впрочем, если вам не терпится, вы можете сразу перейти к разделу «Бесплатная лицензия PVS-Studio». Если же читателю интересно узнать подробности, то предлагаю продолжить чтение.
Читать дальше →

Рассказ «Как я прошёл собеседование»

Reading time3 min
Views30K
Обычно мы с друзьями обсуждаем собеседования, компании, вопросы, тестовые задания. В тех, естественно, случаях когда это допустимо.

И вот, утром в скайпе:
Напиши рассказ «Как я прошел собеседование», а я пока до работы пойду)

Я воспринял это слишком буквально.

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

Боли в руках при работе за компьютером. Часть 2. Освобождаем надплечья и шею

Reading time4 min
Views72K
Частый совет напряжённому человеку: «Чего напрягся – расслабься, получай удовольствие…». Что происходит в результате? – Человек напрягается еще больше!

В прошлой статье вы познакомились с основными проблемами, вызывающими боли в руках при работе за компьютером.
image

Теперь пришло время практики. Напряжение в шее и надплечьях – «не снимаемый груз на плечах» самая частая проблема, с которой обращаются за помощью ко мне, как преподавателю соматики. Сегодня мы будем учиться снимать напряжение в шее и надплечьях.

Урок займет 15-20 минут, вы можете делать его сидя, не отходя от компьютера. Под катом – видео урока, правила выполнения соматических уроков и текстовая расшифровка расширенной версии урока (осторожно – очень много букв!).

Фотостудия для съёмок пластилиновой игры

Reading time3 min
Views32K
Привет! В жизни почти каждого разработчика игр наступает момент, когда он отбивается от стаи, выкапывает себе нору и начинает в одиночку делать «лучшую в мире игру, не то что эти всякие». 2 года назад это случилось и со мной. Не обладая навыками художника, я решил замахнуться на stop-motion анимацию и делать всю графику из пластилина.

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

PixelPixie — генератор шрифтов для LCD и OSD

Reading time3 min
Views20K

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

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

Всё, что вы знали о холестерине, оказалось неправдой

Reading time11 min
Views194K


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

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

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

Г-н Холестерин – не злодей. Его просто неверно поняли. Сегодня мы поделимся всем, что нужно знать про г-на Холестерина и раскроем все секретные сведения по поводу этого хорошего парня.
Читать дальше →

Делаем экран загрузки Android приложения правильно

Reading time3 min
Views132K
Splash Screen (прим.: тут и далее — экран загрузки) просто отнимает ваше время, верно? Как Android разработчик, когда я вижу экран загрузки, я тут же представляю как некоторые плохие разработчики добавляют трехсекундную задержку в коде.

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

Оптимизация кода: память

Level of difficultyHard
Reading time12 min
Views94K
Большинство программистов представляют вычислительную систему как процессор, который выполняет инструкции, и память, которая хранит инструкции и данные для процессора. В этой простой модели память представляется линейным массивом байтов и процессор может обратиться к любому месту в памяти за константное время. Хотя это эффективная модель для большинства ситуаций, она не отражает того, как в действительности работают современные системы.

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

image

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

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

Reading time3 min
Views14K
Делимся полезным контентом по разработке на Xamarin: видео The Xamarin Show на Channel 9, базовый курс Microsoft Virtual Academy для новичков, список обучающих материалов и первый в России Moscow Xamarin Meetup.


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

Почему вам не следует использовать финализаторы

Reading time5 min
Views18K
Не так давно мы работали над диагностикой, связанной с проверкой финализатора, и у нас с коллегой возник спор по поводу деталей работы сборщика мусора и финализации объектов. И хотя я и он занимаемся разработкой на C# более 5 лет, к общему мнению мы не пришли, и я решил изучить этот вопрос подробнее.


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

«Худой мир». Глава 6

Reading time13 min
Views12K
Продолжение фантастической повести. Для тех, кто забыл (или не знал), что там было раньше — ссылки на предыдущие части ниже.


Немного фантастики под катом

IMHO, как писать на Хабр

Reading time10 min
Views39K


Акронис на прошлой неделе попросил меня рассказать про опыт на Хабре. После семинара я обещал выложить основные тезисы. Возможно, вы найдёте что-то полезное ниже.

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

При этом активных (голосующих) пользователей всего около 3 тысяч. Уровень знаний аудитории на входе в пост — в примерно 95% случаев низкий, в 5% — экспертный (разбиение оценочное). Проще говоря, есть люди, которые вообще не понимают, что вы хотите сказать (и их большинство), и есть те, кто разбирается в теме на голову лучше вас. Поэтому лучший пост — это тот, что проходит от ликбеза к хардкору. На площадке довольно высокий уровень агрессии (точнее, желания проверить материал на прочность). Ранее был экстремально высок. Средняя или низкая внимательность читателя (ранее была высокая).

Разумеется, это всё моё личное мнение, и можно поспорить. Сейчас постараюсь объяснить, почему я так считаю, и как это влияет на посты. Я основываюсь на опыте примерно 1500 постов за 6 лет, которые написал сам или помогал готовить.

Но начнём с численных показателей. Вот эти компании так или иначе вызвали мой интерес тем, что для них работают агентства или выделенный инхаусный пиар:


Данные тут на конец августа, я их к другому семинару (в Хабре для владельцев блогов) готовил.
Читать дальше →

Однажды программисты погубят этот мир

Reading time8 min
Views70K


1. История первая: воспоминание


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

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

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

Что необходимо знать о резисторах?

Reading time5 min
Views95K


Резистор: кусочек материала, сопротивляющийся прохождению электрического тока. К обоим концам присоединены клеммы. И всё. Что может быть проще?

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

Начнём с самого простого и старого.

Углеродные композиционные резисторы


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

Оптимизация кода: процессор

Level of difficultyHard
Reading time18 min
Views117K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

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

Встраивание PyPy кода в приложения на C

Reading time3 min
Views14K
Прим. переводчика:
Как правильно подсказали в комментариях, не смотря на название, речь в данной статье пойдет не о непосредственном встраивании кода, а о создании разделяемых библиотек на Python. Но так как это всего лишь перевод, я все же решил оставить название более близкое к оригиналу.



На конференции PyGrunn 2016 я выступил с докладом о пакете Python cffi и его использовании для встраивания PyPy кода в приложения на C.

С выходом cffi 1.5.0 и его последующим включением в PyPy 5, становится возможным встраивать PyPy код. Это делается путем компиляции кода Python в динамическую библиотеку, которая затем может быть использована в любом другом языке. В этой статье я покажу вам, как это делать.
Читать дальше →

Разработка power bank для ноутбука. От макета к готовому изделию. Часть вторая

Reading time6 min
Views30K
В прошлой части статьи о разработке PowerBank для ноутбука мы остановились на изготовленном макете, измеренном КПД и пониманием того, что делать дальше. А дальше нужно было оживлять железку. Поэтому представляю вашему вниманию часть вторую: ПО макета.

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

Information

Rating
8,956-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity