Как стать автором
Обновить
0
0
Андрей Маколдин @Avlaak

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

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

7 производителей печатных плат вместо JLCPCB. Где можно заказать платы в 2023 году

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

Привет, Хабр! Я – Дима, в компании отвечаю за закупку компонентов. Долгове время у нас было два поставщика печатных плат. Один из них вышеупомянутый JLCPCB. После того, как он ушел из России, пришла проблема откуда не ждали – второй поставщик начал подводить по срокам и отгружать откровенный брак. 

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

Для удобства в конце привожу сводную таблицу с кратким описанием преимуществ и недостатков производителей.

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

Как делают печатные платы: экскурсия на завод Технотех

Время на прочтение13 мин
Количество просмотров207K
Сегодня мы выступим в немного непривычном для себя амплуа, будем рассказывать не о гаджетах, а о технологиях, которые стоят за ними. Месяц назад мы были в Казани, где познакомились с ребятами из Навигатор-кампуса. Заодно побывали на расположенном близко (ну, относительно близко) заводе по производству печатных плат — Технотех. Этот пост — попытка разобраться в том, как же все-таки производят те самые печатные платы.
image
Итак, как же все-таки делают печатные платы для наших любимых гаджетов?
Читать дальше →
Всего голосов 193: ↑186 и ↓7+179
Комментарии107

Мой первый супероптимизатор

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

Настало время для очередного бесполезного проекта.

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

Смысл такой: сгенерировать все возможные пермутации инструкций кода и протестировать каждую полученную программу на равнозначность исходной. Вот, по сути, и всё. Несложно представить, что область возможных программ очень быстро разрастается, да и протестировать две программы на равнозначность тоже нелегко. Но, если эта задача была выполнима на компьютерах в 1987 году, то мой ноутбук определённо с ней справится.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+43
Комментарии11

Контроллер в металлическом корпусе, быстрый Modbus и другие новости

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

Транскрипт доклада Wiren Board с конференции и выставки WBCE 2023.

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

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

Фантомный double в прошивках для ядер Cortex-M*

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

В последнее время появилось много микроконтроллеров на ядрах ARM Cortex-M*, которые поддерживают аппаратную реализацию математики плавающей запятой (FPU). В основном FPU работают с одиночной точностью (float) и её вполне достаточно для работы с сигналами, полученными с АЦП. FPU позволяет забыть о проблемах дискретизации и проблемах переполнения целочисленных вычислений. FPU быстр - все математические операции с одиночными float, кроме деления и взятия корня, занимают на Cortex-M4F один такт. Поэтому после перехода на Cortex-M4F мы вздохнули свободно и стали писать математику на float. Как же мы удивились, найдя в скомпилированном коде математические операции над double с программной, очень медленной эмуляцией.

В статье рассказывается, как обнаружить и исправить присутствие double в прошивках, где ядро аппаратно поддерживает тип float, но не поддерживает double.

Работа ведётся в среде IAR Embedded Workbench на примере реального кода на языке Си.

Читать далее
Всего голосов 65: ↑63 и ↓2+82
Комментарии25

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

Время на прочтение1 мин
Количество просмотров9.3K
main

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

Читать дальше →
Всего голосов 13: ↑9 и ↓4+6
Комментарии17

Кейсы применения ChatGPT для задач программиста

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

Разберем 7 примеров использования ChatGPT, которые могут помочь программисту. Также посмотрим, как хорошо она умеет писать код. В статье выжимка из популярных тредов твиттера и блог-постов, чтобы вы могли не тратить время на их чтение.

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

Машинное искусство и стиль Midjourney на примере круга

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

Как материалы, настроения и среды влияют на генерацию круга


Этот текст для тех, кто хотел бы посмотреть на MidJourney в деле, но не может выделить время, чтобы, наконец, попробовать. А ещё для тех, кому нужно отвлечься от рабочей среды и погрузиться во что-нибудь, что увлекает и расслабляет внимание. Материалом для отдыха делимся к старту флагманского курса по Data Science.



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

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии16

WinUI 3 — Новая эра разработки под Windows

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

В этой статье:

- WinUI 3 - это не просто новая версия библиотеки пользовательских компонентов. Это изменит разработку ПО под Windows и не только.
- Как менялась разработка графических интерфейсов?
- Эволюция системных API пошла не по плану....
- В чём провал Universal Windows Platform?
- Что такое .NET, и почему за ним будущее?

Читать далее
Всего голосов 43: ↑37 и ↓6+46
Комментарии166

