Муфты электромонтажные от производителя Fucon
РадиоЛоцман - Все об электронике

Gameduino 2: полноценная карманная игровая консоль с открытым кодом

Gameduino 2

Журнал РАДИОЛОЦМАН, август 2014

В 2011 году на портале Kickstarter был запущен и успешно завершен проект платы расширения Arduino, которая превращала последнюю в игровую приставку. Проект получил название Gameduino и на тот момент времени его автор Джеймс Боуман позиционировал плату расширения как модуль VGA для Arduino. И вот, два года спустя автор представляет новую версию платы Gameduino 2, отличающейся от предыдущей более высокой производительностью и функциональностью (Рисунок 1). В конце 2013 года проект Gameduino 2 на портале Kickstarter был успешно завершен.
 

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Gameduino 2: полноценная карманная игровая консоль с открытым кодом
Рисунок 1. Gameduino 2 - полноценная персональная карманная игровая консоль
с открытым кодом.

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

Плата Gameduino (модуль VGA для Arduino), выполнен на основе программируемой логической матрицы FPGA компании Xilinx семейства Spartan-3A, имеет разъемы для подключения VGA монитора и стерео акустики (Рисунок 2). Данные конфигурации для логики FPGA хранятся во внешней микросхеме памяти, формирование видео изображения выполняется с помощью резистивного ЦАП, формирование звука выполнено на основе ШИМ. Применение FPGA позволяет выполнять одновременную обработку до 256 спрайтов, однако сильно усложняет процесс управления и программирования (используется язык Verilog).
 

Gameduino 2: полноценная карманная игровая консоль с открытым кодом
Рисунок 2. Первая версия Gameduino выполнена
на FPGA и рассчитана на подключение
к стандартному VGA монитору.

Отличительные особенности Gameduino:

  • VGA видео выход с разрешением 400×300 точек, 512 цветов;
  • вся цветовая гамма обрабатывается в FPGA с 15-разрядной точностью;
  • фоновая графика:
    • область символьной фоновой графики 512×512 точек;
    • 256 символов, каждый с независимой 4-цветной палитрой;
    • реализован эффект заворачивания текстовых строк с пиксельным сглаживанием;
  • графика переднего плана:
    • каждый спрайт имеет разрешение 16×16 точек;
    • каждый спрайт может иметь 256-, 16- или 4-цветную палитру;
    • поддержка алгоритмов 4-стороннего вращения и горизонтального вращения;
    • 96 спрайтов на растровую строку, 1536 элементов текстуры на растровую строку;
    • механизм обнаружения возможных пересечений спрайтов;
  • аудио выход:
  • 12-разрядный двухканальный синтезатор частоты;
  • 64-голосая полифония в частотном диапазоне 10 – 8000 Гц.

Изображение выводится на экран стандартного VGA монитора с разрешением 400×300 точек, сохраняется совместимость с любыми стандартными VGA мониторами с разрешением 800×600 точек. Реализованный программно в FPGA стековый 16-разрядный сопроцессор, имеющий небольшой набор арифметический инструкций и достаточно высокую производительность (50 MIPS), позволяет ускорить копирование и очистку видео памяти, прорисовку линий, окружностей и треугольников.

Отличительные особенности сопроцессора FPGA:

  • 16-раздная внутренняя шина;
  • 8-разрядный интерфейс памяти;
  • операции умножения 16-разрядных значений выполняются за один машинный цикл;
  • встроенная многорегистровая схема циклического сдвига;
  • быстрый и эффективный процессор со стековой организацией.

