Susan

The Robot Plant

Catrina Mihaela-Florentina - 333CB

Contact: catrina.mihaela20@gmail.com

Introducere

Susan e un mini-robotel inteligent in forma unui ghiveci decorativ, care interactioneaza prin cativa senzori. Susan se ocupa de o mica planta dintr-un bol, notificand utilizatorul in legatura cu umiditatea din sol, temperatura si luminozitatea. De asemenea, Susan are rol decorativ, avand capacitatea de a reda diferite melodii prin intermediul unui difuzor. Difuzorul va fi folosit si pentru notificari vocale. Susan va avea atasate 2 matrici de led-uri (8×8) (jocurile de lumini vor fi dependente de muzica → TODO for the future: Spectrum Analyser).

Descriere Generala

Play WAV Audio Files

Pentru a reda sunete de pe un card microSD folosind Atmega324, Susan are nevoie de fisiere audio in format .wav. Astfel, se va folosi un card microSD cu fisere audio .wav. De asemenea, este necesara integrarea unui modul slot card compatibil cu MicroSD.

Multi Sensors

Senzor de umiditate a solului - format din 2 părți componente: circuitul PCB ce conține comparatorul și partea care se înfige în pământ. Dintii senzorului vor detecta umiditatea din sol prin trecerea curentului prin sol si masurarea rezistentei acestuia. Solul umed conduce electricitatea usor, avand rezistenta mica, in timp ce cel uscat conduce prost si va avea o rezistenta mare.

Senzor de lumina ambientala (phototransistor) - folosit pentru a masura luminozitatea in zona in care se afla ghiveciul.

Senzor de temperatura/umiditate - Folosit pentru masurarea temperaturii/umiditatii din incapere.

Senzor de miscare - Senzorul infraroșu HC-SR501, folosit pentru a detecta prezența oamenilor. Acest senzor va fi folosit pentru a notifica persoana din incapere cu privire la starea plantei. (:!: prioritate scazuta momentan)

:!: Este posibil sa mai fie adaugati senzori pe parcurs / sa nu fie integrati conform specificatiilor initiale. Susan se doreste a fi un proiect complex din care sper sa reusesc sa dezvolt cat mai mult pentru PM.

Sound Reactive Lights

Proiectul va integra 2 matrici de led-uri. In scop decorativ se vor aduga jocuri de lumini (sound responsive - prioritate scazuta).

Hardware Design

Componente:

Nume Descriere
PCB PM2019
Componente de baza Componentele de baza pentru PCB
Modul Slot Card Compatibil cu MicroSD https://www.optimusdigital.ro/ro/memorii/1516-modul-slot-card-microsd.html?search_query=0104110000011817&results=1
Modul Senzor de Lumină Ambientală TEMT6000 https://www.optimusdigital.ro/ro/senzori-senzori-optici/750-modul-senzor-de-lumina-ambientala-temt6000.html?search_query=Modul+Senzor+de+Lumina+Ambientala+TEMT6000&results=2
Modul cu Senzor de umiditate a solului https://www.optimusdigital.ro/ro/senzori-senzori-de-umiditate/73-senzor-de-umiditate-a-solului.html?search_query=Modul+cu+Senzor+de+umiditate+a+solului&results=1
Modul Senzor de Temperatură DHT11 cu LED https://www.optimusdigital.ro/ro/senzori-senzori-de-temperatura/4762-modul-senzor-de-temperatura-dht11-cu-led.html?search_query=0104110000036803&results=1
2 module cu Matrice de LED-uri MAX7219 https://www.optimusdigital.ro/ro/optoelectronice-matrice-de-led-uri/118-modul-cu-matrice-de-led-uri-max7219.html?search_query=0104110000000477&results=1
Modul Mini Amplificator in Clasa D Stereo PAM8403 de 3 W https://www.optimusdigital.ro/ro/audio-amplificatoare-audio/614-modul-mini-amplificator-pam8403-in-clasa-d-stereo-3-w.html?search_query=0104110000003737&results=1
Difuzor de 1 W https://www.optimusdigital.ro/ro/audio-difuzoare/2147-difuzor-de-1-w.html?search_query=0104110000020659&results=1
Modul Senzor PIR HC-SR501 https://www.optimusdigital.ro/ro/senzori-senzori-pir/106-modul-senzor-pir-hc-sr501.html?search_query=0104110000000132&results=1
Modul LCD 1602 cu backlight albastru de 5 V https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/94-modul-lcd-1602-cu-backlight-albastru-de-5-v.html
Alte componente Fire, rezistente, butoane, breadboard generic, placa de test

