Arduino jako klawiatura do komputera


Ten artykuł przedstawi Ci w jaki sposób używać Arduino jako klawiaturę do komputera.

[slideshow_deploy id=’735′]

Na początek zaopatrz się w Arduino Leonardo (koniecznie Leonardo ponieważ UNO, MEGA, NANO, PRO Mini nie może działać jako klawiatura!!!), dowolne przyciski, keypad, w tym artykule zostanie przedstawiony przykład dla 4 przycisków (micro switch) oraz keypada 4×5 którego obsługi nauczyłeś się w poprzednim artykule Keypad dla Arduino.

Na początku zajmijmy się przykładem z czterema przyciskami potrzebne elementy dla realizacji tego przykładu to:

  • Arduino Leonardo
  • Płytka prototypowa
  • 4 przyciski micro switch
  • 9 przewodów z złączami męskie-męskie

Połączenie należy wykonać zgodnie z poniższym schematem.

Podłączenie u mnie wygląda w następujący sposób.

 

Oprogramowanie:

Teraz pozostaje już tylko wgranie odpowiedniego oprogramowania na nasze Arduino aby działało ono jako klawiatura.

[pastacode lang=”c” manual=”%23include%20%22Keyboard.h%22%20%2F%2FDodajemy%20do%20projektu%20bibliotek%C4%99%20pozwalajac%C4%85%20na%20u%C5%BCywanie%20naszego%20Arduino%20jako%20klawiatury%0A%0Avoid%20setup()%0A%7B%0A%09Keyboard.begin()%3B%20%2F%2FUruchamiamy%20Arduino%20jako%20klawiatur%C4%99%0A%09pinMode(2%2C%20INPUT_PULLUP)%3B%20%2F%2FUstawiamy%20pin%20jako%20wej%C5%9Bcie%20z%20podci%C4%85gni%C4%99ciem%20przez%20rezystor%20do%205V%0A%09pinMode(3%2C%20INPUT_PULLUP)%3B%0A%09pinMode(4%2C%20INPUT_PULLUP)%3B%0A%09pinMode(5%2C%20INPUT_PULLUP)%3B%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09if%20(digitalRead(2)%20%3D%3D%20LOW)%20%2F%2FSprawdzamy%20czy%20na%20pinie%20jest%20aktualnie%20stan%20niski%0A%09%7B%0A%09%09Keyboard.write(‘a’)%3B%20%2F%2FWysy%C5%82amy%20do%20komputera%20liter%C4%99%20%22a%22%0A%09%09delay(1000)%3B%20%2F%2FOdczekujemy%20sekund%C4%99%0A%09%7D%0A%09if%20(digitalRead(3)%20%3D%3D%20LOW)%0A%09%7B%0A%09%09Keyboard.write(‘b’)%3B%0A%09%09delay(1000)%3B%0A%09%7D%0A%09if%20(digitalRead(4)%20%3D%3D%20LOW)%0A%09%7B%0A%09%09Keyboard.write(‘c’)%3B%0A%09%09delay(1000)%3B%0A%09%7D%0A%09if%20(digitalRead(5)%20%3D%3D%20LOW)%0A%09%7B%0A%09%09Keyboard.write(‘d’)%3B%0A%09%09delay(1000)%3B%0A%09%7D%0A%7D%0A” message=”” highlight=”” provider=”manual”/]

Jak zapewne zauważyliście Arduino po uruchomieniu zgłosiło się jako klawiatura co spowodowało zainstalowanie sterowników przez system.

Działanie naszego programu najprościej możemy sprawdzić wchodząc w notatnik i naciskając przyciski co będzie skutkować wpisywanie liter.

A więc teraz czas na drugi przykład, z keypadem.

Elementy potrzebne do realizacji:

  • Arduino Leonardo
  • keypad 4×5
  • 9 przewodów z złączami męskie-męskie

Keypada do naszego Arduino podłączamy w taki sam sposób jak w artykule z przykładem podpięcia oraz użycia.

Teraz nadszedł czas aby wgrać program który powinieneś już samemu zrozumieć po zapoznaniu się z tym oraz poprzednim artykułem.

