PROIECTE 2011
Proiectele realizate in cadrul Laboratorului de SMP, 2011, le gasiti mai jos, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului sau capitolele existente.
Punctaj Proiect
-
2p Pagina Wiki in format HTML cu capitolele create - poze(diferite stadii ale proiectului) + schema hardware + listing software (microcontroller + OpenWatcom la Z3)
-
5p Functionalitate proiect - punctaj in functie de cerintele cerute/realizate
-
1p Calitatea proiectului - cat de organizati ati fost in realizarea acestuia, cod format frumos, optimizari etc...
-
2p Nota individuala - participarea voastra in proiect, raspunsul vostru la intrebarile laborantului la presentarea proiectului
Cerinte general valabile:
- Toate proiectele se vor integra software si/sau hardware cu placa EV/Z3. Pentru integrarea hardware se va folosi portul serial al placii EV/Z3
- Logica software de baza se va regasi pe placa EV/Z3 si va fi realizata în C + inline assembly folosind template-ul OpenWatcom de la laborator
- Pagina de wiki trebuie sa contina o descriere a ce a realizat fiecare student in cadrul proiectului
- Daca nu puneti pe site alta schema de proiectare hardware se va folosi cea cu PIC16F628A pusa la dispozitie
- Wiki-ul trebuie updat ca sa vad stadii intermediare ale proiectului
Elemente de electronica
-
Pentru a vedea/comanda un pret estimativ a componentelor va propun www.conexelectronic.ro . Mi-a fost recomandat si mie de ceilalti laboranti.
-
Pentru conectarea la porturile de I/O trebuie sa izolati galvanic folosind optocuploare, ex LTV817 - puteti sa cautati pe site, si rezistente sa limiteze curentul maxim la 5mA U=R*I si trebuie avut in vedere ca rezistentele sa reziste la puterea la care e proiectat circuitul P=U*I...
-
Pentru alte elemente elecronice puteti folosi diode 1N4007, tranzistori BD139/140 de putere mare. Binenteles ca nu sunteti limitati la folosirea acestora, e doar o propunere.
-
Letconul ar trebui sa aiba cam 40W , nu mai mult de 60 oricum , iar fludorul la 1mm-1.5mm. Sa aveti si un voltmetru cu voi.
-
Va recomand inainte sa alegeti proiectul sa cititi cateva elemente de electronica de AICI.
2011_P1
(Restore this version)
Modified: 6 April 2010, 7:01 PM User: Cristian Natalia → CN
PROJECT NAME
Project Description
Proiectul nostru presupune implementarea unui ceas digital pe placa EV/Z3.
Acest ceas digital va avea urmatoarele functionalitati:
- afisare ora
- afisare data
- setare ora
- setare data
- cronometru ce va putea fi pornit si resetat
- alarma
Ceasul va afisa implicit ora exacta (adica ora, minut si secunde), iar pentru a potrivi ora se va apasa tasta "C" a placutei. La prima apasare a tastei "C" va fi posibila modificarea orei, folosind cele doua sagetele (<- si ->).Pentru a seta minutele se va mai apasa o data tasta "C" si, de asemenea se folosesc cele doua sagetele.Pentru a salva se va folosi tasta "B".
Pentru a putea vizualiza data se va apasa tasta "D", iar pentru a o modifica tasta "E". Similar functiei de potrivire a orei, se va apasa tasta "E" inca o data pentru fiecare camp modificat si se vor folosi celor doua sagetele. Astfel se seteaza anul calendaristic, luna si ziua.Pentru a salva data selectata se va folosi tasta "B".
Pentru a intra in functia de cronometru se va folosi tasta "F". La prima apasare a tastei, se va afisa "00:00:00"(min-sec-msec). Pentru a porni cronometrul se mai apasa o data tasta "F"; pentru a-l opri se apasa tasta '1'. Pentru a reseta cronometrul se va folosi tasta "0".
Pentru a intra in functia de alarma, se foloseste tasta "A". Pentru a potrivi ora se va apasa in mod repetat tasta "C" pentru ora,minut si secunde. Salvarea se va face prin inca o apasare a tastei "A".
Project Requirements
Data(yyyy:mm:dd) + Ora (hh:mm:ss) + Cronometru(rezolutie milisecunde) + Alarma
Trebuie sa aveti posibilitatea sa setati Data + Ora curenta. Ma intereseaza cum generati milisecundele la cronometru.
Setare Alarma la o anumita data + ora. Veti folosi buzzerul (10s de beepuri)
User Flow
Proiectul functioneaza implicit pe functia de afisare a ceasului. Pentru a potrivi ceasul, se apasa tasta "C"(in mod repetat pentru a modifica fiecare camp). Pentru a modifica cele trei campuri ale ceasului se folosesc cele doua sagetele(->,<-). Pentru a salva si a putea vizualiza ora se apasa tasta "B".
Pentru a putea vizualiza data se va apasa tasta "D", iar pentru a o modifica tasta "E". Similar functiei de potrivire a orei, se va apasa tasta "E" in mod repetat pentru fiecare camp modificat si se vor folosi celor doua sagetele. Astfel se seteaza anul calendaristic, luna si ziua.Pentru a salva data selectata se va folosi tasta "B".
Pentru a intra in functia de cronometru se va folosi tasta "F". Cronometrarea va incepe la p noua apasare a tastei "F" si ve va opri la apasarea tastei "1". Pentru a reseta cronometrul se va folosi tasta "0".
Pentru a intra in functia de alarma, se foloseste tasta "A". Pentru a potrivi ora se va apasa in mod repetat tasta "C" pentru ora,minut si secunde. Salvarea se va face prin inca o apasare a tastei "A".
Required components
Din platform_io.h am folosit urmatoarele functii:
- DisplayString(const char *) - pentru afisarea sirurilor de caractere pe LCD;
- ReadKey() - pentru a identifica tasta care a fost apasata de catre utilizator;
- StartBuzzer() -functie implementata de studenti pentru pornirea buzzerului placutei, folosind intreruperea 10H;
- Wait(const unsigned int) -pentru a specifica timpul de asteptare inainte de incrementarea milisecundelor, secundelor ,minutelor, etc. De asemenea am folosit functia Wait() si la inceputul main-ului pentru a da timp utilizatorului sa apese tasta caracteristica pentru o anumita functie dorita.
Software Design
Pentru compilarea codului am folosit IDE-ul OpenWatcom. Pentru fiecare functionalitate a ceasului, am implementat o functie separata ce se apeleaza in main, la apasarea unei taste. Implicit, se apeleaza functia de afisare a ceasului.
De asemenea, pentru a putea afisa ora si data a fost necesara conversia campurilor din intreg in sir de caractere, motiv pentru care am implementat si o functie de conversie numita itoa.
Codul este scris in limbajul C si foloseste atat functii din platfom_io.h cat si functii implementate de studenti.
Results
Download
Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.
Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)
Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX
Software design - template-ul Open Watcom folosit
Status
3 mai- implementare functionalitate de afisare ceas si data.
6 mai- implementare functionalitate de potrivire ceas si data.
10 mai- implementare functionalitate cronometru
18 mai- implementare alarma