Скоро начинаются предпраздничные дни, а вместе с ними и украшение наших домов. По этому поводу я решил заняться процедурной генерацией лекала для вырезания снежинок из бумаги. Под катом процесс разработки, алгоритм и демка.
Пользователь
usbhub + usbasp + ch341 + j-link = one PCB
Изобретаю велосипед с подключением USBASP + CH341 (UART + SPI/I2C) + JTAG на одной плате с USBHUB и кабелем USB-typeC.
Опыт работы с советским газоразрядным дисплеем ГИП-10000 (ИМГ-1-02)
Советская электронная промышленность выпускала множество разнообразных газоразрядных индикаторных приборов: точечные, линейные, шкальные, знаковые, но отдельным пунктом стоит отметить матричные индикаторы (панели). Очень разные по конструкции, по разрешению, по принципу управления – постоянного тока с внешней адресацией, с самосканированием, переменного тока; знакосинтезирующие, графические; монохромные, двух-, трех-, четырехцветные. Номенклатура насчитывала несколько десятков типов изделий.
В статье пойдёт речь про ГИП-10000. Это газоразрядная матрица постоянного тока с внешней адресацией разрешением 100х100 точек. Применялась она в таких изделиях как Электроника МС6205 и ИМГ-1. Я расскажу про то, как запустил на ней Bad Apple!! и Doom.
CoroOS: концепт операционной системы для микроконтролеров на корутинах С++20
Здравствуйте! Меня зовут Александр, и я работаю программистом микроконтроллеров.
Наверное, любой разработчик встраиваемых систем время от времени подумывает написать свою собственную ось. Такую, чтобы другим неповадно было!
И ваш автор не исключение.
Как по мне - дело не то чтобы запредельно сложное, сколько кропотливое. Если у вас, как и у меня, увлечение и(или) карьера крутится вокруг Arm Cortex-M серии, то вооружаемся стволами (раз, два и три) и выдвигаемся за Джеффом. Но, написав и запустив ядро своей "best of the best" оси около года назад, я вскоре забросил разработку, ибо как я ни креативил, вместо Сокола Тысячелетия у меня получался крепенький, но банальный и скучный велосипед.
А ведь хотелось оригинальности и бесстыдного выпендрёжа.
И тут в 20-й стандарт плюсов завезли корутины.
PAL, GAL и путешествие в цифровое ретро
Конечно же, полупроводниковая промышленность тоже была не прочь удовлетворить такой спрос.
Сверхдлинное преобразование Фурье на FPGA
В этой статье я хочу рассказать про реализацию алгоритма сверхдлинного быстрого преобразования Фурье на ПЛИС. Написать эту статью меня побудило желание поделиться личным практическим опытом, который не хотелось бы потерять, оставив информацию только у себя в голове. А поскольку я больше не занимаюсь задачами цифровой обработки сигналов на ПЛИС, то я просто обязан передать доступные мне знания.
В этой статье показана невозможность реализации «классической» схемы очень длинного БПФ даже на самых современных кристаллах ПЛИС и предложен алгоритм, позволяющий это сделать. Также пошагово рассмотрена основная идея алгоритма: от математической составляющей до создания законченного решения на базе ПЛИС с использованием внешней DDR-памяти. Статья затронет тонкости проектирования многоканальных систем обработки для подобного класса задач и, в частности, опишет мой практический опыт.
Методы наименьших квадратов: текст, написанный программистом для программистов
Итак, задача на сегодня: научиться простейшей обработке геометрии, чтобы, например, суметь преобразовать мою голову в истукана с острова Пасхи:
Спецификации сигнатур методов в Ruby с синтаксисом как в Elixir
Спецификации сигнатур функций (Typespecs)
Эликсир позаимствовал из Эрланга многое. Например, оба — языки с динамической
типизацией (что прекрасно, что бы вам там категоричные строгие типы в касках
не говорили). При этом, в обоих языках присутствуют расширенные возможности для
проверки типов, когда это надо.
Вот введение в typespecs, а вот здесь можно ознакомиться с ними подробнее.
Если вкратце, мы можем определить спецификацию сигнатуры функции, и если вызов не соответствует объявленным ожиданиям, статический анализатор кода, известный как dialyzer, заругается. Формат этих спецификаций выглядит довольно изящно:
@spec concat(binary(), any()) :: {:ok, binary()} | {:error, any()}
def concat(origin, any), do: origin <> IO.inspect(any)
Получение root на роутере Tenda Nova MW6
Началось всё с того, что польстившись на распродажу и новые buzz words — я приобрел wifi mesh систему, дабы покрыть все уголки загородного дома и прилегающего участка. Все бы ничего, но одна проблема раздражала. А с учетом того, что я сел на больничный на несколько дней — довела меня до root доступа к данному роутеру.
Comodo отзывает сертификаты без причины
Красивые точные часы из старого смартфона
Речь в статье пойдёт о том, как старый ненужный мобильник переделать в отличные настенные часы с крупными цифрами, всегда точным временем и резервным питанием.
Я расскажу о некоторых выясненных особенностях сихронизации времени в ОС Андроид, а также о разных электрических хитростях в системе питания смартфона. Опишу пример схемы на несложных аналоговых компонентах, которая осуществляет автоматическое резервное питание. И конечно речь будет о программной части андроид – как и с помощью чего можно самому сделать из смартфона красивые часы на любой вкус.
Налогообложение ИП в Казахстане: как быть фрилансеру?
Куда приводят поиски идеальной SCADA
Два года назад я написал статью “SCADA: в поисках идеала”. Идея была проста — превратить Qt Creator в среду для разработки SCADA. Теперь хочу рассказать, какой путь проделан и что получилось.
Удалось ли достигнуть идеального результата? — Разумеется, нет. На то он и идеал, что недостижим. Зато удалось заметно к нему приблизиться.
Как из домашнего ПК средствами виртуализации сохранить игровую систему
Эта статья будет посвещена настройки хоста именно для использования в «быту», т.е. разговор пойдет о GPU PASSTHROUGH.
Принтеры с СНПЧ: выбираем и сравниваем по стоимости отпечатка
Мы подготовили рекомендации и сравнительные таблицы, которые помогут облегчить выбор конкретной модели и оценить выгоду от перехода к перезаправляемым системам.
Под катом о том, на что следует обратить внимание при выборе струйного принтера со штатной системой СНПЧ.
Установка пограничного контроллера сессий 3CX SBC на Windows, Raspberry Pi или Debian 9
Введение
Пограничный контроллер сессий 3CX SBC используется для подключения удаленных офисов с небольшим количеством телефонов к центральному серверу 3CX. Он транслирует к серверу SIP-сигнализацию, используя собственную технологию 3CX Tunnel, а локальные медиапотоки RTP (собственно, разговоры) коммутирует внутри локальной сети удаленного офиса. Это значительно экономит внешний трафик и повышает качество связи внутри офиса. Весь трафик между SBC и сервером 3CX передается по одному TCP/UDP порту, что значительно упрощает настройку сетевых экранов. Коммуникации через SBC могут быть зашифрованы, а автоматическая настройка телефонов значительно упрощена. Особенно популярен 3CX SBC при подключении к 3CX, расположенной на облачном хостинге, на котором проблематично или затратно организовать полноценный VPN IPSec.
3CX SBC можно установить на ПК с Windows, который активно не используется. Кроме того, если в удаленном офисе находится до 20 IP-телефонов (и до 10 BLF-индикаторов на один телефон), вы можете установить SBC на устройство Raspberry Pi. Рекомендуется использовать более производительные устройства Raspberry Pi 2 или 3 Model B.
А при большем количестве телефонов SBC следует устанавливать на Debian Linux 9.
Печать матрицы, литьё
Довольно часто использую 3D принтер в своей деятельности и часто пробую что-то новое. На глаза попалась технология печати матриц и литья в них. Меня это заинтересовало и я решил попробовать этот способ мелкосерийного производства.
Shrimp: масштабируем и раздаем по HTTP картинки на современном C++ посредством ImageMagic++, SObjectizer и RESTinio
Предисловие
Наша небольшая команда занимается развитием двух OpenSource инструментов для C++разработчиков — акторного фреймворка SObjectizer и встраиваемого HTTP-сервера RESTinio. При этом мы регулярно сталкиваемся с парой нетривиальных вопросов:
- какие фичи добавлять в библиотеку, а какие оставлять «за бортом»?
- как наглядно показывать «идеологически правильные» способы использования библиотеки?
Хорошо, когда ответы на такие вопросы появляются по ходу использования наших разработок в реальных проектах, когда разработчики приходят к нам со своими жалобами или хотелками. За счет удовлетворения хотелок пользователей мы наполняем свои инструменты функциональностью, которая продиктована самой жизнью, а не «высосана из пальца».
Но до нас доходит информация далеко не о всех проблемах и сложностях, с которыми сталкиваются пользователи. И не всегда мы можем использовать полученную информацию и, особенно, примеры кода, в своих публичных материалах.
Поэтому иногда мы сами для себя выдумываем небольшие задачки, решая которые мы вынужденно превращаемся из разработчиков инструментов в пользователей. Это позволяет нам взглянуть на собственные инструменты другими глазами и самим понять, что хорошо, что не очень, чего не хватает, а чего слишком много.
Сегодня мы хотим рассказать как раз об одной такой «небольшой» задачке, в которой естественным образом объединились SObjectizer и RESTinio.
Масштабирование и раздача картинок. Почему именно это?
В качестве небольшой демо-задачи для самих себя мы выбрали HTTP-сервер, который раздает по запросам отмасштабированные картинки. Вы складываете изображения в какой-то каталог, запускаете HTTP-сервер, делаете к нему запрос вида:
Blender: 3D-модель микросхемы для подключения в библиотеке KiCad
Но есть проблема: профессиональный CAD-редактор стоит не дёшево, а свободно распространяемые не всегда удобны в использовании.
К счастью на помощь всегда может прийти Blender. Да, он не предназначен для создания чертежей и точных моделей. Но тем не менее позволяет быстро создавать трёхмерные модели электронных компонентов для последующего их импорта в трассировщики. В этой статье я опишу способ создания модели микросхемы и подключения её к библиотеке компонентов KiCad.
Вы просто не умеете редактировать данные
Конечно, вы постоянно что-то редактируете и прекрасно умеете это делать. А что насчёт данных в мобильном приложении, когда на экране нужно разместить большое количество элементов? Не забудьте, что сделать это нужно максимально аккуратно для пользователя, эффективность которого напрямую зависит от удобства ввода. Задача перестаёт быть тривиальной.
Прочитав статью, вы узнаете, как:
- организовать структуру данных, чтобы их было удобно редактировать
- обеспечить «динамизм» вашему UI
- определять, изменилось ли что-то
- сохранять историю изменений
- сделать многопользовательский режим за 5 минут
В конце вас ждет готовый прототип с исходным кодом, демонстрирующим описанный подход.
Information
- Rating
- Does not participate
- Location
- Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
- Registered
- Activity