Pull to refresh
267
-0.9
Николай @nckma

Программист

Send message

Эксперименты с цифровым КИХ фильтром в плате FPGA MCY316

Level of difficulty Medium
Reading time 13 min
Views 2.6K

В своей предыдущей статье я написал, как произвести оцифровку звукового сигнала FPGA платой MCY316. В том проекте данные полученные из АЦП просто передавались в компьютер через последовательный порт. Уже на компьютере данные принимались из последовательного порта программой на питоне и отрисовывались в окне.

А сейчас я хочу модифицировать этот проект и добавить в FPGA еще цифровой фильтр, чтобы разобраться, как он работает.

Рисунок выше показывает схему моего эксперимента.

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 16

Оцифровка звука FPGA платой MCY316

Level of difficulty Medium
Reading time 6 min
Views 2.6K
image

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

В этой статье я расскажу о захвате звукового сигнала платой FPGA MCY316. Захват сигнала это только первый этап перед обработкой. Получим сигнал и передадим эти данные в ПК. Если всё получится, то в следующих работах добавим в ПЛИС цифровой фильтр
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 6

Моя марбл машина, версия 3

Reading time 3 min
Views 5.7K

Это моя новая электро-механическая марбл машина. Она спроектирована мной в САПР FreeCAD и напечатана на 3D принтере FLSUN-QQ. Когда-то я уже писал на хабре про свою самую первую марбл, потом и про вторую. Ну вот время идет, но опять и опять я возвращаюсь к этой теме. Марбл машины притягивают меня видимо потому, что на них можно смотреть бесконечно, как на горный ручей. Движение шариков никогда не повторяется и в этом вся прелесть. Ну и опять же, такие марбл машины символизируют жизнь с её подъемами и спусками, а иногда и падениями... очень актуально в нынешние непростые времена..

Возможно когда ни будь я смогу объединить все мои марбл проекты в единый большой организм. Ну а пока вот так.

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 33

Обзор FPGA платы MCY112

Level of difficulty Easy
Reading time 3 min
Views 3K


Что-то давно на Хабре не было статей про FPGA и я решил немножко восполнить этот пробел. Расскажу про нашу новую плату на ПЛИС Cyclone I. Да-да, вы правильно прочитали. На плате стоит первый циклон компании Альтера. Микросхеме больше десяти лет, но еще поработает. Причины использования этого чипа думаю всем понятны: санкции и плюс недавно случившийся мировой кризис полупроводников, который еще не вполне закончился.

Цель разработки этой платы — создать по возможности недорогую FPGA плату для студентов из минимального числа доступных и имеющихся в наличии компонентов. Далее давайте рассмотрим плату подробнее.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 4

Кросс-компилятор для Raspberry Pi4

Reading time 6 min
Views 9K

Хочу рассказать, как я собрал себе кросс-компилятор для Raspberry Pi4 с помощью crosstool-ng. Возможно кому-то тема покажется слишком примитивной и скучной. Я и сам поначалу думал, что быстро смогу собрать кросс-компилятор, но пришлось повозиться и изучать вопрос, некоторые нюансы были для меня неожиданны. Дальше расскажу что и как я делал.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 12

Второй HDMI монитор к Raspberry Pi3 через DPI интерфейс и FPGA плату

Reading time 8 min
Views 8.4K

На этом видео показаны: плата Raspberry Pi3, к ней, через разъем GPIO, подключена FPGA плата Марсоход2rpi (Cyclone IV), к которой подключен HDMI монитор. Второй монитор подключен через штатный разъем HDMI Raspberry Pi3. Все вместе работает, как система с двумя мониторами.

Дальше расскажу, как это реализовано.
Total votes 20: ↑20 and ↓0 +20
Comments 4

Процессор Forth J1 в FPGA плате M02mini

Reading time 5 min
Views 10K


Впервые я познакомился с языком программирования Forth еще в студенческие годы. Было это правда ну очень давно. Уже тогда язык поразил меня тем, что он «не такой как все». При этом, код получался хоть и малопонятный, но компактный и быстрый.

Недавно я занимался запуском процессора Forth j1 в FPGA плате и пришлось вспоминать фортовские азы программирования. Да уж… чертовски трудно, но получил громадное эстетическое удовольствие. Как будто впервые взял кубик Рубика, и сам собрал его, и пазл сложился и программа работает…
Total votes 62: ↑62 and ↓0 +62
Comments 18

Как работает адресная светодиодная лента?

Reading time 4 min
Views 48K

Наверное этот вопрос «как работает» очень многим покажется глупым. Ответ почти очевиден: адресная светодиодная лента состоит из множества последовательно соединенных «умных светодиодов». Это можно увидеть просто рассматривая устройство ленты. Видны отдельные микросхемы, припаянные к гибкому шлейфу, видны соединения: микросхемы соединены последовательно всего тремя проводами, при этом два из них это питание и земля. Только один провод передает данные о цвете пикселей. Как же это? Что такое «умный светодиод»?

Дальше я расскажу о протоколе передачи данных, используемом в светодиодной ленте на базе WS2812B, и, более того, я почти создам свою «микросхему светодиодной ленты» в микросхеме ПЛИС.
Total votes 44: ↑44 and ↓0 +44
Comments 53

Программирование видео слоя в Raspberry Pi с использованием DispmanX API

Reading time 7 min
Views 4K

В этой статье я хочу продемонстрировать использование DispmanX API одноплатных компьютеров Raspberry. DispmanX API предоставляет возможность создавать на десктопе Raspberry новые отображаемые слои. Слои висят над слоями. Их можно динамически создавать, удалять, перемещать, их можно масштабировать. При этом, сам видеоконтроллер будет их объединять и отображать на экране монитора. Интересно, что слои могут иметь альфа канал, и тогда, изображения всех слоев будут сами собой смешиваться. Так же, кроме 32-ти двухбитных ARGB слоев можно создавать, например, YUV420 слои, или слои других типов. В Raspberry по умолчанию уже есть два слоя. Самый нижний содержит изображение десктопа. Весь вывод через иксы идет в этот слой. И есть второй, самый верхний слой, в котором живет изображение курсора мыши.

Я покажу, как создавать новый слой, писать в него изображение и как его перемещать по экрану. Собственно говоря, на демо видео выше и показана работа такой программы. Здесь созданы четыре новых 32-х битных слоя ARGB. В каждый из слоев я записываю пикселы из заранее подготовленных битмапов. Мои битмапы это изображения облаков, солнца и воздушных шаров. Слои перемещаются по экрану с разной скоростью, нависая над самым нижним иксовым слоем.
Total votes 21: ↑21 and ↓0 +21
Comments 6

Можно ли писать скрипты на C++?

Reading time 3 min
Views 28K

Недавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гуглить, как сделать то или это. Проблема еще оказывается в том, что зачастую не пишешь скрипт заново, а модифицируешь существующий, уже написанный кем-то. А он может быть не bash, а sh или еще что-то… Различия в синтаксисе есть, что работает в sh по идее должно работать и в bash, но не всегда наоборот. А если там dash или ash? Я не знаю… Различия в этих скриптовых языках все же есть, и они сбивают с толка. Ну и конечно, лично для меня, вишенка на торте, когда скрипт вызывает какой нибудь sed или awk и там такие параметры в командной строке, что смотришь на них и диву даешься. Понятно, что это все зависит от квалификации программиста, но вот у меня не все в голове помещается. И вот сейчас мое терпение лопнуло и я подумал, что отныне хочу попробовать писать скрипты на c++…

Я понимаю, что для true системного администратора моя мысль может показаться крамольной. Но почему бы и нет?
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 73

Изготовление трубы телескопа в домашних условиях

Reading time 2 min
Views 17K


В своей предыдущей статье я рассказывал, как я проектирую и изготавливаю телескоп.

Но в той статье я совсем не написал про изготовление трубы. Попробую кратко рассказать, как я ее делал. Относительно несложная технология с хорошим результатом. Понадобится гофрокартон от любых коробок бытовой техники, эпоксидная смола, тонкий картон для трубы (я выпросил остатки картона в знакомой типографии) или, возможно, листы ватмана А0, баллончик-распылитель черной краски. Из инструментов — ножницы, линейка, карандаш, канцелярский нож, ёмкость для разведения клея и кисть для его нанесения.

Я буду делать трубу телескопа длиной 900 миллиметров и внутренним диаметром 225 миллиметров специально для зеркала 200 миллиметров, купленного на Али…
Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Comments 40

