Серия «Хобби»

117

Делаем монитор своими руками

Всем привет! Рад, что понравился мой предыдущий пост про ZX Spectrum. Решил также сделать небольшую вырезку о том, как сделан компьютерный монитор (устройство для вывода плоского изображения). Также мы с вами попробуем построить некое его подобие из подручных средств.

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

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

Давайте начнём с матрицы. Возьмём для примера LED-матрицу 8 на 8 пикселей. Вот она:

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

При разрешении всего лишь 8 на 8, в данной матрице, не много ни мало, 64 светодиода - и 128 проводов! Их необходимо адресовать (соединить). Благо, разработчики всё продумали - вертикальные и горизонтальные ряды можно объединить в линейку, сократив общее количество проводов до 16 штук. При этом, мы не теряем возможность зажечь каждый светодиод по отдельности. Вот, как это выглядит:

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

А для создания платы управления монитора, возьмём ещё несколько деталей:

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

Верхняя плата - тактовый генератор (формирует стробирующий сигнал, иначе говоря, задаёт темп работы схемы).

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

Для синхронизации вводится микросхема "синхронный счётчик", выполненный на отечественной микросхеме К555ИЕ5. Каждый такт генератора он добавляет +1 к своему численному значению. Давайте настроим и проверим данный счетчик:

Как можно видеть, светодиод стробирующего сигнала (в правом верхнем углу) мигает, а в нашей схеме в такт ему происходит счет от 1 до 8, пока что в двоичной системе. В конце счет сбрасывается, и всё начинается по кругу. Таким образом реализуется "прочёс" экрана, за каждый такт - сдвиг на 1 линейку.

Теперь, данный сигнал необходимо расшифровать. Нам поможет микросхема К555ИД7, дешифрующая сигнал из линий (синие светодиоды), в сигнал из 8 линий, который мы подключим к нашей матрице. Смотрим, как она работает:

Мы собрали типичную схему "бегущие огни". Здесь осуществляется "прочёс" светодиодов по кругу. Тот, который соответствует текущей цифре на счетчике, выключается. Теперь давайте попробуем подключить данную линию к нашей матрице, и посмотреть, что получится:

Мы сделали горизонтальную синхронизацию. К слову, в компьютерных мониторах и телевизорах синхронизация тоже очень важна - обычно, для неё выделяется отдельный провод. Так как тактовые генераторы в источнике видеосигнала и мониторе изначально не согласованы, данный сигнал (H-SYNC или CLK) и позволяет отследить, с какого момента и с какой скоростью начать прочёс, чтобы изображение не было сдвинуто или сжато/растянуто.

Давайте я продемонстрирую вам, каким образом будет происходить пиксельная развёртка:

Как я ранее упоминал, мы можем зажигать отдельные пиксели по очереди. Для этого, нужно в такт генератору и горизонтальной развёртке включать/выключать соответствующие, теперь уже вертикальные сигналы колонок. Похожим образом работает, в том числе, кинескопный телевизор, да и любой другой.

Осталось сформировать вертикальный сигнал. Давайте установим видеобуфер. Пока в качестве него вместо ОЗУ у меня будет ПЗУ (такая большая микросхема, т.к. других не было, но задействуем мы всего лишь первые 8 байт от неё). Эти 8 байт - наша экранная память (кадр), в которой хранится изображение. Это при том, что уровня яркости всего лишь два, и дисплей "монохромный" -не содержит цветов. Двоичный выход со счетчика дублируется, и подается на адресные входы ПЗУ. Давайте соберём, и посмотрим, как будет себя вести наше устройство:

Я ускоряю частоту тактового генератора, и таким образом, изображение становится "статичным" - оно по-прежнему построчно мерцает, но глазу и камере этого уже не заметно. В ПЗУ был записан какой-то мусор. Но картинка стабильна с течением времени, пиксели не мерцают, значит, схема собрана верно. Давайте попробуем нарисовать какой-нибудь кадр, и вывести его на монитор.

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

