Potato Tiles 🎹

Nume: Moroiu Alexandra-Maria
Grupa: 331CA

Introducere

Proiectul consta in realizarea unui pian ale carui clape sunt formate din cartofi. In total vor fi 8 cartofi, alcatuind o octava (do re mi fa sol la si do). Ideea a pornit de la un proiect mai vechi din “Room of inspiration”, pe care il gasiti aici, si un laborator de electronica analogica in care am aprins led-uri folosind cartofi si lamai.

Descriere generală

Cum am mentionat mai sus, proiectul va fi alcatuit din 8 cartofi. Cartofii vor fi conectati la placuta Arduino Uno impreuna cu un buzzer pentru a emite notele. Voi adauga de asemenea:

  • un LCD pentru afisarea notelor apasate, volumul si gama (doar game majore si minore)
  • un potentiometru pentru controlul volumului
  • un buton pentru modificarea gamei (initial fiind Do Major)
  • led-uri pentru codificarea gamelor

Schema bloc:

Hardware Design

Componente necesare:

  • Arduino Uno
  • breadboard
  • speaker
  • LCD cu interfata I2C
  • potentiometru
  • buton
  • led-uri
  • wires
  • rezistente
  • cartofi

Hardware Schematic:

Software Design

Mediu dezvoltare: Arduino IDE
Biblioteci utilizate:

  • Wire
  • LiquidCrystal_I2C
  • toneAC - pentru emiterea sunetelor si controlul volumului
  • log2 - pentru formula conversiei frecventelor in note muzicale
  • CapacitiveSensor - pentru detectia capacitatii electrice a corpului uman

Documentatiile bibliotecilor de mai sus pot fi accesate in sectiunea de bibliografie.

Cum functioneaza CapacitiveSensor



Clasa CapacitiveSensor are rolul de a transforma pinii microcontroler-ului in senzori capacitivi ce pot detecta capacitatea electrica a corpului uman. Alegerea rezistentei se face in functie de cat de puternica se doreste a fi atingerea foliei. O rezistenta de 1M presupune ca folia sa fie atinsa complet, insa daca am alege o rezistenta mai mare, de 10M, atunci e suficient sa fim la o distanta mica de folie, nu sa o si atingem. In cadrul acestui proiect am ales rezistente de 2M, iar folia este inlocuita de cartofi🥔

Functii Principale

void setup() {
    initializeaza led-urile, potentiometrul, butonul, lcd-ul si senzorii capacitivi
}
 
int getVolume(int value) {
   calculeaza volumul bazandu-se pe valoarea citita de potentiometru
   volumul va fi afisat pe lcd
}
 
String getScale() {
   returneaza un string cu gama curenta, bazandu-se pe un counter global
   string-ul va fi afisat pe lcd
}
 
void setLeds() {
   tot pe baza counter-ului de gama se vor aprinde cele 3 led-uri
   in total sunt 8 game
}
 
String freqToNote(double freq) {
   returneaza nota corespunzatoare frecventei
   ca referinta se considera frecventa notei A4
}
 
double playNote(int volume, double freq[]) {
   verifica daca a fost atins vreun cartof
   returneaza frecventa sunetului emis
}
 
void loop() {
   1. citeste valoarea data de potentiometru
   2. calculeaza si afiseaza volumul
   3. modifica gama daca a fost apasat butonul
   4. afiseaza gama curenta
   5. seteaza senzitivitatea senzorilor capacitivi
   6. may the potato sing
   7. afiseaza nota apasata
}

Rezultate Obţinute

Concluzii

Partea cea mai complexa a acestui proiect a fost research-ul atat pe partea tehnica, cat si muzicala. Cu toate acestea, a fost foarte fun de implementat software si mai ales hardware, fiind primul meu proiect arduino. In plus, mi-a amintit de perioada gimnaziului, in care eram foarte pasionata de cantatul la pian, un mix de bucurie si nostalgie💖

Download

Codul sursa poate fi descarcat de aici: alexandramoroiu331ca_potatotiles.zip

Jurnal

  • 30/05/23 - Download
  • 29/05/23 - Rezultate si Concluzii
  • 29/05/23 - Software Design si Bibliografie
  • 20/05/23 - Hardware Schematic
  • 06/05/23 - Descriere generala, Componente si Schema bloc
  • 06/05/23 - Creare pagina wiki

Bibliografie

Biblioteci

Alte Resurse (prietenii mei)

pm/prj2023/apredescu/potato-tiles.txt · Last modified: 2023/05/30 15:03 by alexandra.moroiu
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