[pastacode lang=”c” manual=”%23include%20%3CKeypad.h%3E%0Aconst%20byte%20numRows%20%3D%205%3B%0Aconst%20byte%20numCols%20%3D%204%3B%0A%0Achar%20keymap%5BnumRows%5D%5BnumCols%5D%20%3D%0A%7B%0A%09%7B%20’A’%2C%20’B’%2C%20’%23’%2C%20’*’%20%7D%2C%0A%09%7B%20’1’%2C%20’2’%2C%20’3’%2C%20’U’%20%7D%2C%0A%09%7B%20’4’%2C%20’5’%2C%20’6’%2C%20’D’%20%7D%2C%0A%09%7B%20’7’%2C%20’8’%2C%20’9’%2C%20’X’%20%7D%2C%0A%09%7B%20’L’%2C%20’0’%2C%20’R’%2C%20’E’%20%7D%0A%7D%3B%0A%0Abyte%20rowPins%5BnumRows%5D%20%3D%20%7B%2010%2C%209%2C%208%2C%207%2C%206%20%7D%3B%0Abyte%20colPins%5BnumCols%5D%20%3D%20%7B%202%2C%203%2C%204%2C%205%20%7D%3B%0A%0AKeypad%20myKeypad%20%3D%20Keypad(makeKeymap(keymap)%2C%20rowPins%2C%20colPins%2C%20numRows%2C%20numCols)%3B%0A%0A%23include%20%22Keyboard.h%22%0A%0Avoid%20setup()%0A%7B%0A%09Keyboard.begin()%3B%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09char%20keypressed%20%3D%20myKeypad.getKey()%3B%0A%09if%20(keypressed%20!%3D%20NO_KEY)%0A%09%7B%0A%09%09if%20(keypressed%20%3D%3D%20’A’)%20Keyboard.write(‘A’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’B’)%20Keyboard.write(‘B’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’*’)%20Keyboard.write(‘*’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’%23′)%20Keyboard.write(‘%23′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’U’)%20Keyboard.write(‘U’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’D’)%20Keyboard.write(‘D’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’L’)%20Keyboard.write(‘L’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’R’)%20Keyboard.write(‘R’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’X’)%20Keyboard.write(‘X’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’E’)%20Keyboard.write(‘E’)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’0′)%20Keyboard.write(‘0′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’1’)%20Keyboard.write(‘1′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’2’)%20Keyboard.write(‘2′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’3’)%20Keyboard.write(‘3′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’4’)%20Keyboard.write(‘4′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’5’)%20Keyboard.write(‘5′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’6’)%20Keyboard.write(‘6′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’7’)%20Keyboard.write(‘7′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’8’)%20Keyboard.write(‘8′)%3B%0A%09%09else%20if%20(keypressed%20%3D%3D%20’9’)%20Keyboard.write(‘9’)%3B%0A%09%7D%0A%7D” message=”” highlight=”” provider=”manual”/]

Po wgraniu programu działanie ponownie możesz przetestować w systemowym notatniku.

Powyższy kod w tym przypadku możemy także skrócić:

[pastacode lang=”c” manual=”%23include%20%3CKeypad.h%3E%0Aconst%20byte%20numRows%20%3D%205%3B%0Aconst%20byte%20numCols%20%3D%204%3B%0A%0Achar%20keymap%5BnumRows%5D%5BnumCols%5D%20%3D%0A%7B%0A%09%7B%20’A’%2C%20’B’%2C%20’%23’%2C%20’*’%20%7D%2C%0A%09%7B%20’1’%2C%20’2’%2C%20’3’%2C%20’U’%20%7D%2C%0A%09%7B%20’4’%2C%20’5’%2C%20’6’%2C%20’D’%20%7D%2C%0A%09%7B%20’7’%2C%20’8’%2C%20’9’%2C%20’X’%20%7D%2C%0A%09%7B%20’L’%2C%20’0’%2C%20’R’%2C%20’E’%20%7D%0A%7D%3B%0A%0Abyte%20rowPins%5BnumRows%5D%20%3D%20%7B%2010%2C%209%2C%208%2C%207%2C%206%20%7D%3B%0Abyte%20colPins%5BnumCols%5D%20%3D%20%7B%202%2C%203%2C%204%2C%205%20%7D%3B%0A%0AKeypad%20myKeypad%20%3D%20Keypad(makeKeymap(keymap)%2C%20rowPins%2C%20colPins%2C%20numRows%2C%20numCols)%3B%0A%0A%23include%20%22Keyboard.h%22%0A%0Avoid%20setup()%0A%7B%0A%09Keyboard.begin()%3B%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09char%20keypressed%20%3D%20myKeypad.getKey()%3B%0A%09if%20(keypressed%20!%3D%20NO_KEY)%20Keyboard.write(keypressed)%3B%0A%7D” message=”” highlight=”” provider=”manual”/]

Poprzednia informacja Keypad dla Arduino
Kolejna informacja UnoJoy czyli Arduino UNO jako pad

Brak komentarzy

Zostaw odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *