Elitech 201324.apr 2013
    I was forced to write a small paper for local student conference at university where I am currently studying. I decided to put on paper one of my latest projects - it is about measuring temperature and controlling the heating inside a greenhouse. You can learn more about it on attached document. I think this could be interesting also for others, so after a long period I am placing something new on my webpage.

Tags: Arduino, temperature logging, greenhouse, mixing valve, PID, heating regulation

Globus8.jan 2011
    Pri pive a inych spolocenskych akciach obcas vzniknu nove a zaujimave myslienky. Jednou z nich bol aj podnet pre tuto jednoduchu aplikaciu. Predstavme si ze mame nejaku gulu, a mame taktiez N figurok. Otazka znie, ako rozmiestnit figurky tak aby boli vzajomne co najdalej od seba? Otazka sa da jednoducho odhadnut pre N=2 - vtedy budu body lezat na priemere. Pre N=3 vznikne rovnostranny trojuholnik v rovine so stredom. Pre N=4 vznika priestorovy utvar znamy ako stvorsten. Pre N=20 - nikto nevie.
    Pre cloveka s dobrou priestorovou predstavivostou a dobrym matematickym pozadim by to mozno bola jednoducha otazka. Zrejme nepatrim ani do jednej z tychto skupin a kedze ma nenapadol ziadny rozumny system ako postupne ukladat figurky na gulu, rozhodol som sa ze tento problem za mna vyriesi pocitac. Necakajte zazraky, pocitac vie vselico, ale urcite sam od seba nebude vediet vyriesit tuto ulohu.
    Ze vraj sa to vola evolucny algoritmus. Figurky sa najprv nahodne rozmiestnia po guli. A teraz vyskusame experiment. Kazdu figurku posunieme o nejaku malu nahodnu hodnotu. A porovname ktora sada figuriek - ci ta prva, alebo ci tato poposuvana - lepsie charakterizuje nase poziadavky. Pri spravnej formulacii poziadavky staci nechat algoritmus produkovat nove a nove generacie a za par minut sa dopracuje ku finalnemu vysledku.
    Zo slovnej ulohy musime vytvorit akysi matematicky predpis, ktory pocitac bude chapat. Hladame teda taku sadu figuriek pre ktoru su vsetky figurky vzajomne od seba co najviac vzdialene.
    1. Znie to jednoducho, ved skusme si vypocitat vzajomne vsetky vzdialenosti kazdej figurky od kazdej a tieto hodnoty nakoniec scitame. Z nejakeho dovodu tento pristup neposkytoval pouzitelne vysledky - vysledkom bolo ze sa na globuse vytvorili akesi zhluky bodov.
    2. Zamerajme sa na zhluky bodov ktore su tesne pri sebe. Nova podmienka bola formulovana takto: Ta generacia je lepsia v ktorej je vacsia najmensia vzajomna vzdialenost dvoch bodov. Takze najdeme dva body ktore lezia co najblizsie a porovnavame uz iba tuto vzdialenost. Tento pristup funguje, ale je velmi pomaly, kedze pracujeme len s dvomi bodmi a to co sa deje s ostatnymi nas nijako nezaujima
    3. Finalna podmienka ktoru som navrhol: Vypocitajme vsetky vzajomne vzdialenosti figurok a scitajme prevratene hodnoty vsetkych vzdialenosti. Takto krasne eliminujeme efekt zgrupenych figurok a podmienka charakterizuje jednym realnym cislom kompletne rozlozenie figurok na guli.

    Prichadza na rad dalsia otazka - aky programovaci jazyk pouzit? Ako nadsenec novych technologii som si opat vyskusal Canvas element ktory je sucastou HTML5 standardu. Postup generovania generacii som chcel vidiet, takze javascript renderuje pekny globus a na nom aj jednotlive figurky cervenym stvorcekom. Aby bolo lepsie vidiet kde sa ktory bod nachadza, gula pomaly rotuje. Modrou ciarou je zvyraznena minimalna vzdialenost figurok a tato hodnota je zaroven vypisana v lavom hornom rohu canvasu. Program som navrhoval vo Firefoxe, takze netusim ci to bude spustitelne pod inym browserom.
    Pri vysokom pocte figurok (napr N=100) sa vytvoril akysi pravidelny vzor na globuse a bol som zvedavy ako by to vyzeralo v rovine. Vdaka vyhodam jazyku bolo velmi jednoduche pridat dalsie dve projekcie - popri globusu, este cylinder a rovinne zobrazenie.

    A co dalej? Je velmi zaujimave sledovat aka bola dosiahnuta minimalna hodnota vzdialenosti v zavislosti od poctu figurok. Mozno by sa podarilo navrhnut analyticku funkciu parametra N ktora by matematickym predpisom tuto vzdialenost definovala. Mam vsak zly pocit ze ku tomuto vysledku sa da dopracovat iba casovo zdlhavym testovanim a jednoduchy matematicky predpis ku tomuto neexistuje. Zrejme to bude rovnaky problem ako keby sme chceli sfleku urcit X-te cislo Fibonacciho postupnosti. Ked sa mi to ale podari, bude sa tento predpis volat "Gabova funkcia" :)


  
  
