Сделал симулятор АРДУИНО на 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 #Микроконтроллеры #Нанославик
  • Наука та технологія

КОМЕНТАРІ • 22

  • @nikitasky6286
    @nikitasky6286 11 місяців тому +1

    Чувак, не бросай тему. Я тоже что то подобное хотел сделать, но всегда были с вшытыми играми. Однозначно лайк и подписка!

    • @nanoslavic
      @nanoslavic  11 місяців тому +1

      Как раз вот недавно начал новый дисплей тестировать:)

    • @nikitasky6286
      @nikitasky6286 11 місяців тому

      @@nanoslavic я кстати помню давно у тебя спрашивал про работу твоей консоли. А как именно работает АВР симулятор? Я почитал не много в инете, и могу сказать, что это довольно тяжело для такой шняги как ардуино. Можешь не много по подробнее объяснить принцип работы? Если не хочешь, можешь не объяснять. Просто интересно.

    • @nanoslavic
      @nanoslavic  11 місяців тому +1

      Так у меня же симулятор работает не на ардуино, а на STM32 микроконтроллере 32 бита и 168 МГц. Хотя я и микроконтроллер хочу менять на китайский, чтобы все детальки были доступными. А так это обычный симулятор наподобие других, в котором берётся первая команда ассемблера и исполняется, а дальше следующая и так далее. С имитацией счётчика команд и стека. Так что ничего особенного, если не считать некоторых хитростей, которые я придумал именно для этой консоли. Но это всё ещё недоработано, может и работать нормально не будет. Буду дальше экспериментировать.

  • @bighamster2311
    @bighamster2311 2 роки тому

    Круто очень

  • @sen8311
    @sen8311 2 роки тому

    Очень круто жду новые видео

  • @bogdan6720
    @bogdan6720 2 роки тому

    Интересно

  • @user-ki2wm5hd4e
    @user-ki2wm5hd4e 2 роки тому +1

    Звучит круто! Только 2 кнопки действия очень мало и нужно 4, а в идеале 6 кнопок действия (ABYX, Select, Start)

    • @nanoslavic
      @nanoslavic  2 роки тому

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

  • @sozdatelEd
    @sozdatelEd 2 роки тому +1

    Можно более детально про симулятор кода Atmega на stm?

    • @nanoslavic
      @nanoslavic  2 роки тому

      Ну видео я про это не буду делать, потому что и так тема слишком узкая, никто не смотрит

    • @sozdatelEd
      @sozdatelEd 2 роки тому

      @@nanoslavic можно в индивидуальном общении за дополнительную плату получить инструкцию и алгоритм?

  • @user-tb5zb8hz1t
    @user-tb5zb8hz1t Рік тому

    Было бы интереснее про работу виртуальной машины на мк. С деталями. Я подозреваю вы просто стянули гдето в инете эмулятор avr для stm.

    • @nanoslavic
      @nanoslavic  Рік тому

      Хе-хе:) Попробуйте найти эмулятор AVR для STM32:) Они есть для компьютера, но для микроконтроллера я не находил. К тому же у меня не чистый симулятор микроконтроллера. Я придумал, как добавить специальные функции, которых в реальных AVR нет, чтобы ускорять работу. Например, вывод на экран графических элементов.

  • @user-np5kf8lj5t
    @user-np5kf8lj5t 2 роки тому

    Хм, идея интересная. Если я правильно понял, то этот эмулятор работает как бутлоадер - сначала загружается программа "операционной системы"(бутлоадер), потом выбираешь хекс файл и загружаешь в память stm32, после чего уже крутится на стм32 загруженый хекс файл, а этот хекс написан(с твоим специальным преобразованием кода) в ардуино среде под авр. Если смысл загрузки ардуино программ в стм32, то ок, а так я бы выбрал нормальную среду разработки кода или вообще, писал бы под стм32 без преобразования

    • @nanoslavic
      @nanoslavic  2 роки тому +1

      Идея в том, чтобы эти хексы исполнять на любом микроконтроллере, на котором есть "типа операционная система". Заказал себе ESP32, попробую на нём сделать подобное, он значительно дешевле. Хотя и там несколько разных вариантов моделей. Ещё есть микро малинка, на которую тоже можно сделать свой вариант. Тогда можно будет накопить большую коллекцию программ, которые можно будет запускать в самых разных устройствах без переделки. Главное, чтобы был такой экран, кнопки, контроллер и карта памяти. У кого что есть, можно будет использовать для сборки:) Причём именно этот дисплей подходит под игры от Arduboy. И я бы хотел многие игры для него, которые с открытым кодом, переделать на эту приставку. А там их порядка сотни. Но это просто задумка, посмотрим, как пойдёт.

  • @crazysova
    @crazysova 2 роки тому +2

    Как же сам stm понимает ардуиновский код?

    • @bighamster2311
      @bighamster2311 2 роки тому

      Она понимает не арлуиновский ,а бинарный , то есть 1011100 например ,этот код он специально так скомпилировал

    • @nanoslavic
      @nanoslavic  2 роки тому

      Я ему объяснил😁
      Для STM32 я сделал хитрый симулятор ардуиновских программ, который загружает программу в память и преобразует её в код для STM32. Так всё и работает, правда наверное медленнее, чем на реальном микроконтроллере. Но зато запуск выполняется быстро. Можно будет потом заменить STM32 на что-то другое (например, на ESP32), а те же программы будут так же работать.

    • @bighamster2311
      @bighamster2311 2 роки тому

      @@nanoslavic прикольно , я думаю ,что всё это надо максимально дружить с ардуиной , потому что многим будет проще купить мощную ардуино дуе ,хоть она дороже и послабее , чем стм ,но с ней проще разобраться мне кажется

    • @crazysova
      @crazysova 2 роки тому

      @@bighamster2311 это понятно, архитектура то разная.

    • @nanoslavic
      @nanoslavic  2 роки тому +1

      Я делаю основной акцент на то, что можно будет запускать программы с карты памяти. Это больше всего подходит для создания игрушек, а не для каких-то приборов. Но посмотрим, что в итоге получится:)