| Author |
Message
|
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#1
03 Jun 2007 22:35 Rękawica wirtualna na BlueTooth - projekt |
|
|
|
Dzisiaj miałem przyjemność razem z kolegą Sebastianem Żurkiem przedstawić szerszej publiczności skonstruowane przez nas rękawice wirtualne. Skoro "zwykłych zjadaczy chleba" bardzo zainteresowało nasze rozwiązanie, tym bardziej liczę na odzew ze strony Koleżanek i Kolegów ;).
W rękawicach znajdują się akcelerometry mierzące przyspieszenie w każdej z osi (XYZ) oraz liniowe czujniki Halla odpowiedzialne za detekcję zgięcia palców. Nad przetwarzaniem i wysyłaniem danych czuwa TINY26. Komunikacja odbywa się drogą radiową (poprzez moduły Bluetooth).
Oprogramowanie na PC (autorstwa Sebastiana) pracuje na bazie połączenia serwer-klient. Gdzie serwer odpowiada za odbiór i analizę danych, natomiast klienci realizują już określone funkcje czerpiąc "przerobione" dane z serwera. Taki zabieg pozwala na uruchamianie wielu aplikacji równolegle: w czasie pokazów równocześnie pracowały programy symulujące wirtualna rękę, odtwarzające dźwięki modulowane przez ruch w każdej z osi jak również rysując wirtualne rysunki.
Ponadto nie ma żadnego ograniczenia na to gdzie uruchomiony jest serwer a gdzie klient - możemy sterować ręką w jednym miejscu a rezultaty otrzymywać w dowolnym zakątku na świecie (jeśli jest oczywiście możliwość przesłania tam danych ;) )
Projekt i wykonanie PCB:
Prototyp w czasie testów:
Zasilanie czujników Halla odbywa się przez oddzielny stabilizator (5V) posiadający wejście sterujące ON/OFF podpięte do mikrokontrolera.
Rozmiary zewnętrzne.
Na pierwszym planie akcelerometr.
Dla porównania inny moduł akcelerometrów wykonany przeze mnie (standardowa obudowa od IRDY)
W czasie pokazów:
|
|
| Back to top |
|
 |
ghost666 Poziom 24

Joined: 10 Jun 2003 Posts: 4610 Location: Toruń
|
#2
03 Jun 2007 22:52 Re: Rękawica wirtualna. |
|
|
|
Napiszcie może coś więcej o sensoryce? Jakie czujniki wykorzystaliście i jak połączyliście je z uC.
|
|
| Back to top |
|
 |
Google

|
#
03 Jun 2007 22:52 |
|
|
|
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#3
03 Jun 2007 23:01 Re: Rękawica wirtualna. |
|
|
|
Akcelerometr - LIS3L02
Czujnik Halla - SS49
Oba układy mają zwykłe wyjście napięciowe które można bezpośrednio podłączyć do przetwornika ADC mikrokontrolera.
|
|
| Back to top |
|
 |
Morg Poziom 11

Joined: 21 Feb 2006 Posts: 74 Location: Wrocław
|
#4
03 Jun 2007 23:07 Re: Rękawica wirtualna. |
|
|
|
Wow, spadłem z krzesła z wrażenia, wygląda naprawdę profesjonalnie - może jeszcze wrzuciłbyś jakieś video ??
Dawno nie widziałem tak ciekawego projektu w tym dziale.
|
|
| Back to top |
|
 |
ciapciok Poziom 18

Joined: 05 Apr 2004 Posts: 477 Location: Opole
|
#5
03 Jun 2007 23:39 Re: Rękawica wirtualna. |
|
|
|
Uff, nareszcie jakiś porządny projekt. Czy to jest jakaś praca zaliczeniowa ? Jakie zastosowaliście moduły BT ?
Pozdrawiam
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#6
04 Jun 2007 04:39 Re: Rękawica wirtualna. |
|
|
|
:arrow: Morg, postaram się jeszcze dzisiaj umieścić film.
:arrow: ciapciok, to nie żadna praca zaliczeniowa ;) tylko przykład wykorzystania podstawowych zjawisk fizycznych (siła grawitacji, bezwładność, efekt Halla itd.) w codziennym życiu.
Moduł bluetooth - CCC-BT-240
|
|
| Back to top |
|
 |
ghost666 Poziom 24