Schema bloc:

catrinamihaela_schemabloc.jpg

Schema electrica

Spre deosebire de aceasta schema la momentul implementarii hardware amplificatorul audio a fost conectat la o sursa externa de tensiune, deorece era mult prea demanding pentru a fi conectat impreuna cu LCD-ul, senzorii si matricile de LED-uri.

Software Design

Mediul de dezvoltare utilizat:

  • Viual Studio Code pentru scrierea secventelor de cod
  • Eagle pentru realizarea schemei electrice
  • HIDBootFlash pentru incarcarea codului pe placa


Resurse folosite:

DHTxx - https://github.com/Jacajack/avr-dhtxx - am folosit biblioteca pentru citirea datelor de la senzorul de temperatura si umiditate. API-ul returneaza 2 numere intregi care semnifica cei doi parametrii masurati, inmultiti cu 10 (o precizie de o zecimala).

lcd - Laboratorul 1: USART, LCD - am folosit biblioteca pentru afisarea parametrilor veniti de la senzori pe un LCD 16×2

MAX7219 Datasheet - https://www.sparkfun.com/datasheets/Components/General/COM-09622-MAX7219-MAX7221.pdf

Functii auxiliare MAX7219: https://gist.github.com/adnbr/2352797

Descriere implementare:

Initial sistemul se afla intr-o stare neutra. Primul pas este montarea unui mini sistem de fisiere (corespunzator cardului microSD).

/* Initializare Petit FatFs. Sistemul va fi infunctional daca initializarea nu returneaza succes.*/
	for(;;)
	{		
	    if(pf_mount(&fs) != FR_OK)
		{
			_delay_ms(1000);
			continue;
		} else {
			break;
		}
	}

Dupa initializarea sistemului de fisiere(pFAT) utilizatorul este intampinat cu mesajul vocal “Hello, world!”. Se va verifica apoi prezenta unei persoane in incapere. In momentul in care senzorul PIR este in starea HIGH (detecteaza prezenta) persoana aflata in incapere va fi notificata vocal in legatura cu starea plantei. Senzorul are setata senzitivitatea la 7m si time delay-ul la ~40s pentru a nu face trigger mult prea des.

Senzorii (lumina/dht11/umiditate_sol) preiau date si in mometul in care nu este detectata miscare. Aceste date sunt afisate pe LCD, singura diferenta fiind lipsa mesajelor vocale.

Toate mesajele vocale sunt stocate pe un card microSD sub forma unor fisiere .wav si redate prin SPI.

Rezultate obtinute

Proiectul este functional. Toate partile au fost implementate. Am incercat sa implementez si FFT pe matricile de LED-uri pentru mesajele vocale, insa am ajuns la concluzia ca este destul de intensive pentru procesor si mult prea demanding ca si memorie (nu am avut posibilitatea de a retine un numar suficient de mare de coeficienti pentru implementare). Rezultatul final este o parte din proiectul complex pe care mi-l doresc.

Demo: q3NF6uRwjWs


catrina_mihaela_rezultat.jpg mihaela_catrina_back.jpg

Download

Concluzii

  • Proiectul a fost interesant, desi dificil de realizat. Ceea ce mi-a lipsit cel mai tare a fost timpul pentru ca, la un moment dat, am ajuns la concluzia ca laboratoarele nu te pregatesc suficient pentru a putea implementa cu usurinta un astfel de proiect, ai nevoie de mult timp dedicat doar documentarii.
  • Ce realizezi prima data (cand faci partea hardware) este cat de putin te-a pregatit facultatea in ceea ce priveste electonica. De la conectarea perifericelor pana la setarea pinilor din program, toate mi-au pus la incercare abilitatea de a face legaturi simple intre hardware si software pentru a obtine, in final, functionalitati mai complexe. Cred ca e prima data cand m-am simtit ca un adevarat inginer.
  • Cred ca acest proiect m-a pregatit si pentru viata. Am folosit pentru prima dată în viața mea un letcon, m-am ars și tăiat la degete de atât de multe ori încât poate ar trebui să fac secțiune specială cu rănile suferite m(.

În final, aș vrea să le mulțumesc prietenilor că m-au ajutat și suportat pe parcusul acestor zile cât am lucrat la proiect, și părinților pentru susținerea financiară fără de care realizarea proiectului nu ar fi fost posibilă, și pentru sprijinul moral oferit când Susan a decis să se descompuna.

Documentatia in format PDF

pm/prj2019/apredescu/mc2004.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