Arduino jako klawiatura do komputera

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

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.

#include "Keyboard.h" //Dodajemy do projektu bibliotekę pozwalajacą na używanie naszego Arduino jako klawiatury

void setup()
{
	Keyboard.begin(); //Uruchamiamy Arduino jako klawiaturę
	pinMode(2, INPUT_PULLUP); //Ustawiamy pin jako wejście z podciągnięciem przez rezystor do 5V
	pinMode(3, INPUT_PULLUP);
	pinMode(4, INPUT_PULLUP);
	pinMode(5, INPUT_PULLUP);
}

void loop()
{
	if (digitalRead(2) == LOW) //Sprawdzamy czy na pinie jest aktualnie stan niski
	{
		Keyboard.write('a'); //Wysyłamy do komputera literę "a"
		delay(1000); //Odczekujemy sekundę
	}
	if (digitalRead(3) == LOW)
	{
		Keyboard.write('b');
		delay(1000);
	}
	if (digitalRead(4) == LOW)
	{
		Keyboard.write('c');
		delay(1000);
	}
	if (digitalRead(5) == LOW)
	{
		Keyboard.write('d');
		delay(1000);
	}
}

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.

#include <Keypad.h>
const byte numRows = 5;
const byte numCols = 4;

char keymap[numRows][numCols] =
{
	{ 'A', 'B', '#', '*' },
	{ '1', '2', '3', 'U' },
	{ '4', '5', '6', 'D' },
	{ '7', '8', '9', 'X' },
	{ 'L', '0', 'R', 'E' }
};

byte rowPins[numRows] = { 10, 9, 8, 7, 6 };
byte colPins[numCols] = { 2, 3, 4, 5 };

Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

#include "Keyboard.h"

void setup()
{
	Keyboard.begin();
}

void loop()
{
	char keypressed = myKeypad.getKey();
	if (keypressed != NO_KEY)
	{
		if (keypressed == 'A') Keyboard.write('A');
		else if (keypressed == 'B') Keyboard.write('B');
		else if (keypressed == '*') Keyboard.write('*');
		else if (keypressed == '#') Keyboard.write('#');
		else if (keypressed == 'U') Keyboard.write('U');
		else if (keypressed == 'D') Keyboard.write('D');
		else if (keypressed == 'L') Keyboard.write('L');
		else if (keypressed == 'R') Keyboard.write('R');
		else if (keypressed == 'X') Keyboard.write('X');
		else if (keypressed == 'E') Keyboard.write('E');
		else if (keypressed == '0') Keyboard.write('0');
		else if (keypressed == '1') Keyboard.write('1');
		else if (keypressed == '2') Keyboard.write('2');
		else if (keypressed == '3') Keyboard.write('3');
		else if (keypressed == '4') Keyboard.write('4');
		else if (keypressed == '5') Keyboard.write('5');
		else if (keypressed == '6') Keyboard.write('6');
		else if (keypressed == '7') Keyboard.write('7');
		else if (keypressed == '8') Keyboard.write('8');
		else if (keypressed == '9') Keyboard.write('9');
	}
}

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

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

#include <Keypad.h>
const byte numRows = 5;
const byte numCols = 4;

char keymap[numRows][numCols] =
{
	{ 'A', 'B', '#', '*' },
	{ '1', '2', '3', 'U' },
	{ '4', '5', '6', 'D' },
	{ '7', '8', '9', 'X' },
	{ 'L', '0', 'R', 'E' }
};

byte rowPins[numRows] = { 10, 9, 8, 7, 6 };
byte colPins[numCols] = { 2, 3, 4, 5 };

Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

#include "Keyboard.h"

void setup()
{
	Keyboard.begin();
}

void loop()
{
	char keypressed = myKeypad.getKey();
	if (keypressed != NO_KEY) Keyboard.write(keypressed);
}

Dawid Przychodni

Create Account



Log In Your Account