Miniaturowy Tetris

Poniżej mój filmik prezentujący ten układ w połączeniu z Digisparkiem:

W filmie można zobaczyć krótkie urywki z rozgrywki, proces instalacji szkicu w urządzeniu oraz pełny, ośmiominutowy gameplay.

Korzystając z rozpiski pinów Digisparka i ATtiny85 przeniosłem dostarczony ze sketchem poniższy schemat:




na lekko chaotyczną wersję dla stykowej płytki prototypowej (400 styków half-sized) i Digisparka zasilanego baterią 9V, a przy okazji dla czystego ATtiny85 zasilanego baterią 3V:

Digispark ATtiny85
  * Powiększenia dostępne po kliknięciu w miniaturkę.
  * Powiększenia dostępne po kliknięciu w miniaturkę.



Wersję dla Digisparka zasilam poprzez pin VIN 9V baterią i przy takim poborze wystarczy jej na baaardzo długo. Wymagane do działania 5V przenoszę dodatkowym, pustym goldpinem na lewą stronę płytki prototypowej.


Na Arduino trzeba wgrać dostępny w przykładach Arduino IDE sketch ArduinoISP. Aby poprawnie skompilować tę wersję dla Digisparka należy w Arduino IDE zastąpić dodatkowy adres URL dla menadżera płytek od Digistump JSONem dla czystego ATtiny85, a następnie wybrać płytkę ATtiny25/45/85, procesor ATtiny85, zegar Internal 8MHz. Następnie z menu szkic eksportować skompilowany program, który zostanie wtedy umieszczony w katalogu źródła sketcha. Na koniec zostaje już tylko wgranie hexa na Digisparka poprzez Arduino programem avrdude. Poniżej przykładowe polecenie kopiujące (z fusami) wykonane na macOS, ale w innych systemach wygląda podobnie:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -pattiny85 -cstk500v1 -P/dev/cu.usbmodem14101 -b19200 -Uflash:w:/Users/username/Documents/ATtiny-Tetris-Gold/ATtiny-Tetris-Gold.ino.tiny8.hex -U lfuse:w:0xF1:m -U hfuse:w:0xD5:m -U efuse:w:0xFE:m

Jak przebiega taki proces można obejrzeć na końcu powyższego filmiku.

Ponieważ głośniczek jest podłączony do pierwszego pinu Digisparka, to dodatkowo otrzymujemy LEDowe sygnały świetlne w momencie odtwarzania dźwięków. Po zakończeniu gry Tetris natychmiast przechodzi w tryb uśpienia z minimalnym poborem prądu, jednak do Digisparka dodałem przełącznik włączający/wyłączający zasilanie dla układu – wersja opierająca się wyłącznie na ATtiny85 nie wymaga wykonania tego kroku. Serdecznie polecam montaż tego prostego układu również w połączeniu z Digisparkiem.

O miniaturowej wersji dla płytki prototypowej na 170 styków można przeczytać na poprzedniej stronie.

2 myśli na temat “Miniaturowy Tetris

  1. How do I reprogram the Digispark if the game didn’t work? It is like dead, can’t access it! Arduino IDE and Uno as ISP with Avrdude tested. Invalid device signature 0x000000.
    All I get is blinking dots on the oled display. If I press reset the dots stop blinking.

    1. > Invalid device signature 0x000000

      I had this message on badly pressed wires, but you may have to use High Voltage Serial Programming (HVSP).

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.