Как стать автором
Обновить
10
-2
Руслан Аликберов @Alikberov

Оператор ЭВМ

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

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

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

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

В Китае создали настольный квантовый компьютер стоимостью $5000

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

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

Читать далее
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 28

Действующий процессор на 13 микросхемах стандартной логики

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


Привет, Хабр! Для меня было просто невозможно пройти мимо этого схемотехнического чуда. Горстка деталей на небольшой двусторонней плате выполняет команды машинного языка и выводит результат в виде двоичного кода!

Действующая модель называется "TD4 CPU", является проектом с открытыми исходниками, реально работает и позволяет понять устройство и принцип работы процессора.
Читать дальше →
Всего голосов 111: ↑110 и ↓1 +109
Комментарии 53

50 оттенков жёлтого. Проверяем на практике технологию Retrobright

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

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

Кратко напомню суть явления для тех, кто не читал статью. В состав ABS-пластика входят три основных компонента — акрилонитрил, бутадиен и стирол. Под воздействием тепла и ультрафиолетового излучения стирол распадается, образуя соединения жёлтого цвета. Однако в присутствии концентрированной перекиси водорода ультрафиолет, наоборот, способствует разрушению этих соединений, восстанавливая цвет. «Тот, кто нам мешает, тот нам поможет!».

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

Старое железо: Манипулятор графической информации ЕС-1841

Время на прочтение 3 мин
Количество просмотров 14K
Хочу рассказать о Манипуляторе Графической Информации ЕС1841.А002. Или просто мышке. Том самом легендарном кирпиче. На Гиктаймсе нашёл лишь одну статью о подобном, но там она лишь упоминалась. Сей девайс уже давно лежит у меня на полке, как память о эпохе советского компьютеростроения.


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

Терминалы Lipman Nurit и их программирование

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 4.1K
Приветствую всех!

Не так давно я уже рассказывал о разработке приложений для банковских терминалов Ingenico. И тогда я сказал, что платформа Telium была выбрана из-за того, что она единственная, под которую в открытом доступе есть SDK.

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



Итак, в ходе данной статьи поговорим о несколько более древних и экзотических терминалах. Узнаем, как писать под них, где взять софт и что со всем этим делать. Традиционно будет много интересного.
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 40

CSS: полное руководство по функции calc()

Время на прочтение 11 мин
Количество просмотров 87K
В CSS есть особая функция calc(), применяемая для выполнения простых вычислений. Вот пример её использования:

.main-content {
  /* Вычесть 80px из 100vh */
  height: calc(100vh - 80px);
}

Здесь с CSS-кодом, в котором используется calc(), можно поэкспериментировать.



Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать обо всём, что стоит знать об этой весьма полезной функции.
Читать дальше →
Всего голосов 41: ↑40 и ↓1 +39
Комментарии 9

Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся

Время на прочтение 10 мин
Количество просмотров 120K
Джастин Фуллер, автор материала, перевод которого мы сегодня публикуем, предлагает рассмотреть три новых возможности, появление которых ожидается в JavaScript в обозримом будущем. Сначала он расскажет о процессе развития JS, а после этого представит обзор этих возможностей и покажет примеры их использования. Речь пойдёт об операторах ?., ?? и |>.

О стандарте ECMAScript и развитии JavaScript


Если вы уже знакомы с особенностями деятельности рабочей группы ECMA TC39, с тем, как она осуществляет отбор и обработку предложений о совершенствовании JavaScript, вы вполне можете пропустить этот раздел. Если же вы из тех, кому интересно об этом узнать — вот краткий обзор того, чем занимается TC39.

JavaScript — это реализация стандарта, называемого ECMAScript, который был создан для стандартизации реализаций языка, которые появились в ранние годы существования веб-браузеров.

Существует восемь редакций стандарта ECMAScript и семь релизов (четвёртая редакция стандарта не выходила, после третьей сразу идёт пятая). Разработчики JavaScript-движков приступают к реализации новшеств языка после выхода стандарта. Здесь можно увидеть, что не каждый движок реализует все возможности, при этом некоторым движкам для введения новшеств требуется больше времени, чем другим. Хотя такое положение дел и не идеально, это, всё же, лучше, чем полное отсутствие стандартов.
Читать дальше →
Всего голосов 48: ↑46 и ↓2 +44
Комментарии 67

Что такое LLVM и зачем он нужен?

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