Проектирование и изготовление телескопа

Reading time 6 min
Views 33K

Говорят, что если человек приобрел телескоп и использует его для наблюдений, то через некоторое время он обязательно захочет другой, получше. Так случилось и со мной. У меня есть телескоп PowerSeeker 127мм, но захотелось лучшего. По этой причине я даже было дело собрался точить свое зеркало, но позже обнаружил, что на AliExpress можно за недорого приобрести 200мм зеркало. Главное зеркало вместе с диагональным выходили где-то 6000 рублей с доставкой. Это очень дешево. На снимке выше, как раз такое зеркало, только что прибывшее по почте из Китая.

Купить-то купил, но это же не готовый телескоп. Нужна труба, держатель главного зеркала, диагонального, юстировки, фокусер. Как их изготовить самостоятельно? Решил, что по возможности буду печатать необходимые детали на 3D принтере. Но для этого их нужно еще спроектировать. Или найти дизайн в интернете.

Если поискать в интернете, то, конечно, «телескопы уже печатали». Вот примеры проектов:

  1. Gaze Across the Solar System with a 3D-Printed, Raspberry Pi Telescope
  2. Open Source DIY Telescope Prime Features Raspberry Pi and 3D Printed Parts

По разным причинам мне эти проекты не очень понравились. Я решил, что буду проектировать части телескопа сам. Чтобы жизнь медом не казалась я отчего-то решил, что буду делать проект во FreeCAD. До этого момента я уже делал кое-что в Компас 3D (я делал Marble-Machine). И теперь я подумал, что FreeCAD должен быть не сложнее…
Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Comments 31

Перезагрузка текстур OpenGLESv2 через DMABUF

Reading time 9 min
Views 3.4K

В этой статье я хочу рассказать, как просто можно обновлять текстуры OpenGLES через DMABUF. Поискал по Хабру и к своему удивлению не обнаружил ни одной статьи на эту тему. В Хабр Q&A тоже ничего такого не нашел. И это для меня немного странно. Технология появилась довольно давно, хотя информации о ней действительно в сети не много, вся она расплывчатая и противоречивая.

Я всю эту информацию собирал по крупицам из разных источников, прежде чем смог написать вот такой видео плеер, как на демке выше. Здесь, на демке, мой самописный видео плеер, основанный на библиотеке gstreamer, загружает видео кадры в текстуру OpenGLESv2 каждый раз перед рендерингом. Работает на Raspberry Pi4. Кадры просто копируются в специальным образом выделенную память — а уж DMA переносит их в память GPU, в текстуру. Далее расскажу, как я это делал.
Total votes 12: ↑12 and ↓0 +12
Comments 13

Посох для Деда Мороза

Reading time 4 min
Views 8.4K


Каждый год 31-го декабря я в костюме Деда Мороза и жена в роли Снегурочки разъезжаем по городу по своим друзьям с поздравлениями. Поскольку уже скоро наступит Новый Год, я решил проверить, все ли у меня к нему готово и достал из подвала свой давно видавший виды посох. К моему удивлению, пролежав в подвале целый год он исправно работал даже сейчас! Его аккумулятор все еще как-то заряжен! Посох не очень ярко, но светится. Конечно придется подзарядить, да и смотрю один светодиод перестал работать, но это дело поправимое — починим.

Этот посох я изготовил еще в 2012-м году и с тех пор он служил мне верой и правдой. Штука достаточно простая, но очень эффектная, особенно ему радуются дети. Он почти как меч джедая — только посох, а для настоящего Деда Мороза — это вещь просто необходимая. Решил написать про него здесь на Хабре — вдруг кто-то проникнется идеей и сделает такой и себе к Новому Году, время еще есть.
Total votes 34: ↑33 and ↓1 +32
Comments 23

Проектирование Электро-Механической Marble Machine v2.0

Reading time 6 min
Views 5.6K

Я хочу рассказать о второй версии моей электро-механической Marble Machine и о процессе ее проектирования. Про первую спиральную машину я уже писал здесь на хабре. Времени с тех пор прошло не мало, и вот, в принципе, задуманное осуществлено: два подъемника и два спуска работают совместно, как одна система, передают друг другу шары перемешивая их в случайном порядке. Честно говоря мне не все здесь нравится, кое-что требует переделки или более тонкой настройки, но я рад, что в целом у меня получилось. Результат на видео!
Total votes 19: ↑19 and ↓0 +19
Comments 15