Joined: 10 Jun 2003 Posts: 4610 Location: Toruń
|
#7
04 Jun 2007 05:59 Re: Rękawica wirtualna. |
|
|
|
A jak wykorzystywaliście czujnik Halla? Przecież to detektor pola mag, a nie detektor ruchu..?
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#8
04 Jun 2007 06:31 Re: Rękawica wirtualna. |
|
|
|
:arrow: ghost666, jak już pisałem, czujniki pola magnetycznego odpowiadają za detekcję położenia palców. Oczywiście żeby działały one prawidłowo potrzebne jest pole magnetyczne ;), dlatego też w rękawice zostały wszyte magnesy. Bez dodatkowego wzmocnienia można wykryć już niewielkie ugięcie palców.
|
|
| Back to top |
|
 |
rockyr14 Poziom 7

Joined: 05 May 2007 Posts: 21 Location: Zawidów
|
#9
04 Jun 2007 07:10 Re: Rękawica wirtualna. |
|
|
|
WOW naprawde niezły projekt mam pytanie czy ruch ręki też jest odczytywany ?? ( tzn np zgięciem łokcia nie ruszając nadgarstkiem :) )
|
|
| Back to top |
|
 |
mirekk36 Poziom 25

Joined: 17 Jun 2006 Posts: 8152 Location: Szczecin
|
#10
04 Jun 2007 07:39 Re: Rękawica wirtualna. |
|
|
|
crazy_phisic - NIESAMOWITE ;)
a przy okazji moje pytanko tym razem nie o czujniki i procki - tylko o program na PC - pisaliście go sami czy jakiś gotowiec? choć wątpię czy gotowiec, a jeśli sami? to w czym?
pozdrówka i powodzenia nad dalszym udoskonalaniem wynalazku ;)
|
|
| Back to top |
|
 |
gsm_pce Poziom 10

Joined: 29 Dec 2006 Posts: 46 Location: Łódź
|
#11
04 Jun 2007 07:53 Re: Rękawica wirtualna. |
|
|
|
| ciapciok wrote: |
Uff, nareszcie jakiś porządny projekt.
Pozdrawiam |
Mysle ze na elektrodzie musza byc rozne projekty zarówno te mniej jak i bardziej zaawansowane ( oprócz klimatyzatorów ) :)
Według mnie ta rękawica jest swietna, perfekcyjne wykonanie i jeszcze ta płytka PCB. Chciałbym kiedyś sprawdzić jak w rzeczywistości działa. Dla mnie 11/10 , az sie skala skonczyla :)
|
|
| Back to top |
|
 |
michal2666 Poziom 17

Joined: 07 Aug 2005 Posts: 413 Location: Pionki
|
#12
04 Jun 2007 09:04 Re: Rękawica wirtualna. |
|
|
|
Brak mi słów !! też chciałbym umieć wykorzystywać potęgę mikroprocesorów do tego stopnia by tworzyć takie cudeńka. SUPER wykonanie - bardzo lubię estetycznie wykonane projekty !!!. Moja ocena to 10/10 !!!
|
|
| Back to top |
|
 |
tomeeh Poziom 19

Joined: 15 Oct 2004 Posts: 633 Location: Ostrów Wlkp.
|
#13
04 Jun 2007 09:15 Re: Rękawica wirtualna. |
|
|
|
Crazy_phisic, bardzo dobra rzecz, gratuluję.
Możesz powiedzieć 2 słowa więcej o sposobie przesyłu danych modułów bluetooth z µC? Czy wykorzystaliście po prostu RS-232 od strony µC, a całą resztą zajmuje się sam moduł BT?
I jeszcze małe pytanie co do działania akcelerometrów. Czy w momencie startu programu rękawica musi znajdować się w określonej pozycji? Tzn. akcelerometr zmierzy tylko przyspieszenie, a więc zmianę prędkości w czasie, czy zatem pozycja wyjściowa musi być znana? Chodzi mi o to, czy to nie jest tak, że urządzenie reaguje na zmiany położenia, a więc w takim przypadku pozycja wyjściowa musi być ściśle określona?
A może jest tak, że akcelerometr mierzy bez problemu przyciąganie ziemskie, i wówczas określanie pozycji wyjściowej jest zbędne?
|
|
| Back to top |
|
 |
dreki.eldheitur Poziom 5

Joined: 26 Apr 2007 Posts: 12 Location: Warszawa
|
#14
04 Jun 2007 09:38 Re: Rękawica wirtualna. |
|
|
|
Myślałeś o napisaniu programu w którym rękawica działa jak myszka tzn. określonemu położeniu palców odpowiada przycisk myszki lub jakiś ruch np. wskazanie palcem oznacza klikniecie a otwarta dłoń w zależności od kąta oznaczałby kierunek podążania kursora.
No i czy w dalszej przyszłości myslałeś nad wszyciem w całe ubranko magnesów i wprowadzwnia całego człowieka do świata wirtualnego co by pozwoliło na pisanie programów nadzorujących i analizujących ruchy człowieka np. jakiś wirtualny trener :D
Może trochę mnie poniosło ale myślę że byłbyś w stanie to zrobić. Tylko jeżeli zrobisz nie zapomnij wykupić patentu bo już na Ciebie czychają ogromne koncerny.
|
|
| Back to top |
|
 |
