nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Nov 2018 12:22



Reply to topic  [ 94 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
МикроМашина на AVR 
Author Message
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Приветствую всех!

В этом топике решил выложить фотки моего первого грандиозного проекта - МикроМашины :)
Это игровая 2D-консоль

Краткие характеристики:
CPU - ATmega128 со всеми своими потрохами
External RAM - SRAM 32kB
Video - Nokia 7210 LCD
Sound - YM2612
KeyPad - 8-кнопочный джойстик
"Video Accelerator" - Ultra SPI 16/24 Mbit/s (реализован на логике, служит для быстрого переноса данных с видеобуфера на LCD)

Внешний вид ВСЕЙ МикроМашины:
Image

Материнская плата:
Image

Коротко о программном обеспечении:
Библиотека(ядро) uMAPI v1 - что-то типа DirectX
Включает в себя функции для работы с видео/звуком/управлением
Все процедуры 2D-рендеринга написаны на AVR-ассемблере

Спецификация uMAPI v1 лежит тут: http://nedopc.org/nedopc/upload/uMAPIv1.pdf

uMAPI SDK находится здесь:
http://nedopc.org/nedopc/upload/uMAPIv1SDK.pdf

Приложения:
В настоящее время написано 2 приложения - тестовое (в uMAPI SDK)
и одна игрушка ("прыгалка-стрелялка") Zhabik
А также пишется игра ("леталка-стрелялка") Trufel

Текущее состояние дел:
В основном из-за ограниченного ресурса FLASH ROM в ATmega128, производство игр приостанавливается (см. uMAPIv1SDK)

Скриншоты из игры "Zhabik":
Image
Image

Пвсевдо-скриншот разрабатываемой игры "Trufel":
Image

Укрупнённая фотка изображения с LCD:
Image

Вот что можно на AVR собрать :P
Получился ещё один Недо-компьютер :D

Интересно выслушать предложения/пожелания/ и всякое такое...


17 Oct 2006 00:50
Profile
Doomed

Joined: 16 Apr 2005 23:35
Posts: 492
Location: Томск
Reply with quote
Post 
Два предложения:

1. Может все это в топик по AVR перенести ?
2. Может ты принципиальную схему выложишь ? Описание - это интересно, но схему взглянуть - куда как интереснее.


17 Oct 2006 01:17
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Post 
SfS wrote:
Два предложения:

1. Может все это в топик по AVR перенести ?
2. Может ты принципиальную схему выложишь ? Описание - это интересно, но схему взглянуть - куда как интереснее.


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


17 Oct 2006 02:20
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Post 
Могу дать ссылки на EXE-шные верисии игр/прошивок


17 Oct 2006 02:21
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
SfS wrote:
Может все это в топик по AVR перенести ?


Перенес

Romanich wrote:
Текущее состояние дел:
В основном из-за ограниченного ресурса FLASH ROM в ATmega128, производство игр приостанавливается (см. uMAPIv1SDK)


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

Romanich wrote:
МикроМашина - на сегодняшний день - закрытый проект. Поэтому принципиалку выложить увы... не могу.


А вот это печально :(

_________________
:eugeek: https://twitter.com/Shaos1973


17 Oct 2006 06:18
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
Post 
А можно видео записать? Чтобы увидеть действие LCD в динамике - желательно рядом часы положить с секундной стрелкой ;)

_________________
:eugeek: https://twitter.com/Shaos1973


17 Oct 2006 06:52
Profile WWW
Maniac

Joined: 01 Mar 2005 22:42
Posts: 230
Reply with quote
Shaos wrote:
У меня предложение такое - чтобы не перезаписывать микроконтроллер для каждой игры, надо бы держать там только основные подпрограммы и виртуальную машину, которая будет выполнять внешний байт-код, который может тянуться из внешней памяти (например ПЗУ-картриджа). В таком случае получится более гибкий девайс.

Вообще не стоит выбирать флеш-онли МК для компьютероподобных применений (частая смена программы). 51ый с внешней рамой программы и то лучше =))


17 Oct 2006 13:31
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Shaos wrote:
У меня предложение такое - чтобы не перезаписывать микроконтроллер для каждой игры, надо бы держать там только основные подпрограммы и виртуальную машину, которая будет выполнять внешний байт-код, который может тянуться из внешней памяти (например ПЗУ-картриджа). В таком случае получится более гибкий девайс.


