Operácie

Hracia skrinka: Rozdiel medzi revíziami

Z SensorWiki

(Vytvorená stránka „{| |Autor: || '''Meno Priezvisko''' |- |Študijný odbor: || Aplikovaná informatika || 3. Bc. ('''2019''') |} == Opis projektu == '''Čo''' je jeho cieľom,…“)
 
 
Riadok 1: Riadok 1:
 
{|
 
{|
|Autor:      || '''Meno Priezvisko'''  
+
|Autor:      || '''Zuzana Chalupková, Daniela Leščinská'''  
 
|-
 
|-
 
|Študijný odbor:  || Aplikovaná informatika || 3. Bc.  ('''2019''')  
 
|Študijný odbor:  || Aplikovaná informatika || 3. Bc.  ('''2019''')  
Riadok 7: Riadok 7:
 
== Opis projektu ==
 
== Opis projektu ==
  
'''Čo''' je jeho cieľom, ako bude vyzerať výsledok.
+
'''Čo'''  
 +
 
 +
Našim cieľom bolo vytvorenie hracej skrinky, ktorá bude hrať melódiu skladby Pre Elišku od Beethovena, pričom všetky jej súčasti si vyrobíme sami za pomoci strojov, s ktorými sme mali možnosť pracovať počas semestra.
  
 
'''Prečo?'''  
 
'''Prečo?'''  
  
# Prečo práve tento projekt, aký má zmysel, komu bude osožný...
+
Tento projekt ma za úlohu spríjemňovať dlhé letné večere klasickou hudbou.
# Druhy '''riadok'''
 
  
 
'''Ako ?'''
 
'''Ako ?'''
  
Sem príde podrobný návod na výrobu.
+
* V našom prípade budeme potrebovať Arduino Uno, ktoré pripojíme ku zdroju. Pripojíme vzdialené tlačidlo a servo motor.
 +
* Ďalej potrebujeme pomocou 3D tlačiarne vyrobiť valček, ktorý sa bude otáčať a kde budú predne špecifikované výbežky podľa vybranej melódie.
 +
* Ďalším krokom bude vytvorenie krabičky z dreva, do ktorej celé naše zariadenie s otáčajúcim sa valčekom umiestnime. Túto krabičku si vyrežeme pomocou lasera a vyrezané časti pospájame.
 +
* Taktiež si potrebujeme vyrobiť drevenú konštrukciu, na ktorej bude položený valec tak aby sa mohol voľne otáčať vo vzduchu.
 +
* Posledným krokom bude umiestnenie kovových plieškov na drevenú konštrukciu tak aby sa postupne dotýkali výbežkov na valčeku. Tieto pliešky musia mať rôznu veľkosť aby vydávali rozličný tón.
 +
 
 +
 
 +
'''Použité zdroje:'''
  
* Popisat proces premeny napadu na hmotny (funkcny) produkt
+
* [https://www.instructables.com/id/Servo-Motor-Arduino/ Servo-motor-arduino]
* Vyspecifikovat potrebny material (uprednostnujeme vlastnych alebo existujucich komponentov, v pripade potreby vieme pomoct)<BR> vystupom bude zhmotneny napad a aj navod - krok za krokom pre reprodukciu produktu
 
  
 +
* [https://www.thingiverse.com/thing:552498 Model Music Box]
  
[http://www.example.com link title]
 
  
[[Súbor:MojObrazok2.jpg|center|300px]]
 
  
[[Médiá:MojZdrojak.c]]
+
__TOC__
 +
 
 +
== Analýza ==
  
 +
Výroba našej hracej skrinky sa začala zapojením elektroniky do schémy pričom po zapojení sme potrebovali aj naprogramovať správanie sa daného systému. Teda po stlačení tlačidla sa servo motor roztočí, a po opätovnom stlačení by sa mal valček zastaviť.
 +
Ďalej sme na 3D tlačiarni vytlačili valček, ktorý sme si stiahli z internetu.
 +
Kusy, z ktorých sa skladá krabička sme si vyrezali pomocou lasera, ale tieto kusy do seba nezapadali úplne presne. Taktiež sme si kúpili pánty, pomocou ktorých môžeme krabičku otvárať a zatvárať.
 +
Náš najväčší problém, na ktorý sme narazili sa týkal kovových plieškov, ktoré sme mali umiestniť na drevenú konštrukciu. Keďže pliešky sme chceli mať z kovu rozhodli sme sa vybrať taký materiál aby vydával, čo najlepší zvuk. Skúšali sme rôzne varianty od špendlíkov, spiniek až po tenké železné pílky, ktoré nám poradili v železiarstve. Avšak tieto pílky boli príliš hrubé, preto keď sme ich vyskúšali s valčekom dotýkali sa dvoch výbežkov a nie len jedného.
  
'''Použité zdroje:'''
 
  
* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
+
== Popis riešenia ==
  
__TOC__
+
Používali sme Arduino Uno, pričom sme použili vzdialené tlačidlo, ktoré malo v sebe zabudovaný už rezistor teda sme nemuseli použiť breadboard.
 +
Z tlačidla vychádzali 3 káble, pričom žltý sme pripojili na pin 8, červený na napájanie 3,3V a čierny sme pripojili na GND.
 +
Zo servo motora vychádzali taktiež 3 káble. Čierny sme pripojili na zem, červený na 5V a žltý na pin 9. Po nahraní kódu, ktorý si popíšeme v ďalšej sekcii, sa servo motor po stalčení tlačidla začal otáčať.
  
== Analýza ==
+
[[Súbor:Arduino+servo+button.jpg|center|250px]]
  
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje,
+
Pri tlačení valčeka sme použili model a výsledok tlače môžme vidieť na obrázku. Museli sme následne doňho vyvŕtať dieru aby sme ním mohli prestrčiť špajlu.  
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:
 
  
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
+
[[Súbor:ValcekMusicBox.jpg|center|250px]]
* obrázok zapojenia vývodov použitej súčiastky
 
* odkaz na katalógový list
 
* priebehy dôležitých signálov
 
* este jedna polozka
 
  
 +
Diely našej krabičky vyzerali ako časti puzzle. Keďže jednotlivé časti do seba nezapadali poriadne museli sme ich obrusovať až na takú
 +
šírku aby sme mohli poskladať skrinkú. Pri vytváraní krabičky sme museli ešte namontovať pánty, tie sme kúpili v železiarstve a pripevnili sme ich na krabičku. Do jednej steny sme pomocou lasera vyrezali otvor pre tlačidlo.
 +
Pri vytváraní drevenej konštrukcie sme museli vyvrtať dieru do jedného dreveného kvádra, následne sme tam vložili valček na špajle.
 +
Z druhej strany valčeka sme prilepili vrtuľku motora a motor sme prilepili na na opačnú tranu drevenj konštrukcie.
 +
Keďže sme nenašli vhodné pliešky, použili sme kovové pílky na železo. Rezanie týchto pílok pozdĺžne nám prišlo priveľmi nebezpečné na naše malé skúsenosti s karbobrúskou,tak sme prispôsobili len ich dĺžku. Postupne sme ich s kliešťami nalámali tak aby sedeli do vzdialenosti v akej bude valček. Drevený podklad, na ktorom boli uložené pliešky bolo potrebné dať k valčeku pod istým uhlom. Uloženie sme skúšali tak aby sa každá strunka dotýkala valčeka a aby vydávali tón.
  
== Popis riešenia ==
+
[[Súbor:PileniePlieskov.jpg|center|250px]]
  
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru
+
Posledný krokom bolo zlepenie všetkých častí dokopy a navrhnutie kabeláže tak aby sa do našej hracej skrinky všetko vošlo.
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.  
 
  
 
'''Schéma zapojenia snímača'''
 
'''Schéma zapojenia snímača'''
[[Súbor:Zapojenie.png]]
 
  
[[Súbor:Example.jpg]]
+
[[Súbor:Arduino+tlacidlo.jpg|center|250px]]
  
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo
 
nahrať už aspoň 10 študentov.
 
  
[[Súbor:MojObrazok.jpg|center|250px]]
+
[[Súbor:Arduino+servo.jpg|center|250px]]
  
 
=== Algoritmus a program ===
 
=== Algoritmus a program ===
  
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili.  
+
Náš jednoduchý program potrebuje na svoju funkcionalitu knižnicu Servo.h. Inicializujeme si premenné pos = 0 a button = 2.
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu.  
+
Objekt servo pripojíme na pin 9.Output nastvíme na premennú pos a Input nastavíme na premennú button. Button nastavíme na LOW. V cykle potom rozlišujeme
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
+
dve podmienky teda ak nie jepo stlačený alebo je.
 +
Ak je button == LOW potom ideme v cykle od 0 az po 90 stupnov s krokom 90 a kazdym krokom hovorime motoru aby siel na poziciu premmennej pos.
 +
Ak je button == HIGH taktiez ideme v cykle od 90 po 0 stupnov s krokom 90 a kazdym krokom hovorime motoru aby siel na danu poziciu pos, pricom mu nastavíme oneskorenie 50 ms.
  
Vyberte podstatné časti zdrojového kódu, použite na to prostredie ''source'':
+
<source lang="c">
 +
         
 +
#include <Servo.h>
  
<source lang="c">
+
Servo myservo;  // vytvorenie objektu servo pre jeho kontrolu
/* A nezabudnite zdroják hojne komentovať */
+
                // maximalne 8 servo objektov moze byt vytvorenych
 +
 
 +
int pos = 0;    // premenna na ukladanie pozicie serva
 +
int button = 2;  // button bude na pine 2
 +
 
 +
 
 +
void setup()
 +
{
 +
  myservo.attach(9); // servo je na pine 9, pricom nanho prilozime servo objekt
 +
pinMode(pos, OUTPUT); //nastavenie pinoc
 +
pinMode(button, INPUT);
 +
digitalWrite (button, LOW);
 +
}
 +
 
 +
void loop()
 +
{
 +
 
 +
    if (digitalRead(button) == LOW) 
  
int main(void) {
+
  for(pos = 0; pos < 90; pos += 90) // pojde od 0 po 90 stupnov
      
+
  {                                 // v krokoch po stupnoch
     printf("Hello, World!\n");
+
     myservo.write(pos);              // hovori servo motoru aby siel na poziciu premennej pos
    return(0);
+
                          // pocka kym servo dosiahne poziciu
 +
  }
 +
  if (digitalRead(button) == HIGH)
 +
 
 +
  for(pos = 90; pos>=90; pos-=90)     // ide od 90 po 0 stupnov
 +
  {                               
 +
    myservo.write(pos);             // hovori servo motoru aby siel na poziciu premennej pos
 +
  delay(50);                             // pocka 50ms kym servo dosiahne poziciu
 +
  }
 +
 
 
}
 
}
 +
 
</source>
 
</source>
  
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
 
  
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]
+
Zdrojový kód: [[Súbor:ServoPush.ino|ServoPush]]
  
[[Médiá:MojProgram.c|program.c]]
 
  
 +
=== Výsledok ===
 +
 +
Výsledok sa nám nepodaril ako sme si predstavovali, pretože nevydáva melódiu akú sme chceli ale ešte stále je použiteľný napríklad na odplašenie
 +
škodcov alebo iných nežiadúcich tvorov.
 +
 +
[[Súbor:INmusicbox.jpg|center|250px|MusicBox]]
 +
 +
 +
[[Súbor:OUTmusicbox.jpg|MusicBox out|center|250px]]
 +
 +
 +
[[Video-1559918304.mp4|Video]]
  
=== Výsledok ===
 
  
Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video
 
a zhodnotenie ako ste spokojní s výsledkom,
 
  
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.

Aktuálna revízia z 20:18, 12. jún 2019

Autor: Zuzana Chalupková, Daniela Leščinská
Študijný odbor: Aplikovaná informatika 3. Bc. (2019)

Opis projektu

Čo

Našim cieľom bolo vytvorenie hracej skrinky, ktorá bude hrať melódiu skladby Pre Elišku od Beethovena, pričom všetky jej súčasti si vyrobíme sami za pomoci strojov, s ktorými sme mali možnosť pracovať počas semestra.

Prečo?

Tento projekt ma za úlohu spríjemňovať dlhé letné večere klasickou hudbou.

Ako ?

  • V našom prípade budeme potrebovať Arduino Uno, ktoré pripojíme ku zdroju. Pripojíme vzdialené tlačidlo a servo motor.
  • Ďalej potrebujeme pomocou 3D tlačiarne vyrobiť valček, ktorý sa bude otáčať a kde budú predne špecifikované výbežky podľa vybranej melódie.
  • Ďalším krokom bude vytvorenie krabičky z dreva, do ktorej celé naše zariadenie s otáčajúcim sa valčekom umiestnime. Túto krabičku si vyrežeme pomocou lasera a vyrezané časti pospájame.
  • Taktiež si potrebujeme vyrobiť drevenú konštrukciu, na ktorej bude položený valec tak aby sa mohol voľne otáčať vo vzduchu.
  • Posledným krokom bude umiestnenie kovových plieškov na drevenú konštrukciu tak aby sa postupne dotýkali výbežkov na valčeku. Tieto pliešky musia mať rôznu veľkosť aby vydávali rozličný tón.


Použité zdroje:


Analýza

Výroba našej hracej skrinky sa začala zapojením elektroniky do schémy pričom po zapojení sme potrebovali aj naprogramovať správanie sa daného systému. Teda po stlačení tlačidla sa servo motor roztočí, a po opätovnom stlačení by sa mal valček zastaviť. Ďalej sme na 3D tlačiarni vytlačili valček, ktorý sme si stiahli z internetu. Kusy, z ktorých sa skladá krabička sme si vyrezali pomocou lasera, ale tieto kusy do seba nezapadali úplne presne. Taktiež sme si kúpili pánty, pomocou ktorých môžeme krabičku otvárať a zatvárať. Náš najväčší problém, na ktorý sme narazili sa týkal kovových plieškov, ktoré sme mali umiestniť na drevenú konštrukciu. Keďže pliešky sme chceli mať z kovu rozhodli sme sa vybrať taký materiál aby vydával, čo najlepší zvuk. Skúšali sme rôzne varianty od špendlíkov, spiniek až po tenké železné pílky, ktoré nám poradili v železiarstve. Avšak tieto pílky boli príliš hrubé, preto keď sme ich vyskúšali s valčekom dotýkali sa dvoch výbežkov a nie len jedného.


Popis riešenia

Používali sme Arduino Uno, pričom sme použili vzdialené tlačidlo, ktoré malo v sebe zabudovaný už rezistor teda sme nemuseli použiť breadboard. Z tlačidla vychádzali 3 káble, pričom žltý sme pripojili na pin 8, červený na napájanie 3,3V a čierny sme pripojili na GND. Zo servo motora vychádzali taktiež 3 káble. Čierny sme pripojili na zem, červený na 5V a žltý na pin 9. Po nahraní kódu, ktorý si popíšeme v ďalšej sekcii, sa servo motor po stalčení tlačidla začal otáčať.

Arduino+servo+button.jpg

Pri tlačení valčeka sme použili model a výsledok tlače môžme vidieť na obrázku. Museli sme následne doňho vyvŕtať dieru aby sme ním mohli prestrčiť špajlu.

ValcekMusicBox.jpg

Diely našej krabičky vyzerali ako časti puzzle. Keďže jednotlivé časti do seba nezapadali poriadne museli sme ich obrusovať až na takú šírku aby sme mohli poskladať skrinkú. Pri vytváraní krabičky sme museli ešte namontovať pánty, tie sme kúpili v železiarstve a pripevnili sme ich na krabičku. Do jednej steny sme pomocou lasera vyrezali otvor pre tlačidlo. Pri vytváraní drevenej konštrukcie sme museli vyvrtať dieru do jedného dreveného kvádra, následne sme tam vložili valček na špajle. Z druhej strany valčeka sme prilepili vrtuľku motora a motor sme prilepili na na opačnú tranu drevenj konštrukcie. Keďže sme nenašli vhodné pliešky, použili sme kovové pílky na železo. Rezanie týchto pílok pozdĺžne nám prišlo priveľmi nebezpečné na naše malé skúsenosti s karbobrúskou,tak sme prispôsobili len ich dĺžku. Postupne sme ich s kliešťami nalámali tak aby sedeli do vzdialenosti v akej bude valček. Drevený podklad, na ktorom boli uložené pliešky bolo potrebné dať k valčeku pod istým uhlom. Uloženie sme skúšali tak aby sa každá strunka dotýkala valčeka a aby vydávali tón.

PileniePlieskov.jpg

Posledný krokom bolo zlepenie všetkých častí dokopy a navrhnutie kabeláže tak aby sa do našej hracej skrinky všetko vošlo.

Schéma zapojenia snímača

Arduino+tlacidlo.jpg


Arduino+servo.jpg

Algoritmus a program

Náš jednoduchý program potrebuje na svoju funkcionalitu knižnicu Servo.h. Inicializujeme si premenné pos = 0 a button = 2. Objekt servo pripojíme na pin 9.Output nastvíme na premennú pos a Input nastavíme na premennú button. Button nastavíme na LOW. V cykle potom rozlišujeme dve podmienky teda ak nie jepo stlačený alebo je. Ak je button == LOW potom ideme v cykle od 0 az po 90 stupnov s krokom 90 a kazdym krokom hovorime motoru aby siel na poziciu premmennej pos. Ak je button == HIGH taktiez ideme v cykle od 90 po 0 stupnov s krokom 90 a kazdym krokom hovorime motoru aby siel na danu poziciu pos, pricom mu nastavíme oneskorenie 50 ms.

          
#include <Servo.h>

Servo myservo;  // vytvorenie objektu servo pre jeho kontrolu
                // maximalne 8 servo objektov moze byt vytvorenych

int pos = 0;    // premenna na ukladanie pozicie serva 
int button = 2;  // button bude na pine 2


void setup() 
{ 
  myservo.attach(9);  // servo je na pine 9, pricom nanho prilozime servo objekt
pinMode(pos, OUTPUT); //nastavenie pinoc
pinMode(button, INPUT); 
digitalWrite (button, LOW);
} 

void loop() 
{ 
  
    if (digitalRead(button) == LOW)   

  for(pos = 0; pos < 90; pos += 90)  // pojde od 0 po 90 stupnov
  {                                  // v krokoch po stupnoch
    myservo.write(pos);              // hovori servo motoru aby siel na poziciu premennej pos
                          // pocka kym servo dosiahne poziciu
  } 
  if (digitalRead(button) == HIGH) 
  
  for(pos = 90; pos>=90; pos-=90)     // ide od 90 po 0 stupnov
  {                                
     myservo.write(pos);              // hovori servo motoru aby siel na poziciu premennej pos
  delay(50);                             // pocka 50ms kym servo dosiahne poziciu
  }
  
}


Zdrojový kód: Súbor:ServoPush.ino


Výsledok

Výsledok sa nám nepodaril ako sme si predstavovali, pretože nevydáva melódiu akú sme chceli ale ešte stále je použiteľný napríklad na odplašenie škodcov alebo iných nežiadúcich tvorov.

MusicBox


MusicBox out


Video


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