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
* 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/.

BIN
observatorij.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@ -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)
tasmota.set_timer(5000, inicializiraj)
tasmota.set_timer(kar_naprej_cas, auto_naprej)