Planetariu 🪐

Vlad Juja – 331CB

Introducere

Ce face

Proiectul implică construirea unui planetariu fizic care să reproducă mișcarea planetelor în jurul Soarelui, respectând rapoartele reale ale vitezelor de rotație. Utilizatorul va putea configura pozițiile planetelor conform preferințelor sale sau să le sincronizeze cu pozițiile lor actuale și apoi să observe evoluția lor în timp.

Scop și Utilitate

Acest proiect poate deveni un accesoriu fascinant pentru iubitorii de astronomie, oferindu-le posibilitatea de a interacționa direct cu fenomenele cosmice. Pentru aceștia, planetariul poate fi o modalitate captivantă de a explora și înțelege mai bine mișcarea planetelor și relațiile lor în cadrul sistemului solar.

În același timp, planetariul poate fi și o jucărie educativă excelentă pentru copii, oferindu-le oportunitatea de a învăța despre spațiul cosmic într-un mod interactiv și distractiv. Prin observarea și manipularea planetelor în cadrul planetariului, copiii pot dobândi cunoștințe despre astronomie, fizică și matematică într-un mod accesibil și captivant.

Ideea din spatele proiectului

Mă tot gândeam la ce proiect să aleg; auzeam în stânga și-n dreapta roboți, mașini, tot ce-și poate imagina un student.

„Ce aș putea face eu…?”

„Voi face ceva care poate bucura orice copil, inclusiv pe cel din mine!”

„Ce-ți dorești să te faci atunci când vei fi mare?”

„Astronaut!”

Acesta este răspunsul pe care fiecare dintre noi l-am oferit într-un moment din viața noastră. Suntem fascinați de mici de biodiversitatea Pământului, de comportamentul și aspectul Sistemului Solar, de forma și mișcarea Căii Lactee și în final, de grandoarea Universului.

„Cum poți face o persoană fericită, dacă nu punândui Universul pe masă?”

Descriere Generală

Utilizatorul va comanda funcționarea planetariului prin Bluetooth, de pe laptop. Așadar, acesta va putea comanda rotația unei singure planete sau a tuturor. De asemenea, el va putea sincroniza pozitia planetelor cu poziția lor actuală de pe cer. În momentul în care acesta va da comanda, plăcuța va comanda releul corespunzător motorului planetei alese, care va porni alimentarea, rezultând rotirea planetei. Poziția planetelor va fi determinată în felul următor: fiecare planetă va avea atașată de ea un mic magnet. La direcția N, privind de sus către proiect, va exista un set de 8 senzori cu efect Hall care vor detecta ajungerea planetelor în locația respectivă. Din acel punct, se va măsura numărul de secunde de activitate de la depășirea acestui senzor, și astfel determina poziția.

Hardware Design

Listă de componete
  • Placă de Dezvoltare ESP32 cu WiFi și Bluetooth 4.2
  • Modul releu 8 canale comandat 5V
  • Modul convertor nivel logic bidirecțional 8 canale CJMCU-0108
  • Miniature DC-DC Boost Converter
  • 8 x Motoras curent continuu 3-6V
  • 8 x Senzor Hall de pozitie
  • Sursă de alimentare 5V 3A, micro USB
  • Fire Dupont mamă-mamă, mamă-tată și tată-tată
  • Magneți
  • Roți zimțate
  • Breadboard
Schema Circuitului

Conectarea componentelor

Pe pracursul realizării proiectului, neluând de la început în calcul faptul că roțile dimțate sunt niște elemente de precizie a treebuit să adaptez proiectul. Drept urmare, m-am rezumat la un singur motor care învârte direct Pământul. Așadar componentele sunt conectate în felul următor:

Modulul releu 8 canale
  • Alimentat direct de la placută de pe pinul VIn adica 5V
  • Comandat prin pinii D13, D12, D14, D27, D26, D25, D33, D32
  • În practică am folosit doar pinul D14, adica am comandat doar motorul 3
Senzor Hall
  • Alimentat direct de la placută de pe pinul VIn adica 5V
  • Datele sunt citite pe pinul D35
Modul Bluetooth
  • Este cel integrat pe plăcuță configurat pentru a putea primi comenzi

Software Design

Unelte folosite
  • https://app.diagrams.net/ - Realizarea schemei bloc
  • Adobe Photoshop - Finisarea schemelor
  • Arduino IDE: dezvoltarea codului si incarcarea lui pe Arduino
Implementare

1. Initializări globale

  • am definit numărul de motorașe, numărul de senzori Hall și pinii pentru fiecare dintre acestea
  • definirea SerialBT
  • aplicatia este construita similar cu un automat de stari asa ca am avut nevoie de un program_state

2. Setup()

  • am configurat corespunzător pinii de input și de output
  • am pornit conexiunea Bluetooth

3. Loop()

  • program_state = 0 → planeta se învârte până se calibrează (senzorul Hall simte impuls magnetic) după care se sincronizează cu poziția ei actuală de pe cer. Se trece în program_state = 1
  • program_state = 1 → este starea în care programul așteapta input de la utilizator. Dacă se prmește „SYNC” programul trece în starea 0. Dacă primește „START” programul trece în starea 2.
  • program_state = 2 → Planeta se învârte indefinit până când va primi comanda „STOP”, moment în care programul va ajunge din nou în starea 1.
Concepte

1. GPIO

  • pinMode, digitalWrite, si digitalRead - functii folosite pentru configurarea si controlarea pinilor GPIO

2. Timere

  • millis() - folosită pentru a nu bloca citirea informației de pe senzorul hall cât timp motorul se învârte

3. ADC

  • analogRead() - folosită pentru citirea valorilor indicate de senzorul Hall

4. Bluetooth Serial Communication

  • folosit pentru conectarea la laptop (pe laptop rulez puTTY)

Rezultate Obţinute

Concluzii

  • ROȚILE DINȚATE SUNT PIESE DE PRECIZIE… (m-am afundat pentru că cele comandate nu erau potrivite ca diametru. Ulterior, am rugat un coleg să mi le scoată personalizate la imprimantă 3D care surpriză, nu e suficient de precisă pentru așa ceva
  • Pentru creearea preciziei pe care o doream eu este clar nevoie de un motor comandat cu driver
  • Mi-am dat seama că la această materie totul pare simplu până când începi să faci și vezi că nu merge nimic

Download

Ținte

  • Asigurarea corectă a rapoartelor de viteză în măsura în care permite modelul (traiectoriile sunt cercuri în loc de elipse)
  • Împachetarea produsului final într-o formă cât mai apropiată de “pus în vânzare”

Jurnal

  • 26/04/2024 - alegere temă proiect
  • 03/05/2024 - creare pagină ocw
  • 05/05/2024 - completarea documentației inițiale
  • 15/05/2024 - comandă componente
  • 16/05/2024 - schemă electrică
  • 22/05/2024 - hard
  • 26/06/2024 - soft
  • 26/06/2024 - finalizare proiect
Grafic Gantt

Bibliografie și Resurse

pm/prj2024/ccontasel/vlad.juja.txt · Last modified: 2024/05/27 05:40 by vlad.juja
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