Jakiego czujnika należy użyć, aby ustalić, czy mój projekt się porusza?

9

Nie obchodzi mnie, jak bardzo się porusza, jak szybko lub w jakim kierunku, chcę tylko, aby mój projekt oparty na Arduino wiedział, czy się porusza, czy nie (więc mogę wyłączyć diody LED o dużym natężeniu prądu, gdy mój rower stoi oszczędzaj baterię.)

Czy chcę akcelerometr, żyroskop lub inny czujnik?

Robert Atkins
źródło
3
Do czego dołączony jest projekt? Bardzo stały / stabilny ruch liniowy może być trudniejszy do wykrycia, ale w samochodach / pchaczach itp. Normalnie dość łatwo można wykryć zmiany orentacji i wibracji.
PeterJ
Jakiego rodzaju jest twoje urządzenie? To jest terranean, kolej, woda, pojazd powietrzny czy coś innego? Jak definiujesz termin „przeprowadzka”? Np. urządzenie przewożone transportem, które uważa się za ruchome czy nie?
Vovanium
Edytuj, aby wskazać projekt montowany na rowerze. Nie ma go na szynach ;-).
Robert Atkins
@LeoR Myślałem, że akcelerometr będzie prawdopodobnie najlepszym rozwiązaniem, ale potem znalazłem odpowiedź: electronics.stackexchange.com/questions/105826/... (czujnik drgań sprężynowych w rurce). Czy to przesadzam? Czy mogę dodać do tego kilka pasywnych elementów, aby raportował „wysoko” do pinu Arduino przez 30–60 po ostatnim nawiązaniu kontaktu?
Robert Atkins
2
Dodaj przesłonięcie: możesz nie chcieć, aby światła zgasły na światłach!
Brian Drummond

Odpowiedzi:

10

Jeśli jest do użytku na rowerze, użyłbym obwodu detekcji opto o niskiej mocy na szprychach koła. Istnieje kilka wariantów tego i ważna jest zdolność do pulsowania diody LED w celu oszczędzania energii, więc jeśli szprycha przechodzi 10 razy na sekundę (wskazując minimalną prędkość), wówczas musisz zasilić diodę przez co najmniej 0,1 sekund i „szukaj” przerwania wiązki - oznacza to ruch. Po prostu pomysł.

Możesz również rozważyć użycie przełącznika siodłowego, aby jeśli ktoś nie usiadł na siodle i nie wykryto żadnego ruchu, dioda LED całkowicie się wyłączy.

Andy aka
źródło
5
Tradycyjnie prędkościomierz rowerowy wykorzystuje kontaktron i magnes przymocowany do jednej ze szprych. Koło roweru (w kontakcie z ziemią i pod ludzką mocą) nie może obracać się szybciej niż 20 Hz, więc może się pojawić tani kontaktron. Brak zasilania, gdy nie jest używany, obciążenie rezystora obniżającego, gdy jest włączony. Przez lata działałem bezprzewodowo na parze monet.
Phil
7

W większości przypadków odpowiedni byłby akcelerometr. Technicznie przyspieszenie wyniesie 0 przy stałej prędkości, ale w praktyce, chyba że twój projekt jest zamontowany na szynie wyjątkowo niskiej wibracji, zobaczysz wahania przyspieszenia podczas ruchu. Wykorzystanie średniej kroczącej w każdej osi powinno być dość proste i uznać urządzenie za „poruszające się”, gdy zmiana jest powyżej pewnego progu. Wykryte zostanie trochę przypadkowego przyspieszenia, gdy urządzenie jest nieruchome, ale progowanie powinno sobie z tym poradzić.

Możesz dostać tablice z zamontowanymi na nich akcelerometrami I2C od wielu hobbystycznych dostawców elektroniki. Procedura rozmowy z nimi będzie się nieco różnić w zależności od układu, ale generalnie rozmowa z urządzeniami I2C z arduino jest dość łatwa.

LeoR
źródło
Zachowaj ostrożność, używając samego przyspieszenia, podczas podróży ze stałą prędkością zobaczysz również przyspieszenie 0.
helloworld922
7
Nie sądzę, żebym kiedykolwiek widział poruszający się pojazd, który faktycznie porusza się ze stałą prędkością. Za każdym razem, gdy bawiłem się akcelerometrami, można było dość wyraźnie odróżnić „ruch” i „stacjonarny”, ponieważ podczas ruchu przynajmniej jedna oś zmieniałaby się z przypadkowymi drganiami i szarpnięciami.
LeoR
Powinieneś użyć wariancji średniej bieżącej. Pozwoli to na przykład ustawić rower na boku i nie zmuszać go do ciągłego uruchamiania z powodu przyspieszenia spowodowanego grawitacją.
Samuel
Wystarczy zamontować akcelerometr na kierownicy. I tak prawdopodobnie jest to dioda LED, a kierownica nigdy nie jest stabilna podczas jazdy.
MSalters
7

