Music Player cu infrarosu

Introducere

Acest proiect are ca scop dezvoltarea unui player de muzica ce este controlat cu ajutorul unei telecomenzi prin semnal infrarosu. Melodiile sunt citite de pe un card SD/miniSD si redate prin intermediul unor casti sau boxe. Cu ajutorul telecomenzii vom putea controla player-ul: toate functiile standard care sunt cerute de la un player audio. In plus, titlul melodiei si informatii despre playback vor fi afisate pe un LCD.

Descriere generală

Player-ul va fi compus din urmatoarele module:

  • placa de baza realizata la etapa 1
  • modulul de interfatare pentru cardul de memorie(este inclus in placa de baza)
  • modulul de interceptare si interpretare a semnalului infrarosu
  • modulul LCD
  • mufa pentru casti/boxe
  • telecomanda

Schema bloc a proiectului nostru este urmatoarea:

Hardware Design

Lista de piese:

  • microcontroller ATmega16
  • MAX232
  • Card SD/miniSD
  • Slot SD
  • LCD alfanumeric 16×2
  • senzor infrarosu TSOP1736
  • mufa casti/boxe
  • telecomanda

Rezultatele simularii:

LCD Display

La citirea unei melodii se va afisa titlul acesteia si informatii despre playback(toate functiile standard care sunt cerute de la un player audio). In functie de comanda primita de la telecomanda, acesti parametrii se pot schimba.

Specificatii tehnice

  • Dimensiunea modulului: 80.00 x 36.00 x 9.50 mm
  • Inaltimea unui caracter: 3.55 x 5.95 mm
  • Latimea unui caracter: 2.95 x 5.55 mm
  • Font: 5 x 8 puncte
  • Latimea unui punct: 0.55 x 0.65 mm
  • Inaltimea unui punct: 0.60 x 0.70 mm

Schema bloc

Atribuirea pinilor

Nr. Simbol Functie
1 VSS Masa
2 VDD Sursa 5 V
3 V0 Alimentarea unitatii cu cristale lichide
4 RS Register Select
RS = 0, Registru instructiune
RS = 1, Registru date
5 R/W Read/Write
R/W = 0, Write
RW = 1, Read
6 E Enable
Seteaza semnalul de citire, respectiv scriere a datelor
7 DB0 Magistrala de date bi-directionala. Transferul datelor se face o singura data, de la DB0 la DB7 in cazul lungimii de 8 biti, sau de la DB4 la DB7 in cazul lungimii de 4 biti.
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 NC Neconectat
16 NC

Schema electrica

Interfatarea LCD-ului cu microcontrolerul se realizeaza astfel:

Filesystem

Conectarea cardului de memorie la microcontroller se face ca in figura de mai jos:

Toate cardurile SD/miniSD functioneaza la o tensiune de alimentare de 3.3V, din aceasta cauza folosim cele doua diode pe alimentare (5V -2*0.7V = 3.6V) si divizoarele rezistive pe liniile MOSI, CS si SCK. Pe linia MISO nu este nevoie de divizor rezistiv pentru ca 3.3V este interpretat ca “1” logic de micorocontroller. Pentru a inlesni accesul la datele de pe card, am ales sa nu scriem direct in spatiul de memorie ci sa folosim un modul filesystem care sa permita microcontrollerului sa scrie si sa editeze fisiere formatate FAT32. Astfel, vom folosi Petit FAT Filesystem din cauza footprint-ului mic (2-4KB) si a faptului ca foloseste un minim de memorie RAM (46 octeti plus stiva).

Semnalul infrarosu

Semnalul infrarosu este standardizat (RC5) si este captat cu ajutorul receiverului TSOP1736. Pentru a putea controla player-ul cu ajutorul unei telecomenzi vom folosi standardul RC5 pentru a receptiona undele infra rosii. Vom folosi o librarie speciala pentru a realiza programarea controlerului . Comenzile primite de la telecomanda vor fi retinute si vor fi interpretate ca variabile de tip unsigned char, ele retinand codul tastei apasate. Vom retine codul tastelor ce ne intereseaza, asignandu-le cate o comanda.

Protocolul RC5

RC5 este un protocol de comunicatie prin infrarosu. Telecomanda contine un circuit integrat transmitter. Datele transmise (comanda) sunt codate Manchester si moduleaza o unda purtatoare de 36 kHz. Semnalul IR transmis este detectat de un circuit specializat, este amplificat, filtrat si demodulat si apoi comanda este interpretata. Comanda este continuta in 14 biti cu urmatoarele functii:

  • 1 bit de start (logic 1)
  • 1 field bit care specifica daca comanda se afla intre valorile 0-63 sau 64-127. Este folosit pentru a dubla numarul de comenzi posibile trimise.
  • 1 bit de control care se schimba la fiecare apasare de buton
  • 5 biti pentru adresa sistemului
  • 6 biti pentru comanda ( impreuna cu bitul field, dau 128 de comenzi posibile)

Codul comenzii da tipul comenzii si, implicit, tasta apasata pe telecomanda. Ex. : Codul 16 - Creste volumul

TSOP1736

TSOP1736 este un circuit integrat cu rol de receiver pentru semnale IR. Frecventa semnalului interceptat este de 36kHz, deci in conformitate cu standardul RC5. Circuitul are 3 pini : GND (masa), Vs( Vcc), OUT (semnalul de iesire demodulat).

Interfatarea cu Atmega16

Tsop1736 este conectat la pinul INT0 pentru a folosi sistemul de intreruperi externe.

Software Design

Mediul de dezvoltare il reprezinta AVR Studio. Limbajul de programare folosit va fi C.

Biblioteca pentru integratul TSOP1736 se gaseste aici:rc5.zip

TSOP1736 trebuie sa fie conectat la INT0. De asemenea, se foloseste timer/counter0.

Exista o parte independenta de platforma (rc5.c) si una specifica atmega16(rc5.h , rc5-avr.c).

Api-ul pentru LCD-ul din schema noastra se gaseste aici : lcd-api.zip

Bibliografie

pm/prj2011/dtudose/music_player.txt · Last modified: 2021/04/14 17:07 (external edit)
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