Данная картинка (bmp) 1-бит - конвертируется в набор HEX-значений. Вот он:

3C 42 91 85 85 91 42 3C

Это и будет наш кадр. Теперь давайте пропишем его в наш импровизированный "видеобуфер". Для этого я воспользуюсь китайской платой Mega 2560 и самодельным переходником под память.

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

К слову, с программированием данного ПЗУ тоже не всё так просто. Сначала, нужно передать код разблокировки ПЗУ, а лишь затем, информацию. Это тема для отдельного поста. Вот, что по итогу получается:

Делаем монитор своими руками Электроника, Техника, Самоделки, Урок, Информатика, Длиннопост, Видео

Как можно видеть, наш код успешно внесён в ПЗУ. Давайте попробуем запустить:

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

Всем спасибо за внимание, с вами был Kekovsky, 2023 г.

Показать полностью 7 6
50

Ответ на пост «Китайская нейросеть и любимые мемы»1

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

Фото с выпускного вечера:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

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

Фото девушки с кошкой:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

Дублирующий хвост.

Свадебное фото:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

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

Фото с прогулки на набережной СПб:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

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

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

Ваш покорный слуга на своём мотоцикле:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост


Племянница с кошкой:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

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

Пример "портрета". Племянница:

Ответ на пост «Китайская нейросеть и любимые мемы» Нейронные сети, Искусственный интеллект, Компьютерная графика, Мемы, Юмор, Аниме, Длиннопост, Нейросеть Different Dimension Me, Видео, Без звука, Ответ на пост

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

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

В идеале, я так думаю, стараются добиться возможности рисовать сцену (мультфильм) параметрически, без необходимости привлечения художников. Подобно тому, как сейчас можно параметрически задать модели в CAD-системах. Интересно, получится ли у китайцев добиться этого.

С вами был Kekovsky.

Показать полностью 7 1
38

Коллекция случайных музыкальных инструментов (с историей)

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

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

# Гитарно-балалаечная секция:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

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

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

- Бас гитара Parksons (китаец - клон, по-моему, Фендера) - использую при записи партий баса. Гитару отдал мне хороший парень, который хотел играть в местной группе. Он поиграл какое-то время, после чего решил переехать, а у гитары к тому моменту сломался один из колков. По итогу, гитара была отдана мне временно, на мелкий ремонт - колок я починил, а парень, судя по всему, уехал и просто забыл про неё. Я ему писал какое-то время, но он сказал, что уже не играет, везти её через всю страну не имеет смысла, и я могу её оставить..

- Электрогитара "Jay Turser" - китайский страт. Её купил мой друг, с которым мы до сих пор общаемся, себе на день рождения, после чего гитара пошла по рукам, была то у одного человека, то у другого, в конечном итоге на одном из гаражных собраний попала ко мне, без струн и со сломанными ручками, не помню уже под каким предлогом. Я настроил на ней бридж, и играю с рычагом. А друг играет сейчас на оригинальном Fender Stratocaster.

- Электрогитара китайская, нонейм (Rockdale), тоже страт. Эта гитара похуже, чем предыдущая - тупо какой-то самый дешевый китаяц из магазина. Но зато с хамбакером. Вот тут уже история интереснее: парень приехал в соседний дом из другого города, привезя с собой эту гитару. Не мог найти здесь работу, и попросил дать денег на первое время. Чтобы не дарить ему деньги, я попросил в залог гитару, после чего отдал ему.. Кстати говоря, парня этого я больше не видел - видимо, не прижился, так что деньги не вернул, но и гитара осталась. В минусе я не остался. Я её выставлял на продажу, и продам, если будет очень надо, но пока что настроил в Drop D, и использую для более "тяжелой" музыки.

- Акустическая гитара "Орфей Джипсон", Болгария. Была, как ни странно, вообще получена за один час абсолютно случайным образом. Я шел как-то с работы. Внезапно позвонил давний знакомый, мол, разбирает гараж, "гитара не нужна?". Ну, конечно, нужна. Просто так отдал.. Я её от пыли протёр, и она даже играет.

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

