Search
Write a publication
Pull to refresh
1
@Mordekaizer07read⁠-⁠only

User

Send message

Генератор синуса и коротковолновый радиопередатчик

Level of difficultyMedium
Reading time11 min
Views7.6K

В этой статье описан способ генерации синусоидального сигнала на ПЛИС через использование ROM памяти и реальный пример практического применения этого генератора для коротковолнового радиопередатчика RTTY (Radioteletype. - прим. Ред.). Будет описан способ передачи значения частоты из микроконтроллера в ПЛИС через SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI - прим. Ред.). Используются отладочная плата LilyGO T-FPGA, в составе которой ПЛИС GW1NSR-LV4CQN48PC6/I5 и микроконтроллер ESP32-S3, ЦАП на основе DAC904, ide GOWIN FPGA Designer, Visual Studio Code с расширением PlatformIO и matlab 2020.

Читать далее

Использование Cortex-M3 hard core processor в ПЛИС GOWIN

Level of difficultyMedium
Reading time18 min
Views3.2K

В статье описывается опыт использования ARM ядра, встроенного в ПЛИС GOWIN GW1NSR-4C, в качестве процессора общего назначения для формирования PSK31 сигнала. Сигнал формируется с помощью генератора синуса, который был описан в предыдущей статье. Используются отладочная плата LilyGO T-FPGA, в составе которой ПЛИС GW1NSR-LV4CQN48PC6/I5, ЦАП на основе DAC904, ide GOWIN FPGA Designer и образовательная версия GMD.

Читать далее

Разработка трёхфазного энергомонитора на базе ESP8266 с функцией автоматической проверки прибора учёта

Level of difficultyEasy
Reading time16 min
Views9.9K

Подробная инструкция по разработке трёхфазного энергомонитора на базе ESP8266 с функцией автоматической проверки прибора учёта электроэнергии.

Читать далее

Как данные передаются по радио?

Reading time5 min
Views55K
Привет, Хабр.

В одном из комментариев к предыдущим статьям был задан вопрос, можно ли по виду сигнала определить вид его модуляции. Идея рассмотреть основные виды модуляции показалась довольно-таки интересной.



Попробуем разобраться, без формул и максимально просто, как можно передать данные из точки «А» в точку «В».
Читать дальше →

Еще раз о передатчиках и приемниках 433 МГц

Reading time10 min
Views216K
Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
Читать дальше →

Операционная система в 1 000 строках кода (часть 1)

Level of difficultyMedium
Reading time11 min
Views39K

Всем привет! В этой небольшой книге (серии статей, — прим. пер.) мы с нуля, шаг за шагом, напишем скромную ОС.

▍ Навигация по частям



Вы можете насторожиться, услышав, что разработка ОС или ядра, в частности, их базовых функций на удивление проста. Даже система Linux, которая воспринимается как масштабный опенсорсный проект, на стадии версии 0.01 включала всего 8 413 строк кода. Сегодня ядро Linux действительно огромно, но начиналось оно, как и типичный хобби-проект, с крохотной базы кода.

В рамках предстоящей серии статей мы на языке С реализуем базовое переключение контекста, страничное распределение памяти, режим пользователя, командную оболочку, драйвер дискового устройства и операции чтения/записи. И хотя такой объём работы может показаться масштабным, всё это уместится всего в 1 000 строк кода.

Но сразу предупрежу — процесс окажется не так прост, как выглядит на первый взгляд. Самой сложной частью создания собственной ОС является отладка. И мы не сможем использовать для этого printf, пока её не реализуем. Здесь вам потребуется освоить различные техники и приёмы отладки, которые в разработке ПО вы никогда не использовали. В частности, начиная «с нуля», вы будете встречать сложные этапы вроде процесса загрузки и страничной организации памяти. Но не пугайтесь, «отлаживать ОС» мы тоже научимся!

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

Работа с NRF24L01 и STM32F1

Level of difficultyMedium
Reading time3 min
Views6.6K

Процесс запуска NRF24L01 в связке со STM32F1. Разработка ведется в Arduino IDE. В статье указан код и схемы подключения для того, чтобы можно было повторить проект самому.

Читать далее

У вас не будет серьезных перемен в жизни, пока вы не смиритесь. Почему это именно так и как работает?

Level of difficultyEasy
Reading time5 min
Views80K

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

Читать далее

Металлолом наносит ответный удар

Reading time11 min
Views148K
Мы многого не знали про железнодорожные вагоны:
  • Вагоны в поезде не умеют обгонять друг друга. Но обгоняют.
  • Один из вагонов обычно не может взять и переехать на параллельный путь.
  • Считается, что вагоны одинаковой типовой длины. Но это не гарантирует, что последний будет в одном и том же месте, если выравнивать первый.

И, наконец, знакомьтесь, вагон, который приехал к нам по железной дороге:

image

Наши коллеги из НЛМК в какой-то момент сделали анализ металлолома в вагонах. Вагон фотографируется по мере разгрузки по слоям, потом приходит модель и оценивает засорённость и качество лома. Мы съездили к ним в гости, посмотрели и решили внедрить у себя.

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