Li3R Poziom 10

Joined: 02 May 2007 Posts: 46 Location: Kielcowo
|
#15
04 Jun 2007 09:56 Re: Rękawica wirtualna. |
|
|
|
wow jestem pod wrażeniem umiejętności i wiedzy. Konstrukcja iście z filmu Johny Mnemonic, przychylam się do pytania tomeeh o działanie akceleratorów?
|
|
| Back to top |
|
 |
KowalD Poziom 16

Joined: 14 Mar 2007 Posts: 290 Location: Łódź
|
#16
04 Jun 2007 11:04 Re: Rękawica wirtualna. |
|
|
|
Ja jeszcze odnośnie tych czujników Halla... czy możliwa jest "detekcja" kąta zgięcia palców, czy program rozpoznaje tylko dwa stany (wyprostowane, zgięte)??
|
|
| Back to top |
|
 |
Google

|
#
04 Jun 2007 11:04 |
|
|
|
|
|
| Back to top |
|
 |
ferdu Poziom 13

Joined: 04 Oct 2006 Posts: 111
|
#17
04 Jun 2007 11:52 Re: Rękawica wirtualna. |
|
|
|
konkretne. nadaje sie ;]
ciekawe jak by sie tym w quaka gralo :P porbowaliscie odpalac ta rekawice na jakis grach czy jeszcze zabardzo nie ma mozliwosci ?
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#18
04 Jun 2007 13:06 Re: Rękawica wirtualna. |
|
|
|
:arrow: rockyr14, czujniki analizują trzy składowe wektora przyspieszenia, wektor zdefiniowany jest w bazie związanej z osiami akcelerometru. Każda zmiana ruchu związana jest z przyspieszeniem, dlatego zgięcie łokcia zmieni mierzone wartości.
:arrow: mirekk36, aplikacja to dzieło Sebastiana ;) i powstała od podstaw, napisana została w Pythonie i korzysta z kilku bibliotek (VPython, pySerial, Snack, numpy), jutro zamieszczę dokładne wyjaśnienia co, gdzie i jak.
:arrow: tomeeh, Bluetooth to tylko medium, całe urządzenie pracuje na wirtualnym łączu szeregowym.
W tej chwili zajmujmy sie tylko rotacją (bez translacji) więc punk początkowy jest na sztywno ustawiony.
:arrow: dreki.eldheitur, już "łączymy" ruchy z Berylem ;).
:arrow: KowalD, czujniki sa analogowe, więc dostaje na ich wyjściu napięcie proporcjonalne do pola magnetycznego.
:arrow: ferdu, mamy sporo innych, znacznie ciekawszych zastosowań niż gry ;).
|
|
| Back to top |
|
 |
Maticool Poziom 16

Joined: 15 Nov 2004 Posts: 349 Location: Lublin
|
#19
04 Jun 2007 13:55 Re: Rękawica wirtualna. |
|
|
|
Witam.
Bardzo profesjonalny projekt, naprawdę, jak fabryczny. Mam tylko jedno pytanie:
Rozumiem, że detekcja zmian położenia odbywa się jako obliczanie drugiej całki przyspieszenia po czasie? Jeżeli tak to powiedz jaka jest dokładność takiego systemu tzn. czy rękawica nie rozkalibrowuje się po pewnym czasie albo po bardzo szybkim ruchu?
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#20
04 Jun 2007 15:39 Re: Rękawica wirtualna. |
|
|
|
:arrow: Maticool, zmierzone przyśpieszenie "ląduje" po prostu w równaniach ruchu, przy czym założenie jest takie że przy starcie programu położenie i prędkość początkowa jest zerowa. Natomiast interwał czasowy pochodzi od zegara systemowego PC.
|
|
| Back to top |
|
 |
Tomer Poziom 14

