diff --git a/README.org b/README.org index 4afddaf..63c3fcb 100644 --- a/README.org +++ b/README.org @@ -1,9 +1,10 @@ #+TITLE: Galerija BOT -* Je? +[[file:observatorij.jpg]] -ESP32-CAM mikrokrmilnik, ki ga je možno upravljati po galeriji. +ESP32-CAM mikrokrmilnik, ki omogoča premikanje visečega objekta. Pelje ga [[https://tasmota.github.io/docs/][Tasmota firmware]], s pomočjo katerega dobimo sliko kamere in poganjamo motorčke. -Z [[https://ffmpeg.org/][FFMPEG]] orodjem sliko kamere pretvorimo MJPEG videopretok v VP8 RTP obliko, ki jo [[https://janus.conf.meetecho.com/][Janus WebRTC strežnik]] z nizko zakasnitvijo pripelje v brskalnike. Sliko kamere spreljajo gumbi za navigacijo in poseben vmesnik za nastavljanje parametrov premikanja. +Ker se mikrokrmilnik sesuje, če več ljudi spremlja sliko, na bližnjem RockiPI 4 računalniku teče [[https://github.com/OliverF/mjpeg-relay][mjpeg-relay]], ki posreduje sliko obiskovalkam in obiskovalcem spletnega mesta https://observatorij.rhiz0.me/. + diff --git a/observatorij.jpg b/observatorij.jpg new file mode 100644 index 0000000..7c2169f Binary files /dev/null and b/observatorij.jpg differ diff --git a/tasmota/autoexec.be b/tasmota/autoexec.be index f6e68c2..230278d 100644 --- a/tasmota/autoexec.be +++ b/tasmota/autoexec.be @@ -1,18 +1,18 @@ # Kompenzacija propelerjev -kompenzacija = 0.5 +var kompenzacija = 0.5 # Kako dolgo cakam med ukazi (ms)? -cakaj = 3000 +var cakaj = 3000 +var dolzina = 6000 # Kako pogosto grem kar ravno (ms)? -kar_naprej_cas = 1.5 * 60 * 1000 +var kar_naprej_cas = 60 * 1000 -zadnji = 0 +var zadnji = 0 -def nic() - print('ja, nic') -end -tasmota.add_cmd('KarNaprej', nic) +def kar_naprej() end + +tasmota.add_cmd('KarNaprej', kar_naprej) def ugasni_levo() tasmota.set_power(0, false) @@ -24,7 +24,7 @@ end def posodobi_zadnji(cas) zadnji = tasmota.millis() + cas - tasmota.cmd('KarNaprej') + #tasmota.cmd('KarNaprej') end # payload = kako dolgo naj bo vklopljen, v milisekundah @@ -37,7 +37,6 @@ def pojdi_levo(cmd, idx, payload, payload_json) tasmota.set_timer(cas, ugasni_levo) posodobi_zadnji(cas) - #kar_naprej() end # payload = kako dolgo naj bo vklopljen, v milisekundah @@ -73,22 +72,40 @@ def pojdi_ravno(cmd, idx, payload, payload_json) posodobi_zadnji(cas) end -def auto_naprej() - pojdi_ravno(nil, nil, 1000) +def odkimaj() + tasmota.set_power(2, false) +end +def pokimaj() + tasmota.set_power(2, true) + tasmota.set_timer(20, odkimaj) end -def kar_naprej() - tasmota.remove_timer("auto_naprej") - tasmota.set_timer(kar_naprej_cas, auto_naprej, "auto_naprej") +def auto_naprej() + if tasmota.millis() > zadnji + kar_naprej_cas * 0.9 + pokimaj() + var n = tasmota.millis() % 3 + + if n == 0 + pojdi_ravno(nil, nil, dolzina * 2) + elif n == 1 + pojdi_levo(nil, nil, dolzina * 1.5) + else + pojdi_desno(nil, nil, dolzina) + end + end + + tasmota.set_timer(kar_naprej_cas, auto_naprej) end tasmota.add_cmd('PojdiLevo', pojdi_levo) tasmota.add_cmd('PojdiDesno', pojdi_desno) tasmota.add_cmd('PojdiRavno', pojdi_ravno) tasmota.add_cmd('UgasniVse', ugasni_vse) -tasmota.add_cmd('KarNaprej', kar_naprej) +tasmota.add_cmd('KarNaprej', auto_naprej) def inicializiraj() tasmota.cmd('WcInit') end -tasmota.set_timer(5000, inicializiraj) \ No newline at end of file +tasmota.set_timer(5000, inicializiraj) + +tasmota.set_timer(kar_naprej_cas, auto_naprej) \ No newline at end of file