Czy mogę zrobić pełną klawiaturę USB za pomocą Makey Makey + Raspberry Pi


15

Niedawno kupiłem Makey Makey (oparty na Arduino Leonardo / ATMega32u4), mając nadzieję na zbudowanie pełnej klawiatury typu steampunk USB z niektórych metalowych części. Przed przyjazdem ponownie przeczytałem szczegóły i zdałem sobie sprawę, że ma tylko 18 możliwych danych wejściowych, więc klawisze 85+ nie będą działać. Czy ktoś ma pomysły, jak stworzyć taką bestię, być może z Raspberry Pi? (który łączy się dość łatwo, z poprzednich postów )


To jest niesamowite.
Jivings,

1
Zamiast danych wejściowych dla każdego klawisza możesz użyć matrycy i użyć 18 danych wejściowych do obsługi 81 klawiszy (matrycy 9x9), o ile wiem, że RPi ma mniej danych wejściowych niż arduino, więc nie sądzę, żeby to pomogło.
Craig,

@Craig, więc masz na myśli łączenie takich danych wejściowych: arduino.cc/playground/Main/KeypadTutorial
sventechie

@sventech tak. Nie jestem zaznajomiony z makey makey, więc nie wiem, jak jego przełączanie o wysokiej rezystancji będzie oddziaływać z matrycą.
Craig,

Odpowiedzi:


6

Jeśli chcesz po prostu stworzyć klawiaturę, bez korzystania z Makey Makey, możesz to zrobić za pomocą funkcji GPIO Raspberry Pi. Ale, jak skomentowano wcześniej, Raspberry Pi nie ma wystarczającej liczby pinów, aby klawiatura była naprawdę przydatna.

Jeśli jednak chcesz dodać 2 układy scalone, możesz stworzyć klawiaturę z tak dużą ilością klawiszy, że będziesz miał problem z wymyśleniem funkcji dla każdego klawisza!

Moją sugestią jest podłączenie 2 układów scalonych I2C do szyny I2C na Raspberry Pi i użycie ich do stworzenia własnej matrycy skanowania.

Jeśli używasz jednego PCF8574, masz 8 styków we / wy, a jeśli masz PCF8575, masz nawet 16 styków we / wy. Łącząc, możesz uzyskać matrycę skanowania:

  • 64 klucze: (2x PCF8574)
  • 128 klawiszy: (1x PCF8574 i 1x PCF8575)
  • 256 klawiszy: (2x PCF8575)

Zawsze musisz użyć jednego z nich jako danych wyjściowych, a drugiego jako danych wejściowych. Na wyjściu pozwalasz nieco „przejść” od bitu 0 do bitu n (7 lub 15), są to kolumny macierzy. Z drugiej strony stale odczytujesz wartość danych wejściowych, a są to rzędy macierzy. Kombinacja tego, który bit wyjściowy jest aktywny i który bit wejściowy ma wartość „1”, jest naciskany.

zasada matrycy skanowania

W rzeczywistości tworzenie macierzy jest najbardziej pracochłonne i podczas gdy na niej jesteś, nie zapomnij dodać diody po każdym przełączniku, który umieścisz w matrycy, ta dioda (normalna 1N4148 da sobie radę) musi być umieszczona z anodą do przełącznika i katody do wiersza rzędu. Spadek napięcia o 0,6 V na tej diodzie nie powinien stanowić problemu, a pozostałe (3,3 V-0,6 V) 2,7 V powinny nadal być logicznym „1”.

praktyczna matryca skanująca

Powodem tego obciążenia diod jest to, że zapobiegnie to zjawisku zjawy i maskowania kluczy. Zjawy to efekt, że jeśli naciśniesz więcej niż trzy klawisze jednocześnie, możliwe jest, że zostanie zinterpretowany jako zupełnie inny klawisz, ponieważ więcej wierszy będzie miało logiczne „1”. Maskowanie to efekt polegający na tym, że po naciśnięciu wielu klawiszy i zwolnieniu klawisza (w niektórych sytuacjach) nie zostanie on wykryty, ponieważ wiersz dla tego klawisza jest nadal logicznym „1”.

przykład zjawy

Zdjęcie pokazuje przykład zjawy, przyciski A, B, D są wciśnięte, a poza wierszem 1 (dla przycisku A) również wiersz 2 (dla przycisku C) jest wysoki, w tej chwili kolumna 1 jest aktywna, co jest nieprawidłowe.

Po całej przygodzie sprzętowej musisz napisać lub dostosować sterownik jądra, aby faktycznie używać klawiatury w systemie Linux. Dobrym punktem wyjścia może być ten link: Sterownik do klawiszy w ekspanderze ICA TCA6416 I2C , jest to podobny pomysł, ale używa tylko 16-klawiszowej klawiatury.

Mam nadzieję, że to ci trochę pomoże.


3

Jeśli chcesz stworzyć pełną klawiaturę do pisania, prawdopodobnie najlepiej byłoby skorzystać z układu scalonego z klawiatury USB. Albo zatrzymaj płytkę drukowaną głęboko w twoim systemie, gdzie jej nie widać, i poprowadź przewody do przełączników, albo stwórz coś niestandardowego przy użyciu tej samej matrycy.

Jeśli naprawdę potrzebujesz zmienić matrycę elektryczną, być może będziesz musiał stworzyć własny projekt od zera, ale w przeciwnym razie nie jest to naprawdę konieczne.

Nawet z niestandardową płytą nadal możesz uzyskać coś, co wylicza i działa jak klawiatura USB, eliminując potrzebę niestandardowych sterowników.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.