- Балалайка "Ленинград" 1952 г. - поменял местному бомжу за бутылку водки и хлеб с колбасой (прямо как в компьютерных играх-квестах начала нулевых годов). Уже практически пришла в негодность, требует реставрации, поэтому прибита к стене. Но звук издаёт.

- Банджо "Музима" - тоже настенный вариант. Осталось при разборке бара, которым владел один из моих знакомых. Он решил закрыть бар и уехать, а банджо отдал мне, как сувенир. Как вы можете видеть, оно без струн и подставки - однажды в баре во время драки уронили со стены, и каким-то образом утеряли эти детали. Огрызки струн я уже потом поснимал. Руки не дошли поискать новые, поэтому тоже было прибито обратно к стене (только уже моей).

# Клавишная секция:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

Тут всё куда проще:

- Yamaha DGX-220 - получил от девушки, выпускницы музыкальной школы. Общались, оплатил ей имеющимся на руках сертификатом какие-то курсы, не помню уже толком, на что, по маникюру что-ли. Синтезатор неплохой, с USB выходом - можно использовать, как MIDI клавиатуру. Мой главный и самый любимый синтезатор. Много раз репетировали и выступали с ним, играли на нём практически всё. Я и не заметил, как его клавиши пожелтели.. Кстати говоря, вы можете увидеть стекло от телефона, наклеенное поверх дисплея. Заклеивал от детей, которые всё норовили на него руками понажимать. Но, в общем-то, по динамикам они всё-таки прошлись, впрочем, это другая история.

- Casio CTK-651. Вот пост про него. Временно у меня, пока ещё не знаю, что с ним дальше будет. После Ямахи нет смысла его использовать.

# Гармоне-баянная язычковые:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

- Мелодика Suzuki. Она, в общем то, не моя, ребёнок знакомого учился "дудеть", т.е., музыкальной грамоте, по окончании муз. школы была забыта. Я на ней особо и не играл.. Лежит вместе с остальными инструментами.

- Гармонь "Маричка 3". Наследие Советского Союза. От надписи отвалилась часть букв, и стала она у меня "Марш 3". Была поменяна у того же бомжа, что и балалайка, на ещё одну бутылку водки. Гармошка оказалась нерабочая - басы не звучат. Сыграть на ней было невозможно. В какой-то момент я заморочился и разобрал её. Оказалось, что все басовые планки отпали и валяются в корпусе. После их приклейки на место гармонь заиграла. Но я её не особо люблю - так как её диапазон сильно ограничен. В основном, играл частушки, или что-то типа "Во поле берёза стояла", хотя "Свадьба", и "Катюша" - тоже получалась, она укладывается в диапазон. Гармонь строя ля-мажор (фа-диез-минор).

- Аккордеон "Аккорд". Который вскоре разделил участь гармони и превратился в "Аккор". Но, при этом, он играет, хотя мех немного подтравливает уже. Кстати говоря, с аккордеонами отдельная история, через мои руки их прошло штук пять, три из них остались в одном учебном учреждении, откуда я просто поленился их вывозить - у многих из них также не работали басы или травили меха. Не стал их забирать оттуда, скорее всего, до сих пор там и валяются. На аккордеоне можно сыграть различные мелодии про свадьбу, ну и застольные/танцевальные произведения (я лично играл Бабаджаняна, Раймонд Паулс "Золотая свадьба", Валенки, Яблочко и т.д.), причём, даже в разных тональностях, что даёт преимущество перед гармонью. Этот аккордеон по наследству получен.

# Наследие Советского Союза:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

Потёртые чемоданчики, требующие реставрации, но, скорее всего, они никогда её не обретут. Смотрим, что внутри:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

