Как я делал шпору, а в итоге получилась игра "змейка"

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


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


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

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

- во-вторых он полностью закрыт: такая черная блямба-микросхема к которой никак не подпаяещься, а еще она нигде не продукоментирована КАК СЕЙЧАС ПОЧТИ ВСЕ ОБОЖАЮТ ДЕЛАТЬ.


Что же делают настоящие разработчики? XD Разрабатывают! Мы не ищем легких путей, от калькулятора можно использовать только корпус. Кстати, а вот и мой итоговый вариант (смог найти фото):

Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост

Работает он на одной ААА батарейке. В качестве микроконроллера использовал для начала атмегу на 28 ног. Потом атмегу на 32 ноги (могу путать число ног). Потом SMD использовал, вроде тоже атмегу.

В качестве экрана использовал MT510 какой-то там вроде наш жк чб экран (на экране умещалось 3-4 строки). Пиксели большие, но он хорошо маскировалс под экран обычного калькулятора(выглядел допотопно), что меня устраивало. Стоил правда этот чудо-экран за 500р, а выглядел примерно так (плата была поменьше и экран не зеленый):

Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост

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

Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост

И да, компоненты были дорогими. Когда жил с родителями, помню у отца было все. Ну или не все, но недостающие детали можно было выпаять. Всех эих резисторов / конденсаторов тогда было море... Хоть в окно выкидывай. Тогда я этого не ценил и не знал что они, оказывается, сумасшедших денег стоят.
Помню, ходил по митино, 1 резистор стоил 20-25р. Ребята, 1 стандартный резистор из самого стандартного ряда, с самой стандартной погрешностью, эта проволочка за 20 руб...


Первая версия калькулятора была с LED, сохранились только эти фотки (не знаю куда сейчас калькуль потерялся со всеми переездами). Собрал все на картонке так как мне так всегда было удобно. Когда учился в школе, собирал на картонке, которая была у отца. Это была какая-то особо прочная картонка, наверно даже для таких целей. А в общаге только был... гринфилд. Ну ладно, не для презентации делаем, так что прототип из каках и палок. Главное чтобы работал (и так уже разорился с покупкой конденсаторов, резисторов, МК-ов...):

Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост
Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост

Через какое-то время много усмешек отгреб от своих товарищей, которые тоже что-то паяли : "че это у нас тут за сопли на картонке?" "Ха-ха-ха-ха, Лёх, такой редкостной фигни мы еще никогда не видели".

Но девайс работал: склыдвал / вычитал / умножал / делил. Шпоры залил через программатор в память МК и понеслась...


Не, не понеслась. Оказалось, что у микроконтроллера памяти всего - ничего, на 1 билет из 100. И это расстроило. Что-то по неопытности я не ждал такого удара.


За это время, к слову, я выучил часть билетов. Но вопрос с памятью все еще стоял остро. Итого было решено купить SD-карту, на нее залить txt со шпорами (выбрал этот формат так как писать-читать в файл очень просто впрямо в windows).


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


В итоге дней через 5 все получилось. Фотка того как подключал SD-шку:

Как я делал шпору, а в итоге получилась игра "змейка" Инди, Инди игра, Игра змейка, Калькулятор, Программируемый калькулятор, Gamedev, Устройство, Девайс, Девайсы для геймера, Шпора, Игры, Истории из жизни, Своими руками, Программист, Радиоэлектроника, Радиолюбители, Программатор, Читер, Длиннопост

Круто, что, едем дальше. Соответствие пикселей и символов задал сам. Была моя библиотека для CAVR, которая декодировала символы из txt и выводила каждый символ на экран. Кстати, каждый символ я нарисовал-закодировал "попиксельно", пришлось как всегда заморочиться.

И де, еще была проблема с выводом и прокруткой. Проишлось ползунок рисовать и делать алгоритм вывода части текста на экэкран (оказывается для этого в word "специальные" алгоритмы используются, но там нет ничего такого сложного).


В итоге калькулятор работал так, что есть 2 режима:

- калькулятор

- шпаргалка (вызывается когда держишь точку более 2.5с)


Ну круто, что. Собираем все в корпус, только зачем? Билеты я знал. Что сделал: запрогал в калькулятор игру змейку и играл иногда. Про мой калькулятор мало кто знал кроме соседей. Ну а теперь, как говорится, по секрету всему свету :) Конечно моя змейка не разошлась тиражом более чем 1 экземпляр, но я и этому очень рад :D


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

Инди игры

115 постов381 подписчик

Добавить пост

Правила сообщества

1. Реклама запрещена.


2. Сообщество авторское, публикуемый материал должен принадлежать Вам, потому каждое обвинение в плагиате должно быть подтверждено ссылкой. При первом нарушении - предупреждение, повторно - бан.


Идеально, если Вы являетесь членом инди-команды.
Пост без тэга "Мое" будет вынесен в общую ленту.


3. Постить только картинки или видео игры запрещено. Фото и видеоматериалы должны быть подкреплены текстом.


4. Особые публикации:

- интервью с разработчиками

- обучающие видеоматериалы

В этом случае правила п.3 могут быть смягчены или проигнорированы.


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


6. Пост должен иметь внятную структуру.


7. Администрация имеет право решать, насколько пост соответствует сообществу.