Table of Contents

Nume proiect

"Play with me" - Interactive Toy

Introducere

Jucariile frumoase sunt paradisul oricarui copil. Ele il ajuta sa isi dezvolte inteligenta si sa dezvolte aptitudini linvgistice si cognitive. Orice copil este curios si trebuie sa atinga, sa se uite la ceea ce il inconjoara, pentru a descoperii lumea din jurul sau. In acest scop, au aparut jucariile interactive.

Spre deosebire de jucariile conventionale, jucariile interactive contin microcipuri care le permit sa raspunda la anumiti stimuli. Ele pot furniza modele bune, spre exemplu, pot invata un copil cum sa fie politicos sau cum sa interactioneze cu alte persoane.

Proiectul de fata isi propune tocmai realizarea unei astfel de jucarii interactive care prin apasarea unor butoane si efectuarea unor actiunni cum ar fi aceea de a lua papusa in brate sau a o culca, sa atraga atentia copiilor si sa ii incante. Papusa “Talk to me”, care vorbeste conform cu ceea ce ii se intampla, ate scopul de a ghida utilizatorul in producerea unor evenimente, oferindu-i posibilitatea de a evolua.

Descriere generală

La finalul acestui proiect se urmareste realizarea unei jucarii ce va putea sa interactioneze cu utilizatorul. Acest lucru este realizat prin hardware cat si prin software.

Hardware-ul cuprinde trei parti importante :

Software-ul permite:


Detalii privind conectarea si functionarea componentelor folosite:

Microprocesorul - este cel care interconecteaza toate partile de baza ale proiectului. Comunicarea acestuia cu cardul SD se realizeaza prin standardul Serial Peripheral Interface Bus (SPI). Fisierele salvate pe cardul SD sunt de tip fisier WAV care a fost inregistrat cu o rata de 44100Hz si 8 biti pe esantion, MONO. Pentru a-l reda corect trebuie sa avem un timer care sa genereze o intrerupere cu frecventa de 44100Hz. In fiecare intrerupere trebuie sa citim un sample din fisier (un octet) si sa-l punem pe iesirea unui al doilea timer care a fost configurat in modul PWM cu rezolutia de 8 biti.

   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)

Vocea papusii va fi redata cu ajutorul unui difuzor conectat la pinul OC1A al microprocesorului.
Alimentarea placutei se va realiza prin cablul USB.

Schema bloc

Pentru ca utilizatorul sa poata interactiona cu papusa, am conectat trei butoane fiecare pe cate un pin al microprocesorului. Acestea la apasare vor activa diferite dialoguri, iar acestea vor ghida utilizatorul in a realiza alte actiuni pe care papusa le va cere in vederea evolutiei acesteia. De fiecare data cand papusa vorbeste, canta, este luata in brate sau doarme i se vor aprinde obrajii reprezentati de doua leduri conectate pe doi pini ai microprocesorului. Actiune de a dormi sau da a fi luata in brate este detactata prin compararea tensiunii generate de accelerometru cu o tensiune de referinta din microprocesor.

Proiectul reprezinta o papusa cu personalitate, intrucat pe parcursul jocului papusa va cere utilizatorului anumite actiuni din partea acestuia, iar daca utilizatorul nu respecta ceea ce i sa cerut, papusa se va supara sau refuza sa vorbeasca.

Ideea jocului este de invata copilul sa comunice, sa urmeze niște pași firesti intr-o convorbire. Pentru a ajunge la finalul jocului el trebuie sa urmeze calea corecta, cea pe care îl va direcționa păpușa. Sfârșitul este atins in momentul in care copilul va reusi sa se imprieteneasca cu păpușica.

Hardware Design

Lista de 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
Potentiometru 1 10K
Tasta PUSHBUTTON 4
TO92 BC547C 1
Soclu Microcontroler 1
Placa Test 2
Conector USB B Cvilux 1
Cablu UTP 1 4 metri
Amplificator Operational LM386 1
Difuzor 1 8ohm
Soclu card SD 1
Card SD 1



Scheme folosite pentru realizarea proiectului:

  1. schema pentru realizarea placutei de baza (Etapa I):





  2. Schema montaj difuzor






  3. Schema montaj accelerometru





  4. Schema montaj butoane, leduri





Rezultatele obtinute:

  1. schema pentru realizarea placutei de baza (Etapa I):





  2. Schema montaj difuzor






  3. Schema montaj accelerometru





  4. Schema montaj card SD





  5. Rezultat final