Как я веду Zettelkasten в Notion уже год: стартовый набор и полезные трюки

Reading time8 min
Views180K

Zettelkasten — крутой метод хранения идей и знаний — сейчас на слуху, его уже обсуждали на Хабре. Я веду такой в Notion уже год, потому что Notion лучше всех воплощает три главных принципа Zettelkasten: взаимосвязанность, категоризацию, актуальность. Метод улучшил качество моего обучения и исследований, и без него как-то уже не так. 

Я почитал русскоязычные и англоязычные ресурсы и не нашел ни нормального шаблона для Notion, ни объяснения как реализовать главные преимущества метода Zettelkasten. Под катом и то, и другое. 

UPD: На текущий момент, статья безбожно устарела, потому что за еще один год я набрался опыта, помогая другим людям организовать их Цеттели и наблюдая за чужим опытом. А еще Notion выпустил несколько фич, заточенных именно под Цеттель. И теперь мне совестно, как новички страдают, разбираясь в теме после меня.

Эту статью можно почитать для понимания основ, но актуальные источники информации тут:

  • У меня в Психотронке можно следить за подготовкой обновленной версии, ну и написать мне за помощью. А можете не следить: версия 2.0 выйдет на Хабре.
  • В русскоязычном сообществе Zettelkasten в Телеграме сидят люди, которые хорошо разбираются в теме. Мы обожаем помогать новичкам.

Дисклеймер: ни Notion, ни автор метода мне за статью не платили.
Читать дальше →

Почему аналоговая электроника такая сложная. Часть 2. R2R ЦАП

Level of difficultyEasy
Reading time5 min
Views14K

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

Схема эта называется R2R ЦАП и все знают, каков ее принцип работы, но при этом мало кто может ее рассчитать. Вот этим мы и займемся, рассчитаем R2R ЦАП.

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

Читать далее

Почему аналоговая электроника такая сложная

Level of difficultyEasy
Reading time5 min
Views46K

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

На то есть причины.

Читать далее

Портативное прототипирование электроники #02. Нужно больше STLink-ов

Level of difficultyMedium
Reading time10 min
Views5K

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

Читать далее

Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 02 — Рисуем в Windows

Level of difficultyEasy
Reading time8 min
Views10K

Приветствую Хабравчане!

В прошлой статье получилось создать минимальную программу "Hello world!" размером 3,5 кб. Теперь будем рисовать нативными средствами Windows.

Loading, please wait

Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 01 — Маленькая программа

Level of difficultyEasy
Reading time4 min
Views14K

Приветствую, Хабравчане!

Решил сделать цикл статей по написанию на С++, различных небольших программ. Под новые и старые ОС. Мне кажется мы стали забывать как раньше программировали:) Для себя определил несколько важных критериев.

Loading, please wait

Собрал в одном большом гайде всё, что хотел бы знать, когда изучал язык C

Reading time27 min
Views56K

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

Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками.

Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис

Читать далее

Где решать задачи по программированию, чтобы пройти путь from zero to hero

Level of difficultyEasy
Reading time4 min
Views146K

Если вам о чём-то говорят фамилии Зив, Хомченко и Рымкевич, иди сюда, дай обниму, бедолага-олимпиадник, то вы наверняка знаете, как важно прорешивать задачи для полноценного, осознанного и глубокого понимания изученного материала. Когда нет или совсем мало реальной практики, задачи дают возможность покрыть практикой все теоретические знания, погрузиться в неожиданные выводы, сложности, баги, препятствия. Более того, даже если практики достаточно, задачи помогают относительно быстро, комплексно и глубоко проработать типичные и нетипичные ситуации, возникающие в разработке (любой другой науке). Это всегда безопасный (никто не взрывает лабораторию и не роняет прод), доступный и удобный способ подробно разобраться в предмете. Определённо, программирования это касается в первую очередь.

Читать далее

Крутые лайфхаки для работы с WSL (Подсистема Windows для Linux )

Reading time3 min
Views42K
Я глубоко погружен в WSL (Windows Subsystem для Linux), и теперь, когда WSL2 доступен в Windows Insiders, это отличное время, чтобы по-настоящему изучить доступные опции. Очень интересная фича, которую я нашел в WSL, — возможность «чисто» перемещать данные между мирами. Это не тот опыт, который вы легко можете получить с полноценными виртуальными машинами, и он говорит о тесной интеграции Linux и Windows.

Под катом подробнее о некоторых интересных вещах, которые вы можете делать, смешивая арахисовое масло и шоколад!

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

STM32. CMSIS. Пять способов генерации (псевдо-)случайного сигнала на выводе микроконтроллера

Level of difficultyMedium
Reading time17 min
Views5.5K

Псевдослучайные и случайные сигналы применяются для различных целей. В этой статье будет рассмотрено несколько способов их генерации на микроконтроллерах серии STM32.

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Level of difficultyEasy
Reading time13 min
Views172K

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

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Information

Rating
Does not participate
Location
Омская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer
Intern
Python
C++