Readme update, dodana slika

master
Jurij Podgoršek 2024-04-02 02:50:46 +02:00
parent 3854ffd54e
commit e03009c2e4
3 changed files with 38 additions and 20 deletions

View File

@ -1,9 +1,10 @@
#+TITLE: Galerija BOT #+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. 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/.

BIN
observatorij.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@ -1,18 +1,18 @@
# Kompenzacija propelerjev # Kompenzacija propelerjev
kompenzacija = 0.5 var kompenzacija = 0.5
# Kako dolgo cakam med ukazi (ms)? # Kako dolgo cakam med ukazi (ms)?
cakaj = 3000 var cakaj = 3000
var dolzina = 6000
# Kako pogosto grem kar ravno (ms)? # 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() def kar_naprej() end
print('ja, nic')
end tasmota.add_cmd('KarNaprej', kar_naprej)
tasmota.add_cmd('KarNaprej', nic)
def ugasni_levo() def ugasni_levo()
tasmota.set_power(0, false) tasmota.set_power(0, false)
@ -24,7 +24,7 @@ end
def posodobi_zadnji(cas) def posodobi_zadnji(cas)
zadnji = tasmota.millis() + cas zadnji = tasmota.millis() + cas
tasmota.cmd('KarNaprej') #tasmota.cmd('KarNaprej')
end end
# payload = kako dolgo naj bo vklopljen, v milisekundah # 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) tasmota.set_timer(cas, ugasni_levo)
posodobi_zadnji(cas) posodobi_zadnji(cas)
#kar_naprej()
end end
# payload = kako dolgo naj bo vklopljen, v milisekundah # payload = kako dolgo naj bo vklopljen, v milisekundah
@ -73,22 +72,40 @@ def pojdi_ravno(cmd, idx, payload, payload_json)
posodobi_zadnji(cas) posodobi_zadnji(cas)
end end
def auto_naprej() def odkimaj()
pojdi_ravno(nil, nil, 1000) tasmota.set_power(2, false)
end
def pokimaj()
tasmota.set_power(2, true)
tasmota.set_timer(20, odkimaj)
end end
def kar_naprej() def auto_naprej()
tasmota.remove_timer("auto_naprej") if tasmota.millis() > zadnji + kar_naprej_cas * 0.9
tasmota.set_timer(kar_naprej_cas, auto_naprej, "auto_naprej") 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 end
tasmota.add_cmd('PojdiLevo', pojdi_levo) tasmota.add_cmd('PojdiLevo', pojdi_levo)
tasmota.add_cmd('PojdiDesno', pojdi_desno) tasmota.add_cmd('PojdiDesno', pojdi_desno)
tasmota.add_cmd('PojdiRavno', pojdi_ravno) tasmota.add_cmd('PojdiRavno', pojdi_ravno)
tasmota.add_cmd('UgasniVse', ugasni_vse) tasmota.add_cmd('UgasniVse', ugasni_vse)
tasmota.add_cmd('KarNaprej', kar_naprej) tasmota.add_cmd('KarNaprej', auto_naprej)
def inicializiraj() def inicializiraj()
tasmota.cmd('WcInit') tasmota.cmd('WcInit')
end end
tasmota.set_timer(5000, inicializiraj) tasmota.set_timer(5000, inicializiraj)
tasmota.set_timer(kar_naprej_cas, auto_naprej)