Joined: 27 Aug 2003 Posts: 180 Location: Śląsk
|
#21
04 Jun 2007 16:53 Re: Rękawica wirtualna. |
|
|
|
Super. Wyglada jak profesjonalny gotowy produkt.
Pytanie mam takie: Czy 3 akcelerometry pozwalaja w jakis sposob okreslic kąt zgiecia nadgarstka lub skrecenia reki? W skrajnym przypadku bez tego ruch palcami moze sie odbywac np. w plaszczyznie poziomej zamiast pionowej. Jezeli nie, to czy dalo by sie zastosowac zyroskop zamontowany np. do górnej częsci dłoni?
I jeszcze moze napisz cos o szacunkowych kosztach całosci
Pozdrawiam
|
|
| Back to top |
|
 |
Pittt Poziom 19

Joined: 04 Jan 2005 Posts: 732
|
#22
04 Jun 2007 18:50 Re: Rękawica wirtualna. |
|
|
|
Świetny projekt. Czy mógłbyś opisać rozmieszczenie czujników na rękawicy ? Najbardziej ciekawi mnie detekcja zginania palców. Czy czujniki i magnesy są mocowane na wewnętrznej czy zewnętrznej stronie dłoni/palców czy może jeszcze inaczej ? Ile stawów jest tak kontrolowanych ?
Życzę powodzenia
|
|
| Back to top |
|
 |
KowalD Poziom 16

Joined: 14 Mar 2007 Posts: 290 Location: Łódź
|
#23
04 Jun 2007 19:47 Re: Rękawica wirtualna. |
|
|
|
| crazy_phisic wrote: |
:arrow: KowalD, czujniki sa analogowe, więc dostaje na ich wyjściu napięcie proporcjonalne do pola magnetycznego.
|
no własnie... chodzi mi o to, czy program odwzorowuje to napięcie na jakis konretny kąt zgięcia palców??
|
|
| Back to top |
|
 |
artur00 Poziom 20

Joined: 19 Dec 2002 Posts: 867 Location: Lublin
|
#24
04 Jun 2007 20:07 Re: Rękawica wirtualna. |
|
|
|
Witam
crazy_phisic: bardzo ciekawe urządzenie, gratuluje wykonania.
I jedno moje pytanie, do odczytu danych z każdej osi XYZ są zastosowane te same podzespoły, więć rozdzielczość każdej osi jest taka sama. A więc jaka ?, na ile precyzyjna jest rękawica ? No może jeszcze jedno pytanie: jakie występuje opóźnienie względem "rękawicy" a odczytów już na systemie klienckim ?
Pozdrawiam
artur
|
|
| Back to top |
|
 |
MODI Poziom 14

Joined: 10 Nov 2003 Posts: 177
|
#25
04 Jun 2007 20:25 Re: Rękawica wirtualna. |
|
|
|
Projekt świetny (do tego dwie rękawice L-P) 10/10
Zastanawialiście sie czy można tym odczytać język migowy? Jeśli tak to można sporą kasę na takim patencie zrobić.
Zastanawia mnie jak odczytujecie dane z akcelerometrów. Z tego co wiem to strasznie szumią.
Pozdro życzę sukcesów
|
|
| Back to top |
|
 |
crazy_phisic Poziom 22

Joined: 04 Jan 2003 Posts: 2275 Location: Zielona Góra
|
#26
04 Jun 2007 20:59 Re: Rękawica wirtualna. |
|
|
|
:arrow: Tomer, akcelerometry z zasady swojego działania mierzą "odstępstwo" swojego układu odniesienia od układu związanego z ziemią. Dlatego każda zmiana kąta jest rejestrowana.
Koszt uwarunkowany jest ceną akcelerometrów, na uczelni ten problem rozwiązują władze ;), dlatego trudno mi ocenić ile kosztuje w Polsce (o ile jest oczywiście dostępny model trójosiowy). Pozostałe wydatki to moduł BT (~100zł), rękawice (~30zł), akumulator + pozostałe podzespoły (100zł).
:arrow: Pitt, zdjęcie powinno rozwiać wątpliwości, w chwili obecnej odczytywany jest stan trzech palcy (czujniki Halla w tej roli to nasz patent ;) dlatego jeszcze pracujemy nad optymalnym rozmieszczeniem i czujników i magnesów)
:arrow: KowalD, wskazania czujników nie są liniową funkcją odległości (wynika to z zastosowania pola magnetycznego które w tym rozwiązaniu jest silnie niejednorodne, ale stałe dla określonej odległości od magnesu).
Program odczytuje aktualną wartość pola i wrzuca do funkcji przeliczającej to na odpowiedni kąt, tutaj należy się małe sprostowanie (które dokładnie opisze Sebastian) ponieważ każdy palec to kilka połączonych obiektów które poruszają się w taki sposób aby w miarę realistycznie odwzorować ruch palców. Dlatego aktualna wartość pola odwzorowywana jest na odchylenie każdego ze składowych elementów palca.
:arrow: artur00, akcelerometr ma wyjście napięciowe dla każdej osi, wystarczy podać to na ADC i wynik gotowy ;). Rozdzielczość przetwornika zaszytego w TINY26 to 10bitów.
Co do opóźnień, przy uśrednianiu pomiarów dla symulatora ręki opóźnienie wynosi ~600ms. Przy czym tak duże opóźnienie to konsekwencja "chamskiego" wysyłania niekodowanych danych z niewielką prędkością (19200bps).
:arrow: MODI, język migowy, rehabilitacja osób niepełnosprawnych, terapia ruchowa to tylko kropla w morzu potencjalnych zastosowań, pomijam tak oczywiste kwestie jak kontrolery gier, wszelkiego rodzaju zdalne manipulatory itd.
Sygnał jest bardzo "spokojny" (nie widać tego na zdjęciach, ale płytka jest dwustronna, warstwa spodnia oprócz skutecznego ekranowania wpływa na usztywnienie całej konstrukcji), jedyne obserwowane "szumienie" to oczywisty błąd kwantyzacji (pomijam stały błąd związany z budową ADC).
|
|
| Back to top |
|
 |
