Skocz do zawartości

Czujnik odległości VL53L0X


Pomocna odpowiedź

Cześć, ma ktoś doświadczenie z tymi czujnikami? Może coś więcej o nich napisać? Chcę czymś zastąpić hc-sr04, który mierzy mi poziom węgla w zasobniku kotła. Jednak za bardzo się tam nie sprawdza bo i węgiel nierówny i pojemnik mały, skośne ścianki, same problemy dla dźwięku... Dodatkowy problem to okresowe zapylenie, a skoro tam jest laser, to da się to jakoś czyścić czy coś. 

Może ktoś poleci jednak coś zupełnie innego...? 

Edytowano przez SOYER
Link to post
Share on other sites
(edytowany)

Powiem tak: mierzy to dokładnie, jeśli to pojemnik w którym jest ciemno to jeszcze lepiej, teoretycznie cud-miód.

W praktyce: biblioteki do Arduino są - powiedzmy - średniej jakości, co do zapylenia to nie powiem bo w takich warunkach nie próbowałem, ale wątpię aby przeżył. Teoretycznie może pracować przez szybę, ale nigdy mi się to nie udało (w bibliotece brak procedur kalibracji, a na przerabianie oryginalnych bibliotek ST nie miałem ani czasu, ani chęci.

Jakby coś to trochę się nim bawiłem - patrz Zbignaś Kopłapow - możesz podpatrzeć w kodzie.

 

Edytowano przez ethanak
  • Pomogłeś! 1
Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

mierzy dokładnie to samo co czujnik ultradźwiękowy tylko zamiast dźwięku używa wiązki lasera. Jak chcesz to poczytaj gdzieś o diodzie SPAD.

  • Lubię! 2
Link to post
Share on other sites
(edytowany)

Używam wraz z modułem attiny85 jako czujnik obecności w sterowniku oświetlenia schodów LED.

Jakiś czas temu kupiłem kilka z aliexpress i miałem problemy z pojedyńczymi sztukami, na dystansie do 100cm generowały przypadkowe odczyty, tak jakby szum, zgadywałem, że kurz/pył je wzbudzał, ale wymiana czujnika na inny rozwiązywała problem.
Teraz czekam inną wersję VL53L1X, mam nadzieję że będą lepsze, bo bawiłem się gotowym modułem:

https://www.fif.com.pl/pl/czujniki-ruchu/1119-laserowy-czujnik-odleglosci-drl-12.html

który wydaje się mieć takie same, albo bardzo podobne czujniki i działa świetnie.:)

 

Aa i zapomniałem, E18-D80NK, realnie ma zasięg max 50cm, a nie 80cm i zależy od on zewnętrznego natężenia światła. Być może jest bardziej stabilny, nie wzbudza się na krótkim dystansie, ale jeśli ma ustawiony maksymalny zasięg na potencjometrze, to zmiany oświetlenia (na jaśniejsze) powodują aktywację czujnika. Wtedy należy ponownie dopasować maksymalną czułość, aż okazuje się że z 80cm zrobiło się np 40.. Fajnym patentem na niego mogą być takie odblaski rowerowe, albo drogowe, które mogą faktycznie zwiększyć zasięg i chyba odwrócić logikę.

https://www.aliexpress.com/item/32582030944.html

Edytowano przez polihedron
  • Lubię! 1
Link to post
Share on other sites

Dzięki, wychodzi, że laserówka nie bardzo będzie się nadawać, bo każdy pył, dym będzie przekłamywał odczyty. 

Waga odpada, ze względu na trudności montażowe. 

Jakieś inne pomysły? 

Link to post
Share on other sites

Możesz programowo sobie ustawić np czas detekcji, u mnie potrzebny był krótki, bo ktoś np wbiega na schody.
Sprawdzasz sobie czy po np 30 minutach zmienił się stan czujnika, albo krótkie zmiany stanu ignorujesz.:)

Link to post
Share on other sites
48 minut temu, SOYER napisał:

