Hracia skrinka
Zo stránky SensorWiki
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ť.
![](/sensorwiki/images/thumb/1/12/Arduino%2Bservo%2Bbutton.jpg/250px-Arduino%2Bservo%2Bbutton.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.
![](/sensorwiki/images/thumb/6/6d/ValcekMusicBox.jpg/250px-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.
![](/sensorwiki/images/thumb/e/ea/PileniePlieskov.jpg/250px-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
![](/sensorwiki/images/thumb/1/16/Arduino%2Btlacidlo.jpg/250px-Arduino%2Btlacidlo.jpg)
![](/sensorwiki/images/thumb/2/2f/Arduino%2Bservo.jpg/250px-Arduino%2Bservo.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](/sensorwiki/images/thumb/6/66/INmusicbox.jpg/250px-INmusicbox.jpg)
![MusicBox out](/sensorwiki/images/thumb/d/df/OUTmusicbox.jpg/250px-OUTmusicbox.jpg)
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.