Ping Pong Ball Thermometer

Nume: Stoica Rares-Tiberiu
Grupa: 331CA

Introducere

Inspirația a venit dintr-un videoclip de pe Tik-Tok în care o persoana ținea cu feonul o minge de ping pong in aer, iar prietenul lui încerca să o nimerească cu o alta minge. M-am gândit din start la această idee, inițial doar să fac mingea să zboare, apoi am mai adaptat câte puțin.

Descriere generală

Voi avea un ventilator de 24V la baza unui tub gradat de dimensiune 40cm. Deasupra tubului va fi un senzor de distanță care va determina poziția mingii față de bază. Senzorul de temperatură va fi poziționat pe cutia de jos, iar temperatura va fi afișată pe un ecran LCD. Mingea va levita, împinsă de ventilator, la o anumită înălțime ce va fi marcată pe tub cu un număr, reprezentând temperatura mediului. Scopul acestui proiect este sa imite un termometru clasic cu mercur, doar că adaptat de un viitor inginer software :-D. În final, temperatura indicată de mingea de ping pong ar trebui să fie aceeași cu cea expusă pe display. În funcție de capacitățile senzorilor, tubul va fi gradat 0-30oC sau 15-30oC.
Update: Din cauză că tubul este făcut aproape perfect pe diametrul mingii, acesta va fi gradat intre 21-25oC. Ce este sub 21oC se va reprezenta cu mingea la baza tubului, iar ce este peste 25oC se va reprezenta cu mingea ținută la partea superioară a acestuia.

Schema bloc

Vizualizare 3D

Am facut o schiță 3D a proiectului fizic:

Hardware design

Voi folosi următoarele componente:

  • Arduino R3 ATmega328P
  • Senzor ultrasonic de distanță
  • Senzor temperatură
  • Ecran LCD
  • Turbină 24V DC
  • Modul ridicare tensiune XL6009
  • Breadboard x 2
  • Modul alimentare priza
  • Fire

Voi avea nevoie să transform tensiunea de 9V de la priză în 24V pentru a putea alimenta ventilatorul. Acest lucru îl voi face cu ajutorul ridicatorului de tensiune mai sus mentionat.

Schemă electrică

Cutia fizică

Software Design

În primul rând, am setat pinii corespunzători senzorilor, LCD-ului si turbinei pentru a putea citi/scrie informația:

  1. Senzor temperatură - INPUT - cu ajutorul bibliotecilor DallasTemperature.h și OneWire.h
  2. Senzor distanță - INPUT - cu ajutorul bibliotecii Ultrasonic.h
  3. LCD - OUTPUT - cu ajutorul bibiliotecii LiquidCrystal_I2C.h
  4. Turbină - OUTPUT - cu ajutorul unui pin PWM de pe placuta Arduino.

Codul este scris experimental pe hardware, am întâmpinat câteva probleme cu diametrul cubului, în sensul că la fluctuații foarte mici ale rotației turbinei, mingea fiind foarte ușoară ori nu se ridica, ori rămânea in vârful tubului. Astfel, am ales să gradez tubul între 21-25 grade.
Senzorul de distanță are rolul de a mări sau micșora viteza turbinei pentru ca bila să se mențină în intervalul corect de temperatură. Am folosit inițial un potențiometru ca să găsesc o dependență temperatură-turație-distanță cu care ulterior am inițializat viteza turbinei în funcție de temperatura la pornirea termometrului.

In funcția loop:

  • Daca este la prima pornire, i se dă motorului o turație mai mare astfel încât mingea să fie in aer.
  • Tot la prima porninre, se dă o turație motorului în funcție de senzorul de temperatură.
  • Odată ce mingea este in aer, cu ajutorul senzorului de distanță, mingea se reglează intre bornele de pe tub.
  • Dacă motorul are anumite limitări la nivel de turații in funcție de temperatura afișată pe lcd.

Programul rulează la infinit, până este scos din priză precum orice alt obiect de design tehnologizat din casă.

Demo

Rezultate obținute

Proiectul depinde de mulți factori care pot influența funcționalitatea acestuia, cum ar fi cantitatea de aer pe care o trage turbina din interiorul cutiei(ex. lcd-ul se desprinde de tavan si turbina are mai mult aer in cutie, capacul nu stă ca în momentul scrierii implemetării). Mi-a plăcut să lucrez la acest proiect, însă am un regret că nu am putut controla mai bine înaltimea mingii(turația motorului), tubul fiind aproape perfect pe diametrul mingii.

Download

Arhiva cu codul: pingpongballthermometer.zip

pm/prj2023/gpatru/58.txt · Last modified: 2023/05/30 15:56 by rares.stoica
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