144-1-Bit AVR Game-Лабиринт.

Автор: | 20.04.2017

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

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

Лабиринт создается по этому алгоритму. Получается быстро и не накладно по ресурсам.

Новая тестовая прошивка.
main-1.zip (2211 Загрузок)
Прошить ее в Ардуину можно при помощи GC-Uploader
Схему устройства — смотрим здесь.

Дальше буду дорабатывать алгоритм вывода на экран и начинать работать над подселением монстров в лабиринт.

P.S. Eсть несколько подобных устройств — можно подсмотреть как это  делают другие.
— с таким-же дисплеем ArduBoy
— и с дисплеем от Нокии Gamebuino

143-1-Bit AVR Game-Первая проба

Автор: | 08.04.2017

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

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

А вот и видео движения по лабиринту.

Оставляю здесь HEX-файл с тестовой прошивкой.

1_bit_demo.zip (2315 Загрузок)
Прошить его в Ардуину можно при помощи GC-Uploader

142-1-Bit AVR Game-Железо

Автор: | 05.04.2017

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

1 Схема

В этой игре решил следовать принципу минимализма и схема первая в этом поучаствует:

Проще, наверное, уже некуда!
Сначала решил подключать дисплей к аппаратному SPI (можно работать на максимальной для дисплея скорости), но потом передумал и организовал программный SPI (это даст, в случае чего, запас по быстродействию).  Более того, дабы вообще избавится от проводов на макетке, дисплей полностью подключен к выводам Ардуины. Тоже касается и джойстика. Эта конструкция требует всего 4 модуля: макетка, дисплей, джойстик и Ардуина. Никаких проводов!

Касательно дисплея — до конца разработки он останется без изменений (после, можно будет делать модификации и для других дисплеев). А вот джойстик можно заменить на кнопки.

2 Корпус (пока только идеи)

В процессе разработки корпус, естественно, не нужен. Все собрано на макетке. Позже можно подумать и о корпусе, удобным для ношения.

 

141-1-Bit AVR Game-Модули

Автор: | 03.04.2017

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

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

1 Плата Arduino

135-arduino-nano 135-arduino-pro-mini

Читать далее

140-1-Bit AVR Roguelike Game

Автор: | 02.04.2017

Последнее время очень не хватает времени на блог и устройства для для него 🙁 — много работы. Но идеи новых устройств постоянно возникают в голове и последняя из них меня очень «зацепила». Поэтому, даже несмотря на отсутствие времени и еще незаконченные проекты (например, AAL — который хоть и на завершающей стадии, но никак не дождется чтобы его доделали), решил начать еще один интересный и большой (в планах) проект — игра на AVR-микроконтроллере. Идея не новая и подобных проектов в сети очень много — так что первопроходцем стать не получится :), но это мне близко по причине любви к Roguelike играм (еще их называют «Рогаликами»).

Мой любимый рогалик, в который я играю на смартфоне — это Darkness Survival.

Недавно увидел в Маркете 1-Bit Rogue и понял, что это готовая основа которую можно перенести на AVR.

Скриншот первого уровня

— Игра будет создаваться на базе Arduino и  OLED-дисплее 128х64 (позже можно будет переделывать на любые другие дисплеи). Соответственно, повторить устройство будет делом пяти минут (на макетке без пайки и специального программатора). Устройство должно быть небольшим (в идеале, размером позволяющим его использовать как брелок). В качестве органов управления будут кнопки или джойстик. Еще будет небольшой аккумулятор и модуль его зарядки.
— По пошаговый игровой процесс Рогалика идеален для реализации его на платформах с ограниченными ресурсами. Кроме того, игра случайным образом генерирует карты уровней, ловушки, врагов, оружие и т.д. что экономит память, так как нет необходимости хранить эту информацию.
— Предварительные прикидки показывают, что ATmega328 вполне должна справиться как по быстродействию, так и по размерам памяти. Дисплей 128х64 хоть и маловат, но с другой стороны — это внесет в игру дополнительную сложность (а рогалики именно за сложность и непредсказуемость любят), так как не будет виден весь лабиринт сразу и по нему реально придется ходить и искать выход.

 Официальное видео игрового процесса (увеличенная его часть) примерно отображает игровое поле дисплея 128х64 — вроде играбельно.

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

139-RGB vs HSB Сравнение цветовых схем регулирования

Автор: | 01.10.2016