Podczas gdy jako cel określasz „sprawdzanie, czy się porusza”. Mogę zalecić inny sposób sprawdzenia, czy rower jest w ruchu. Ilość przechwyconych akcelerometrów hałasu jest zdumiewająca - być może twoja sytuacja powoduje, że będzie wyraźne rozgraniczenie pomiędzy „w użyciu i ruchu” a „nieużytkowanym i ciągle się porusza”. Nie spodziewałbym się, że tak będzie.

Warto wziąć pod uwagę, że jeśli rower jest przymocowany / zaparkowany w konstrukcji, która często się porusza (inni przyczepiają lub odłączają swoje rowery, pociągi lub pojazdy w pobliżu, w pomieszczeniu w pobliżu szalonej pompy HVAC, w pomieszczeniu na drewnianej / sprężystej podłodze, gdy ktoś przechodzi. ..) wtedy twoje światła zapalą się przy każdym ruchu roweru. To nie jest tak naprawdę to, czego chcesz. Chcesz, aby światła włączały się, gdy jeździec (ty) porusza rowerem. W tym celu zadziałałby czujnik zbliżeniowy (który jest blokowany tylko na rowerze) lub nawet coś w rodzaju czujnika prędkości / kontaktronu. Oto samouczek dotyczący prędkościomierza rowerowego Arduino przy użyciu kontaktronu: http://www.instructables.com/id/Arduino-Bike-Speedometer/ Dodatkową zaletą jest to, że uzyskuje się odczyt prędkości i dodanie wyzwalacza do świateł byłoby dość trywialne (z opóźnionym wyłączeniem w okresach, gdy rower nie porusza się w poszukiwaniu świateł / ruchu itp.)

Nahkki
źródło
5

Akcelerometry, jak sugerują inni, są dość łatwe w użyciu, szczególnie na Arduino z wszystkimi dostępnymi bibliotekami i płytami bezpieczeństwa. Inną rzeczą, na którą warto zwrócić uwagę, jest czujnik wibracji piezoelektrycznych, taki jak ten dostępny obecnie w Sparkfun za 2,95 USD:

wprowadź opis zdjęcia tutaj

Tylko uważaj, aby zauważyć, jak wysokie może być napięcie wyjściowe, sugerują użycie dzielnika rezystora w celu zmniejszenia napięcia i użycie styku ADC. Chociaż osobiście nie przepadam za użyciem wewnętrznych zacisków diod w AVR, jeśli użyłbyś powiedzmy, że rezystor ograniczający prąd serii 1K, biorąc pod uwagę niski prąd na początek, nie widzę, że miałbyś zbyt wiele problemów z podłączeniem do cyfrowego wejście, jeśli daje to wystarczającą czułość, a niewielki wzrost Vcc nie spowoduje innych problemów, dopóki zaciski nie zaczną działać.

W każdym razie może to być kolejny czujnik, który byłby interesujący. Chociaż prawdopodobnie nie będzie to miało większego znaczenia dla Arduino, które ma stosunkowo wysoki prąd spoczynkowy na regulatorze i twój konkretny projekt, mogą być fajne dla wielu projektów. Pobierają zerową moc i mogą być użyte do wybudzenia mikrokontrolera z głębokiego snu, zakładając, że dostaniesz wystarczająco dużo wibracji, aby wyzwolić wysoki poziom logiczny.

PeterJ
źródło
+1 za możliwość obudzenia mikro!
Seidleroni
4

Jakiś aparat o wysokiej rozdzielczości i optyka o niskiej rozdzielczości, który wykonuje wiele zdjęć (z setkami lub tysiącami klatek na sekundę ) powierzchni, na której się porusza, i porównuje je w czasie rzeczywistym z wbudowanym specjalnie zaprojektowanym procesorem mierzyć ruch. Najlepiej wszystko na chipie, z wygodnym interfejsem MCU.

Innymi słowy, optyczny czujnik myszy. wprowadź opis zdjęcia tutaj

