Andreea-Sânziana BICAN (66887) - TrackR

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in implementarea unui dispozitiv pentru localizarea obiectelor pierdute.

Dispozitivul poate fi controlat de un telefon de la distanta prin Bluetooth. Acesta va scoate un semnal sonor puternic in momentul in care este activat cu scopul de a putea identifica usor anumite obiecte. De exemplu, poate fi pus in geanta/portofel/penar. In cazul in care posesorul uita unde si-a lasat obiectul sau i-a fost furat, poate activa de pe telefon un semnal sonor cu ajutorul caruia sa poata identifica mai usor locatia bunului personal.

Descriere generală

Aplicația mobila va trimite prin Bluetooth comenzi către microcontroller prin intermediul modulului HC-05. Aceasta le va interpreta si va trimite semale catre Buzzer.

Hardware Design

Componentele necesare realizarii proiectului:

Nume Cantitate Distribuitor
Placa de baza PM 2017 1 - 8 lei
Componente placa de baza 1 - 33 lei
Placa PCB 1 Maica Domnului 20 lei
Cablu mufa USB tip A si tip B 1 Maica Domnului 4 lei
Modul Buzzer 1 ArduShop 6 lei
Buzzer pasiv 1 ArduShop 2.5 lei
Fire mama-mama 40 Maica Domnului 15 lei
Modul Bluetooth HC-05 1 ArduShop 30 lei
Pini mama 1 Maica Domnului 8 lei
Baterie externa 1 De acasa -
Total 126.5

Componente placa de baza:

  • 1x Microcontroller ATMEGA324PA-PU
  • 1x Soclu microcontroller
  • 2x Diode ZENER
  • 2x Condensator 100nF
  • 2x Condensator 15pF
  • 1x Rezistenta 10K
  • 1x Rezistenta 1.5K
  • 2x Rezistente 100K
  • 3x Rezistente 470K
  • 2x Push Button
  • 1x Quartz

Schema electrica:

Software Design

Mediu de dezvoltare:

  • Geany
  • BootloaderHID

Librarii

  • avr/interrupt.h
  • avr/io.h
  • util/delay.h
  • stdio.h
  • stdlib.h

Surse:

  • main.c
  • notes.h
  • usart.c

Functii implementate:

  • usart.c
    • usart0_init() - seteaza baud rate la 9600, porneste transmitatorul si activeraza intrerulerea rx
    • usart0_receive() - primeste un caracter prin USART
  • main.c
    • init_music() - configureaza timerul
    • play_music(int *notes, uint8_t tempo) - primeste un vector de note si un delay intre ele. Functia activeaza buzzerul sa cante o melodie
    • ISR(USART0_RX_vect) - tratarea intreruperii primita pe interfata seriala pe pinul RX
  • notes.h
    • contine notele pentru cele 4 melodii disponibile: octave, Fur Elise, Startwars soundtrack si Jude.\

Rezultate Obţinute

  • Am obtinut un device prin care poti sa iti identifici obiectele pierdute. Poate fi pornit prin Bluetooth de la o distanta de 15-20m si produce un zgomit suficient de puternic cat sa fie auzit chiar daca se afla in ghiozdan/geanta.
  • Pe langa posibilitatea identificarii obiectelor pierdute, dispozitivul poate folosi buzzerul pentru a canta anumite melodii.

Concluzii

A fost un proiect interesant, diferit de temele obisnuite facute in facultate. Intotdeauna am considerat ca nu ma atrage partea hardware, dar pot spune ca mi-a placut sa ma ocup de acest proiect de la zero. A fost un proces interesant de la alegerea componentelor si lipitul lor pe placa, pana la configurarea software-ului.

bicanandreeasanziana_333cc.zip

Download

Va urma!

Jurnal

12.04 - Am stabilit tema proiectului impreuna cu indrumatorul de proiect, Ana Aldeescu.

19.04 - Am inceput sa lipesc piesele pe placa de baza.

28.04 - Am finalizat placa de baza si am realizat schema bloc a proiectului.

30.04 - Am cumparat piesele necesare.

03.05 - Am realizat montajul pieselor.

10.05 - Am configurat modulul Bluetooth si am folosit aplicatia pentru Android “Bluetooth Terminal HC-05” pentru a trimite comenzi catre placuta.

11.05 - Am configurat buzzerul sa porneasca atunci cand primeste un caracter pe interfata seriala. Codul tinea microprocesorul ocupat tot timpul in asteptarea unui caracter si nu putea fi folosit pentru alte operatii.

  1. Buzzerul l-am legat la pinul PD4 al placutei.

Codul arata atfel:

    char c;
    
    for(;;)
    {
        c = USART0_receive();

        if (c >= 'a' && c <= 'z')
        {
            int i;
            
            for(i = 0; i <= 100.; i++) {
                PORTD ^= (1 << PD5);
                _delay_ms(1);
             }
        }
    }

19.05 - Am configurat o intrerupere pe pinul RX al interfetei seriale astfel incat buzzerul sa porneasca doar atunci cand este primit un caracter pe interfata seriala.

20.05 - Am adaugat un modul Buzzer pe pinul PD5 pentru a creste intensitetea sunetului.

23.05 - Am configurat buzzerul pasiv sa cante anumite melodii in functie de caracterul trimis de pe telefon. Frecventele notelor melodiilor se gasesc in fisierul notes.h. Acum dispozitivul poate fi folosit si pentru a identifica obiecte pierdute prin activarea unui sunet puternic sau poate fi folosit pentru ascultarea unor melodii: Fur Elise, octave sau Starwars soundtrack.

Bibliografie/Resurse

Resurse hardware

Resurse software

  • Documentația în format PDF
pm/prj2017/aaldescu/987654321.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