Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul meu consta in decodificarea codului Morse. Pentru aceasta voi capta semnalul folosind un microfon, voi face analiza si operatiile corespunzatoare in microcontroler, iar la final voi afisa ca text pe un ecran LCD. Semnalul initial poate fi de exemplu produs de un laptop folosind un program de generare de cod Morse, care este apoi preluat de catre microfon.
Ideea mi-a venit cand m-am uitat peste proiectele din anii trecuti si mi s-a parut interesant, deoarece proiectul implica si hard si soft. Era nevoie de lipit, de facut scheme de electronica, iar la final de scris cod.
Proiectul este util pentru cei pasionati de subiect si pentru cei care sunt dornici sa afle mai multe.
Modulul microfon contine microfonul efectiv si circuitul de amplificare.
Modulul microcontroler se refera la intreaga placuta de la etapa 1.
Modulul LCD contine LCD-ul si circuitul de alimentare al acestuia.
Piesele le-am cumparat de la syscom si de la conexelectronic.
Lista de piese
Am avut nevoie de:
Componenta | Cantitate |
---|---|
LCD 1601D | 1 |
Microfon electret | 1 |
Tranzistor BC547 | 1 |
Rezistente 1K | 1 |
Rezistente 10K | 2 |
Rezistente 100K | 1 |
Capacitati 10uF | 2 |
Bareta de pini | 1 |
Bareta de pini mama | 3 |
Panglica de 16 fire | 1m |
Potentiometru 25K | 1 |
In afara de LCD si microfon am cumparat in plus ca sa am si rezerve.
Pentru microfon am avut nevoie de un circuit de amplicare (cu tranzistor, reactie negativa, feedback) deoarece semnalul nu era destul de puternic.
Pentru contrastul de la LCD am folosit un potentiometru. Initial nu alimentasem si backlightul si nu se vedea prea bine, dar apoi am conectat la VCC printr-o rezistenta si la masa.
Schema
LCD-ul meu este 16×1, dar nu am gasit schema pentru acesta asa ca am folosit unul de 16×2.
Placuta de la etapa 1
Circuit de amplificare pentru microfon
LCD
Pentru dezvoltarea aplicatiei am folosit WinAVR cu Programmers Notepad.
La partea cu LCD-ul am folosit sursele de la laboratorul 1, pe care le-am modificat, adaptandu-le pinilor folositi de mine. LCD-ul avea ca displat o linie formata de 16 caractere, dar cand incercam sa-l folosesc imi arata doar primii 8. Apoi mi-am dat seama ca de fapt era format din 2 linii de cate 8 caractere, puse una in cotinuarea celeilalte.
Pentru partea cu microfonul am folosit functiile pentru ADC de la laborator ca sa citesc valoarea si mi-am facut eu alte functii ajutatoare: pentru verificare daca am primit un semnal, pentru decodare, afisare.
In prima faza am reusit sa afisez text pe LCD.
Montajul complet
In faza a doua am scris si partea software si am obtinut unele rezultate. Sunt cateva probleme cu captarea corecta a semnalului, dar partea de decodare merge corect.
Decodarea unei litere
In stanga este codul Morse, iar in dreapta litera echivalenta.
Proiectul a fost interesant.
La partea de lipit si tras fire as fi putut sa fi facut mai frumos. Acum am castigat experienta si alta data voi face dinainte o schema care sa ma ajute la partea hardware.
Pentru partea software am pornit de la laboratoare. Am avut probleme cu captarea semnalului, microfonul nefiind destul de exact, in sensul ca valoarea citita prin ADC in conditii de liniste varia destul de mult, fiindu-mi greu sa iau o referinta.
Arhiva cu codul si schemele: proiect_pm.zip
Etapa 1
Am fost la syscom pentru piese, apoi la placutiada, iar lipitul l-am facut la laborator. Cand s-a facut pentru prima oara programarea a mers din prima si nu am avut deloc probleme cu placuta.
Etapa2
Am fost la magazinele de pe Maica Domnului de mai multe ori ca sa cumpar componente. Mare parte din lipituri le-am facut la laborator, dar o parte am facut-o si acasa. Dupa ca am terminat de lipit, m-am apucat de scris cod. Pentru LCD am adaptat fisierele de la laboratorul 1.
Resurse Hardware
Schema de amplificare pentru microfon: http://www.instructables.com/id/Pre-amp-to-electret-mic/
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=966327
http://tinkerlog.com/2007/05/20/cheap-sound-sensor-for-avr/
Resurse Software
Datasheet ATmega324: http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
http://www.engineersgarage.com/embedded/avr-microcontroller-projects/adc-circuit
Cod Morse: http://en.wikipedia.org/wiki/Morse_code