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

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

Как это сделать? 

Интересный метод предложил один из пользователей сайта Instructables. Ему удалось создать компактный девайс на базе современной платы Parallax Propeller Activity Board. 

Кроме платы нужны и другие элементы. Вот полный список того, что понадобится для сборки: 

  • гибкий 10-жильный кабель

  • соединительные провода

  • 10 фоторезисторов

  • 10 LED-светодиодов, 3 мм

  • монтажная плата

  • паяльник и припой

  • два коннектора с пинами, male-разъём 

  • 9 резисторов на 10 кОм плюс резистор на 100 Ом

  • две деревянные дощечки (их придётся обработать) 

  • сама плата, Parallax Propeller Activity Board

Для создания перфокарты понадобится ещё плоттер, например Silhouette Portrait. Можно использовать и принтер, но срезать плёнку придётся потом вручную. 

Вот видео с описанием процесса сборки, если не хочется читать статью.

Приступаем к работе — сборка считывателя 

На монтажной плате нужно припаять фоторезисторы — в один ряд. С другой стороны соединяем выводы элементов. 

С обратной стороны это должно выглядеть следующим образом:

И ещё иллюстрация для понимания:

Теперь в дело вступает наш гибкий 10-жильный шлейф. Концы жил с обеих сторон кабеля нужно зачистить примерно на 3 мм, а затем залудить. Их припаиваем к 10-пиновому коннектору с одной стороны, с другой — к цепи фоторезисторов.

Последняя, 10-я, жила будет служить кабелем питания для фоторезисторов. 

Теперь берём такую же монтажную плату и припаиваем к ней 10 светодиодов. 

Полярность каждого диода должна совпадать с полярностью предыдущего. Собираем плату точно так же, как и плату с фоторезисторами. Затем используем два провода. Один из них будет питать светодиоды, 5 В. Второй — «земля». Не тестируйте до впайки ограничительного резистора на 100 Ом (о нём будет сказано позже).

Теперь в дело пойдёт обрезок древесины. На нём при помощи коннектора размечаем точки, в которые установим сами светодиоды.

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

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

После этого потребуется сделать прорезь на одной из сторон деревянного обрезка. В эту прорезь и будет входить перфокарта. Сделать можно не так, как показано на фото, а просто гладкую прорезь без «рёбер».

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

А вот так должны выглядеть обе половинки деревянного обрезка после того, как их сложить вместе. Здесь уже вставлены светодиоды. Половинки потребуется склеить вместе, как показано на фотографии. 

Теперь приступаем к резисторам. Их нужно распаять на 10-пиновом коннекторе, один резистор на каждый пин. Последний резистор подпаян к 10-му пину, который будет затем подключён к «земле». Выглядеть это должно вот так:

Сейчас подключаем всё это к Parallax Propeller Activity Board. Достоинство этой системы — наличие небольшой макетной платы, что в нашем проекте очень пригодится. Вот схема подключения:

Для светодиодной платы потребуется токоограничивающий резистор с сопротивлением не менее 100 Ом. 

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

И последний шаг в сборке — код для платы, которая и будет выполнять информацию по обработке полученных с перфокарты данных.

Program the Propeller
Program the Propeller

Код можно получить вот по этой ссылке

Что касается перфокарты, то её тоже можно сделать самому, вот подробная инструкция на английском, где есть как описание шагов по сборке считывателя, так и описание работы над перфокартой. Конечный результат — на фото ниже:

Ну и наконец, считывание карты!

Сообщение, переданное создателем карты, гласит: «Hello, World! Testing 12345. ASCII». 

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

