[IDEA] Cyfrowy multiplekser czujników dotyku dla NXT.
Moderatorzy: Mod Team, Mod Team
[IDEA] Cyfrowy multiplekser czujników dotyku dla NXT.
Rok temu na forum zaprezentowałem [URL=http://www.00453005_0000002.pl/forum/viewtopic.php?t=13133]analogowy multiplekser[/URL] czujników dotyku.
Od tamtego czasu (a zwłaszcza w ostatnim okresie) na forum pojawiło się kilka wątków poruszających temat multipleksera czujników dotyku opartego na magistrali/protokole I2C. Więc...
Multiplekser umożliwia podłączenie do jednego portu wejściowego kostki NXT ośmiu czujników dotyku.
Multiplekser zbudowany został na układzie scalonym PCF8574P .
Komunikacja pomiędzy multiplekserem a kostką NXT odbywa się za pośrednictwem magistrali I2C.
Za obudowę multipleksera posłużył "lekko" zmodyfikowany Black Electric 9V Battery Box Small 4760 .
Górne piny przewodzące pojemnika nie są podłączone do układu elektrycznego multipleksera i mogą zostać wykorzystane jako listwa rozprowadzająca zasilanie dla dodatkowych elementów
Po zbudowaniu multipleksera najpierw jego działanie sprawdzałem na bloku NXT-G PCF8574-NX firmy Mindsensors (i co dziwne multiplekser zadziałał już przy pierwszej próbie) :) ale stwierdziłem, że jest on (blok) mało przyjazny dla użytkownika i postanowiłem napisać coś swojego...
Parametry bloku:
Port: nr portu czujnika (1 do 4)do którego podpięty jest multiplekser
I2C Address: fizyczny adres układu scalonego wynikający ze sposobu podłączenia (do masy lub +) wejść adresowych A0, A1 i A2. W przypadku zwarcia wejść A0 A1 i A2 do masy (kabelek nr 3 czerwony w NXT to masa) adres bazowy wynosi 40(Hex)=64(Dec)
Raw Value 0-255: wartość wynikowa (w Dec) stanu wszystkich czujników. Np wartość 250 (Dec) =11111010 (Bin) oznacza, że czujniki dołączone do P0 i P2 są aktywne (stan niski jest stanem aktywnym).
Sensor Active: wyjście typu True/False, False - żaden z czujników nie jest aktywny, True - któryś z czujników został wciśnięty.
Group 1 Sensor Active/Group 2 Sensor Active: w bloku utworzone zostały dwie grupy czujników (Sensor Group 1 i Sensor Group 2). Dołączenie dowolnego czujnika do jednej z dwóch grup (ten sam czujnik może być jednocześnie w obu grupach) następuje przez zaznaczenie pola wyboru danego czujnika (S1-S8). Na załączonym przykładzie czujniki S1,S2,S3 i S4 są dołączone do SG1 a czujniki S5,S6,S7 i S8 do SG2.
Aktywacja (wciśnięcie) któregokolwiek czujnika należącego do danej grupy spowoduje ustalenie stanu True na wyjściu kontrolnym danej grupy.
Sensor 1/Sensor 8: wyjścia typu True/False, stan True na wyjściu oznacza, że dany czujnik jest wciśnięty.
Blok w przeciwieństwie do bloków uniwersalnych umożliwia jedynie odczyt danych z układu PCF8574P. Dedykacja bloku była zabiegiem celowym.
Stanowisko testowe i wyniki testu.
Blok można pobrać z ...
Blok został napisany w LabView z nakładką LabVIEW Toolkit for LEGO MINDSTORMS NXT dostępnych na stronach National Instruments.
Blok nie jest zablokowany hasłem bo...... uważam, że tak być powinno.
Od tamtego czasu (a zwłaszcza w ostatnim okresie) na forum pojawiło się kilka wątków poruszających temat multipleksera czujników dotyku opartego na magistrali/protokole I2C. Więc...
Multiplekser umożliwia podłączenie do jednego portu wejściowego kostki NXT ośmiu czujników dotyku.
Multiplekser zbudowany został na układzie scalonym PCF8574P .
Komunikacja pomiędzy multiplekserem a kostką NXT odbywa się za pośrednictwem magistrali I2C.
Za obudowę multipleksera posłużył "lekko" zmodyfikowany Black Electric 9V Battery Box Small 4760 .
Górne piny przewodzące pojemnika nie są podłączone do układu elektrycznego multipleksera i mogą zostać wykorzystane jako listwa rozprowadzająca zasilanie dla dodatkowych elementów
Po zbudowaniu multipleksera najpierw jego działanie sprawdzałem na bloku NXT-G PCF8574-NX firmy Mindsensors (i co dziwne multiplekser zadziałał już przy pierwszej próbie) :) ale stwierdziłem, że jest on (blok) mało przyjazny dla użytkownika i postanowiłem napisać coś swojego...
Parametry bloku:
Port: nr portu czujnika (1 do 4)do którego podpięty jest multiplekser
I2C Address: fizyczny adres układu scalonego wynikający ze sposobu podłączenia (do masy lub +) wejść adresowych A0, A1 i A2. W przypadku zwarcia wejść A0 A1 i A2 do masy (kabelek nr 3 czerwony w NXT to masa) adres bazowy wynosi 40(Hex)=64(Dec)
Raw Value 0-255: wartość wynikowa (w Dec) stanu wszystkich czujników. Np wartość 250 (Dec) =11111010 (Bin) oznacza, że czujniki dołączone do P0 i P2 są aktywne (stan niski jest stanem aktywnym).
Sensor Active: wyjście typu True/False, False - żaden z czujników nie jest aktywny, True - któryś z czujników został wciśnięty.
Group 1 Sensor Active/Group 2 Sensor Active: w bloku utworzone zostały dwie grupy czujników (Sensor Group 1 i Sensor Group 2). Dołączenie dowolnego czujnika do jednej z dwóch grup (ten sam czujnik może być jednocześnie w obu grupach) następuje przez zaznaczenie pola wyboru danego czujnika (S1-S8). Na załączonym przykładzie czujniki S1,S2,S3 i S4 są dołączone do SG1 a czujniki S5,S6,S7 i S8 do SG2.
Aktywacja (wciśnięcie) któregokolwiek czujnika należącego do danej grupy spowoduje ustalenie stanu True na wyjściu kontrolnym danej grupy.
Sensor 1/Sensor 8: wyjścia typu True/False, stan True na wyjściu oznacza, że dany czujnik jest wciśnięty.
Blok w przeciwieństwie do bloków uniwersalnych umożliwia jedynie odczyt danych z układu PCF8574P. Dedykacja bloku była zabiegiem celowym.
Stanowisko testowe i wyniki testu.
Blok można pobrać z ...
Blok został napisany w LabView z nakładką LabVIEW Toolkit for LEGO MINDSTORMS NXT dostępnych na stronach National Instruments.
Blok nie jest zablokowany hasłem bo...... uważam, że tak być powinno.
Myślenie ma kolosalną przyszłość.
- 3dom
- Adminus Emeritus
- Posty: 5639
- Rejestracja: 2011-04-18, 20:43
- Lokalizacja: Warszawa
- brickshelf: 3dom
-
Ciekawe, przeczytalem od a do z ale szczerze mowiac z technicznego opisu zrozumialem niewiele. 2 pytania:
- bedzie to wspolpracowac z RobotC?
- jaki jest szacunkowy koszt takiego multipleksera?
- bedzie to wspolpracowac z RobotC?
- jaki jest szacunkowy koszt takiego multipleksera?
...na mieście już ćwierkają wróble... 🐦🐦🐦
nisiia pisze:SMAŻ SIĘ W PIEKLE ZA TE POSPINANE PLEJTY!!!!!!!!
To i humanistę mamy w tym .... dziale ? :) Tak mi się skojarzyło z C.K. Dezerterzy.3dom pisze:Ciekawe, przeczytałem od a do z ale szczerze mówiąc z technicznego opisu zrozumiałem niewiele.
Multiplekser będzie współpracować z RobotC.
Oczywiście po uwzględnieniu wszystkich Dec Hex i Bin :)
Tu masz przykład co i jak.
Co do kosztów...
Scalak to około 5zł, 8 gniazd RJ12 to 4zł, oporniki, wtyk, kabelki to około 1zł
Najdroższa w tym wszystkim jest obudowa (oraz jej dostępność).
Także cena nie jest jakoś specjalnie wygórowana.
Po sprawdzeniu oferty HiTechnic oraz mindsensors zdziwiło mnie, że obie firmy nie mają w sprzedaży multiplekserów 8-wejściowych (a te oferowane to multipleksery analogowe ?).Neo pisze: Znakomita alternatywa
Czy ktoś zna firmę która sprzedaje gotowe muxy 8-wejściowe?
Hobby to hobby. Dostałeś wędkę.....reszta zależy jedynie od Ciebie.Jetboy pisze:Kiedy zaczynasz seryjną produkcję
Myślenie ma kolosalną przyszłość.
-
- Posty: 10
- Rejestracja: 2012-11-07, 10:19
- Lokalizacja: Przemków / Wrocław
- brickshelf: Proszę uzupełnić
-
z praktycznego punktu widzenia można podłączyć nawet 8 takich mux-ów do pojedyńczego portu... a wykorzystując wszystkie porty mamy:Qbab pisze:[no było by zabawnie jak by spiąć 4 sztuki to mielibyśmy możliwość zbudowania "pianinka" z 32 klawiszami :)
8(wejść w mux-ie) X 8(mux-ów) X 4(porty w NXT/EV3) = 256 czujników dotyku :)
ale są lepsze rozwiązania, można na przykład podłączyć PCową klawiature do NXT/EV3 w taki o to sposób
http://www.extremenxt.com/keyboard.html
Lepsze? Ilość (klawiszy) nie równa się jakość (a w zasadzie użyteczność). To jest zupełnie inne rozwiązanie. Czujniki dotyku możesz w dowolny sposób rozmieścić w robocie i wykorzystać do sterowania funkcjami. Klawiatura się do tego nie nadaje (pomijając jej rozmiar). Natomiast jako interfejs może być. Zdaje się, że mindsensors robił numeryczne klawiaturki do NXT.socha6 pisze: ale są lepsze rozwiązania, można na przykład podłączyć PCową klawiature do NXT/EV3 ...