Двемерские механизмы! А именно, корнет си-бемоль. Играть на нём, к сожалению, ни у меня, ни у кого-то из знакомых (кроме профессионального трубача) не получилось. Как ни старались - не устанавливается амбушюр, и всё. Там даже видно 3D-печатный тренажер для губ, но он тоже не помог. У меня получалось на нём максимум октаву брать, и то некачественно. Тоже был получен по наследству, как и остальные предметы с фото до этого.

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

А вот здесь смычковые. Скрипка в футляре - 4/4, со смычком и подбородником. Эту скрипку мне отдали в сломанном виде. Классика жанра - ребёнок уронил, после чего отлетела дека. К счастью, удалось склеить на эпоксидный клей. Качество звука пострадало - играть на ней произведения неудобно, слышно фальшь, особенно, на среднем диапазоне. Пострадал угол наклона грифа. Кое-что на ней можно исполнить, если хорошо настроить (для этого там стоит машинка) но осталась больше для красоты.

Вторая скрипка рядом 3/4, но ей повезло меньше - помимо того, что её уронили, ребёнок ещё и каким-то образом намочил её. Видимо, настолько не хотел заниматься в музыкальной школе. Привести её в рабочее состояние не удалось - угол наклона грифа абсолютно не соответствует стандарту. Исполнить на ней что-либо невозможно. Оставлена на зап.части.

# Ударно-пионерские:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

Тут совсем немного. У меня была ударная установка, даже с личным барабанщиком, но это ушло в прошлое. Осталось лишь кое-что:

- Барабан пионера. Убитый, требует реставрации. Мой батя играл на ударных в пионерском духовом оркестре - вот и остался, был найден в кладовке. Требует серьёзной реставрации - вся оцинковка слезла, мембраны надо снимать. Но ещё даже играет.

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

# Бонус - электронно-студийная секция:

Коллекция случайных музыкальных инструментов (с историей) Музыкальные инструменты, Музыка, Гитара, Синтезатор, Истории из жизни, Коллекционирование, Длиннопост

Следствие попыток влиться в "диджейскую" тусовку. Какое-то время я играл на этих инструментах, и использовал их для записи мелодий. Нравилась мне фирма AKAI.

- MPD18 был поменян человеку на AKAI LPK8, с ним там отдельные заморочки, когда-то в моих древних постах я даже писал про него. Сейчас не знаю даже, включится ли он.

- LPK8 (второй) - подарил друг на день рождения. Использовал я от них только АЦП (крутилки), так как одного фейдера MPD18 было маловато, а пэды мне больше нравились 4x4. Удобно было работать с плагинами ударки, и тому подобное.

-------------------------------------

А вот клавиши - LPK25 я купил в магазине. Хотя в начале поста сказал, что не покупал - но, в любом случае, деньги были не мои личные, а студийные, так что тут момент спорный. Единственная из всего поста вещь, которая была куплена в музыкальном магазине. В чём была моя глупость, ибо они оказались фуфлыжные. Тактильно - абсолютно не понравились, конечно, мелодии мы на них записывали, но свои деньги не отбили.

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

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

P.S> жены рядом нету, просто реально поймал себя на том, что за годы жизни, в кладовке, невзначай, собрался целый оркестр. Захотелось рассказать истории вещей.

До новых встреч, с вами был Kekovsky (специально для pikabu.ru).

Показать полностью 8
516

Самодельное АЛУ на отечественной логике

Решил "вспомнить молодость", и собрать макет арифметико-логического устройства (сумматора) из подручных материалов. Вот это устройство:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Давайте посмотрим, из чего оно состоит.

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

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

Для начала, описание составных частей:

Регистры 8 разрядные - ИР6, включены в параллельном режиме. Встроенная троичная логика не задействуется.
Два регистра: А и Б - слагаемые.
Мультиплексоры (шинные формирователи) - КП11. У регистрового блока задействованы оба канала, у сумматора - только один..
Сумматор 4 разрядный - ИМ1, включены последовательно, COUT 1 на CIN2.
Логические гейты XOR (исключающее или) также 4 разрядные - аналог ЛП5.
Вспомогательная логика - ЛИ1.