Комментарии (28)


  1. Xeldos
    19.08.2023 10:22
    +4

    10 фоторезисторов

    10 LED-светодиодов

    Это примерно как электрический камин :(


    1. MaFrance351
      19.08.2023 10:22
      +1

      В считывателях тех лет, к слову, были лампы накаливания.
      В нынешних реалиях проще поставить фототранзисторы и ИК-диоды.


      1. Xeldos
        19.08.2023 10:22
        +1

        Лампы? Я думал там была механика.


        1. dio_eraclea
          19.08.2023 10:22

          Была. По-крайней мере, я разбирал именно механический когда-то.


  1. vindy123
    19.08.2023 10:22
    +4

    Обожал играться с дыроколами для перфокарт в ВЦ, где родители работали. До ранних девяностых они были в ходу там.

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


    1. SergeyMax
      19.08.2023 10:22
      +1

      А зачем вообще какие-то дырки распознавать, если можно просто файл скопировать /s


      1. vindy123
        19.08.2023 10:22

        Я подумал о use case когда на самом деле есть какой то старый код на перфокартах, который нужно оцифровать. Так то по фану конечно почему бы и железную читалку не собрать.


  1. osmanpasha
    19.08.2023 10:22
    +7

    Ещё бы понять, почему использвована эта плата, которую надо программировать на безумном кастомном языке. Судя по коду, фоторезисторы подключены к логическим входам, а значит, всем знакомая ардуина бы справилась.


    1. forthuse
      19.08.2023 10:22

      Любой язык, пока его не изучишь и не начнёшь применять может подпадать под термин "безумный" :)


      Что только характеризует не сам язык, а какое то мнение кем то высказанное в отношении него.


      1. osmanpasha
        19.08.2023 10:22
        +3

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

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


    1. Yuri0128
      19.08.2023 10:22
      +1

      Ну, в оригинальных считывателя (помнится мне) были фотодиоды. Ибо важна была скорость считывания. А по плате - ну, что было (или что дали) то и заюзал. Ардуина справилась бы. Там скорости маленькие (по современным меркам), в реальном считывателе где-то 10 карт в секунду (мог и позабыть, давно это было), что дает порядка 800 байт/сек.


  1. sshikov
    19.08.2023 10:22
    +8

    Им несколько десятков лет — впервые прототип подобного носителя информации стали применять ещё в начале 1800-х годов для управления полуавтоматическими ткацкими станками.


    Вообще-то с начала 1800-х прошло два века с хвостиком. А не несколько десятков лет.

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


    1. avost
      19.08.2023 10:22

      (у перфокарт прямоугольные)

      Были перфокарты и с круглыми дырками.


      1. sshikov
        19.08.2023 10:22

        Ну да. Но при этом на КДПВ перфокарты вполне обычные, 80х12.


  1. forthuse
    19.08.2023 10:22
    +2

    Возможно ещё где то можно увидеть и такой раритет с названием "Консул"
    Консул


    P.S. Этот рариретет использовался для хранения и ввода программ в станки с ЧПУ 80-х годов в CCCР, а также для сохранения сервисного ПО на бумажной ленте. :)


    1. Andy_U
      19.08.2023 10:22
      +1

      Ууу, FS-1600 detected.


    1. Brrastak
      19.08.2023 10:22
      +1

      Не далее как пять лет тому назад такой считыватель использовался на питерском заводе Светлана, скорее всего и теперь никуда не делся


    1. mapnik
      19.08.2023 10:22

      Насколько я слышал, понятие "консоль" связано именно с этой штукой.
      Так ли это, может кто-то рассказать?




    1. AwesomeDad
      19.08.2023 10:22
      +1

      На фотографии Консула нет.
      Слева - фотосчитывающее устройство с перфоленты FS-1501.
      Справа - ленточный перфоратор ПЛ-150М.


      1. Andy_U
        19.08.2023 10:22

        Ох ты, перепутал, оказывается марку FS в своем сообщении выше :(


  1. atd
    19.08.2023 10:22
    +2

    Это перевод, не так ли? Тогда и оформить надо как перевод, со ссылкой на оригинал


  1. wormball
    19.08.2023 10:22

    Всё превосходно, но фотографии в ПНГ? Это теперь такая мода на хабре или в правилах оформления статей прописано?


  1. dyadyaSerezha
    19.08.2023 10:22

    Где-то на балконе должно валяться штук 500 перфокар, еще со студенческих времен. Могу дать несколько)


  1. aabzel
    19.08.2023 10:22
    +1

    Москва в 2023м - это IT столица России.

    Тут даже станции метро украшают большими перфокартами.

    метро Савёловская
    метро Савёловская


  1. MaFrance351
    19.08.2023 10:22
    +2

    Аж вспомнился собственный пост трёхмесячной давности про оптические домофоны:


    https://habr.com/ru/companies/timeweb/articles/733356/


    В родном Челябинске их нет, но в некоторых городах необъятной они ещё вполне остались.
    А ведь по принципу действия это те же самые перфокарты.


    Ширина щели должна быть равна диаметру фоторезистора.

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


    image


  1. G_SKULL
    19.08.2023 10:22

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