Djordje Milicevic mi13086

Tema: Programski jezik Lua u embedded sistemima
-----

Koriscene tehnologije: Lua 5.1 (nodeMCU firmware), HTML, CSS, JavaScript, AJAX
----------------------

Integrisano kolo: ESP-12E (System-on-a-Chip)
-----------------

Opis: 
-----

Izrada svetleceg ukrasa na ploci od pleksiglasa. Na donjem kraju ploce se nalazi RGB LED traka koja se sastoji od crvene, zelene i plave svetlece diode.
Posto su diode gusto rasporedjene, stvara se iluzija prikazivanja boja svetlosti koje nisu iz tog skupa.
Kontrolisanje svetlosti (boja, duga efekat, treptanje) se vrsi posredstvom HTML stranice.
Na mikrokontroleru se nalazi Lua interpreter koji je zaduzen za interpretiranje Lua skripte, a ona sluzi za kreiranje servera (koji ce isporuciti HTML stranicu pregledacu), povezivanje na Wi-Fi pristupnu tacku i kontrolisanje hardvera.
Koriscen je event-driven stil programiranja.
Hardver se sastoji od tri tranzistora koji su podeseni da rade u prekidackom rezimu. Svaki od tranzistora je zaduzen za generisanje odredjene jacine svetlosti na RGB traci.
Tehnikom, pod akronimom PWM (pulse-with-modulation), se vrsi kontrolisano propustanje odredjene kolicine struje na tranzistorima, sto daje mogucnost stvaranja razlicitih boja svetlosti. (bice objasnjeno na izlaganju)

Primer:
-------

Kada se na HTML stranici klikne na krug (koji predstavlja paletu boja), JavaScript-om se izdvoje primese crvene, zelene i plave boje. Vrednosti su u 
rasponu [0, 255]. Podatak o primesama boja (npr. (255, 192, 52)) se salje AJAX zahtevom do mikrokontrolera. Na osnovu te informacije, mikrokontroler zna
koliku kolicinu struje ce propustiti kroz tranzistore (za to je zaduzen PWM), i na osnovu toga se dobije trazena boja svetlosti.

Sadrzaj foldera
---------------

    html_strana -> nalazi se upravljacka HTML stranica sa potrebnim fajlovima

    lua_skripte -> izvorni kod i konfiguracioni fajl koji se nalaze na ESP-12E mikrokontroleru 

    izgled_materijal -> izgled zavrsenog ukrasa, rgb trake i shema povezivanja hardvera

Prevodjenje
-----------

Pored hardvera i mikrokontrolera neophodno je uraditi sledece (za Windows OS):
    1) Na mikrokontroler treba ucitati firmver koji se nalazi u folderu lua_skripte (nodemcu_integer_0.9.5_20150318.bin).
    2) Firmver treba ucitati u mikrokontroler pomocu: https://github.com/nodemcu/nodemcu-flasher.
    3) Za ucitavanje i izmenu skripte, slika, tekstualnih fajlova moze se koristiti: https://github.com/4refr0nt/ESPlorer.
    4) U memoriji mikrokontrolera je potrebno da se nalaze slike HTML stranice, sama stranica, fajl "password.txt" i "main.lua".
       Komandom <node.compile("main.lua")> je potrebno "kompajlirati" skriptu. 
       Nakon toga ce se dobiti fajl "main.lc" koji treba pokrenuti komandom <dofile("main.lc")>.
       U fajl "password.txt" je potrebno uneti korisnicko ime i lozinku Wi-Fi pristupne tacke na koju se konektujete.
       Dodeljena IP adresa ce se prikazati u ESPlorer-u i preko nje se moze pristupiti HTML stranici.

       Na stranici je moguce:
          1) izabrati boju sa palete boja kojom zelite da ukras svetli
          2) ukljuciti duga efekat (boje ce se postepeno smenjivati)
          3) zadati vremenski interval (u milisekundama) kojom ce svetlost treptati (velicina mora biti veca od nule)

Oficijelna stranica: http://nodemcu.com/index_en.html