Всем привет! Думаю, у многих сразу возник другой вопрос — а зачем вообще нужна ещё одна статья про LLVM, ведь на хабре их и так больше сотни? Моей задачей было написать "введение в тему" for the rest of us — профессиональных разработчиков, не планирующих создавать компиляторы и совершенно не интересующихся особенностями устройства LLVM IR. Насколько я знаю, подобного ещё не было.


Главное, что интересует практически всех — и о чём я планирую рассказать — вынесено в заголовок статьи. Зачем нужен LLVM, когда есть GCC и Visual C++? А если вы не программируете на C++, вам стоит беспокоиться? И вообще, LLVM это Clang? Или нет? И что эти четыре буквы на самом деле означают?

Читать дальше →
Всего голосов 129: ↑124 и ↓5 +119
Комментарии 136

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Время на прочтение 7 мин
Количество просмотров 10K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

Всего голосов 29: ↑27 и ↓2 +25
Комментарии 23

babooshka tv, как самодельный видео-показатор сместил «точку сборки» моих пожилых родителей

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

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


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


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


Родители впервые смотрят нашумевший пару лет назад эпический фильм про он-вам-не-димона
Родители впервые смотрят нашумевший пару лет назад на Youtube фильм. (На крышке телевизора "голый" RPI первой модели, пруф оф концепт, так сказать)

И вот последнее меня более всего расстраивало....
Всего голосов 154: ↑147 и ↓7 +140
Комментарии 220

Оптимизированная система команд для микроконтроллеров

Время на прочтение 5 мин
Количество просмотров 18K
Немногим менее года назад была опубликована статья «Микропроцессор «из гаража»» и, возможно, сейчас наступил неплохой момент чтобы снова напомнить о проекте.

Пожалуй, главная новость это расширение системы команд, названное «Версия 1.1». Её отличие от предыдущей это расширенные возможности адресации. Но обо всём по порядку. Чтобы представить о чём идёт речь, взгляните на карту системы команд (картинка кликабельна):

image
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 27

Проектирование процессора ModelSim

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

Часть I
Часть II
Часть III
Часть IV
Часть V

Это полная версия предыдущей статьи, к которой добавлены тестбенчи.

Спроектируем Little Man Computer на языке Verilog.

Статья про LMC была на Хабре.

Online симулятор этого компьютера здесь.

Напишем модуль оперативной памяти (ОЗУ), состоящий из четырех (ADDR_WIDTH=2) четырёхбитных (DATA_WIDTH=4) слов. Данные загружаются в ОЗУ из data_in по адресу adr при поступлении тактового сигнала clk.

module R0 #(parameter ADDR_WIDTH = 2, DATA_WIDTH = 4)
(
    input clk, //тактовый сигнал
    input [ADDR_WIDTH-1:0] adr, //адрес
    input [DATA_WIDTH-1:0] data_in, //порт ввода данных
    output [DATA_WIDTH-1:0] RAM_out //порт вывода данных
);
    reg [DATA_WIDTH-1:0] mem [2**ADDR_WIDTH-1:0]; //объявляем массив mem
 
    always @(posedge clk) //при поступлении тактового сигнала clk 
        mem [adr] <= data_in; //загружаем данные в ОЗУ из data_in 
    
    assign RAM_out = mem[adr]; //назначаем RAM_out портом вывода данных
endmodule
Читать дальше →
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 1

WebFPGA — разработка на Verilog в браузере

Время на прочтение 7 мин
Количество просмотров 5.5K
Думаю, многие программисты, начиная от питонистов-датасайентистов и заканчивая суровыми разработчиками драйверов, временами возводят очи горе и мечтательно вздыхают: «Эх, пoжёcтчe бы чего, похардкорнее...». Мы, конечно, говорим про Verilog, язык описания и моделирования электронных систем. Verilog всегда стоял особняком среди языков программирования; позволяя решать задачи, которые не осилить никаким иным образом, он, однако, требует наличия специфической аппаратной платформы, ПЛИС — программируемой логической интегральной схемы. Порог входа в разработку на Verilog относительно высок, но, возможно, скоро он станет чуть ниже, потому что прямо сейчас идёт

Краудфандинговый проект: WebFPGA.
Суть проекта: Отладочная плата для ПЛИС iCE40UP5k. Всё программное обеспечение для разработки и отладки размещено в облаке, взаимодействие с платой происходит в браузере при помощи API WebUSB.
Платформа: Kickstarter.
Автор: Райан Якобс (программист), Мик Якобс (инженер-электронщик).
Локация: Лос-Анджелес, Калифорния, США.


Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 13

Информация

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