Восстановление данных с флешек монолит

Время на прочтение2 мин
Количество просмотров136K
Флешки к нам в лабораторию на восстановление данных приносят почти ежедневно. Однако, за последние годы, всё чаще и чаще начали приносить миниатюрные, при разборе которых выясняется особенный конструктив изготовления — Monolith.

image

В кругу ремонтников мы прозвали такое исполнение корпуса «монолит». Из-за того, что микросхема контроллера и микросхема памяти NAND выполненны в «одном флаконе».

Читать дальше →
Всего голосов 197: ↑193 и ↓4+189
Комментарии109

PC-3000 Flash: восстанавливаем данные с карты microSD

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


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

До недавнего времени все карты памяти типа SD, Sony MemoryStick, MMC и других, использовали простую «классическую» структуру с отдельными частями – контроллер, плату и чип памяти NAND в корпусе TSOP-48 или LGA-52. В таких случаях процесс восстановления был очень простым – мы выпаивали чип памяти, читали его в PC-3000 Flash, и вели ту же подготовку, что и в случае с обычными USB-флэшками.

Однако что делать, если наша карта памяти или UFD-устройство имеет монолитную структуру? Как получить доступ к чипу памяти NAND и прочесть данные с него?
Всего голосов 27: ↑27 и ↓0+27
Комментарии17

Начинаем работать в STM32CubeMX. Часть 1

Время на прочтение4 мин
Количество просмотров202K
Часть 2
Часть 3

Приветствую аудиторию хабра, и хочу предложить вашему вниманию первый пост, посвященный использованию среды разработки STM32CubeMX, написанный для тех, кто хочет начать изучение STM32 «с нуля».



Я планировал написать несколько постов, рассмотрев несколько периферийных устройств микроконтроллера и их конфигурирование в STM32CubeMX. Но эти посты не заменяют фирменной документации и не претендуют на полноту. В них будут рассмотрены только некоторые, наиболее, на мой взгляд, типичные, примеры использования периферии STM32.
Надеюсь, кому-то этот материал будет полезен.
Итак, начнём
Всего голосов 26: ↑25 и ↓1+24
Комментарии50

Как перестать бояться и полюбить mbed [Часть 1]

Время на прочтение9 мин
Количество просмотров24K
Мы занимаемся поставками электронных компонентов. Чтобы делать нашу работу хорошо, недостаточно просто уметь привозить и продавать электронные компоненты — ещё важно уметь демонстрировать их преимущества. Именно поэтому мы не только пишем обзорные статьи, но и создаем руководства по применению разных «железок» и разрабатываем небольшие демонстрационные проекты.



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

Особенный интерес представляет подход к написанию встроенного ПО — софт полностью написан в онлайн IDE от mbed. То есть программа для микроконтроллера была создана на единственной вкладке гугл-хрома и одинаково работает на отладочных платах от разных производителей.

Содержание цикла публикаций:

Первая часть под катом.
Всего голосов 21: ↑19 и ↓2+17
Комментарии8

Портирование FreeModbus 1.5 под STM32 HAL rs485 без RTOS

Время на прочтение15 мин
Количество просмотров69K
С недавних пор я начал заниматься встраиваемыми системами и докатился до программирования микроконтроллеров, а именно STM32F373. Одной из задач было развернуть Modbus Slave RTU поверх интерфейса rs485.

Поскольку сроки поджимали было принято решение взять что-нибудь готовое, чем я и занялся. Недолгое гугление навело меня на библиотеку FreeModbus, а вот тут началась боль с которой, я надеюсь, вы не столкнетесь.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии19

Два в одном: USB хост и составное USB устройство

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

image



Не так давно, была опубликована статья «Пастильда — открытый аппаратный менеджер паролей». Так как данный проект является открытым, то мы решили, что будет интересно, если мы будем писать небольшие заметки о процессе проектирования, о задачах, которые перед нами стоят и о трудностях, с которыми мы сталкиваемся.

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
  • быть USB хостом для клавиатуры, которая к ней подключается,
  • быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
  • быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.

Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии63

USB mass storage device и libopencm3

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

image




Моя работа связана с программированием микроконтроллеров, в частности STM32. Долгое время для работы с периферией я использовала STM32 Standard Peripheral Library, так как она предоставляется производителем и, соответственно, является наиболее полной. Однако работать с ней крайне неудобно: инициализирующие структуры зачастую избыточны, в функциях черт ногу сломит, в общем, очень скоро появляется непреодолимое желание слезть с этой библиотеки и перейти на что-нибудь более аккуратное, грамотно спроектированное и написанное «чистым кодом».

