Witam serdecznie.
szybkie pytanie, troche utknąłem z komendami w rules.
chcialbym uzyskać efekt przemieszczania sie swiatła (tasma rgb adresowalna) wzgledem odczytow z czujnika hc-sr04. co prawda nie mam jeszcze czujnika , czekam az majfriendy dosla, napisalem narazie komende uruchamiajaca nie wiem nawet czy to w ten sposob zadziala i czy w komende neopixel mozna wpisac takie dzialanie matematyczne ponizej jak to wyglada:
on HCSR04#distance do
if [HCSR04#distance]<300 and [HCSR04#distance]>1
neopixelline,[HCSR04#distance]/1,67-5,[HCSR04#distance]/1,67+5,70,70,70
neopixel,[HCSR04#distance]/1.67,255,255,255
w ramach wyjasnienia sonar mierzy odleglosc ktora maksymalnie wynosi 300 cm (dlugosc schodow) minimalnie bedzie to 2 cm. w momencie wejscia na pierszy stopien poiwnny zapalic sie jedna dioda na 100% jasnosci oraz 5 diod w przod i 5 diod w tyl z jasnoscia okolo 30%. odleglosc miedzy diodami na tasmie wynosi okolo 1,67 cm ( przy takiej wartosci wylicza to najblizej preferowanej diody)
pytanie nr1 czy komenda neopixel pozwoli na takie okreslenie numeru diody ?
jesli tak nie mozna tego wpisac to jaka propozycja jak to zrobic inaczej ? nie chce pisac tego dla kazdego stopnia osobno przypisujac okreslone diody do odleglosci sensora, w tym przypadku nie starczy mi te 2048 znakow w rules.
pytanie nr 2, jesli ma to szanse zadzialac z takimi komendami , jak teraz te diody ktore sie wlacza wylaczyc po np 15 sekundach, jesli wciaz bede sie przemieszczac bo schodach i nie moge wylacz diod podobna komenda ustawioną na 0,0,0 ?
pozdrwiam!
Zdążyłem przeprowadzić parę prób zmienić co nieco zatem co następuje:
Komenda
neopixelline,[HCSR04#distance]/1,67-5,[HCSR04#distance]/1,67+5,70,70,70
neopixel,[HCSR04#distance]/1.67,255,255,255
Żadna z nich nie bardzo chce działać z takimi wpisami
Zatem dodałem kolejny czujnik hc-sr04 nazwany numerled który w polu value wykonuje obliczenie distance/1.67
Komenda wygląda tak:
Neopixel[numerled#distance],255,255,255
Dziala ok , po obliczeni włącza odpowiednią diodę.
Ale w przypadku komendy z zakresem neopixelLine , mam teraz dodać dwa kolejne sensory które policzą mi zakres pięć diod w przód i w tył ? CHcialem użyć dummy device do tego ale tam odrzuca mi wszelkie działania typu +-/*
widze że cięzko o jakąkolwiek pomoc, nawet typu stary ale to zje@#$%ś!
no dobrze to moze inaczej zapytam ,
Aktualnie z braku porad udało mi sie samemu wykorzystac dummy device do przechowania trzech wartosci , ktore są mi potrzebne, plik rules wyglada nastepująco:
On HCSR04#distance do
if [hcsr04#distance]>0
TaskValueSet 1,1,[hcsr04#Distance]/1.67 //wartosc dummy device 1 i obliczanie diody centralnej na stopniu
taskvalueset 1,2,[numerled#1]-5 //obliczanie pieciu diod w dół od centralnej
taskvalueset 1,3,[numerled#1]+5 // obliczanie pieciu diod w gore od centralnej
neopixelline,[numerled#2],[numerled#3],120,120,120 //zapalanie linii diod od do na 50 procent jasnosci
neopixel,[numerled#1],250,250,250 //zapalanie centralenj diody stopnia na 100 procent
timerset 1,5
delay 300
endif
endon
teraz może ktoś doraddzić , jak wykonać, co trzeba by wpisać , w momencie jak odczyt wartosci hcsr04 sie zmieni, ale po tej zmianie nadal chcialbym sie odniesc do poprzednich wartosci w celu wylaczenia diod?
pomoże, ktoś, coś, jakaś podpowiedź była by mile widziania ,
pozdrawiam
Witajcie, choć odnosze wrażenie ze pisze sam dla siebie i odpowiadam sam sobie... Ale jeśli ktoś jest zainteresowany , stworzylem dzialajace rules pod to co chciałem, nie działa zachwycająco tak jak planowałem , ciężko uzyskać dokladnie efekt śledzenia użytkownika przez światło, ale może bedzie komuś innemu pomocne kod podzielilem miedzy cztery rules, w przypadku gdy wszystko jest wpisane w jednego , wywala w logach zbyt duża ilosc zagniezdzen IF i generalnie esp z braku pamieci sie resetuje .
on hcsr04#distance do
if [hcsr04#distance]>0 and [hcsr04#distance]<30
neopixelline,1,30,255,255,255
else
neopixelline,1,30,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>31 and [hcsr04#distance]<60
neopixelline,31,60,255,255,255
else
neopixelline,31,60,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>61 and [hcsr04#distance]<90
neopixelline,61,90,255,255,255
else
neopixelline,61,90,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>91 and [hcsr04#distance]<120
neopixelline,91,120,255,255,255
else
neopixelline,91,120,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>121 and [hcsr04#distance]<150
neopixelline,121,150,255,255,255
else
neopixelline,121,150,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>151 and [hcsr04#distance]<180
neopixelline,151,180,255,255,255
else
neopixelline,151,180,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>181 and [hcsr04#distance]<210
neopixelline,181,210,255,255,255
else
neopixelline,181,210,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>211 and [hcsr04#distance]<240
neopixelline,211,240,255,255,255
else
neopixelline,211,240,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>241 and [hcsr04#distance]<270
neopixelline,241,270,255,255,255
else
neopixelline,241,270,0,0,0
on hcsr04#distance do
if [hcsr04#distance]>271 and [hcsr04#distance]<300
neopixelline,271,300,255,255,255
else
neopixelline,271,300,0,0,0
endif
Hej
czytając to, zaciekawiło mnie czy to jest coś podobnego co ja chcę osiągnąć a mianowicie:
Chciałbym podłączyć do wemos D! mini około 20 diody adresowalne aby je zaprogramować aby włączały się w odpowiedniej kolejności i odpowiednim kolorze
Do tej pory wgrywałem esp easy i najchętniej na tym chciałbym to zrobić ale jeśli musi być tasmota to może podpowiedział być mi jak to zrobić?
Cześć. Wygląda na dość proste do opanowania . Co prawda nie jest to dwadzieścia diod a.tylko dwie ale uzywam adresowalne diody jako wskaźnik wykrycia ruchu