Плата расширения Gameduino 2 превращает Arduino в современную карманную игровую консоль: сенсорный интерфейс управления, 3-осевой акселерометр, слот карты памяти microSD, аудио выход на наушники и сногсшибательная графика на ярком 4.3'' ЖК дисплее (Рисунок 3). Использование платформы Arduino не является обязательным условием, платe Gameduino 2 можно подключать к любому микроконтроллеру или микроконтроллерной плате с интерфейсом SPI. Теперь, все что необходимо для создания привлекательных игр находится у вас в руках:

  • видео выход с 24-битной глубиной цвета и разрешением 480×272 точек;
  • набор команд в стиле OpenGL;
  • обработка до 2000 спрайтов любого размера одновременно;
  • видео память 256 Кбайт;
  • функции вращения и масштабирования спрайтов с поддержкой сглаживания и билинейной фильтрации;
  • функции аппаратной прорисовки окружностей и линий с поддержкой 16X-сглаживания;
  • аппаратная загрузка JPEG изображений;
  • встроенные функции обработки градиентов, текста, изображений кнопок и графической клавиатуры.
Gameduino 2: полноценная карманная игровая консоль с открытым кодом Gameduino 2: полноценная карманная игровая консоль с открытым кодом
Gameduino 2: полноценная карманная игровая консоль с открытым кодом Gameduino 2: полноценная карманная игровая консоль с открытым кодом
Рисунок 3. Графические возможности Gameduino 2 в игровых приложениях.

Основным элементом платы Gameduino 2 является высокопроизводительный графический контроллер FT800 компании FTDI (Рисунок 4). Компания FTDI Chip представила графический контроллер серии FT800 «EVE» (Embedded Video Engine) в начале 2013 года. Кроме графических функций, микросхема включает в себя контроллер резистивного сенсорного экрана и аудиоконтроллер с встроенной библиотекой готовых звуковых эффектов. FT800 за год своего существования завоевал несколько наград на выставках, благодаря не только своим уникальным возможностям, но и  всесторонней поддержке со стороны производителя: готовые примеры, программные библиотеки функций и завершенные аппаратные решения в виде готовых дисплейных модулей.

Gameduino 2: полноценная карманная игровая консоль с открытым кодом
Рисунок 4. Gameduino 2 выполнена на графическом контроллере FT800,
имеет ЖК дисплей, сенсорный экран и поддерживает набор
команд в стиле OpenGL.

Отличительные особенности графического контроллера FT800:

  • технология (Embedded Video Engine) с поддержкой виджетов;
  • интегрирован контроллер 4-проводного резистивного сенсорного интерфейса с поддержкой дополнительных функций;
  • стандартный последовательный интерфейс SPI или I2C для связи с основным процессором или микроконтроллером;
  • встроенный программируемый контроллер прерываний;
  • встроенный осциллятор 12 МГц и ФАПЧ;
  • поддержка дисплеев WQVGA (480×272)  и  QVGA  (320×240) в режимах Data Enable  (DE)  и VSYNC/HSYNC;
  • функции декодирования изображений в формате JPEG;
  • множество программируемых параметров позволит подключать к контроллеру различные дисплеи;
  • выход ШИМ для управления подсветкой дисплея;
  • встроенный аудиоконтроллер и звуковой синтезатор;
  • низкое энергопотребление и встроенная схема управления питанием.

Дополнительно, из ПЗУ графического контроллера пользователю доступны несколько типов высококачественных шрифтов в 6 размерах, образцы звуков восьми музыкальных инструментов, воспроизводимых по MIDI нотам, и образцы звуков 10 ударных инструментов. Но при разработке игровых приложений пользователь не ограничивается только базовым набором, оперативная память объемом 256 Кбайт позволяет загружать свои собственные шрифты и звуки.

Возросшая, благодаря графическому контроллеру FT800, производительность обработки графики не единственное преимущество Gameduino 2. Дополнительные возможности платы повышают ее функциональность и улучшают потребительские качества:

  • более простая графическая система в стиле OpenGL;
  • встроенный 3-осевой акселерометр и резистивный сенсорный экран для управления в играх и приложениях;
  • встроенный усилитель звука и разъем для подключения наушников;
  • слот карт памяти microSD для хранения медиа ресурсов для игр (графические объекты, звуки и карты);
  • встроенный преобразователь логических уровней позволяет использовать плату с Arduino платформами, имеющих напряжение питания 3.3 В и 5.0 В.