Niestety wygląda na to, że części Avago nie są już dostępne w dystrybucji, ale możesz zhakować mysz optyczną, która da ci również optykę i diodę LED podświetlenia (być może będziesz musiał zmodyfikować optykę, aby uzyskać odpowiednią odległość). Wiele czujników wydaje się pochodzić z Pixart na Tajwanie, a karty danych są dostępne (często nieprawdziwe).

Spehro Pefhany
źródło
2

Wiele z tych odpowiedzi jest nadmiernie skomplikowanych i najprawdopodobniej doprowadzi do fałszywych wyników pozytywnych i / lub fałszywych negatywnych. Akcelerometry odejdą, jeśli rower zostanie w ogóle poruszony, i nie będą strzelać, jeśli poruszasz się ze stałą prędkością. Wykonywanie optycznych ujęć gruntu jest kosztowne procesowo i niewiarygodnie niezawodne, jeśli czujnik nie jest tak świetny. Pomiar wibracji zostanie uruchomiony, jeśli ktoś uderzy w rower lub zostanie w jakikolwiek sposób wstrząśnięty.
Jest bardzo proste pytanie, które musisz zadać, aby znaleźć poprawną odpowiedź: Czym różni się jeździec jadący rowerem od czegoś innego, co go porusza? Odpowiedź jest równie prosta: koła się obracają.
Zatem twoim rozwiązaniem jest użycie czegoś, co mierzy koło na osi obrotu, na przykład pomysłu myszy Spehro.
Zapewni to, że twój system uruchomi się wtedy i tylko wtedy, gdy jeździec spowoduje jego ruch.

Szansa
źródło
Chciałbym pójść o krok dalej i zapytać „jak mogę stwierdzić, czy dana osoba korzysta z roweru?”
hoosierEE
2

Lub możesz wyczuć, kiedy rowerzysta jedzie na rowerze, na przykład:

  • skok zawieszenia (np. przerywacz optyczny na przednim widelcu)
  • ciśnienie w oponach (trudne, biorąc pod uwagę rozmiar opony rowerowej)
  • flex ramy (lepszy do ram stalowych niż aluminium lub karbon)
  • czujniki ciśnienia w punktach kontaktowych (uchwyty, siodło, pedały; logiczne LUB razem)
  • Przełącznik podpórki
hoosierEE
źródło
2

Jeśli nie obchodzi Cię, jaki rodzaj ruchu się dzieje, najłatwiejszym rozwiązaniem jest zastosowanie toczącej się kulki. Wymaga tylko wejścia cyfrowego i filtra dolnoprzepustowego.

Jednym z przykładów jest Signalquest SQ-SEN-200. Istnieją inne mniejsze i większe warianty tej samej technologii (SMD i otwór przelotowy).

Lior Bilia
źródło
Czy toczący się przełącznik kulowy wymaga pojęcia „góra”? W chwili obecnej podnoszę projekt i ustawiam go do góry nogami w stosunku do poprzedniej orientacji. Czy poruszał się raz, czy porusza się ciągle zgodnie z przełącznikiem?
Robert Atkins,
Istnieje kilka odmian takiego przełącznika, które mogą wyzwalać się podczas przechylania, wibracji lub wstrząsania. Kulki wewnątrz komponentu ostatecznie docierają do pozycji spoczynkowej, więc to do programisty należy decyzja, co zrobić z wygenerowanymi danymi.
Lior Bilia,
0

Aby tylko wykryć, że obiekt się porusza, sugeruję fotointerrupter z jakimś wahadłem. Weź taką i zbuduj „mechaniczną rzecz”, która porusza się w obszarze wykrywania. http://se.farnell.com/sharp/gp1s53vj000f/photointerrupter-compact/dp/9708065

Prawdopodobnie możesz odzyskać wszystkie potrzebne części z myszy komputerowej za pomocą przycisku koła lub czujnika ruchu kulki.

Dejvid_no1
źródło
2
To mechaniczny akcelerometr. Akcelerometr MEMS jest tańszy
Scott Seidman
Wow, obwody MEMS są obecnie naprawdę tanie.
Dejvid_no1
Absolutnie. 3-D akcelerometr MEMS z wyjściami cyfrowymi działa obecnie około 1,50 $ w skromnych ilościach (jak 10)
Scott Seidman
2
15 lat temu płaciłem około 1500 $ za akcelerometry z możliwościami, które dostanie mnie dzisiaj 1,50 $
Scott Seidman
1
@ScottSeidman To prawda, ale dzisiejsze akcelerometry równoważenia siły są nadal o rząd wielkości lepsze niż najlepsze MEMS dla prądu stałego do ~ 100 Hz! Niestety są one o dwa rzędy wielkości droższe.
Phil