Карманный Тетрис своими руками

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

Рабочий прототип
Рабочий прототип

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

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

Закупился всей электроникой, которую счел нужной и начал собирать прототип на макетной плате.

Я купил: Arduino Nano, TFT дисплей 160х128 пикселей, модуль зарядки, пачку резисторов, кнопок, вибромоторов. Также купил маленький корпус для DIY устройств. Переключатель, батарейку и провода я смог найти у себя.

Больше всего мне запомнился поход в магазин радиоэлектроники, куда я пришел за текстолитом и флюсом впервые в жизни. Я попросил дать мне текстолит, а женщина продавец спросила: "Какой?". А я не знаю какими они бывают. Тогда она начала сыпать вопросами, на которые я не знаю ответа.
- "Мужчина, откуда я знаю какой вам нужен текстолит/стеклотекстолит. Односторонний или двухсторонний, на основе одного материала или другого."
Я с позором ретировался учить мат. часть. Но вскоре, текстолит и флюс все же были куплены. Один флюс я купил сам - ЛТИ-120, другой мне отдал товарищ - активный флюс для пайки алюминия.

После того как прототип устройства был минимально собран на макетной плате, а Hello World выведен на экране, нужно было изготовить печатную плату устройства, чтобы скрепить все компоненты устройства воедино.

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

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

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

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

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

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

Долго-долго сверлю
Долго-долго сверлю

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

Познаю активные флюсы
Познаю активные флюсы

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

Запаял все компоненты на свою плату. Криво, косо, но доволен, что получилось. Это результат. Отмечу здесь также, что парами горящего во время пайки флюса лучше не дышать. Я открываю окно и закрываю нос, профессионалы ставят вытяжку.

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

Отладка на макетной плате
Отладка на макетной плате

Один из дисплеев я смог как-то сломать и отделить сам экран от подсветки. Выглядит прикольно, прозрачный экран.

Дисплей без подсветки
Дисплей без подсветки

Пришел черед подгонки всего получившегося в корпус. Если бы у меня был 3Д принтер, то я бы делал корпус отталкиваясь от размера платы. В моем случае все ровно наоборот.

Коробок в роли корпуса
Коробок в роли корпуса

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

Я делаю новую, тонкую версию печатной платы для навесного монтажа. Такую, чтобы только соединить компоненты вместе. Решаю отказаться от красоты внутри, а также ремонтопригодности в пользу скорейшего завершения проекта. Примеряю. Гну все что мешается и встает у меня на пути. Вместо гибкого кабеля беру витую пару, которая ломается после 7 сгибов как любой медный провод, я же сисадмин, у меня ее много. Зато от батареи у меня идут силовые провода от блока питания компьютера, таких у меня тоже много. Силовой кабель от 3 вольтовой батарейки должен быть толстым. Термоусадка в этом проекте тоже участвует. Без нее бы все сразу замкнуло. Кнопки я решил посадить на клей, спички и соду. Выглядит просто жутко. От модулей откусываются лишние выводы и компоненты, чтобы уместить все в коробчонке. Получилось...

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

Видео с работой получившейся игрушки прикрепляю. Качество видео архивное...

Рабочий прототип

Этот Тетрис я собирал 4 месяца по вечерам. Он научил меня самостоятельно изготавливать плату, паять, программировать микроконтроллер, работать с разными модулями, проектировать само по себе устройство, и, наверное, самое главное, доводить дело до конца. Хоть и пришлось пожертвовать многими решениями и много раз начинать сначала. Игрушка подарена близкому человеку. Сейчас это больше сувенир, чем игра. Но она включается, работает, заряжается по сей день.

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

7575
1010
44
35 комментариев

Нинтендо уже готовит юристов

9
Ответить

Я кстати тоже был приятно удивлён ардуинкой.

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

Короче говоря - любому, кто хоть сколько-нибудь разбирается в программировании - работа с ардуинкой покажется настолько примитивной, что даже смех возьмёт. Это буквально ПЛИС для домохозяек. Думаю, даже моя мама сможет на ней собрать какой-нибудь автоматический привод для крышки хлебницы при приближении пользователя.

Сейчас я целюсь в программатор для карт памяти от Sega Dreamcast. Вернее, микросхемы ПЗУ от неё т.к. разъём карт памяти дримки не задокументирован нифига, а вот по микросхеме - есть подробный даташит.

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

Ну, чтобы не вышло, как с твоей старой платой.

3
Ответить

Ардуино мощный. Он весь мой страшный код смог сохранить и производительно запустить. Хотя иногда упираться в ограничения платформы даже мило. Про необходимость смывки флюса, конечно же, в курсе. Знаю, что ЛТИ-120, это не ЛТИ-80, он немного активный, но за годы работы паянных устройств он никак не влиял на их работу, если его не смыть. Ток не проводит, если не говорить про какие-то сопротивления на уровне погрешности. В общем, смывать, конечно нужно. Но я этим, в бытовом ремонте, часто пренебрегаю. Пока что последствий не испытывал.

Ответить

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

2
Ответить

Было раньше. Сейчас я таки стал программистом и не волен выбирать что паять и программировать)

2
Ответить

Хорош!

2
Ответить

Вот это добренько!

2
Ответить