Sabina-Maria BĂTRÂNU - Jucarie interactiva

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Ideea din spatele proiectului este crearea unei jucarii care sa interactioneze cu copii.Jucaria va fi ghidata de inteligenta artificiala pentru a da impresia ca reactioneaza in concordanta cu o suita de actiuni intreprinse de copil. Prin urmare, va reactiona in functie de context. De exemplu, va zice “Salut, ce mai faci?” cand copilul o apasa pe maini, dar nu va mai saluta inca o data daca copilul repeta imediat actiunea respectiva.

Scopul proiectului este de a creea o jucarie care sa fie capabila de a tine companie unui copil si de a-i oferi idei pentru a-si petrece timpul liber. Jucaria este centrata pe activitatile principale intreprinse de un copil : dormit, mancat, desenat, cantat, povestit. In jurul acestor teme ea va construi o conversatie cu copilul, invitandu-l la diferite actiuni si laudand rezultatul lor. Desi nu este capabila sa recunoasca stimuli vizuali, ea ii zice copilului sa o apese pe labuta dreapta in momentul cand ii arata rezultatul unei activitati. Jucaria reactioneaza la apsare, iar copilul va crede ca a reactionat la ceea ce el ii arata.

Ideea de la care am pornit a fost de a creea o inteligenta artificiala pe suport hardware. Desi in faza predarii de proiect nu am avut o jucarie indeajuns de spatioasa pentru a include intregul ansamblu electronic, am inclus dispozitievle de I/O, respectiv butoanele si ledurile.

Descriere generală

Componente Hardware:

  • placuta ce contine microprocesorul;
  • montajul pentru difuzor;
  • montajul pentrucardul SD.

1.Montajul pentru SDcard:

Mocroprocesorul se leaga cu cardul SD printr-un mecanism de Master-Slave in standardul Serial Peripheral Interface Bus (SPI). Fisierele sunt de tip .wav, inregistrate cu un bitrate de 176 kbps, adica un sampling rate de 22050 HZ, un bit resolution de 8 biti si un singur canal (mono). Pentru a reda corect un astfel de fisier trbuie utilizate :

  • un timer care sa genereze o intrerupere pentru bitrate-ul respectiv
  • un timer configurat in modul PWN cu rezolutia de 8 biti utilizat pentru tratarea intrruperilor generate de primul timer, tratare care se ocupa cu citirea a cate 8 biti din fisier

Pinii la care se leaga montajul pentru SD card sunt PB4 - PB7. Acestia constituie intrarea pentru:

  • SS (slave select, activat pe 0 logic);
  • MISO (master input, slave output);
  • SISO (slave input, master output);
  • SCK (slave clock)

pini.jpg Imagine preluata din datasheet-ul pus la dispozitie in laborator

S-a ales utilizarea mecanismului de SPI pentru ca acesta este cel mai eficient cand vine vorba de legaturile unu la unu intre master si slave.

Imagine din laboratorul 6 Montajul pentru difuzor se leaga de mocroprocesor ascultand pentru input la portul PD5 (pinul OC1A). De aici se poate regla volumul. Alimentarea placutei se realizeaza prin cablul USB. Interactiunea se realizeaza prin leduri si butoane legate la porturile PA2- PA7.

Schema bloc:

hardware.jpg

Software:

  • S-au utilizat doua timere dupa cum am descris anterior pentru a citi de pe sdcard si a transfera la difuzor cate un byte de informatie
  • S-a utilizat api-ul pentru FAT16 pus la dispozitie pe site-ul de pm, respectiv Petit FAT
  • S-au activat pinii corespunzatori de input si output
  • S-a construit un automat de 31 de stari, fiecare tarnzitie fiind afectata de o apasare de buton.

Hardware Design

Componente si conectare:

1. Butoane:

Lista componente:

Componenta Cantitate
push button KRS1243 4
rezistenta 10Kohmi4

Lista componente:

2. Leduri:

Componenta Cantitate
led rosu 5 mm 2
rezistenta 560 ohmi 2

Schema butoane si leduri:

Rezultate:

3. Montaj SDcard:

Componente:

Componenta Cantitate
soclu SDcard 1
dioda 1N4007 2
rezistenta 1K6 ohmi3
rezistența 3K3 ohmi 3

Schema:

Rezultate:

4.Montaj difuzor:

Componente:

ComponentaCantitate
difuzor 32 ohmi 1
amplificator audio LM386 1
condensator electrolitic 330MF 1
condensator ceramic 47NF 1
condensator electrolitic 100uF 1
rezistenta 10 ohmi 1

Schema:

Rezultate:

Montajul final:

Software Design

Proiectul, isi propune, prin software sa acceseze fisiere ”.wav” de pe cardul SD si redarea lor pe un difuzor de 8 ohm. Fisierele sunt redate in conformitate cu un automat finit de stari.