Попробуем запустить АЛУ, для этого выведено питание +5В от USB кабеля. Включаем:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Так как отсутствует цепь сброса (RESET), то регистры памяти заполняются произвольными данными. Давайте попробуем загрузить в них конкретные значения:

Загрузим 0 в регистр А:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Загрузим 1 в регистр Б:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Для загрузки переключим соответствующие логические уровни на вспомогательной микросхеме LDA и LDB:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Числа успешно загружены. Снимем перемычки и разрешим выход мультиплексора сумматора на общую шину. Пробуем подать тактовый сигнал (тактирование выполнено на КР1006):

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Как можно видеть, всё сдвинулось на один разряд - была единица, стала двойка:

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Значит, АЛУ успешно работает, и осуществляет сложение с основанием единица (так как именно она была загружена в один из регистров). Давайте подадим автоматическое тактирование в несколько герц, и посмотрим, как осуществляется сложение:

Также можно выполнить и вычитание, для этого используется вспомогательная логика XOR (исключающее ИЛИ). А именно, мы инвертируем второй регистр, после чего производим суммирование содержимого регистра А, инвертированного Б, и единицы (вход переноса). Таким образом, мы получим разность чисел.

Самодельное АЛУ на отечественной логике Электроника, Техника, Компьютер, Кибернетика, Самоделки, Видео, Длиннопост

Для создания полноценной счетной машины этого мало. Потребуется ещё, как минимум, один регистр или слово ОЗУ для хранения готовой суммы. Впрочем, это уже другая история.

Выход переноса (выведен на зелёный светодиод) является важной частью АЛУ, так как именно с его помощью будут выполняться условия с переходом. Такие инструкции, как BREQ, BRHS и другие. За счет этого достигается в дальнейшем Тьюринговая полнота.

Такие вот чудеса можно сделать своими руками.

А пока всем спасибо, с Вами был Kekovsky, до новых встреч, друзья..

Показать полностью 9 1
751

Пишем программу для утюга на ассемблере

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


Всем привет! По причине того, что я имею официальный диагноз "Оператор ЭВМ", многие знакомые или родственники часто обращаются ко мне с просьбой что-нибудь починить. Ну, например, отвлечься от сортировки трёхмерных массивов, и сделать наконец-таки что-нибудь полезное для родины. Например, мультиварку или утюг. Но, чтобы это не было скучно, давайте попробуем написать исходный код для обыкновенного утюга. Для эстетичности и ради культурной ценности писать мы его будем на ассемблере.

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Далее следует техническое описание, кому оно не интересно, а хочется сразу посмотреть результат, можете промотать до фотки с утюгом.

Ассемблер для AVR основан на RISC-архитектуре, что значительно позволяет упростить программу. Выберем микроконтроллер Attiny13, и напишем под него самую примитивную программу из возможных:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Чтобы не быть голословным, данная программа не задействует ОЗУ, а лишь устанавливает контроллер в конкретный режим работы. Далее я объясню, почему так.

Режим работы и данная программа весьма проста. Её можно выразить одним условием:
ТЕМП < K ? А : Б

Где темп - температура с датчика (напряжение на входе АЦП), к - требуемая константа температуры, а - состояние нагрева утюга, б - состояние охлаждения утюга

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

У людей, более-менее знакомых с темой сразу же возникнет два вопроса:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

По сути дела, данные устройства при использовании в этой задаче эквивалентны. Но имеется ряд отличий:

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

- В данном включении наша ATTINY13 действительно ничем не будет отличаться от обычного компаратора LM339. Отличия проявляются лишь в возможности изменения константы K (вот эта строчка):

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

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

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

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

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

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Вернёмся к утюгу. Наша программа имеет 5 "субрутин", не записывает и не читает ничего из ОЗУ, даже не инициализируется стек. По причине того, что она весьма линейна.

