Skocz do zawartości

Plik na karcie SD zawierający program, który wykonuje Arduino.


Pomocna odpowiedź

Witam! Wpadłem ostatnio na pomysł, aby Arduino wykonało kod zawarty w pliku zapisanym na karcie SD. Chciałbym móc zapisywać np. jakąś prostą gierkę na SD. Coś na kształt cartridge do gier. Moje pytanie brzmi: Jak to zrobić? Czy wgl da się to zrobić? A jak się nie da to propozycje innego rozwiązania mile widziane 😁

Z góry dziękuję za pomoc. Miłego dnia!

Edytowano przez Szmyterling
Link to post
Share on other sites

@Szmyterling witam na forum 🙂 Akurat Arduino i "grafika" to czasami sprzeczne kwestie (ze względu na wydajność). Oczywiście da się to zrobić, ale daj znać jaki efekt chcesz uzyskać? Co tak naprawdę chcesz zapisać i co chcesz z tymi danymi później zrobić?

  • Lubię! 1
  • Pomogłeś! 1
Link to post
Share on other sites

pewnie się da na esp8266 albo esp32, bo są wystarczająco szybkie, a gierkę możesz sobie ładować np przez wifi (OTA).:)

przypomina mi się podobny projekt na attiny85, tylko gry ładujesz poprzez flashowanie mcu:

 

  • Pomogłeś! 1
Link to post
Share on other sites

Cześć,

nie wiem, czy to zadziała, ale teoretycznie można znaleźć Bootloader, który jest w stanie załadować do pamięci Flash program w postaci binarnej (hex) z karty SD. Zobacz te linki:

https://forum.arduino.cc/index.php?topic=505195.0

https://github.com/zevero/avr_boot

Nie testowałem tego bootloadera'a - tak więc jeśli Cię to interesuje to musisz sam z nim poeksperymentować.

Pozdrawiam

  • Pomogłeś! 1
Link to post
Share on other sites

@Treker Plan był taki, aby na SD był zapisany cały kod programu, np. snake. Natomiast na Arduino tylko program, który by sczytywał snakea z SD i wykonywał kod, czyli uruchomił snake :-). Nie zależy mi na zapisywanie postępów, czy rekordów "gracza" na karcie, więc byłaby ona tylko do odczytu. Po odłączeniu karty SD ze snakem od Arduino i podłączeniu innej karty SD z np. Space Invaders to płytka by uruchamiała Space Invaders.

Link to post
Share on other sites
  1. Zamiast Arduino wybrałbym raczej ESP albo STM, najprawdopodobniej te drugie, chociaż te pierwsze też się nadaje. Alternatywnie może to też być RP2040, ale tego MCU nie dostaniesz tak łatwo (poza Pi Pico).
  2. Każdy z powyższych MCU obsługuje pamięć QSPI Flash - więc technicznie mógłbyś zflashować dane na taką pamięć i zrobić jakieś płytki w formie kartridży podłączane do urządzenia, ale to było poza pytaniem.
  3. Jeżeli koniecznie chcesz, by była to karta SD to pozostają dwie opcje:
    1. bootloader z karty SD
    2. własny język programowania, który jest interpretowany przez mikrokontroler

Najłatwiejsza jest opcja 3.1 lub 2. Osobiście lubię QSPI Flash, więc wybrałbym własne kartridże z taką pamięcią, ale względem tematu to raczej wybór pada na 3.1;
Teoretycznie da się to też zaimplementować na Arduino, ale po co przepłacać za AVR, kiedy można mieć dużo szybsze STM w podobnej cenie?

  • Pomogłeś! 1
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.