Моя Marble Machine, напечатанная на 3D принтере

Reading time 4 min
Views 9.6K

Я пытаюсь освоить 3D печать — у меня появился принтер FLSUN-QQ, я установил себе 3D редакторы: Fusion 360, Blender, пробую Компас 3D. Что-то получается, что-то не получается. Эта Marble Machine на видео — один из моих первых успешных проектов. Проект, хоть визуально и не большой, но его реализация потребовала от меня значительных усилий. Пришлось и 3D редакторы осваивать и механику придумывать и вести настройку-отладку этого устройства.

Далее расскажу из каких частей состоит эта машина.
Total votes 35: ↑35 and ↓0 +35
Comments 22

Исследование статистической вероятности значения бита в нонсе bitcoin

Reading time 44 min
Views 6.4K


Считается, что функция sha256( sha256( BlockHeader ) ), которая используется в алгоритме хэширования bitcoin весьма надежна. Надежна настолько, что существует только один единственный способ подобрать голден нонсе для очередного блока в блокчейне — путем перебора в процессе майнинга.

В настоящее время в блокчейне биткоина уже более 530 тысяч блоков. Этого вполне достаточно, чтобы провести статистический анализ и ответить на вопрос: «действительно ли значения битов в ранее найденных нонсе равновероятно?».
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 15

Вероятностный метод майнинга Bitcoin

Reading time 19 min
Views 20K


Думаю немного бреда на вторник не сильно повредит рабочей неделе. У меня хобби, на досуге я пытаюсь придумать, как взломать алгоритм майнинга bitcoin, избежать тупого перебора нонсе и находить решение задачи подбора хэша с минимальным расходом энергии. Сразу скажу результата я, конечно, пока не достиг, но тем не менее, почему бы не изложить в письменном виде идеи, которые рождаются в голове? Куда-то же их нужно девать…

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

  1. язык C++ и его темплейты
  2. немного цифровой схемотехники
  3. немного теории вероятности и вероятностной арифметики
  4. детально алгоритм хэширования bitcoin
Читать дальше →
Total votes 51: ↑41 and ↓10 +31
Comments 30

О портировании проекта MIPSfpga

Reading time 10 min
Views 3.2K


Перенос программного обеспечения с одной компьютерной архитектуры на другую в принципе, с некоторыми оговорками, дело относительно простое. Здесь на помощь приходят такие общеизвестные инструменты, как autoconf / automake/ libtool / gnulib. Собрать программу из исходников на каком нибудь Raspberry/ARM бывает так же просто, как и на ПК с Ubuntu/x86-64.

А вот как заставить проект ПЛИС разработанный для одной платы работать на другой плате? Там и сама ПЛИС может быть другой и на плате совершенно другие компоненты могут стоять. Простой перекомпиляцией проекта не обойтись.

Расскажу о своем опыте портирования проекта MIPSfpga для платы Марсоход3 с ПЛИС MAX10 Intel. Статьи о проекте MIPSfpga неоднократно появлялись на хабре. Они были так интересны, что мне захотелось и самому попробовать этот проект в имеющейся у меня плате. В своей работе я опирался на хабровские статьи


И многие другие…

Итак, что нужно сделать, чтобы портировать проект ПЛИС на другую плату?
Total votes 16: ↑16 and ↓0 +16
Comments 5

Как я blakecoin майнер делал

Reading time 11 min
Views 28K


Не знаю кому как, а меня прошедший 2017 год шокировал стремительным взлетом биткоина. Сейчас, конечно, ажиотаж уже ушел, а в 17-м году про криптовалюты говорили и писали все кому не лень.

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



Я тоже стал изучать, что же такое эти самые биткоины. Когда-то я даже начал свое собственное иследование алгоритма SHA256 и написал статью здесь на хабре "Можно ли вычислять биткоины быстрее, проще или легче?". Мои исследования алгоритмов хеширования до сих пор продолжаются и еще и близко не завершены… Может быть когда нибудь напишу про это отдельную статью. А сейчас пока вот это…
Читать дальше →
Total votes 30: ↑25 and ↓5 +20
Comments 35

Information

Rating
Does not participate
Date of birth
Registered
Activity