preset - установка режима работы контроллеров. Записываем параметры в регистры управления.
adc_start - начало преобразования АЦП (напряжение в значение регистра)
wait - ожидание снятия флага преобразования. Флаг снимается, когда преобразование завершено.
compare - сравнение констант. Данные с АЦП пишутся в регистр, константа также пишется в регистр и происходит их сравнение (в данном случае - ветвление) brsh - branch if same or higher, то есть переход, если в АЛУ установлен флаг C
enable - ветка, в которую мы попадаем, либо не попадаем. Включает ТЭН.

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

Также нам понадобится, собственно, утюг. Возьмём типичный советский утюг, так как на опыты его уже не жалко:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Программа готова, прошьём контроллер:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Далее испытаем работоспособность схемы на макете. Вместо терморезистора (его видно в пакетике) для испытаний стоит крутилка из предыдущих проектов:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Всё успешно работает, поэтому можно попробовать подсоединить схему к утюгу. Пока что на соплях, для проверки того, что всё идёт по плану:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Далее установим терморезистор в область ТЭНа:

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

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

Пишем программу для утюга на ассемблере Электроника, IT юмор, Тыжпрограммист, Assembler, Юмор, Длиннопост

Ну вот, собственно говоря, и всё. Пост писал Kekovsky для pikabu.ru

Показать полностью 12
124

Ставим Linux на пылесос

Я ставлю Linux на пылесос, мои глаза красны, как никогда

Когда услышали эту цитату, поспорили с приятелем, получится ли поставить Linux на пылесос. Выполняю. Нам понадобятся: сам пылесос

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Также: микрокомпьютер Orange Pi PC, релейный модуль от ESP8266 (у меня он с доработками, подойдет также любой другой, сам контроллер ESP для упрощения задачи можно снять)

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Понадобится также несколько DuPont перемычек. Два модуля соединяется весьма нехитрым образом: питание реле от 3 и 5 пинов на 40-pin разъеме Orange PI, сигнальный контакт вешаем на произвольный GPIO (у меня это 13 нога, A0). Сигнал пускаем в обход контроллера STC15F104, сразу на 7 ножку, для увеличения тока резистор заменил с 10кОм на 1кОм.

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Далее установим Linux-производную ОС в память компьютера. Для этого используется SD-карта с распакованным образом Armbian. В моём случае, это Focal (основанная на Ubuntu дистрибутиве). Для нашей задачи вид дистрибутива роли никакой не играет. Данные записываются на карту стандартным образом при помощи Win32 Disk Imager (да, кто-то ещё пользуется Win7 для подобных задач):

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

После записи образа, нужно установить root-логин и пароль, и мы сразу заходим в систему доступ к пинам GPIO осуществляется в данном случае через sysfs. Под рукой не было HDMI-монитора, был только проектор, так что все манипуляции проводил с его помощью. Для того, чтобы установить состояние пина, мы используем следующие команды из терминала:

1. Объявляем пин 0:

echo 0 > /sys/class/gpio/export

2. Устанавливаем режим работы пина 0 на выход:

echo out > /sys/class/gpio/gpio0/direction

3. Устанавливаем значение 1 для данного пина:

echo 1 > /sys/class/gpio/gpio10/value

Вот, как это выглядит в терминале:

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

После чего у нас установилось значение 1, это можно видеть по индикации модуля:

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Далее, соберём силовую часть схемы (она весьма несложная). Встроенный выключатель пылесоса SW1 необходимо включить, остальное без изменений.

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Теперь испытаем устройство:

Ставим Linux на пылесос Электроника, Техника, Linux, Юмор, Микроконтроллеры, Длиннопост

Поздравляю! Имеем пылесос, работающий на ОС Linux. ТЗ выполнено полностью. Аналогичным образом возможна установка Linux на утюг, электрочайник, стиральную машину.

Всем спасибо за внимание, с вами был Kekovsky, хорошего дня :D

Показать полностью 8
Отличная работа, все прочитано!