Operácie

Interaktívna lampička II: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
 
(14 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 4: Riadok 4:
== Zadanie ==
== Zadanie ==


Zadaním môjho semestrálneho projektu bolo vytvoriť a naprogramovať interaktívnu inteligentnú lampičku. Zadanie som realizoval doma s vlastnými komponentmi a vytvoril som si osvetlenie procovného stolíka a podsvietenie monitora, ovládané pomocou IR senzora, dosky Arduino UNO, 5V relé a dvoch LED pásov.
Zadaním môjho semestrálneho projektu bolo vytvoriť a naprogramovať interaktívnu inteligentnú lampičku. Zadanie som realizoval doma s vlastnými komponentmi a vytvoril som si osvetlenie procovného stolíka a podsvietenie monitora, ovládané pomocou IR senzora, dosky kopie Arduino UNO (v mojom prípade TZTUNO R3+wifi, funkčnosťou totožné s vývojovou doskou arduino UNO alebo ACROB), 5V relé a dvoch LED pásov.


[[Súbor:Použitá doska Arduino Uno.jpg|thumb|center|Použitá doska Arduino UNO]]
[[Súbor:Použitá doska Arduino Uno.jpg|thumb|center|Použitá doska Arduino UNO]]




'''Literatúra:'''
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
* [http://www.humanbenchmark.com/tests/reactiontime/index.php Vyskúšajte si zmerať reakciu on-line]




Riadok 18: Riadok 15:
== Analýza  a opis riešenia ==
== Analýza  a opis riešenia ==


Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...
Podrobne opíšte použité komponenty (okrem základnej dosky s ATmega328P procesorom), pridajte linky na datasheety alebo opis obvodu.


[[Súbor:GeminiAI-image3.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]
Použité súčiastky:


Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.
- TZTUNO R3:                    Riadiaca jednotka
 
- 4-Kanálový 5V relé modul:      Spínanie
 
- FC-51 IR senzor:              Snímač pohybu ruky
 
- SEN-KY003HMS Hallov senzor:    Snímač otvorenia dvierok
 
- 12V LED pás:                  Svetlo, funkčný prvok ktorý ovládame
 
- vodiče:                        Prepojenie periférií
 
- napájacie zdroje:              Zabezpečenie stabilného napájanie súčiastok
 
 
Datasheety a dokumenty:
* [https://www.instructables.com/UNO-R3-WIFI-ESP8266-CH340G-Arduino-and-WIFI-a-Vers/ Dokumentácia k mnou požitej doske UNO]
* [https://handsontec.com/dataspecs/module/Relay%20Module/1Ch-relay%20Opto.pdf Dokumentácia k požitým relé]
* [https://www.handsontec.com/dataspecs/sensor/IR%20Obstacle%20Detector.pdf Dokumentácia k požitému IR senzoru]
* [https://www.joy-it.net/files/files/Produkte/SEN-KY003HMS/SEN-KY003HMS_Manual_2024-04-24.pdf Dokumentácia k požitému Hallovemu senzoru]
 
Schéma zapojenia:
 
[[Súbor:Schema_zapojenia_cavojsky.png|thumb|center|Schéma zapojenia projektu]]
 
[[Súbor:Schema2lampicka.png|thumb|center|Schéma zapojenia projektu]]
 
 
 
1. NÁPAD:
Projekt som realizoval u seba v izbe ako funkčné riešenie. Princíp zadania spočíval v tom, že moje svetlo nad stolom (inteligentná lampička) sa zažne pri prejdení rukou ponad skrytý senzor. Pri dlhšom podržaní ruky (približne 1.5 sekundy) sa rozsvieti LED pás prilepený za monitorom a vytvorí tak ambientné podsvietenie. Zároveň som pridal aj osvetlenie skrinky, na ktoré som použil iný senzor. Konkrétne išlo o Hallov senzor, ktorý sníma magnetické pole. V tomto prípade išlo o to že senzor nasnímal magnet ktorý som prilepil na dvierka skrinky. Pri oddialení dvierok senzor prestal detegovať magnetické pole od magnetu a svetlo sa rozsvietilo.
 
 
2. HARDWAREOVÁ REALIZÁCIA:
Ako prvé som potreboval zabezpečiť hardware pomocou ktorého všetko bude fungovať tak ako som si naplánoval. Bolo potrebné kúpiť všetky hore uvedené súčiastky. Projekt som najprv riešil iba jednoduchým prepojením dielov na stolíku (tz. na kolene).Po teste funkčnosti celého systému som sa pustil do hardwarovej realizácie. Keďže LED pásiky sú napájané 12V a napájanie z arduina by nebolo dostatočné ani napätím a ani prúdom, zvolil som napájanie všetkého pomocou jedného napájacieho zdroja, ktorý už bol k lampičke, informácie k nemu som nedohľadal no základné veci sú na obrázku nižšie. Relé boli zapojené 2x ako NC (tj. normaly closed) a 1x ako NO (normaly open), NC boli zapojenia pri lampičkách nad stolíkom a NO bolo pre skrinku, z jednoduchého dôvodu. Keďže Hallov snímač snímal 0 alebo 1 signál od reakcie magnetického poľa a svetlo malo byť vypnuté vtedy ak je magnet priblížený (tj. senzor ukazuje hodnotu 1) je chytrejšie relé zapojiť tak že pri ukázanej 1 je zatvorené a pri 0 sa zopne. Dalo by sa to vyriešiť aj softwarovo, no mohlo by dochádzať k mýleniu a zbytočným chybám v kóde.
Relé aj s riadiacou jednotkou (ďalej nazývané skrátene ako RJ) som pripojil pod stolíkom, napájanie zabezpečovali napájacie zdroje (5V pre RJ, 12V pre LED pásiky). Na pripojenie pri stolíku som využil reproduktorový kábel a vodiče ktoré boli už s lampičkou. Do skrinky som použil 8 vodičový kábel, keďže bolo potrebné pripojiť 2x osvetlenie (3ks vodičov) a senzor (3ks vodičov) a tento 8 žilový kábel som našiel doma, zároveň ak by som chcel rozšíriť tento systém o ďaľšiu perifériu, nemusím pridávať vodiče. Spoje boli spájkované a zároveň zaliate do plastu pomocou tavnej pištole, prípadne ošetrené zmršťovacímy páskami pre bezpečné používanie.
IR senzor som prichytil vedľa stolíka na pohodlné miesto, pre uchytenie som namodeloval a vytlačil plastový úchyt, do ktorého som tento senzor vložil a taktiež ošetril zaliatím do plastu.
 
 
[[Súbor:Praca1.jpg|thumb|center|Prvé skúšky zapájania pred finálnou inštaláciou]]
 
 
3. SOFTWAROVÁ REALIZÁCIA
Program som vytváral na základe podkladov z cvičení a súborov z nich, no použil som aj rady na githube alebo od AI. Všetko ku kódu je spomenuté v nasledujúcej časti spolu so samotným kódom.
 
[[Súbor:Zdroj12V.jpg|thumb|center|12V napájací zdroj na LED pásiky]]
 
[[Súbor:TZTuno.jpg|thumb|center| Zapojená riadiaca jednotka ]]
 
[[Súbor:Hall2.jpg|thumb|center|Zapojený hallov senzor v skrinke na snímanie magnetu]]
 
[[Súbor:IR.jpg|thumb|center|IR senzor nainštalovaný na stolíku v 3D vytlačenom púzdre]]
 
[[Súbor:Rele1.jpg|thumb|center|Zapojené relé ]]
 
[[Súbor:Ledpas.jpg|thumb|center|Funknčne zapojený LED pás (lampička), prívody sú prispájkované a zaliate]]


[[Súbor:GeminiAI-image2.jpg|400px|thumb|center|Schéma zapojenia.]]




Riadok 66: Riadok 115:
=== Overenie ===
=== Overenie ===


Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.
Na overenie funkčnosti som zapojil všetky periférie a prešiel rukou ponad IR senzor či sa lampička zapne, takisto som prešiel magnetom ponad hallov senzor a sledoval odozvu LED pásika, výsledné fungovanie je odprezentované vo videu nižšie.
Na konci uvádzame fotku hotového zariadenia.  


[[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]


'''Video:'''
'''Video:'''
<center><youtube>D0UnqGm_miA</youtube></center>
<center><youtube>D0UnqGm_miA</youtube></center>


== Čo by som urobil inak ==
== Čo by som urobil inak ==


Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.  
Nemám nič čo by som robil inak, všetko sa mi podarilo podľa očakávania, jediné vylepšenie čo mi napadá by mohlo byť prepojenie pomocou konektorov a nie "natvrdo" pripojenými káblami.





Aktuálna revízia z 20:46, 26. máj 2026

Záverečný projekt predmetu MIPS / LS2026 - Michal Čavojský


Zadanie

Zadaním môjho semestrálneho projektu bolo vytvoriť a naprogramovať interaktívnu inteligentnú lampičku. Zadanie som realizoval doma s vlastnými komponentmi a vytvoril som si osvetlenie procovného stolíka a podsvietenie monitora, ovládané pomocou IR senzora, dosky kopie Arduino UNO (v mojom prípade TZTUNO R3+wifi, funkčnosťou totožné s vývojovou doskou arduino UNO alebo ACROB), 5V relé a dvoch LED pásov.

Použitá doska Arduino UNO



Analýza a opis riešenia

Použité súčiastky:

- TZTUNO R3: Riadiaca jednotka

- 4-Kanálový 5V relé modul: Spínanie

- FC-51 IR senzor: Snímač pohybu ruky

- SEN-KY003HMS Hallov senzor: Snímač otvorenia dvierok

- 12V LED pás: Svetlo, funkčný prvok ktorý ovládame

- vodiče: Prepojenie periférií

- napájacie zdroje: Zabezpečenie stabilného napájanie súčiastok


Datasheety a dokumenty:

Schéma zapojenia:

Schéma zapojenia projektu
Schéma zapojenia projektu


1. NÁPAD: Projekt som realizoval u seba v izbe ako funkčné riešenie. Princíp zadania spočíval v tom, že moje svetlo nad stolom (inteligentná lampička) sa zažne pri prejdení rukou ponad skrytý senzor. Pri dlhšom podržaní ruky (približne 1.5 sekundy) sa rozsvieti LED pás prilepený za monitorom a vytvorí tak ambientné podsvietenie. Zároveň som pridal aj osvetlenie skrinky, na ktoré som použil iný senzor. Konkrétne išlo o Hallov senzor, ktorý sníma magnetické pole. V tomto prípade išlo o to že senzor nasnímal magnet ktorý som prilepil na dvierka skrinky. Pri oddialení dvierok senzor prestal detegovať magnetické pole od magnetu a svetlo sa rozsvietilo.


2. HARDWAREOVÁ REALIZÁCIA: Ako prvé som potreboval zabezpečiť hardware pomocou ktorého všetko bude fungovať tak ako som si naplánoval. Bolo potrebné kúpiť všetky hore uvedené súčiastky. Projekt som najprv riešil iba jednoduchým prepojením dielov na stolíku (tz. na kolene).Po teste funkčnosti celého systému som sa pustil do hardwarovej realizácie. Keďže LED pásiky sú napájané 12V a napájanie z arduina by nebolo dostatočné ani napätím a ani prúdom, zvolil som napájanie všetkého pomocou jedného napájacieho zdroja, ktorý už bol k lampičke, informácie k nemu som nedohľadal no základné veci sú na obrázku nižšie. Relé boli zapojené 2x ako NC (tj. normaly closed) a 1x ako NO (normaly open), NC boli zapojenia pri lampičkách nad stolíkom a NO bolo pre skrinku, z jednoduchého dôvodu. Keďže Hallov snímač snímal 0 alebo 1 signál od reakcie magnetického poľa a svetlo malo byť vypnuté vtedy ak je magnet priblížený (tj. senzor ukazuje hodnotu 1) je chytrejšie relé zapojiť tak že pri ukázanej 1 je zatvorené a pri 0 sa zopne. Dalo by sa to vyriešiť aj softwarovo, no mohlo by dochádzať k mýleniu a zbytočným chybám v kóde. Relé aj s riadiacou jednotkou (ďalej nazývané skrátene ako RJ) som pripojil pod stolíkom, napájanie zabezpečovali napájacie zdroje (5V pre RJ, 12V pre LED pásiky). Na pripojenie pri stolíku som využil reproduktorový kábel a vodiče ktoré boli už s lampičkou. Do skrinky som použil 8 vodičový kábel, keďže bolo potrebné pripojiť 2x osvetlenie (3ks vodičov) a senzor (3ks vodičov) a tento 8 žilový kábel som našiel doma, zároveň ak by som chcel rozšíriť tento systém o ďaľšiu perifériu, nemusím pridávať vodiče. Spoje boli spájkované a zároveň zaliate do plastu pomocou tavnej pištole, prípadne ošetrené zmršťovacímy páskami pre bezpečné používanie. IR senzor som prichytil vedľa stolíka na pohodlné miesto, pre uchytenie som namodeloval a vytlačil plastový úchyt, do ktorého som tento senzor vložil a taktiež ošetril zaliatím do plastu.


Prvé skúšky zapájania pred finálnou inštaláciou


3. SOFTWAROVÁ REALIZÁCIA Program som vytváral na základe podkladov z cvičení a súborov z nich, no použil som aj rady na githube alebo od AI. Všetko ku kódu je spomenuté v nasledujúcej časti spolu so samotným kódom.

12V napájací zdroj na LED pásiky
Zapojená riadiaca jednotka
Zapojený hallov senzor v skrinke na snímanie magnetu
IR senzor nainštalovaný na stolíku v 3D vytlačenom púzdre
Zapojené relé
Funknčne zapojený LED pás (lampička), prívody sú prispájkované a zaliate


Algoritmus a program

Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... Výpis kódu je nižšie...


#include <avr/io.h>

int main(void)
{
  unsigned int measuredValue;

  while (1)
  {
    /*  relax  */  
  }

  return(0);
}
#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

unsigned int adc_read(char a_pin);

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip

Overenie

Na overenie funkčnosti som zapojil všetky periférie a prešiel rukou ponad IR senzor či sa lampička zapne, takisto som prešiel magnetom ponad hallov senzor a sledoval odozvu LED pásika, výsledné fungovanie je odprezentované vo videu nižšie.


Video:

Čo by som urobil inak

Nemám nič čo by som robil inak, všetko sa mi podarilo podľa očakávania, jediné vylepšenie čo mi napadá by mohlo byť prepojenie pomocou konektorov a nie "natvrdo" pripojenými káblami.


Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.