[IDEA] Cyfrowy multiplekser czujników dotyku dla NXT.

Mindstorms, WeDo, Lego Digital Desinger, Stud.io

Moderatorzy: Mod Team, Mod Team

Autor
Wiadomość
staak
Posty: 53
Rejestracja: 2008-10-07, 19:05
Lokalizacja: Warszawa
brickshelf: staak

 

[IDEA] Cyfrowy multiplekser czujników dotyku dla NXT.

#1 Post autor: staak »

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...

Obrazek

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.
Obrazek Obrazek Obrazek

Blok można pobrać z ...
Obrazek

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ść.

Awatar użytkownika
3dom
Adminus Emeritus
Posty: 5639
Rejestracja: 2011-04-18, 20:43
Lokalizacja: Warszawa
brickshelf: 3dom

 

#2 Post autor: 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?
...na mieście już ćwierkają wróble... 🐦🐦🐦
nisiia pisze:SMAŻ SIĘ W PIEKLE ZA TE POSPINANE PLEJTY!!!!!!!!

Awatar użytkownika
Neo
Posty: 293
Rejestracja: 2011-04-29, 21:24
Lokalizacja: Kraków/Rzeszów/Starachowice

#3 Post autor: Neo »

Brawo ! Znakomita alternatywa (zwłaszcza cenowa) dla multiplekserów HiTech.
Dział Mindstorms pomału się rozkręca i zatacza coraz szersze kręgi :)
Zainstalowałem już Labview i Mindstomsowy Toolkit celem tworzenia własnych bloków.
Jak będą efekty nieomieszkam podzielić się nowiną :)

Jetboy

#4 Post autor: Jetboy »

Rewelka! Kiedy zaczynasz seryjną produkcje i jaki będzie koszt takiego bloku? Wziąłbym ze dwa.

staak
Posty: 53
Rejestracja: 2008-10-07, 19:05
Lokalizacja: Warszawa
brickshelf: staak

 

#5 Post autor: staak »

3dom pisze:Ciekawe, przeczytałem od a do z ale szczerze mówiąc z technicznego opisu zrozumiałem niewiele.
To i humanistę mamy w tym .... dziale ? :) Tak mi się skojarzyło z C.K. Dezerterzy.

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.
Neo pisze: Znakomita alternatywa
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 ?).
Czy ktoś zna firmę która sprzedaje gotowe muxy 8-wejściowe?
Jetboy pisze:Kiedy zaczynasz seryjną produkcję
Hobby to hobby. Dostałeś wędkę.....reszta zależy jedynie od Ciebie.
Myślenie ma kolosalną przyszłość.

qni

#6 Post autor: qni »

Ciekaw jestem czy multiplekser będzie działał z EV3?

Qbab
Posty: 76
Rejestracja: 2013-12-06, 16:06
Lokalizacja: Kraków
brickshelf: Proszę uzupełnić
Kontakt:

 

#7 Post autor: Qbab »

qni pisze:Ciekaw jestem czy multiplekser będzie działał z EV3?
no było by zabawnie jak by spiąć 4 sztuki to mielibyśmy możliwość zbudowania "pianinka" z 32 klawiszami :)

socha6
Posty: 10
Rejestracja: 2012-11-07, 10:19
Lokalizacja: Przemków / Wrocław
brickshelf: Proszę uzupełnić

 

#8 Post autor: socha6 »

Qbab pisze:[no było by zabawnie jak by spiąć 4 sztuki to mielibyśmy możliwość zbudowania "pianinka" z 32 klawiszami :)
z praktycznego punktu widzenia można podłączyć nawet 8 takich mux-ów do pojedyńczego portu... a wykorzystując wszystkie porty mamy:
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

kovalius

#9 Post autor: kovalius »

socha6 pisze: ale są lepsze rozwiązania, można na przykład podłączyć PCową klawiature do NXT/EV3 ...
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.

qni

#10 Post autor: qni »

Inaczej zadam pytanie, czy czujniki podłączone przez układ PCF8574P będą współpracować z EV3? NXT pozwalał podłączyć różne czujniki poprzez PCF8574P, nie tylko dotyku.

Awatar użytkownika
Neo
Posty: 293
Rejestracja: 2011-04-29, 21:24
Lokalizacja: Kraków/Rzeszów/Starachowice

#11 Post autor: Neo »

Jeżeli inne czujniki z NXT oparte na protokole IIC działają to stawiam, że expander PCF8574 też powinien działać. To tylko kwestia wsparcia przez konkretny kompilator.

ODPOWIEDZ