Tags: html5, canvas, javascript, 3d, projection, render, globe, sphere, cylinder, plane, rotation, normal distribution, genetic algorithm, random number generator

SVOC25.oct 2009
    Pred tusim tromi rokmi som zacal robit na jednom celkom zaujimavom projekte, mobilnom bezdrotovom EKG zariadeni. Z prace vysla technicka dokumentacia, zopar obsluznych programov (PC, mobil, firmware). Tento projekt som taktiez odprezentoval formou sutaze SVOC na FEI STU. O rok neskor (2. rocnik inzinierskeho studia) prisla ponuka, ci by som nechcel prezentovat znovu nieco v suvislosti s tymto zariadenim. Napriek nedostatku casu v suvislosti s riesenim diplomovej prace a vseobecneho vytazenia som si nasiel nejaku chvilu na vyprodukovanie jemnej pavedy. Nad projekt EKG som nadviazal a dalej sa zameral na psychologicky efekt posluchu syntetizovanej hudby... Celkovo to hodnotim ako pavedu, pretoze v praci prezentovany inteligentny autokorelator a par vzorcami podlozeny algoritmus je v podstate znamy v teorii spracovania signalov ako bezna korelacia. Ziadny prinos, ale aspon je vidno ze ku vzorcu ktory sa na FEIke uci a na ktory som totalne zabudol sa da dopracovat aj jednoduchymi matematickymi metodami. Nuz, mal som sa radsej ucit a nechlastat tolko...
    Dodatocne dakujem p. Elene Cocherovej, ktora mi v mojich vzorcoch nasla fatalnu chybu, kvoli ktorej to vyzeralo ze praca nebude prezentovatelna, kedze to cele stalo na teoretickom matematickom zaklade popisanom prave tymito vyrazmi. Nastastie sa ukazalo ze to bola len chyba v znamienku ktore sa nakoniec aj tak umocnilo na druhu :)
Cely projekt je rozpracovany aj s vecami na stiahnutie aj s prvou prezentaciou na mojej starej stranke: Wireless ECG

  

TDMI simulacia31.oct 2009
    Sucast priprav mojej dizertacnej prace - navrh spektralneho analyzeru ktory spracovava signal v realnom case. Zatial to vela nerobi - da sa vybrat typ okna, jeho dlzka, taktiez sa da oknom hybat. Po spusteni simulacie sa podla STFFT okno postupne posuva a z ciastkovych nameranych FFT dat sa vypocita finalne (dole) podla jednej z vybratych metod, konstanty quasi peak detektora su zvolene tak aby bolo nazorne vidiet proces nabijania (na dvoch statickych harmonickych signaloch) aj vybijania (rastuca frekvencia). Na konci signalu je zretelne vidiet problem aliasingu - spektrum sa "odrazi".
    Keywords: TDMI, Spectrum analyser, time domain, frequency domain, peak detector, quasi peak, average, peak (max), RMS, fourier transform, fft, fft window, stfft, rectangular window, hamming window, hann window, triangular window, mfc, c++


Download application with source code