Jakieś inne pomysły? 

A czujniki Sharpa (coś z tej serii, nie wiem jakie odległości mierzysz)? Nie są tak dokładne jak ToF,  ale powinny wystarczyć, a odczyt jest przez zwykły analogRead.

40 minut temu, polihedron napisał:

Sprawdzasz sobie czy po np 30 minutach zmienił się stan czujnika

Ech... to ja tu liczę jakieś mediany, różnej maści średnie, a wystarczy sprawdzić stan co 30 minut... zawsze się człowiek czegoś nowego dowie 😉

Link to post
Share on other sites
(edytowany)
58 minut temu, SOYER napisał:

@polihedron napisz coś więcej o metodologii pomiarów tym laserem

chodzi o VL53L0X? 

tam dużej filozofii nie ma, prosty przykład na attiny85, czujnik na i2c:

#include <Wire.h>
#include <VL53L0X.h>
#define LED_PIN           1 	// P1 wyjście
#define RANGE_PIN         A2 	// P4 wejście na 10k potencjometr
 
VL53L0X sensor;

void setup()
{
  pinMode(LED_PIN,OUTPUT);
  pinMode(RANGE_PIN,INPUT);
  Wire.begin();
  sensor.setTimeout(500);
  sensor.init();
  sensor.startContinuous();
}

void loop()	{
  
int adcvalue = analogRead(RANGE_PIN);
int range = map(adcvalue, 0, 1023, 500, 1500);			// zmiana wartości adc na max. dystans w mm 
int value = sensor.readRangeContinuousMillimeters();
  
 if ( value < range )
 {
  	digitalWrite(LED_PIN,HIGH);
   	delay (200);
 }
 else
 digitalWrite(LED_PIN,LOW);
}

 

jeśli chodzi o cyfrową obróbkę sygnału z czujnika to tak jak kolega @ethanak napisał: mediany, średnie, wszystko co zapewni wystarczającą skuteczność.:)

 

  

1 godzinę temu, ethanak napisał:

Ech... to ja tu liczę jakieś mediany, różnej maści średnie, a wystarczy sprawdzić stan co 30 minut... zawsze się człowiek czegoś nowego dowie 😉

ważne aby było skuteczne, a w jaki sposób, czy elegancki, albo siermiężny, to druga rzecz, raczej mniej istotna.;)

(dla mnie)

Edytowano przez polihedron
Link to post
Share on other sites

Tak przy okazji: tutaj masz ciekawy artykuł o tym czujniku, być może jednak da się zastosować do kotła?

Warto się pobawić metodami  setSignalRateLimit i setVcselPulsePeriod, być może uda się zniwelować wpływ dymu/pyłu?

Tak przy okazji: czujnik lubi sobie zwrócić np. 8191 (co w jego języku oznacza "czort wie jak daleko"), ja zrobiłem coś takiego (w uproszczeniu):

int readRange(void)
{
    int distan=lidar.readRangeSingleMillimeters();
    if (distan == 8191) {
        distan=lidar.readRangeSingleMillimeters();
    }
    return distan;
}

Sam musisz stwierdzić, czy czujnik ma pracować w trybie continuous czy single, ja do tego zastosowania raczej radziłbym single.

  • Lubię! 1
  • Pomogłeś! 1
Link to post
Share on other sites

Dzięki, z tym pyłem i dymem to nie tak, że on będzie musiał w takich warunkach mierzyć, raczej nie, tylko w czasie zasypywania trochę się kurzy i nie chcę by przez to się zasyfił. Po zamknięciu zbiornika i 5 minutach jest tam ciemno i spokojnie, chyba;) 

Link to post
Share on other sites

Możesz zrobić coś a'la pływak w zbiorniku z cieczą. Trzeba tylko pamiętać aby podczas zasypywania unosić go do góry a po zasypaniu oprzeć o węgiel.

Na końcu ramienia tego pływaka potencjometr albo stycznik na ustalonym poziomie.

  • Lubię! 2
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.