Software Design

Proiectul, isi propune, prin software sa acceseze dialoguri (fisiere ”.wav”) de pe cardul SD si redarea lor pe un difuzor de 8 ohm. In momentul in care este redata o melodie ledurile (obrajii papusii) se vor aprinde creand senzatia de real, senzatia de reactie din partea papusii.

Codul aplicatiei cuprinde trei fisiere sursa importante, headere si librarii importate.

Fisierul sursa pff.c Aici sunt implementate functii care vor umple memoria cu octeti, compara din memorie, citeste sistemul de fisiere de pe cardul SD, gaseste directorul si respectiv fisierul la care se face referinta, scrie si citeste in fisier dorit.

Librarii si headere incluse:

pff.h - defineste sistemul de fisiere de pe cardul SD

       #include "integer.h"
       #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"		

Fisierul sursa mmc.c In acest fisier sunt implementate functii care vor face comunicarea efectiva cu cardul SD. Setam pinii pentru intrare si iesire conform cu functia pe care o indeplineste microcontrollerul, si anume de master, iar cardul SD pe cea de slave.

Librarii si headere incluse:

      #include <avr/io.h>
      #include "diskio.h"
      

Fisierul sursa main.c main.c cuprinde functiile ce vor apela mmc.c si pff.c. Tot aici detectam daca a fost apasat un buton sau daca papusa a fost miscata. Pentru a putea lucara cu accelerometrul trebuie sa initializam ADC : registrele ADMUX, SFIOR, ADCSRA. Avem doua timere care genereaza intreruperi pentru citirea de pe card. Ideea pe care am urmat-o pentru a implementa redarea unei melodii anume in momentul in care este actionat un buton sau accelerometrul este inclinat, este aceea a parcurgerii melodiilor pana la gasirea celei dorite , insa daca am trecut de ea counter-ul se va reseta si va porni iar.

Librarii si headere incluse:

      
     #define F_CPU 16000000
     #include <avr/io.h>
     #include <avr/interrupt.h>
     #include <util/delay.h>
     #include <avr/sleep.h>
     #include <avr/wdt.h>
     #include <string.h>
     #include <stdio.h>
     #include "diskio.h"
     #include "pff.h"
     

Mediul de dezvoltare folosit: AVR Studio si WinAVR.

Rezultate Obţinute

http://www.youtube.com/watch?v=pN_o7NJS7tY

Concluzii

Pe masura ce copilul dumneavoastra incepe sa creasca, tipul jucariilor pe care le ca dori tinde sa se schimbe si sa devina mai provocatoare. Uneori poate fi dificil sa gasesti un echilibru intre nevoia copilului de a se distra si nevoia de a-i oferi o educatie si o dezvoltare sociala cat mai bune.

Aceasta jucarie este un proiect ce poate fi folosit cu usurinta in scopuri educationale, pentru copii, pentru a le insufla un spirit de responsabilitate si a ii inveseli. Varianta prezentata poate fi dezvoltata pe viitor pentru a asigura o interactiune mai ampla cu copii sau o comunicatie focalizata pe un proiect educational din care sa poata invata lucruri legate de comporatmentul pe care trebuie sa il desfasoare in anumite situatii.

Download

Jurnal

Etape in realizarea proiectului:

Imprimarea cablaului pentru montaj si realizarea placutei de baza, ce contine microcontrollerul, stabilizatorul de tensiune, alimentarile, USB, seriala si elementele componente ce ajuta la interconectare.

Conectarea pe placuta realizata anterior a slotului pentru card-ul SD.

Realizarea placutei pentru functionarea difuzorului (conectarea acesteia pe pinii PBn si PDn ai microcontrollerului).

Realizarea placutei pentru functionarea acceromerului (conectarea acesteia pa pinii PAn ai microcontrollerului).

Aranjarea dispozitivelor pe un anumalut de plus, intr-un mod cat mai placut si mai ingenios.

Bibliografie/Resurse

Pentru realizarea proiectului am folosit urmatoarea documentatie:

  1. Datasheet microcontroller ATMEGA16 : http://www.datasheetcatalog.org/datasheet/atmel/2466S.pdf
  2. Ordered List ItemDatasheet amplificator LM386 : http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/6/LM386.pdf

http://elf.cs.pub.ro/pm/wiki/lab/lab4.