Codul aplicatiei cuprinde trei fisiere:

  • Fisierul sursa pff.c - acesta utilizeaza PetitFAT pentru a deschide un fileSystem de pe un sdcard formatat FAT16 si a citi informatiile byte c byte din fisierele din acest sistem de fisiere cu posibilitatea parcurgerii recursive a fisierului respectiv
  • Fisierul sursa mmc.c - in acest fisier sunt implementate functii care vor face comunicarea efectiva cu cardul SD. Aici este descris si portul pe care se va face conectarea SDcard-ului, in cazul de fata PORTB si pinul de slave select, adica PB4
  • Fisierul sursa main.c - aici se descrie legatura cu pinii portului A utilizati pentru comunicarea cu ledurile si butoanele, precum si legarea difuzoruli la portul D si a sdcard-ului la portul B. Tot aici se construieste si utilizeaza un automat dde 31 de stari separate prin care trece papusa in timpul interactiunii cu copilul. Trecerea dintre stari se face prin apasarea anumitor butoane.

In ceea ce priveste automatul de stari, papusa incepe din starea adormit si asteapta interactiunea cu copilul prin apasarea oricarui buton. In momentul in care este trezita, ii ofera copilului informatii despre modul de comunicare cu ea, daca acesta este de acord. Apoi trece mai departe la a stabili in ce moment al zilei se afla. Apoi propune diferite activitati copilului, in functie de momentul zilei si de acordul /dezacordul copilului.

Printre activitati se numara desenatul, cantecul sau povestirea. In caz de desen, jucaria se ofera ca model, si se imbujoreaza in caz ca interlocutorul este de acord (ledurile se aprind). Apoi evalueaza desenul si trece la a propune o alta activitate. In caz de cantec, se ofera sa cante ea prima, si apoi ii cedeaza locul copilului sfarsind prin a-l felicita pentru performanta. Copilul poate sau nu sa aprecieze performanta jucariei. In caz ca nu-i place ceea ce a cantat jucaria, aceasta se resemneaza.

In ceea ce priveste povestirea, jucaria ii cere copilului sa ii nareze o poveste si in functie de alegerea acestuia isi exprima opinia, apoi se culca. Ea poate fi trezita iarasi prin apasarea oricarui buton. De aceasta data va sari peste parte introductiva, fiind memorat faptul ca s-a prezentat o data. Toate aceste stari se parcurg prin apasarea manutei drepte (pentru da) sau stangi(pentru nu).

In orice stare s-ar afla, exista un subarbore care poate fi accesat prin apasarea butonului din burtica, prin care jucaria va semnala foamea. Ea asteapta acordul copilului sa manance si isi exprima curiozitatea si aprecierea fata de mancara. Apoi trece automat in starea din subarborele principal unde ramasese

Un alt subarbore secundar este accesat prin apasarea piciorului drep. Acesta va declansa replici de ras simuland faptul ca jucaria se gadila. La incetarea apasarii acelui buton se va reveni in starea din care s-a iesit initial

Mediul de dezvoltare folosit: AVR Studio si WinAVR.

Rezultate Obţinute

Puteti vizualiza rezultatele aici

Concluzii

Jucaria interactiva este un proiect ce poate fi dezvoltat pe diverse teme avand un puternic impact educational asupra copiilor. Implementarea actuala poate fi dezvoltata in vederea realizarii unui dialog mult mai amplu si pentru a ajuta copii sa se dezvolte pe plan creativ si psihologic, oferind totodata si iluzia de companie pentru copilul respectiv.

Download

Jurnal

  • martie 2013: corodarea + lipirea componentelor pe plăcuța de bază
  • aprilie-mai 2013: căutarea componentelor necesare
  • mai 2013:
    • lipirea componentelor pe plăcuța cu difuzorul și conectarea ei la plăcuța de bază
    • lipirea butoanelor pe plăcuța de bază
    • lipirea componentelor pe plăcuța cu soclul SD și conectarea ei la plăcuța de bază
    • lipirea LED-urilor pe plăcuța de bază

⇒ars degete si par la greu

  • intocmire automat de stari
  • debug hardware (refacere montaj difuzor, relipire fire razlete)
  • scris cod pentru testare functionalitati : comunicarea cu ledurile, butoanele, difuzorul si sdcard-ul
  • sdcard-ul initial, un mini-sdhc cu adaptor era incompatibil cu PetitFat -ul chair si dupa formatarea la FAT16
  • obtinere cad sd de la laborator + testare cod pe clip-urile existente pe acel card (clipuri de anuntare ora curenta)
  • ultimele cateva zile inainte de prezentare:
  • scris cod pentru diagrama de stari, testare (nervi,nervi,nervi)
  • inregistrare voce in format wma si apoi convertire in format wav cu stabilirea unui bitrate de 176kbps, cu rata de conversie de 22050 kHz si 8 biti, pe mono
  • debug
  • stuffing that poor doll + fimulet si poze (cu camera de la laptop 8-O)

Bibliografie/Resurse

pm/prj2013/amocanu/batranu-sabina-maria-jucarie-interactiva.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