This shows you the differences between two versions of the page.
pm:prj2023:adarmaz:utictactoe [2023/05/26 16:26] mihai_cosmin.rosu |
pm:prj2023:adarmaz:utictactoe [2023/05/27 18:17] (current) mihai_cosmin.rosu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Ultimate Tic-Tac-Toe - Roșu Mihai Cosmin - 333CA ====== | ====== Ultimate Tic-Tac-Toe - Roșu Mihai Cosmin - 333CA ====== | ||
+ | |||
+ | ===== Demo ===== | ||
+ | |||
+ | <html> | ||
+ | <iframe | ||
+ | src="https://www.youtube.com/embed/XRYpv7-YvOo" | ||
+ | title="YouTube video player" | ||
+ | frameborder="0" | ||
+ | allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" | ||
+ | allowfullscreen | ||
+ | style="aspect-ratio: 16/9; width: 100%;" | ||
+ | ></iframe> | ||
+ | </html> | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 57: | Line 70: | ||
* Pentru dezvoltarea proiectului am folosit **Arduino IDE**, în cadrul căruia am importat următoarele biblioteci: | * Pentru dezvoltarea proiectului am folosit **Arduino IDE**, în cadrul căruia am importat următoarele biblioteci: | ||
- **Adafruit GFX**, bibliotecă ce se poate importa direct din IDE, necesară pentru a desena/scrie pe ecran | - **Adafruit GFX**, bibliotecă ce se poate importa direct din IDE, necesară pentru a desena/scrie pe ecran | ||
- | - **Arduino ST7789 Fast**, bibliotecă externă, folosită pentru a comunica cu ecranul prin **SPI**, folosește **Adafruit GFX** | + | - **Arduino ST7789 Fast**, bibliotecă externă, folosită pentru a comunica cu ecranul prin **SPI**, folosește **Adafruit GFX** și **SPI.h** |
* În cadrul implementării am folosit și operații cu registre pentru: | * În cadrul implementării am folosit și operații cu registre pentru: | ||
- **ADC**: Am ales să configurez și să folosesc ADC astfel, fiindcă am avut nevoie să controlez prescalerul folosit de acesta. Acest lucru era necesar fiindcă pentru o citire de ADC, de fapt au loc 100 de citiri, pentru a reduce noise-ul. | - **ADC**: Am ales să configurez și să folosesc ADC astfel, fiindcă am avut nevoie să controlez prescalerul folosit de acesta. Acest lucru era necesar fiindcă pentru o citire de ADC, de fapt au loc 100 de citiri, pentru a reduce noise-ul. | ||
- **PWM**: Pentru a trimite un semnal PWM buzzer-ului, am ales să folosesc registre pentru a configura **Timer1** în modul **FastPWM**. De asemenea, pentru a determina când trebuie oprit semnalul PWM, folosesc întreruperea de overflow a timer-ului. | - **PWM**: Pentru a trimite un semnal PWM buzzer-ului, am ales să folosesc registre pentru a configura **Timer1** în modul **FastPWM**. De asemenea, pentru a determina când trebuie oprit semnalul PWM, folosesc întreruperea de overflow a timer-ului. | ||
- | - **Întreruperi**: Pentru întreruperile externe **INT0**, **INT1** și **TIMER1_OVF**. | + | - **Întreruperi**: Pentru întreruperile externe **INT0**, **INT1** și întreruperea de timer **TIMER1_OVF**. |
==== Implementare generală ==== | ==== Implementare generală ==== | ||
Line 133: | Line 146: | ||
===== Download ===== | ===== Download ===== | ||
- | <note important>important</note> | + | <note important>**Codul sursă, biblioteca Arduino_ST7789_Fast, schemele și imaginile din această documentație pot fi găsite în următoarea arhivă: {{:pm:prj2023:adarmaz:pm_rosu_mihai_cosmin_333ca_2023.zip|}}.** |
+ | |||
+ | **De asemenea, proiectul poate fi găsit și pe GitHub: [[https://github.com/mehigh8/UltimateTicTacToePM|Ultimate Tic-Tac-Toe]]**</note> | ||
+ | |||
+ | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | ==== Resurse documentație ==== | ||
+ | * [[https://miro.com/index/|Tool folosit la realizarea schemei bloc]] | ||
+ | * [[https://fritzing.org/|Tool folosit la realizarea schemei circuitului]] | ||
+ | |||
+ | ==== Resurse hardware și software ==== | ||
+ | * [[https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|Documentație ATMega328P]] | ||
+ | * [[https://docs.arduino.cc/built-in-examples/digital/Button|Tutorial conectare buton Arduino]] | ||
+ | * [[https://www.youtube.com/watch?v=-nECx4DOE84|Tutorial folosire ecran ST7789]] | ||
+ | * [[https://docs.arduino.cc/tutorials/generic/secrets-of-arduino-pwm|Tutorial PWM cu registre]] | ||
+ | * [[https://github.com/cbm80amiga/Arduino_ST7789_Fast|Biblioteca Arduino_ST7789_Fast]] | ||
+ | * [[pp:22:teme:prolog-ultimate-ttt|Sursă inspirație pentru prioritățile folosite în modul Singleplayer]] | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||