Witam.
Przedstawiam konstrukcję wyświetlającą modele 3D. W tym projekcie mikrokontroler odczytuje modele zapisane w formacie OBJ
bezpośrednio z karty pamięci typu RS-MMC lub SD. Całość pełni funkcję miniprzeglądarki modeli OBJ.
Wybrany model po wczytaniu jest skalowany do rozmiarów okienka. Zapobiega to wychodzeniu modelu poza obszar ekranu lub wyświetlaniu modelu kilkupikselowego.
Następnie program wyznacza środek modelu, względem którego dokonuje potem obrotu.
Czasem punkt odniesienia (pivot) modelu wypada poza nim, co sprawia, że model orbituje podczas obrotu. Wyznaczenie nowego punktu odniesienia w środku modelu pozwala to wyeliminować.
Do rysowania linii wykorzystałem implementację algorytmu Bresenhama. Projekt obsługuje obiekty posiadające do 1000 wierzchołków.
Cel:
Chciałem opanować obsługę zewnętrznej pamięci RAM.
Chciałem opanować system plików oraz obsługę kart pamięci.
Chciałem zmierzyć się z plikami *.obj.
Hardware:
Podobnie jak poprzednio - całość napędza ATmega128 taktowana zegarem 16MHz.
Wyświetlacz ma rozdzielczość 240x128. Posiada sterownik Toshiba T6963C.
Pamięć RAM o pojemności 128KB 55ns + 74HC573 . Wykorzystywane jest 64KB.
Czytnik kart pamięci sterowany programowym SPI.
Wyzwania:
Obsługa kart pamięci,
Obsługa systemu plików,
Obsługa zewnętrznej pamięci RAM,
Interpretacja plików OBJ,
Odczyt i przepisywanie współrzędnych każdego wierzchołka do tablic,
Odczyt i zapisywanie wierzchołków wchodzących w skład kolejnych ścian.
Link z nagraniem:
video