This is an old revision of the document!


MoodPet - A Smart Digital Pet

Autor: Florin Bădilaș

Introducere

MoodPet este un companion virtual embedded inspirat de jocurile de tip Tamagotchi și de consolele portabile retro. Proiectul este bazat pe microcontrollerul ATmega328P-XMINI și combină senzori de mediu, afișare grafică și interacțiune hardware pentru a crea un sistem interactiv cu personalitate proprie.

Scopul proiectului este realizarea unui animal virtual capabil să reacționeze la mediul înconjurător și la acțiunile utilizatorului prin animații, sunete, schimbări de stare și efecte vizuale.

MoodPet monitorizează temperatura, umiditatea și lumina ambientală și își modifică comportamentul în funcție de valorile detectate. Utilizatorul poate interacționa cu companionul virtual folosind butoane dedicate pentru navigare, hrănire, joacă și gestionarea stărilor pet-ului.

Proiectul include un sistem de emoții, energie, foame, experiență și nivel, precum și un sistem de salvare a progresului în memoria EEPROM. În versiunea finală, MoodPet va utiliza un display OLED pentru afișarea unui companion virtual animat și a meniurilor interactive.

Descriere generală

MoodPet funcționează pe baza unei mașini de stări care controlează comportamentul companionului virtual și actualizează periodic informațiile afișate pe ecran.

Sistemul utilizează senzori pentru citirea mediului și generează reacții vizuale și sonore în funcție de condițiile detectate și de interacțiunea utilizatorului.

Stările principale ale companionului virtual sunt:

  • HAPPY
  • CALM
  • HUNGRY
  • SLEEPY
  • SAD
  • ANGRY

Utilizatorul va putea interacționa cu MoodPet folosind patru butoane:

  • UP
  • DOWN
  • LEFT
  • RIGHT

Acestea vor fi utilizate pentru:

  • navigarea prin meniuri
  • selectarea opțiunilor
  • hrănirea companionului virtual
  • activarea modului sleep
  • pornirea mini-game-urilor

MoodPet își modifică starea în funcție de:

  • temperatura detectată
  • umiditatea ambientală
  • nivelul de lumină
  • nivelul de energie
  • nivelul de foame
  • nivelul de fericire
  • timpul petrecut în anumite stări

Sistemul include:

  • sistem de emoții și stări
  • sistem de energie și foame
  • sistem de experiență și nivel
  • mod zi/noapte
  • sistem de animații și sprite-uri
  • mini-game-uri interactive
  • sistem de meniuri
  • efecte sonore și vizuale
  • salvarea progresului în EEPROM

Schema bloc

Schema bloc MoodPet

Prototip

MoodPet - prototip initial

Prototipul inițial MoodPet: ATmega328P-XMINI, LCD I2C, senzor DHT11, senzor de lumină TEMT6000, LED RGB și buzzer.

Hardware Design

Lista de piese

Componentă Model Rol
Microcontroller ATmega328P-XMINI Unitate centrală de control
Display LCD LCD 16×2 I2C Afișare stare și informații
Senzor temperatură DHT11 Detectare temperatură și umiditate
Senzor lumină TEMT6000 Detectare lumină ambientală
LED RGB CJMCU RGB LED Module Feedback vizual pentru stări
Buzzer Active Buzzer 5V Feedback sonor
Butoane Push Button 6x6x6 Interacțiune utilizator
Breadboard 830 puncte Prototipare
Fire jumper Dupont wires Conexiuni
Display OLED SSD1306 128×64 I2C Afișare grafică și animații
Butoane Push Button 6x6x6 Control și navigare

Conexiuni principale

  • DHT11 DATA → PD2
  • Buzzer → PD4
  • RGB RED → PD5
  • RGB GREEN → PD6
  • RGB BLUE → PD7
  • Buton UP → PB0
  • Buton DOWN → PB1
  • Buton LEFT → PB2
  • Buton RIGHT → PB3
  • TEMT6000 OUT → PC0 / A0
  • OLED SDA → PC4 / SDA
  • OLED SCL → PC5 / SCL

Software Design

Mediu de dezvoltare

  • PlatformIO
  • AVR-GCC
  • Limbaj C/C++

Periferice utilizate

Periferic Utilizare
ADC Citire senzor TEMT6000
GPIO Butoane și LED RGB
TWI / I2C Comunicare LCD
EEPROM Salvare progres și stare
Timer Actualizare stări și evenimente

Structura software

  • Citirea periodică a senzorilor
  • Gestionarea mașinii de stări
  • Calcularea mood-ului companionului virtual
  • Controlul sistemului de animații
  • Gestionarea meniurilor interactive
  • Controlul display-ului OLED
  • Controlul LED-ului RGB
  • Generarea efectelor sonore
  • Gestionarea mini-game-urilor
  • Salvarea și încărcarea progresului din EEPROM

State Machine

MoodPet utilizează o mașină de stări pentru gestionarea comportamentului companionului virtual și a interacțiunii cu utilizatorul.

Flux principal:

  • HAPPY → CALM
  • CALM → HUNGRY
  • HUNGRY → ANGRY
  • HAPPY → PLAYING
  • PLAYING → HAPPY
  • HAPPY → SLEEPY
  • SLEEPY → HAPPY
  • SAD → ANGRY

Rezultate așteptate

Rezultatul final va fi un companion digital interactiv capabil să reacționeze la mediu și la utilizator prin efecte vizuale, sonore și modificări de comportament.

MoodPet va combina senzori, periferice și logică embedded pentru realizarea unui sistem interactiv și creativ bazat pe microcontroller.

Concluzii

Proiectul urmărește dezvoltarea unui sistem embedded interactiv care combină senzori și periferice pentru simularea comportamentului unui companion virtual. MoodPet evidențiază utilizarea practică a microcontrollerului pentru citirea mediului, procesarea datelor și controlul dispozitivelor externe.

Download

  • Cod sursă - va fi adăugat ulterior
  • Schema bloc - disponibilă în secțiunea Schema bloc
  • Imagini prototip - disponibile în secțiunea Prototip

Jurnal

  • 09.05.2026 - Alegerea temei și stabilirea componentelor necesare
  • 10.05.2026 - Crearea paginii OCW și realizarea schemei bloc
  • 11.05.2026 - Configurarea proiectului în PlatformIO și testarea plăcii
  • 11.05.2026 - Testarea componentelor principale și realizarea prototipului inițial

Bibliografie / Resurse

pm/prj2026/alexandru.jipa2803/florin.badilas.1779220697.txt.gz · Last modified: 2026/05/19 22:58 by florin.badilas
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0