Search
Write a publication
Pull to refresh
210
8
Send message

Ну, погоди! Как я создал свою версию культовой игры: от схемы до корпуса

Level of difficultyMedium
Reading time13 min
Views14K

Получив заряд эндорфинов от успешной работы эмулятора «Ну, погоди!» и вдохновившись ценными советами по улучшению эмулятора в комментариях к своей предыдущей статье, я приступил к следующему этапу — созданию полноценного устройства, готового к использованию в повседневных условиях. Этот процесс оказался не менее захватывающим, чем разработка прототипа эмулятора.

Теперь у меня сформировалось более полное понимание экосистемы разработчиков DIY-устройств, а именно: какими программами можно пользоваться и чёткое понимание этапов разработки.

Заранее хочу предупредить, что разводку на печатной плате я по-прежнему не сделал, а ограничился перфорированной макетной платой. Но чтобы «Ну, погоди!» выглядело более эстетично, поместил её в пластмассовый корпус. Если у вас нет 3D-принтера, то возможен более-менее эстетичный вариант без корпуса — далее в статье я приведу фотографию, как это можно сделать.

Читать далее

Создаём эмулятор легендарной игры «Ну, Погоди» на базе Raspberry Pi Pico

Level of difficultyMedium
Reading time22 min
Views19K


Многие из тех, кому сейчас за 30, и рождённых в СССР или на постсоветском пространстве, помнят электронную игру «Ну, погоди!». Во времена, когда не было ни интернета, ни ноутбуков, ни мобильных телефонов, а из общедоступных электронных развлечений были только аттракционы в парках культуры и видеосалоны, обладание бытовым компьютером, электронными наручными часами Montana или электронной игрой «Ну, погоди!» было мечтой многих детей.

Были ещё и другие электронные игры, но именно «Ну, погоди!» считается классикой.


Игре посвящено много ностальгических статей и видео. На различных торговых площадках можно купить её в различном состоянии от убитого до «с хранения» и даже новодел.


Лет 10 назад и я купил её в идеальном состоянии, поигрался, вспомнил детство и положил в ящик. Но несколько месяцев назад с разочарованием увидел, что «потекла» нижняя часть экрана.


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


Я не был одинок в своём желании воссоздать игру, этой теме посвящено также немало статей, но в них обычно создавали симуляторы, а не эмуляторы игры. Симулятор у меня ассоциируется с фразой: «Я художник, я так вижу», эмулятор — это более точное воспроизведение устройства.


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


Эмулятор максимально приближен к оригиналу, если не считать экран (он не сегментный, как в оригинале) и корпус (я пока реализовал на беспаечной макетной плате).


Если вам интересно, как за несколько вечеров воссоздать у себя эмулятор «Ну, погоди!» на современном микроконтроллере или просто поностальгировать, добро пожаловать под кат.


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

Пишем свой загрузчик операционной системы Linux

Level of difficultyMedium
Reading time23 min
Views26K


Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.


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

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

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

Level of difficultyMedium
Reading time28 min
Views29K


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

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

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

Level of difficultyMedium
Reading time16 min
Views20K


Меня давно интересовало, как работают беспроводные клавиатуры, но как-то не сильно вдавался в подробности, пока не возникла идея превратить свою механическую клавиатуру в беспроводную. Честно говоря, не думал, что узнаю так много нового и интересного.

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

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

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →

Протоколы семейства TCP/IP. Теория и практика

Level of difficultyMedium
Reading time23 min
Views224K
image

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

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

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

Слушаем и декодируем в реальном времени радиосигнал точного времени из интернета

Level of difficultyMedium
Reading time20 min
Views26K
image

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

Технология передачи точного времени по радио не нова. Сигналы точного времени начали передавать практически сразу, как появился радиотелеграф. Сейчас передача сигналов точного времени осуществляется с помощью различных технологий. Помимо радио, информация о времени с разной степенью точности передаётся:

  • в интернете (NTP);
  • в сетях мобильной связи (NITZ);
  • в системах спутниковой навигации GPS, ГЛОНАСС, BeiDou-3, Galileo.

Хотя в этих случаях используются более современные технологии, передача сигналов точного времени по радио продолжает существовать и выполнять свои функции. Промышленностью выпускаются различные устройства, принимающие эти сигналы, например, часы Casion Wave Ceptor. Изучив основы передачи точного времени по радио, вы узнаете много интересного, а также закрепите свои знания в различных областях.
Читать дальше →

Как принять сигнал мобильной связи на приёмник цифрового телевидения: теория и практика

Level of difficultyMedium
Reading time20 min
Views32K
image

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

  • ноутбук,
  • DVB-Т-приёмник в виде USB-брелока,
  • свободный флеш-накопитель для записи дистрибутива Linux на него.

