This is an old revision of the document!


Cactus Dansator

Nume: Nicolete Ștefania Liliana
Grupa: 332CB

Introducere

O jucarie in forma de cactus ce danseaza daca recepteaza un sunet peste nivelul normal. Poate fi oprit si pornit inapoi prin apasarea unui buton.

Descriere generală

Apasam butonul pentru a porni sistemul. Dupa aceea, senzorul de sunet va incepe sa asculte si va trimite datele catre Arduino. La detectarea unui sunet peste limita stabilita, acesta va declansa miscarea servomotoarelor si aprinderea LEDurilor. La incetarea sunetului, motoarele si LEDURILE se opresc. O a doua apasare a butonului va opri ascultarea.

Hardware Design

Lista componente:

  • Placă dezvoltare compatibilă Arduino Uno R3 ATmega328P
  • Modul Senzor Sunet LM393
  • Motor Servo SG90 x2
  • Becuri LED + rezistențe x3
  • Condensator 100nF
  • Push button

Proiectul nu foloseste breadboard, si din aceasta cauza nu se pop observa usor cablajele si maparea pinilor. Atasez o poza a simularii pentru simplitate (bateria este omisa in simulare).

Software Design

Codul a fost scris folosind simulatorul Tinkercad si apoi IDE-ul Arduino. Nu a fost folosita nicio sursa externa. Toate functionalitatile se bazeaza pe elementele integrate in microprocesorul Atmega328P - GPIO, intreruperi, timere si PWM.

Placa se afla in modul power down pana este trezita de intreruperea INT0 ce provine de la butonul conectat la pinul PD2. In cadrul intreruperii, se aprinde led-ul ce semnifica trezirea si activeaza intruperea PCINT0. In acest moment, placa poate asculta senzorul de sunet digital conectat la pinul PB0, care va genera intreruperi PCINT0. In cadrul intreruperii se vor activa timerele:

  • timer 0 (PWM pentru led-urile ce formeaza ochii cactusului)
  • timer 1 (PWM pentru servomotoare)
  • timer 2 (cronometreaza dansul)

De asemenea, se opreste ascultarea (prin ignorarea intreruperii PCINT0) si se seteaza variabilele globale ce permit dansul si flicarul led-urilor. Cu aceste variabile setate, codul din functia loop poate fi atins si permite dansul prin modificarea registrelor de PWM. Dupa ce aproximativ doua secunde au trecut (cronometrate prin numararea intreruperilor timer 2), se vor seta pe 0 variabilele si se va reactiva ascultarea. Cactusul va dansa aparent continuu daca sunetul este mentinut mai mult de 2 secunde si se vaopri daca dupa 2 secunde nu mai recepteaza sunet. In orice moment, apasarea butonului va opri activitatea.

Rezultate Obţinute

Proiectul atinge toate obiectivele initiale, mai putin invelisul extern.

Un demo poate fi vazut la urmatorul link: https://www.youtube.com/shorts/ygamk05pvnQ

20220529_160144.jpg 20220529_151250.jpg 20220529_151240.jpg 20220529_151216.jpg

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/abirlica/cactus_dansator.1653925974.txt.gz · Last modified: 2022/05/30 18:52 by stefania.nicolete
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