Виртуальные машины понижают производительность как минимум в 10 раз. Вначале тоже хотел так сделать, но передумал. Просто не факт что в этом случае хотябы 30 ФПСов получится на LCD


17 Oct 2006 18:07
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Post 
Shaos wrote:
А можно видео записать? Чтобы увидеть действие LCD в динамике - желательно рядом часы положить с секундной стрелкой ;)


Есть 2 avi - пожатые. Весят по 27метров. Можно Virtual Dub'ом порезать... Только будет без часов - ибо своего цифровика у меня нет :(


17 Oct 2006 18:10
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
lvd wrote:
Вообще не стоит выбирать флеш-онли МК для компьютероподобных применений (частая смена программы). 51ый с внешней рамой программы и то лучше =))


Архитектура MCS51 мне не нравица... Слишком гнойная. Тратить 12/24/36 тактов при версиях микросхем на 44МГц - слишком много.
Плюс проблема с условными переходами - им там так мало... Нужно извращаца, когда например, сравниваешь 2 числа.

А то что там внешняя память для кода цепляется - я знаю. У меня есть P80C32UFPN (DIP,44MHz). А таже AT89*** подойдёт


17 Oct 2006 18:13
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
Romanich wrote:
Shaos wrote:
У меня предложение такое - чтобы не перезаписывать микроконтроллер для каждой игры, надо бы держать там только основные подпрограммы и виртуальную машину, которая будет выполнять внешний байт-код, который может тянуться из внешней памяти (например ПЗУ-картриджа). В таком случае получится более гибкий девайс.


Виртуальные машины понижают производительность как минимум в 10 раз. Вначале тоже хотел так сделать, но передумал. Просто не факт что в этом случае хотябы 30 ФПСов получится на LCD


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

_________________
:eugeek: https://twitter.com/Shaos1973


17 Oct 2006 18:42
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
Post 
Romanich wrote:
Shaos wrote:
А можно видео записать? Чтобы увидеть действие LCD в динамике - желательно рядом часы положить с секундной стрелкой ;)


Есть 2 avi - пожатые. Весят по 27метров. Можно Virtual Dub'ом порезать... Только будет без часов - ибо своего цифровика у меня нет :(


А чем пожатые? Жми DivX-ом (или Xvid-ом)

_________________
:eugeek: https://twitter.com/Shaos1973


17 Oct 2006 18:43
Profile WWW
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Shaos wrote:
Romanich wrote:
Виртуальные машины понижают производительность как минимум в 10 раз. Вначале тоже хотел так сделать, но передумал. Просто не факт что в этом случае хотябы 30 ФПСов получится на LCD

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


Я по большей части железячник а не программист
И решаю проблемы соответственно своему профилю :)

Куда проще найти нормальный проц(не контроллер) для внешней памяти кода и 2Д-акслератор. Тогда производительность ЦПУ ну воопще никакой роли не играет!

А в МикроМашине вся нагрузка на контроллер! От того я и использовал именно АВР а не MCS51, PIC и прочее


17 Oct 2006 20:58
Profile
Banned

Joined: 12 Oct 2006 17:44
Posts: 608
Reply with quote
Post 
Shaos wrote:
Romanich wrote:
Shaos wrote:
А можно видео записать? Чтобы увидеть действие LCD в динамике - желательно рядом часы положить с секундной стрелкой ;)


Есть 2 avi - пожатые. Весят по 27метров. Можно Virtual Dub'ом порезать... Только будет без часов - ибо своего цифровика у меня нет :(


А чем пожатые? Жми DivX-ом (или Xvid-ом)


Попытаюсь вырвать клочёк из АВИ где изображение на ЛСД в динамике


17 Oct 2006 20:59
Profile
God

Joined: 02 Jan 2006 03:28
Posts: 1371
Location: Abakan
Reply with quote
Post 
А если дополнительно к 32K SRAM добавлять картридж 32K EEPROM для программ? Можно и для байт-кода... Shaos правильно подметил на счет интерпретации, основная производительность нужна только при работе с массивами, а это в большинстве своем однотипные операции.

В MCS51 условные переходы вполне нормальные, а сравнить два чила - cjne a,b,$. Может оно и не совсем эффективно, но есть и другие способы. Мне понравился подход вычисляемых переходов по DPTR.


17 Oct 2006 21:50
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 94 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.