Gameduino: игровой адаптер для микроконтроллеров |
![]() |
Добавил(а) microsin | ||||||||||||
Маленькие микроконтроллеры наподобие Atmel AVR, которые используются в Arduino, сегодня намного мощнее, чем 8-битные компьютеры из 1980-х годов. Так почему мы не используем их для видеоигр? Gameduino является игровым адаптером для Arduino - или любой другой платформы, в которой есть интерфейс SPI. Gameduino построен как одиночный шилд (shield), который навешивается сверху на Arduino (на втором фото как раз показана установка gameduino на плату metaboard). Gameduino имеет коннекторы для подключения монитора VGA и стереофонической акустики (stereo audio). Картинка и звук передаются в Gameduino от управляющего адаптера через SPI, поэтому вместо metaboard или Arduino можно подключить любой микроконтроллер, у которого имеется интерфейс SPI. Звук и графика выглядят в лучших традициях старой школы (old-school) компьютерных игр, однако благодаря современной технологии FPGA возможности отображения спрайтов на шаг опережают возможности машин прошлых лет.
[Характеристики видеовыхода] - 400x300 точек, 512 цветов. Фоновая графика (background graphics): Основная графика (foreground graphics): - стереофонический 12-битный синтезатор частоты. Адаптер Gameduino управляется через операции чтения/записи SPI, и выглядит для управляющего CPU (например, для микроконтроллера AVR Arduino) как 32-килобайтное RAM, доступное по SPI. В отличие от большинства 8-битных машин здесь нет ограничений на то, когда Вы можете получить доступ к этой RAM. На постере показано, как работает вся система - устройство карты памяти, как отображается в память экран, как кодируются цвета в точках, какие имеются регистры, как происходит управление спрайтами и другая полезная информация. [Описание возможностей] Проект Gameduino создан на основе программируемой логической матрицы FPGA фирмы Xilinx семейства Spartan-3A, микросхеме XC3S200A-4VQG100C. Конфигурационные данные для логики FPGA хранятся во внешней микросхеме памяти на 4 мегабита AT45DB041B-SC. Эта микросхема устарела, и я её заменил на AT45DB041D-SU. Сигналы R, G, B формируются с помощью резисторного ЦАП (на каждый цвет 3 разряда, что дает 8 градаций, всего получается 2^(3+3+3) = 512 физических цветов), сигналы стереофонического аудиовыхода L и R формируются с помощью ШИМ. Gameduino имеет открытую аппаратуру (open-source hardware, лицензия BSD), и весь код открыт под лицензией GPL. Однако по ссылке автора со странички "Making a Gameduino" [2] доступны не все исходные файлы проекта. Полностью проект для Xilinx ISE WebPack 14.1 можно скачать по ссылке [3], инструкции по сборке, компиляции исходного кода Verilog, запуске проектов с помощью metaboard см. по ссылке [4]. Gameduino неплох не только как gamedev-кит для создания игрушек на embedded-платформах, но и как недорогая тренировочная платформа для освоения программирования ПЛИС (FPGA) Xilinx серии Spartan-3A - благодаря наличию открытых verilog-исходников проекта и принципиальной схемы. Можно повторить gameduino самостоятельно, с нуля, и даже переделать логику работы платы под свои нужды. Подробное описание проекта gameduino можно найти на сайте автора [5] - FAQ, техническое описание аппаратуры, коннекторы, интерфейс SPI, подсистема графики, звук, регистры, организация памяти, описание программного интерфейса API, рабочие примеры скетчей и другая информация. [Словарик] Arduino популярная hobby-платформа для разработки любительских микропроцессорных устройств. shield шилд, дословный перевод "щит". Означает дочернюю плату, которая работает вместе с макетной платой Arduino. sprite спрайт - растровая маленькая картинка, которая используется для анимации объектов в игре или программе. texel тексел - элементарный пиксел текстуры. [Ссылки] 1. Gameduino questions site: answers.gameduino.com - вопросы и ответы по Gameduino (FAQ, Q&A). |