Сделал симулятор АРДУИНО на STM32: как запускать программы с SD-карты. Игровая консоль своими руками
Вставка
- Опубліковано 7 лип 2024
- Я придумал, как создавать программы для своей электронной игровой приставки на STM32: сделал симулятор микроконтроллера ATMEGA328P и теперь можно писать программы в Ардуино со специальной библиотекой Nyambooter, а потом запускать их на самодельной игровой консоли.
Так можно будет хранить на SD карте тысячи программ и игр! По-моему, это очень круто:) Это похоже на игровую приставку Arduboy, только там каждую игру нужно записывать через USB. Возможно, в будущем сделаю другие дисплеи для своей консоли, в том числе цветные.
00:00 ● Про игровую консоль
01:08 ● Как я реализовал создание программ
01:27 ● Пример программы 1
02:51 ● Компиляция программы
03:51 ● Запуск программы 1
04:26 ● Пример программы 2
04:58 ● Пример программы 3
05:52 ● Что дальше
Мои контакты:
Отправить донат: boosty.to/nanoslavic/donate
Boosty (дополнительный контент): boosty.to/nanoslavic
Мой телеграм: t.me/nanoslavic
VK: nanoslavic
Мой сайт: nanoslavic.ru/
#ИгроваяКонсоль #STM32 #Arduino #Микроконтроллеры #Нанославик - Наука та технологія
Чувак, не бросай тему. Я тоже что то подобное хотел сделать, но всегда были с вшытыми играми. Однозначно лайк и подписка!
Как раз вот недавно начал новый дисплей тестировать:)
@@nanoslavic я кстати помню давно у тебя спрашивал про работу твоей консоли. А как именно работает АВР симулятор? Я почитал не много в инете, и могу сказать, что это довольно тяжело для такой шняги как ардуино. Можешь не много по подробнее объяснить принцип работы? Если не хочешь, можешь не объяснять. Просто интересно.
Так у меня же симулятор работает не на ардуино, а на STM32 микроконтроллере 32 бита и 168 МГц. Хотя я и микроконтроллер хочу менять на китайский, чтобы все детальки были доступными. А так это обычный симулятор наподобие других, в котором берётся первая команда ассемблера и исполняется, а дальше следующая и так далее. С имитацией счётчика команд и стека. Так что ничего особенного, если не считать некоторых хитростей, которые я придумал именно для этой консоли. Но это всё ещё недоработано, может и работать нормально не будет. Буду дальше экспериментировать.
Круто очень
Очень круто жду новые видео
Интересно
Звучит круто! Только 2 кнопки действия очень мало и нужно 4, а в идеале 6 кнопок действия (ABYX, Select, Start)
Да я уже понял сам, в следующий прототип добавлю больше кнопок, а ещё акселерометр хочу добавить. Хотя конкретно для этого дисплея я сделал кнопки как у Ардубоя, так как хочу попробовать с него игры портировать.
Можно более детально про симулятор кода Atmega на stm?
Ну видео я про это не буду делать, потому что и так тема слишком узкая, никто не смотрит
@@nanoslavic можно в индивидуальном общении за дополнительную плату получить инструкцию и алгоритм?
Было бы интереснее про работу виртуальной машины на мк. С деталями. Я подозреваю вы просто стянули гдето в инете эмулятор avr для stm.
Хе-хе:) Попробуйте найти эмулятор AVR для STM32:) Они есть для компьютера, но для микроконтроллера я не находил. К тому же у меня не чистый симулятор микроконтроллера. Я придумал, как добавить специальные функции, которых в реальных AVR нет, чтобы ускорять работу. Например, вывод на экран графических элементов.
Хм, идея интересная. Если я правильно понял, то этот эмулятор работает как бутлоадер - сначала загружается программа "операционной системы"(бутлоадер), потом выбираешь хекс файл и загружаешь в память stm32, после чего уже крутится на стм32 загруженый хекс файл, а этот хекс написан(с твоим специальным преобразованием кода) в ардуино среде под авр. Если смысл загрузки ардуино программ в стм32, то ок, а так я бы выбрал нормальную среду разработки кода или вообще, писал бы под стм32 без преобразования
Идея в том, чтобы эти хексы исполнять на любом микроконтроллере, на котором есть "типа операционная система". Заказал себе ESP32, попробую на нём сделать подобное, он значительно дешевле. Хотя и там несколько разных вариантов моделей. Ещё есть микро малинка, на которую тоже можно сделать свой вариант. Тогда можно будет накопить большую коллекцию программ, которые можно будет запускать в самых разных устройствах без переделки. Главное, чтобы был такой экран, кнопки, контроллер и карта памяти. У кого что есть, можно будет использовать для сборки:) Причём именно этот дисплей подходит под игры от Arduboy. И я бы хотел многие игры для него, которые с открытым кодом, переделать на эту приставку. А там их порядка сотни. Но это просто задумка, посмотрим, как пойдёт.
Как же сам stm понимает ардуиновский код?
Она понимает не арлуиновский ,а бинарный , то есть 1011100 например ,этот код он специально так скомпилировал
Я ему объяснил😁
Для STM32 я сделал хитрый симулятор ардуиновских программ, который загружает программу в память и преобразует её в код для STM32. Так всё и работает, правда наверное медленнее, чем на реальном микроконтроллере. Но зато запуск выполняется быстро. Можно будет потом заменить STM32 на что-то другое (например, на ESP32), а те же программы будут так же работать.
@@nanoslavic прикольно , я думаю ,что всё это надо максимально дружить с ардуиной , потому что многим будет проще купить мощную ардуино дуе ,хоть она дороже и послабее , чем стм ,но с ней проще разобраться мне кажется
@@bighamster2311 это понятно, архитектура то разная.
Я делаю основной акцент на то, что можно будет запускать программы с карты памяти. Это больше всего подходит для создания игрушек, а не для каких-то приборов. Но посмотрим, что в итоге получится:)