Чтобы лучше разобраться в работе GSМ, нужно два мобильных телефона или телефон и GSM-модем.

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

Как создать аппаратный эмулятор CD-ROM без паяльника

Level of difficultyMedium
Reading time19 min
Views18K

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

Существует множество решений, как можно установить операционную систему с ISO-образа без записи его на оптический носитель. Я уже затрагивал тему ISO-образов в моих статьях: «Раскрываем секреты загрузочных ISO-образов» и «Что вам нужно знать о внешних загрузочных дисках».

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

Меня этот способ заинтересовал. Я проверил его сам и, получив положительный результат у себя, решил поделиться с вами.

Я сам узнал много интересного, систематизировал свои знания, поэтому надеюсь, что чтение будет познавательно и интересно для вас.
Читать дальше →

Как поиграть в Quake для DOS по сети в 2023 году

Level of difficultyMedium
Reading time14 min
Views9.9K

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

  • не на всех компьютерах можно поиграть со звуком;
  • необходимо заменять файл в дистрибутиве Quake;
  • невозможно поиграть по сети.

В этой статье я приведу решение, лишённое этих недостатков. Хотя оно подразумевает использование эмуляции, возможность игры в интернете позволяет забыть об этом. Обладая минимальными знаниями по работе в Linux, любой желающий может повторить это решение у себя.
Читать дальше →

Каким было автоматизированное рабочее место середины 90-х, и как его повторить на современном компьютере

Reading time14 min
Views23K

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

Я вам предлагаю совершить нечто подобное, разумеется, ненадолго, и если вам за 40, погрузиться в ностальгические воспоминания. А если вы не представляете, как же люди жили раньше без интернета, то узнать, как выглядело рабочее место программиста или студента в далёкие 90-е годы.

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

Раскрываем секреты загрузочных ISO-образов

Reading time20 min
Views120K


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

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

Level of difficultyMedium
Reading time11 min
Views108K
image

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

Ещё больше не даёт покоя мне тот факт, что все ядра операционной системы Linux, которые работают на различных устройствах и серверах, собраны из исходного кода, находящегося в репозитории на сайте kernel.org.

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

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

Что вам нужно знать о внешних загрузочных дисках

Reading time5 min
Views25K

Сейчас, по прошествию многих лет, начинаешь осознавать, что CD-ROM и DVD-ROM уходят в прошлое. Им на замену пришли флеш-накопители и внешние жесткие диски. Многие операционные системы уже поддерживают установку с флеш-накопителей, но, тем не менее, почти все дистрибутивы операционных систем поставляются в виде образов (файлов с расширением .iso), которые де-факто являются стандартом по распространению дистрибутивов операционных систем. Специальной программой на оптическом диске создается файловая система на основе информации из ISO файла.

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

Читать далее

Все, что вы хотели знать о времени, но боялись спросить

Reading time9 min
Views19K

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

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

Читать далее

Коллекция советских игровых автоматов на вашем Raspberry Pi

Reading time8 min
Views9K

В СССР игровая индустрия была слабо развита в 80-е годы. Те, кто застал это время в сознательном возрасте, хорошо помнят игровые автоматы, которые стояли в кинотеатрах, домах культуры и парках отдыха, а также очереди желающих на них поиграть. В основном это были электромеханические игровые автоматы, такие как «Морской бой», «Воздушный бой».

Самыми «крутыми» были телевизионные игровые автоматы «Магистраль», «Перехватчик», «Городки», «Скачки», но графика у них была примитивная и часто черно-белая.

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

В этой статье я хочу рассказать, как на Raspberry Pi поиграть в «Конька-Горбунка», а также «Снежную королеву», «Кота рыболова», «S.O.S.», «Городки», «Бильярд» и некоторые другие игры из советских автоматов, получить массу положительных эмоций и, если вам захочется, удивить своих знакомых тем, что у вас есть такие игры.

Читать далее

Как превратить Raspberry Pi в роутер с поддержкой WireGuard VPN клиента

Reading time7 min
Views35K

Если вдруг у вас есть Raspberry Pi, вы с ним уже наигрались и хотите найти ему полезное применение, то в этой статье я расскажу как быстро и просто превратить его в роутер, который может работать c VPN сервером по протоколу WireGuard. В виду того, что вычислительные возможности Raspberry Pi выше, чем у среднестатистического роутера, вы получите большую скорость Интернет при работе через VPN.

Читать далее

Как предоставить доступ для всех устройств из локальной сети к VPN

Reading time7 min
Views51K

Наверное, ни для кого уже не секрет, что использование технологии Virtual Private Network (VPN) становится повседневной необходимостью. На рынке присутствует много решений – платных и бесплатных.

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

Читать далее

Information

Rating
161-st
Registered
Activity