Proiectul “Papusa Jucausa” are ca scop realizarea unei papusi inteligente, ce interactioneaza cu copilul. Papusa este directionata catre copii, pentru a-i distra si a le crea un prieten de joaca atunci cand sunt singuri.
Apropiindu-se data de 1 iunie, acesta jucarie ar fi un cadou frumos pentru copii. Astfel a pornit ideea realizarii acestui proiect, pentru a inveseli si a distra cat mai mult copiii.
Papusa reactioneze la actiunile copilului. Daca strange mana papusii ea va spune “Hai sa fim prieteni”, iar daca va strange in continuare mana va incepe sa zica o poveste; cand ii va apasa pe nas se va supara si va spune “Ma doare!”; cand va apasa pe burtica va spune “Mi-e foame”.
Papusa va fi din plus si va contine 1 buton la o manuta, 1 buton pe burta, 1 buton pe nas, un difuzor pentru voce si 2 leduri in obraji.
Schema bloc:
Principalele componenete hardware:
Software-ul:
Microcontrollerul ATMega16 pune la dispozitia utilizatorilor sai si o interfata SPI(Serial Peripheral Interface Bus). SPI este un standard sincron dezvoltat de Motorola ce opereaza in mod full-duplex (transferul de date are loc in ambele directii simultan).
SCLK — Serial Clock ( output from master) MOSI/SIMO — Master Output, Slave Input (output from master) MISO/SOMI — Master Input, Slave Output (output from slave) SS — Slave Select (active low; output from master)
Interfata SPI este folosita ca standard de comunicatie in toate cardurile SD si MMC. Toate cardurile SD/MMC 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. Fisierele salvate pe cardul SD sunt de tip fisier WAV, inregistrate cu o rata de 44100Hz si 8 biti pe esantion.
Lista piese:
Denumire | Cantitate | Valoare |
---|---|---|
Microcontroller ATMEGA 16P | 1 | |
CONECTOR JACK Conector mufa adaptor | 1 | |
Condensator neelectrolitic | 2 | 15pF |
Condensator neelectrolitic | 9 | 0,1µF |
Condensator neelectrolitic | 1 | 0,05µF |
Dioda Zener | 4 | |
Condensator electrolitic | 4 | 10µF |
Condensator electrolitic | 1 | 100µF |
Condensator electrolitic | 1 | 250µF |
LED 5mm Rosu | 4 | |
DIL16 MAX232 | 1 | |
TO-220 7805CT | 1 | |
Quartz 16MHz | 1 | |
Rezistenta | 2 | 10K |
Rezistenta | 2 | 8K |
Rezistenta | 1 | 15K |
Rezistenta | 2 | 1K |
Rezistenta | 2 | 4,7K |
Rezistenta | 2 | 2,2K |
Rezistenta | 2 | 100R |
Dioda 1N4148 | 1 | |
Amplificator Operational LM386 | 1 | |
Difuzor | 1 | 8ohm |
Soclu card SD | 1 | |
Card SD | 1 | |
Butoane | 5 | |
Soclu Microcontroler | 1 | |
Placa Test | 2 | |
Conector USB B | 1 |
Scheme electrice:
1) Schema placutei cu microcontroller si card SD:
2) Schema butoane, leduri
3) Schema difuzor
Software-ul proiectului acceseaza fisiere ”*.wav” de pe cardul SD si le reda pe un difuzor. In momentul in care este redata o melodie ledurile (obrajii papusii) se vor aprinde.
Codul aplicatiei cuprinde trei fisiere sursa importante:
Librarii si headere incluse:
pff.h - defineste sistemul de fisiere de pe cardul SD
#ifndef _FATFS #define _FATFS #define _USE_READ 1 /* pf_read(): 0:Remove ,1:Enable */ #define _USE_DIR 1 /* pf_opendir() and pf_readdir(): 0:Remove ,1:Enable */ #define _USE_LSEEK 1 /* pf_lseek(): 0:Remove ,1:Enable */ #define _USE_WRITE 1 /* pf_write(): 0:Remove ,1:Enable */ #define _FS_FAT32 1 /* 0:Supports FAT12/16 only, 1:Enable FAT32 supprt */ #define _CODE_PAGE 1 #define _WORD_ACCESS 1 #if _FS_FAT32 #define CLUST DWORD #else #define CLUST WORD #endif
diskio.h
#ifndef _DISKIO #include "integer.h" #include "pff.h" #include "diskio.h"
1) Datasheet microcontroller ATMEGA16 : http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf
2) Laboratoare PM : http://elf.cs.pub.ro/pm/wiki/lab/lab3 , http://elf.cs.pub.ro/pm/wiki/lab/lab4