Бинарные пятнашки

Mon 01 April 2013

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

None Рисунок 1. Десятичные пятнашки (вариант от Subaru)

Наигравшись в неё и начитавшись статей про бинарные часы на habrahabr.ru, идея "бинарных пятнашек" как-то сама собой родилась в голове.

Корпус для игрушки решено было печатать на 3D-принтере. До этого с 3D моделированием, да и печатью дел не имел - очень хотелось попробовать. Модели рисовались в SketchUp. На тот момент ничего лучшего не знал.

Для написания этой статьи импортировал созданные в SketchUp stl файлы в SolidWorks и там придавал им цвет, поэтому они получились немного страшненькими. Именно по этим моделям и выполнялась печать.

None Рисунок 2. Основная часть корпуса

1 - отверстие для "выдавливания" батарейки
2 - защёлки
3 - выпуклость для прижима держателя батарейки
4 - отверстия под винты (2 шт.)
5 - отверстие под батарейку CR2032
6 - отверстие под переключатель
7 - отверстие под кнопку "памяти" (при нажатии расположение текущей игры записывается в EEPROM)

None Рисунок 3. "Выравниватель" диодов

1 - отверстия под диоды (64 шт.)
2 - вырез для кнопки

None Рисунок 4. Задняя крышка и кнопки

1 - защёлки
2 - выпуклости для прилегания к плате
3 - отверстия под винты

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

Что же получилось.

None Рисунок 5. Первые испытания

None Рисунок 6. "Выравниватель" для диодов одет и укорочены ножки для прошивки

None Рисунок 7. В собранном корпусе

None Рисунок 8. Кнопок пока что нет.

None Рисунок 9.

Как вы наверное заметили, из отсека батарейки торчит какой-то непонятный скотч) Дело в том, что отверстие для "выдавливания" батарейки оказалось неработоспособным. По задумке, давя сбоку скрепкой на батарейку, она должна была выдавливаться в перпендикулярном к направлению давления направлении. Но не тут-то было! Силы трения оказались сильнее и эта задумка, к сожалению, накрылась.

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

Зелёный цвет оказался не тем зелёным, на который я расчитывал, но это не принципиально.

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

Это первая двухслойная плата в моей жизни. А как известно, первый блин комом - слои немного смещены относительно друг друга, поэтому и пайка выглядит "так себе".

None Рисунок 10. Задняя сторона платы

Как видно на рисунке, "защелки", которые должны были цепляться друг за друга, не были напечатаны 3D-принтером. С чем это связано сказать мне сложно, но видно, что даже попыток их печатать принтер не делал. На модели они есть (рисунок 2).

Теперь к тому, что УДАЛОСЬ =)

Первый запуск. В прошивке отсутствовала возможность случайной расстановки чисел

На видео показано, как работает запись в EEPROM и случайная расстановка чисел.

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

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

Прошивка написана в Bascom-AVR. В прошивке не предусмотрено какого-либо визуального эффекта при прохождении игры. Это вполне можно добавить.

Для расстановки чисел в случайном порядке использовался таймер ATMega8. Если кому-то интересно, как именно, выложу исходники (посмотрел на них только что - ничего не понятно =).

Было два варианта, как расставлять числа: либо по счету (от 1 до 15), но в случайные ячейки, либо по порядку в ячейки, но случайные числа. Сделал как сделал. Думаю, так интереснее. Во-первых, можно понять как выглядит каждое число, если они идут по порядку от 1 до 15, а во-вторых, интереснее когда числа загораются в случайных ячейках, нежели они бы выводились строго по очереди.

И наверное самое главное. Как же понять, на какое число мы смотрим?

None Рисунок 11. Схема чтения чисел

Думаю, тут всё достаточно понятно. "Читаем" слева-направо сверху-вниз (как мы умеем).

На этом, кажется, всё.

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

исходники здесь


Интеграция шлагбаума с Telegram

Sun 03 April 2022

None

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

Read More

Установка для засветки фоторезиста

Sun 27 March 2016

None

Желание автоматизировать всё на свете не даёт мне покоя.

При производстве плат необходимо засвечивать наклеенный фоторезист ультрафиолетовым (УФ) светом. Наиболее простой способ сделать это - использовать УФ лампу. Минус лампы заключается в том, что свет падает на фоторезист в разных точках под разным углом и чем больше плата, тем больше меняется …

Read More

Контроллер пятого колеса

Thu 10 December 2015

None

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

В рамках этих испытаний требовалось поддерживать скорость движения постоянной (±1..2 км/ч).

Я сделал устройство, которое сигнализирует светодиодом …

Read More

Модернизация Asus Eee PC 1001PXD

Sun 14 August 2011

None

Здравствуйте!!

Все началось с моего вопроса (была ссылка) и ответа самому же себе. По ссылке решение выглядит довольно нечитабельно, потому я решил описать проделанную работу более подробно и с картинками.

Захотелось добавить в свой Asus 1001PXD bluetooth и освободить 1 из двух usb портов, который вечно занят приемо-передатчиком мыши...

Подобных …

Read More

Семисегментный индикатор на сдвиговых регистрах

Fri 25 September 2015

None

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

Read More

Уведомления при изменении цены акций в Тинькофф Инвестициях

Sat 11 September 2021

None

Соответствующая статья опубликована здесь: https://habr.com/ru/articles/577416

История

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

Для инвестиций выбрал Тинькофф, как один из наиболее популярных и …

Read More

Вращающийся дисплей

Tue 19 February 2013

None

Эксперименты с микроконтроллерами начались вот с этой идеи. "Идея" не во вращающемся дисплее (она пришла в голову кому-то другому, поумнее), а в поздравлении с Днём рождения с помощью такой штуковины. Конечно, на такое могла толкнуть только девочка.

None

None

Радиатор здесь исключительно в качестве утяжелителя. Насколько было возможным я уравновесил вращающуюся плату …

Read More

Пропеллер на солнечных батареях

Wed 24 July 2013

None

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

Что полезного делает данное устройство? Ровным счётом ничего и это прекрасно! Оно выглядит как вечный двигатель для стороннего наблюдателя и …

Read More
Page 1 of 4

Next »