Разработку собственных игровых приложений пользователи смогут очень быстро освоить благодаря бесплатной библиотеке функций Gameduino 2 для интегрированной среды разработки Arduino IDE, набору готовых приложений и примеров с исходными кодами и подробного руководства пользователя. После установки библиотеки Gameduino 2 пользователю  также будут доступно несколько утилит для платформы Arduino, например утилита калибровки резистивного сенсорного экрана.

Плата Gameduino 2 уже доступна для заказа в нескольких онлайн-магазинах. Принципиальная схема и проект печатной платы доступны для скачивания на официальном сайте проекта.

На плате Gameduino 2 установлен аналоговый акселерометр, поэтому его выходы (X, Y, Z) подключаются к аналоговым входам Arduino (АЦП). Функции воспроизведения звука и работы пользовательского сенсорного интерфейса возложены на графический контроллер FT800.

Напряжение питания Gameduino 2 должно быть в диапазоне 5.0 – 7.0 В/200 мА. Встроенный регулятор напряжения обеспечивает напряжение питания 3.3 В для графического контроллера.

Демонстрационное видео

excamera.com

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Hand-held modern gaming for Arduino

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Не знаю какой FTDI была раньше, но сейчас она стала довольно мерзкая. Мне оказалось достаточно возни с FT232, чтобы забыть FTDI навсегда. Не спорю, FT800 возможно и удобный графический адаптер, но учитывая склочность FTDI, лучше искать другие решения.
  • А что было не так с FT2хх? У меня всё работало как часы, как писано в даташите, так и в железе, что с FT232, что с FT245 и в разных режимах, но это давненько было. А если опыт недавний, то было много информации про поддельные FT и про то, как производитель с ними боролся на уровне драйверов. Может оттуда растут ноги Вашего отрицательного опыта?
  • Да, опыт недавний. Возможно вам повезло и попалась оригинальная FT232. Нам попались сплошь "поддельные". Покупка в дорогом магазине, "Чип и дип" от подделки не спасает. Самое мерзкое в истории с подделками то, что FTDI, борясь с подделками, не предоставляет потребителю абсолютно никакой информации, какой чип ему попался. Драйвер может отказать в любое время без объяснения причин. По маркировке различить невозможно. В конечном итоге вывернулись - убрали микросхему памяти, но очень неприятный осадок остался.
  • Ваш случай?: [url]http://geektimes.ru/post/258842/[/url]
  • Почти, разница только в том что в статье описана FT232RL - у неё внутренняя EEPROM, мы использовали FT232H - с внешней EEPROM. Проблему решили проще - сняли с платы EEPROM, драйвер не может запрограммировать чип и всё кое-как заработало. Но в таком включении чип лишается серийного номера и идентифицировать устройство, подключенное к чипу, приходится по USB-порту, в который включен чип. Но повторюсь, FTDI - мерзкая и склочная не потому, что она борется с контрафактной продукцией, а потому что она не предоставляет абсолютно НИКАКОЙ информации потребителю, оригинальный или контрафактный чип ему попался. Это невозможно проверить НИКАК - что до покупки, что после. Любой чип, купленный в любом магазине, может оказаться контрафактным.
  • При таком подходе можно назвать "мерзкой и склочной" решительно любого производителя подвергшегося незаконному клонированию. Как Вы узнаете, что чип поддельный, если он работает, но "не совсем так", как настоящий? Выглядеть он может вполне себе аутентично, МК может ID правильный выдавать и даже работать. Как об этом узнает ваш снабженец? Ведь снабженцу важнее копейку поднять. :) На easyelectronics есть целый цикл статей от Di-Halt про его опыт "общения" с поддельными элементами. Просто мы в России живём, у нас многое продавцу простительно. :) Покупайте впредь у проверенного продавца или у производителя через подставные фирмы. В случае контрафакта выставляйте претензию. Лично мне пока не довелось работать с "леваком", ничего не могу сказать.
Полный вариант обсуждения »