McRancor Poziom 24

Joined: 27 Mar 2004 Posts: 5328 Location: Wrocław
|
#27
04 Jun 2007 23:50 Re: Rękawica wirtualna. |
|
|
|
Gratuluję, jak poradziłeś sobie z filtracją danych z akcelerometru? Co zrobiłeś z szumami? Stosowałeś jakieś zaawansowane filtry - może Kalmana?
Całkowanie prostokątne czy trapezowe?
|
|
| Back to top |
|
 |
prezesjasko Poziom 4

Joined: 05 Jul 2005 Posts: 9 Location: Zielona Gora
|
#28
05 Jun 2007 00:11 Re: Rękawica wirtualna. |
|
|
|
Rozumię, że akcelerometry mierzące statyczne przyspieszenia (grawitacja) można wykorzystać do obserwacji zmian kąta położenia obiektów w przestrzeni roboczej takiej rękawicy. A co z przemieszczeniem się dłoni? Jak wykryć, że delikwent nie zmieniając nachylenia dłoni ruszył ręką w prawo, czy lewo? Jak wiadomo stosuje się tu metodę całkowania. Ale ta bez wspomnainych w powyższych postach zaawansowanych filtracji szumów (np Kalman i nie tylko) jest kompletnie bez użyteczna. Do tego dochodzą siły odśrodkowe w trakcie ruchu ręką, a kąty nachylenia nie wystarczy wykrywać przy pomocy samych akcelerometrów (zwykle dorzuca sie żyroskopy). Czy wasz projekt rozwiązuje tą kwestię?? A na zdjęciu to MMA7260 (Freescale)?
|
|
| Back to top |
|
 |
remzibi Poziom 18

Joined: 25 Jul 2002 Posts: 524 Location: Gdynia-Rumia
|
#29
05 Jun 2007 10:42 Re: Rękawica wirtualna. |
|
|
|
| McRancor wrote: |
Gratuluję, jak poradziłeś sobie z filtracją danych z akcelerometru? Co zrobiłeś z szumami? Stosowałeś jakieś zaawansowane filtry - może Kalmana?
Całkowanie prostokątne czy trapezowe? |
Moze nic nie wniose do tematu ale dokladnie o to samo chcialem spytac , plus - i jezeli stosujesz filtry to upchales je do procka czy do softu w PC ?
|
|
| Back to top |
|
 |
Google

|
#
05 Jun 2007 10:42 |
|
|
|
|
|
| Back to top |
|
 |
KuchateK Poziom 6

Joined: 31 Oct 2005 Posts: 16 Location: NY, USA
|
#30
05 Jun 2007 14:31 Re: Rękawica wirtualna. |
|
|
|
A ja ponawiam pytanie Maticool'a, gdyz nie padla na nie odpowiedz.
Jak jest z dokladnoscia rekawicy przy dluzszym uzytkowaniu? Czy po pewnym czasie (zalozmy nieprzekraczanie zakresu akcelerometru, bo to z pewnoscia wysle calosc "w buraki") nadal wraca w to polozenie w jakim zostala wystartowana? Jaki jest uzyteczny czas pracy po ktorym trzeba resetowac uklad?
Jak duza jest swoboda ruchow? Czy trzeba ograniczac normalne ludzkie wymachiwanie, czy sprzet nie ma z nim problemow?
|
|
| Back to top |
|
 |