После долгих поисков была обнаружена open source библиотека libopencm3, которая отвечала всем требованиям. Отзывы о ней были положительные и работать с ней оказалось максимально приятно.

Одной из последних задач на работе было поднять USB MSD. Для решения задачи использовалась отладочная плата STM32F4-discovery и вот этот пример. Пример не завелся. Проблем было две:
1. Было невозможно зайти на диск и прочитать находящийся там файл.
2. Распознавание устройства как дискового занимало более 2-х минут.

Все это было связано с наличием нескольких багов в файле usb_msc.c. Таким образом, в данной статье я расскажу о том, как исправить эти ошибки и продолжать с удовольствием пользоваться библиотекой libopencm3.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии21

Пастильда — открытый аппаратный менеджер паролей

Время на прочтение5 мин
Количество просмотров59K
Pastilda — open source аппаратный USB менеджер паролей

Немало заметок и обсуждений посвящены непростому вопросу безопасного хранения паролей, тема интересная и, похоже, актуальной будет ещё долго. Существуют различные программные решения для хранения паролей, о них довольно часто пишут на Хабре (например тут и вот тут), однако многим из них, как нам кажется, в той или иной степени свойственны следующие недостатки:
  • закрытый код снижает доверие и вероятность оперативного устранения уязвимостей
  • для автозаполнения нужно ставить дополнительный софт
  • после ввода мастер-пароля вся база открыта и доступна, в том числе для вредоносного ПО, что особенно актуально на недоверенных устройствах
  • использование мобильных приложений для хранения паролей все равно подразумевает ручной ввод с клавиатуры, например когда требуется залогиниться на стационарном ПК
  • автозаполнение невозможно в некоторых случаях (в bios, консоли)

Мы пришли к выводу, что наиболее удобным решением будет простой и недорогой девайс, позволяющий аппаратно хранить и вводить логины/пароли на любые устройства, без установки какого-либо ПО.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии168

Гармонические колебания

Время на прочтение10 мин
Количество просмотров270K
На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.


АЧХ шума.

Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Читать дальше →
Всего голосов 116: ↑111 и ↓5+106
Комментарии52

Простыми словами о преобразовании Фурье

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Всего голосов 203: ↑192 и ↓11+181
Комментарии188

Защита от протечки воды на основе системы Умный дом Plugmee

Время на прочтение5 мин
Количество просмотров16K
«Техника дойдет до такого совершенства, что человек сможет обойтись без себя».
Станислав Ежи Лец

Часть первая. Контроль протечки


Скажу сразу, я не силен в радиоэлектронике и фотографии. Поэтому все схемы и фото сделаны “на коленке”. Но с душой.

Сначала было…


Желание воплотить в реальность умный дом всегда витало где-то рядом. Но все решения из коробки, представленные на рынке «поднебесной», казались ущербными. Другие отпугивали ценой. И вот, несколько лет назад, у меня появилась возможность осуществить желаемое в полной мере и на сколько хватает сил. Сочетание программирования, искусственного интеллекта и железяк до сих пор заставляют сердце стучать чуть быстрее. Умный дом Plugmee полностью реализовал мои потребности в программировании и управлении «железками». Орудовать паяльником особо не пришлось, вся система работает по радиоканалу.

Цель


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

И вот как это получилось. Используемые компоненты


  1. Пара часов свободного времени
  2. Контроллер Умного дома Plugmee
  3. ПО по управлению и контролю системы — Веб-панель Plugmee
  4. Шаровой кран Bugatti на ½” с электроприводом 12В
  5. Радио датчик протечки
  6. Радио-розетка 220V
  7. Радио-сирена
  8. Два блока питания на 12В, мощностью 2А и 0,5А
  9. Нормально-открытое реле для авто на 12В
  10. Влагозащищенная монтажная коробка IP44
  11. Клеммы Wago

Схема и принцип работы


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

Блок питания на 12В 2А будет постоянно подключен к сети 220В и соединен с электро-краном. Нулевая фаза подсоединяется через управляемые контакты реле к управляющему проводу электро-крана. К сети 220В также будет подключатся радио-розетка, которая по сигналу от контроллера подаст питание на дополнительный блок питания 12В 0,5А, который управляет реле.

image
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии26
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Иваново, Ивановская обл., Россия
Дата рождения
Зарегистрирован
Активность