Vinyl Player

Introducere

Muzica de pe un vinil este: “mai caldă și mai naturală decât formatele digitale”, sau cel puțin asta am găsit pe internet. Cred că majoritatea dintre noi încă mai avem acasă câteva viniluri lăsate moștenire de părinți sau bunici, care adună praf undeva prin casă, deoarece ultimul pick-up s-a stricat acum 20 de ani și unul nou este mult prea scump. Eu sigur mă aflu în această situație și fiind inspirat și de o reclamă de pe www.bazardemuzica.ro (pls sponsor me), m-am gândit că sigur aș fi capabil să-mi construiesc propriul pick-up, la un preț mai redus (“m-am gândit” pentru că deja am cheltuit banii pentru un pick-up nou pe componente și nu le-am cumpărat pe toate)(Update după terminarea proiectului: chiar a fost mai scump :P).

Player-ul oferă posibilitatea de a reda muzica de pe viniluri cu dimensiunea de 7”, 10” sau 12”. Pentru că majoritatea muzicii pe care o ascult acum este de pe YouTube sau Spotify, m-am gândit să integrez și un ecran pe care vor fi afișate: “Timpul de redare” și “Viteza de redare”, viteza care va putea fi modificată de utilizator.

Descriere generală

Descriere:

Player-ul va contine 2 butoane: Play - va porni rotirea vinilului, Pause - va opri rotirea vinilului. Viteza de rotire default va fi controlata cu ajutorul Driver-ului, putand fi schimbata folosind potentiometrul rotativ. Am incercat sa aproximez cele două viteze clasice pentru viniluri: 33 RPM și 45 RPM. Timpul de redare (de cand este apasat butonul “Play”) va fi afisat pe display sub forma: MM min. De asemenea, pe display se va afisa si viteza de redare in RPM.

Hardware Design

Lista de piese:

  • Arduino Uno R3 AtMega328P
  • Modul Jack Audio Stereo 3.5 mm
  • Audio Amplifier Module
  • Breadboard
  • Butoane
  • Potentiometru Rotativ
  • Stepper Motor Driver
  • Stepper Motor
  • LCD Module

Design circuit:

Descrierea sistemului: Aceasta parte a proiectului se ocupa mai mult cu stepper-ul si functiile extra adaugate unui pick-up, sistemul de amplificare fiind cel al unui pick-up deja construit.

Componente:

Potențiometrul rotativ:

  • Scop: reglarea vitezei motorului, incepand de la o viteza aproximativ egala cu 33 RPM, incrementat cu o constanta atunci cand ajunge la un prag nou, pana cand ajunge la o viteza aproximativ egala cu 45 RPM.
  • Conectare: un pin este conectat la GND, altul la VCC, iar pentru citire ma voi folosi de pinul A0 de pe arduino.

Butonul de start:

  • Scop: pornirea motorului care va roti vinilul.
  • Conectare: conectat la pin-ul digital 2 al placutei pentru a ma folosi de intreruperile externe.

Butonul de stop:

  • Scop: oprirea motorului care va roti vinilul.
  • Conectare: conectat la pin-ul digital 3 al placutei pentru a ma folosi de intreruperile externe.

Stepper Driver:

  • Scop: asigura miscarea precisa a motorului
  • Conectare: pentru a alimenta driver-ul, acesta este conectat la VCC, iar pentru a alimenta motorul, VMOT este conectat la 12V. Pentru a roti motorul, pinii de step si directie sunt conectati la pinii 6 si 7 de pe arduino.

LCD Module:

  • Scop: afisarea timpului de redare si a numarului de rotatii.
  • Conectare: la arduino, pinii: 13, 11, 10, 9 si 8, alimentat la VCC.

Stepper Motor:

  • Scop: rotirea vinilului.
  • Conectare: la stepper driver, prin pinii 2A, 2B, 1A si 1B.

Software Design

Mediu de dezvoltare: Arduino IDE

Biblioteci utilizate:

  • AccelStepper: pentru controlarea mai usoara a a vitezei stepper-ului
  • Adafruit_GFX, Adafruit_ST7735, SPI: pentru afisarea textului pe ecran

Detalii implementare:

  • Citirea butoanelor se face folosind intreruperi si folosind rezistente de pull-up externe.
  • Pentru potentiometrul rotativ m-am folosind de functia “myAnalogRead” din laborator pentru a citi valori care sunt comparate ulterior cu anumite praguri setate de mine pentru a incrementa viteza motorului.
  • Pe ecran afisez textul folosind functiile puse la dispozitie de biblioteci.
  • In cazul motorului, am ales sa folosesc o biblioteca pentru a seta viteza, deoarece imi oferea posibilitatea de a obtine o viteza mai ridicata, evitand delay-urile.

Rezultate Obţinute

Am reusit sa modific un pick-up existent, pastrand sistemul de amplificare si boxele, modificand motorul cu un stepper pentru a fi mai usor de controlat prin arduino. Am adaugat un potentiometru rotativ pentru a schimba vitezele, de la (aproximativ) 33 RPM pana la (aproximativ) 45 RPM si viteze intermediare. Aproximarile au fost facute urmand pasii:

1. “Suna bine?” 2. “E prea incet” → viteza mai mare 3. “E prea repede” → viteza mai mica

Am mai adaugat un LCD pentru afisarea timpului si a rotatiilor.

Concluzii

Proiectul a fost interesant si am invatat urmatoarele:

  1. E mult mai usor sa lipesti fire decat pare.
  2. E foarte greu sa alegi componentele.
  3. E foarte greu sa gasesti datasheet pentru anumite componente.
  4. Componentede mai scumpe nu sunt mai bune :(.
  5. Stepper-ul se blocheaza destul de repede si e destul de greu de controlat atunci cand nu avem informatii despre driver.

Download

Bibliografie/Resurse

pm/prj2024/vstoica/amunteanu1006.txt · Last modified: 2024/05/27 10:02 by amunteanu1006
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