Как я и обещал ранее, представляю Вашему вниманию устройство для практической демонстрации алгоритмов регулировки цвета RGB-светодиода. Особенностью устройства является то, что можно регулировать цвет светодиода сразу при помощи 2х систем  RGB  и HSB. Это позволяет  «почувствовать» все достоинства и недостатки обоих систем. Дополнительно, бонусом, реализован выход на умный пиксель WS2812B, а это значит, что можно сравнить, как выглядит цвет, сформированный одними и теми-же настройками на разных устройствах отображения!

Напомню, что:
Система RGB – это система с тремя регуляторами для каждого из основных цветов
Red (красный)
Green (зеленый)
Blue (синий)
Комбинируя их в разных пропорциях можно получить любой оттенок цвета.

Система HSB более естественно изменяет (задает) параметры цвета, путем установки различных значений базовых параметров:
Hue (оттенок цвета)
Saturation (насыщенность)
Brightness (яркость)

Каждый из трех параметров обоих систем присутствует в устройстве:

139-rgb_hsb_controller_scheme

Устройство собирается без паяльника и программатора на Ардуине (Pro Mini, Nano, Uno) за пару минут.

Читать далее

138-Tables Creator Программа создания табличных значений формул для исходников

Автор: | 19.09.2016

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

Окно программы

Tables-Creator.zip (3614 Загрузок)

Читать далее

137-Управление светодиодным RGB-светильником (изменения параметров цвета) средствами микроконтроллера

Автор: | 08.09.2016

 

137-hsbВ этой статье будут рассмотрены практические механизмы формирования и изменения параметров цвета светодиодного светильника, проблемы при этом возникающие и способы их решения. Все, что описано в статье – это мой опыт работы со светом при реализации проекта AAL.

 

Как формируется цвет при помощи светодиодов.

Начнем с самого начала — определимся, как формируется цвет, вообще, в жизни (все знают, но на всякий случай …). Любой оттенок цвета формируется при помощи трех основных цветов. В нашем случае, когда цвет формируют источники света (аддитивный синтез) – это:
R red красный
G green зеленый
B blue синий

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

Смешение цветов

Читать далее

136-gcUploader автоматический загрузчик HEX-файлов для Arduino

Автор: | 26.08.2016

GC UploaderС недавнего времени, как Вы заметили, я стал создавать много конструкций на базе Arduino. Причина проста – экономия времени на сборку устройства. Сейчас у меня стало не так много свободного времени, но отказываться от своего хобби я не хочу. Поэтому приходится оптимизировать производство новых устройств :). Больше времени уделять коду, чем пайке. Кроме того, конструкция на Ардуине обладает хорошей повторяемостью – трудно сделать что-то не так, когда для создания конструкции необходимо, всего лишь, соединить готовые платки десятком проводков. Но, несмотря на то, что устройства создаются при помощи Ардуины, программы под них я все равно пишу на Algorithm Builder (родная среда программирования Ардуины очень упрощена и мне много чего в ней не хватает).

С переходом на Ардуину встал вопрос прошивки МК. Можно использовать ISP разъем на Ардуине и прошивать МК прямо с Билдера (плюсом будет внутрисхемная отладка), но грех не использовать уже прошитый в Ардуину загрузчик и прошивать свои программы посредством штатного USB-шнура Ардуины. К сожалению Билдер не может записать прошивку в Ардуину через загрузчик, поэтому приходится использовать сторонние программы – HEX-загрузчики.

Раньше процесс прошивки Ардуины у меня выглядел следующим образом.  Предварительно я запускаю один из загрузчиков (о них я писал раньше) и настраиваю его на включенную Ардуину, прописываю путь к хексу создаваемой программы. Дальше в Билдере, после очередной редакции кода, компилирую проект, перехожу к окну загрузчика, жму на нем кнопку «Загрузить» и возвращаюсь в Билдер. Процедура вроде и не сложная, но когда таких циклов в процессе отладки делаешь десятки – это начинает немного надоедать.

Для того чтобы упростить процесс прошивки Ардуины я сделал свой автоматический загрузчик — gcUploader.

Читать далее

135-AAL-Модули, входящие в состав устройства

Автор: | 17.08.2016

AAL модулиВ Adjusty Ambient Light я планирую применять только готовые и широко представленные в продаже модули. Это значительно упростит сборку и прошивку устройства. Наладки как таковой вообще не потребуется. Применяя плату Arduino не понадобится и программатора. Ниже привожу перечень того что планируется применить в устройстве (возможны изменения, но, думаю, незначительные)

 

Первые две позиции – это обязательные для устройства модули.

1 Плата Arduino

135-arduino-nano 135-arduino-pro-mini

Читать далее