Popularny post Leoneq Napisano Kwiecień 16, 2020 Popularny post Udostępnij Napisano Kwiecień 16, 2020 Po tym, jak skończyły się pomysły na projekty gdzie było zapotrzebowanie, pojawiły się pomysły na projekty nikomu nie potrzebne. Tak w skrócie, popełniłem to coś - a jest to moduł bazujący na myszce. Tak, zwykłej, komputerowej myszce optycznej - i okazuje się, że z tą myszką można wiele zrobić... Tak jak powiedziałem - w moje ręce wpadła myszka, firmy logitech. Po rozkręceniu, myszka pokazała co było w środku: 3 przyciski, diodę IR i podwójny fototranzystor, kolejny LED z tyłu oraz dwa czipy: własny sterownik Logitecha oraz sensor optyczny ADNS2610. Wylutowałem co mi się przydało, ale uznałem że może warto by poszukać czegoś o samym sensorze w internecie. Okazało się, że ludzie podłączali się pod myszkę do Arduino, a nawet zrobili z niej kamerę! Akurat mój sensor, ADNS2610 jest bardzo dobrze udokumentowany. Po przeszukaniu całego internetu, okazało się, że i ja z tego mogę zrobić kamerę. Pokażę wam zatem efekt moich prac: moduł myszki, z wydrukowaną podstawką, oraz specjalną bibliotekę do Arduino, własnego autorstwa. Tak więc, najpierw podłączyłem myszkę do NodeMCU (ostatnie nano spaliłem...), oraz przeszukałem gotowe kody innych autorów. Większość z nich nie działała, gotowe biblioteki też, jedynie kod tego autora po lekkich modyfikacjach działał. Udało mi się podłączyć gryzonia pod Arduino, oraz sparować z Processingiem. Tak wyglądały pierwsze obrazy: Obrazki udało mi się posklejać w gifa, co pewnie już zauważyłeś/aś. Jest to napis na banknocie "Del. A. Heidrich", o wysokości ok. 1mm. Mogłem na tym skończyć - ot, faktycznie myszki to małe kamery i tyle. Przeczytałem jednak notę katalogową - skąd udało mi się wynieść kilka ciekawych informacji. Przede wszystkim, myszka faktycznie ma fizyczną rozdzielczość 18x18px. Jest zasilana z 5v (3.3v nie działa), do działania wymaga jedynie oscylatora kwarcowego 24MHz oraz kondensatora 2.2uF. Co ciekawe, ma nawet zabezpieczenie antyelektrostatyczne, do 2kV. Najważniejsze jednak była informacja, że ta kamera ma 1500 FPSów! Dlaczego zatem obraz ma 5FPS? Po dalszym odczytaniu dokumentu, okazało się że można odczytywać tylko piksel na jedną klatkę. Daje nam to 324 klatki do uzyskania pełnej ramki, co daje nam ok. 5 FPS. Okazało się także, że z tym sensorem można zrobić o wiele więcej. Bardzo mnie ten wykres zaciekawił - przedstawia on stosunek długości światła (koloru) do reagowania czujnika. Czerwony jak widać jest najlepszym kolorem do wykrywania obrazu, ale myszka jest także czujna na inne kolory. Dlatego wywaliłem starego LEDa, i dołożyłem nową diódkę LED RGB. Modyfikowanie programu było proste: zbieramy 3 osobne ramki, każdą w osobnym oświetleniu, i je łączymy w całość. Efekt był zdumiewająco dobry: Na samej górze dwie animacje - obrazu czarno-białego, oraz kolorowego. Potem "skan" dość małego tekstu "Rzeczpospolita Polska", na tym samym banknocie. Następnie kilka zdjęć kart z monopoly, oraz mój palec przyłożony do sensora. Mimo wszystko, framerate spadł aż do 1FPS - przez co obraz to bardziej pokaz slajdów, gdzie na dodatek widać rozjechane klatki przy szybkich ruchach. Może w przyszłości zrobię mikrofon z zapalniczki, i dostaniemy najtańszą kamerę świata? Następnie zagłębiłem się jeszcze bardziej w notę katalogową. Dodałem własne funkcje odczytujące dodatkowe rejestry, jak ruch relatywny w osi X/Y, poszczególne wartości pikseli. Ubrałem to wszystko w bibliotekę, którą możecie pobrać z githuba. Udało mi się nawet napisać kilka funkcji opartych na bibliotece - dzięki czemu z myszki możemy zrobić czujnik koloru: Ten program pobierał wartość średnią z ramki (myszka ma na to specjalny rejestr), i robił to 3 razy dla każdego koloru. Potem zapalał diodę na odczytany kolor, kiedy kliknąłem klawisz. Odstęp 10ms co zmianę koloru był potrzebny. aby czujnik się "przystosował" do nowego oświetlenia, przez co czujnik ten skanuje z zawrotnymi 50 klatkami na sekundę. Jeszcze szybciej jest z odczytywaniem rejestrów X i Y (praktycznie od razu), dzięki których możemy wykryć relatywny ruch. Może to znaleźć zastosowanie w robotyce, bo enkodery nie powiedzą mi "ugrzęzłem" a "koło się kręci na pełnych obrotach". Ostatnie zastosowanie jakie spróbowałem, to czujnik oświetlenia, czyli po prostu fotorezystor - myszka zwrócona "do góry nogami", oraz pobieranie średniej, najwyższej i najniższej wartości pikseli. To wszystko dalej z myszki za 5zł. Potem pomyślałem, że skoro myszka to kamera, to na 100% mogę nagrać coś większych rozmiarów. Wydrukowałem specjalną podstawkę, do której mogę przykręcić obiektyw z kamery OV7670: Tutaj już nie odważyłem się na kolorowy obraz. Musiałbym chyba cały pokój oświetlać raz na czerwono, potem na zielono, i na niebiesko... tak czy siak, tutaj są prawdziwe fotki z myszki: Od lewej: koło do robota, Eevee z drukarki, moja ręka, moja ręka v2, 123 (odległość 30, 20, 10cm), obraz z monitora. Okazało się także, że wykrywanie ruchu dalej poprawnie działa, więc zrobiłem bardzo prostą obsługę gestów: A tutaj pierwsze na świecie (?) selfie z myszki. Czułem się wtedy jakoś niewyraźnie, mam nadzieję że nie widać. Z takim zestawem można już nagrywać UFO, albo zamontować to jako monitoring sklepu... ale jak widać, z jednej myszki można zrobić bardzo, bardzo wiele. Całość udostępniam w poniższym zipie, gdyby ktoś też chciał sobie zrobić selfie z myszki. Tak jak mówiłem, moduł sobie na razie zachowam do przyszłej konstrukcji. Najlepiej to będzie wykorzystać - jak wspomniałem wcześniej - jako czujnik ruchu, czujnik kolorów czy czujnik gestów. Ta ostatnia opcja chyba będzie najlepsza, bo gotowe moduły już nie kosztują 5zł. Ale nie dewastujcie swoich myszek jak nie mają takiego samego czipu, warto poszukać czy nie jest on kompatybilny z moim lub innym dobrze udokumentowanym - w bibliotece dałem możliwość zmiany rejestrów. I nie, nie nudzi mi się w koronaferie. mouze.zip 4 Link do komentarza Share on other sites More sharing options...
M.G. Kwiecień 27, 2020 Udostępnij Kwiecień 27, 2020 Jestem inżynierem mechanikiem i przeczytałem ten artykuł z dużym zainteresowaniem. Ta miniaturowa kamera-miernik prędkości mógłby znaleźć szerokie zastosowanie w nowoczesnych dojarkach do pomiaru szybkości doju i wykrywaniu tzw. pustodoju (b. szkodliwego) bezpośrednio za kubkiem udojowym a nie jak dotychczas ok. 2m za aparatem udojowym - przy czym jest to pomiar uśredniony dla 4 strzyków ("krowich cycków") i w dodatku rozmyty i nieco opóźniony. Problem praktycznie nie istnieje w robotach udojowych, bo tam każdy kubek udojowy jest odrębnie, automatycznie zakładany i zdejmowany (- na podstawie sygnałów z jednego z 4 przepływomierzy). Niestety taka "zabawka" to min. 100 tys. zł + serwis automatycznie powiadamiany przez GSM do praktycznie każdej usterki. Tak więc tradycyjne aparaty udojowe z ręczną obsługą jeszcze długo sobie pożyją. Znam pewnego absolwenta politechniki - elektronika który mając dostęp do działającego wzorca "połamał sobie zęby" próbując skonstruować wersję miniaturową tego optycznego przepływomierza. Skończyło się na przepływomierzu termicznym (czyli czujniku temperatury z miniaturowym grzejnikiem) który dobrze spisuje się tylko przy dużych przepływach. Na pocieszenie niech będzie fakt, że dotychczas tego problemu nie udało się rozwiązać żadnemu ze światowych producentów urządzeń udojowych. I tak po zapoznaniu się z notą katalogową ADNS2610 i rysunkami konstrukcyjnymi myszy stwierdziłem, że podstawowym problemem będzie układ optyczny - konieczność przesunięcia soczewki w kierunku matrycy w ADNS2610 tak, aby można było obserwować obraz z odległości 6-7 mm, przy czym soczewka powinna być mocno i szczelnie osadzona w ściance przewodu mlecznego (różnica ciśnień 40-50 kPa). W myszy soczewka jest zintegrowana z podwójnym pryzmatem oświetlającym i pierścieniem łącząco-centrującym pasującym do gniazda w ADNS2610. Te dodatki powinny być jakoś odcięte, a dioda oświetlająca oddzielnie osadzona w ściance. Całość powinna być zamknięta w wodoszczelnej obudowie odpornej na zgniatanie o średnicy ok.3 cm i możliwie małej wysokości h (maks.3 cm). W warunkach amatorskich to chyba niewykonane ... 2 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »