Índice:

Mouse de computador Cyborg: 4 etapas (com imagens)
Mouse de computador Cyborg: 4 etapas (com imagens)

Vídeo: Mouse de computador Cyborg: 4 etapas (com imagens)

Vídeo: Mouse de computador Cyborg: 4 etapas (com imagens)
Vídeo: Os MELHORES WALLPAPERS animados totalmente GRÁTIS! 2024, Novembro
Anonim
Cyborg Computer Mouse
Cyborg Computer Mouse

Muitos estudos sugerem que a postura de usar um mouse de computador convencional pode ser perigosa. O mouse é uma peça padrão do equipamento de computador. Os usuários de computador usam o mouse quase três vezes mais que o teclado. Como as taxas de exposição são altas, é muito importante melhorar a postura das extremidades superiores ao usar um mouse de computador.

Para este projeto abstrato, estaremos fazendo um wearable que permite que as pessoas se movam pela tela de um computador sem a necessidade de tecnologia externa. Dessa forma, poderíamos usar os movimentos naturais das mãos em vez de clicar em um dispositivo em uma superfície horizontal. Isso também permite usar telas em pé, tornando as apresentações orais mais agradáveis.

Já o protótipo utilizará o índice como joystick, o dedo médio para clicar com o botão esquerdo, o anelar para clicar com o botão direito e o mindinho para ligar e desligar o aparelho. O polegar atuará como a superfície onde os botões são pressionados. Tudo isso será adicionado em uma luva.

Suprimentos

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Módulo Joystick
  • (x3) Botão de pressão
  • (x20 ±) Jumpers de fio
  • (x3) Resistores de 1KΩ
  • (x1) Kit de costura de luva
  • Velcro Hot silicone
  • Kit de solda de arame
  • Parte impressa em 3D

Etapa 1: configurar o hardware

Configure o Hardware
Configure o Hardware

Incluímos um esboço do Fritzing para uma melhor compreensão do design. Recomendamos montar os componentes em um protoboard primeiro. Dessa forma, você pode verificar se tudo está funcionando antes de soldar.

Etapa 2: faça upload do código e teste

Feitas as conexões, conecte o USB A (M) ao micro USB B (M) do computador ao Arduino Leonardo e faça o upload do sketch. Sinta-se à vontade para copiar, modificar e melhorar o esboço.

AVISO: Ao usar o comando Mouse.move (), o Arduino assume o controle do mouse! Certifique-se de ter controle antes de usar o comando. Funciona apenas para Arduino Leonardo, Micro ou Due

Aqui está nosso código para este projeto:

// Definir Pins # include; const int mouseMiddleButton = 2; // pino de entrada para o botão do meio do mouse const int startEmulation = 3; // liga e desliga a emulação do mouse const int mouseLeftButton = 4; // pino de entrada para o botão esquerdo do mouse const int mouseRightButton = 5; // pino de entrada para o botão direito do mouse Const int joystickX = A1; // eixo X do joystick const int joystickY = A0; // eixo Y do joystick

// parâmetros para ler o joystick:

int cursorSpeed = 10; // velocidade de saída do movimento X ou Y int responseDelay = 5; // atraso de resposta do mouse, em ms int threshold = cursorSpeed / 4; // limite de repouso int center = cursorSpeed / 2; // valor da posição de repouso int mouseMiddleState = 0;

boolean mouseIsActive = false; // se deve ou não controlar o mouse

int lastSwitchState = LOW; // estado do switch anterior

void setup () {

pinMode (startEmulation, INPUT); // o pino da chave pinMode (mouseMiddleButton, INPUT); // o pino do botão do meio do mouse pinMode (mouseLeftButton, INPUT); // o pino do botão esquerdo do mouse pinMode (mouseRightButton, INPUT); // o pino do botão direito do mouse

Mouse.begin (); // assuma o controle do mouse

}

void loop () {

// leia a opção: int switchState = digitalRead (startEmulation);

// se for alterado e estiver alto, alterne o estado do mouse:

if (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}

// salve o estado da chave para o próximo loop:

lastSwitchState = switchState;

// leia e dimensione os dois eixos:

int xReading = readAxis (A1); int yLeitura = readAxis (A0);

// se o estado de controle do mouse estiver ativo, mova o mouse:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, roda de rolagem do mouse)}

//DEIXOU

// ler o botão do mouse e clicar ou não clicar: // se o botão do mouse for pressionado: if (digitalRead (mouseLeftButton) == HIGH) {// se o mouse não estiver pressionado, pressione: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); atraso (100); // atrasar para habilitar um único e duplo clique em Mouse.release (MOUSE_LEFT); }}

// senão o botão do mouse não é pressionado:

else {// se o mouse for pressionado, solte-o: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//DIREITO

// leia o botão do mouse e clique ou não clique: // se o botão do mouse for pressionado: if (digitalRead (mouseRightButton) == HIGH) {// se o mouse não estiver pressionado, pressione: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); atraso (100); // atrasar para habilitar um único e duplo clique Mouse.release (MOUSE_RIGHT); }}

// senão o botão do mouse não é pressionado:

else {// se o mouse estiver pressionado, solte-o: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MEIO

// ler o botão do mouse e clicar ou não clicar: // se o botão do mouse for pressionado: if (digitalRead (mouseMiddleButton) == HIGH) {// se o mouse não estiver pressionado, pressione: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // atualiza el estado del botón}}

// senão o botão do mouse não é pressionado:

else {// se o mouse for pressionado, solte-o: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

atraso (responseDelay);

}

/*

lê um eixo (0 ou 1 para x ou y) e dimensiona a faixa de entrada analógica para uma faixa de 0 a * /

int readAxis (int thisAxis) {

// leia a entrada analógica: int reading = analogRead (thisAxis);

// mapeia a leitura da faixa de entrada analógica para a faixa de saída:

leitura = mapa (leitura, 0, 1023, 0, cursorSpeed);

// se a leitura de saída estiver fora do

// limite da posição de repouso, use-o: int distance = reading - center;

if (abs (distância) <limite) {distância = 0; }

// retorna a distância para este eixo:

distância de retorno; }

Etapa 3: Montagem do protótipo

Montagem do protótipo
Montagem do protótipo
Montagem do protótipo
Montagem do protótipo
Montagem do protótipo
Montagem do protótipo

O primeiro passo é costurar o velcro na luva, você tem que costurar quatro tiras de velcro uma em cada dedo. Costuramos a parte macia do velcro.

Cada botão de pressão tem dois fios, um que começa nos respectivos pinos e se conecta à perna positiva do botão e outro na perna negativa. Na outra ponta do fio negativo soldamos as resistências de cada botão mais o fio negativo do joystick em um último fio, que se conecta ao GND da placa Arduino. A mesma conexão paralela funciona para o lado positivo. (3 botões e joystick com perna positiva)

Depois de soldar os jumpers, colocaremos as tiras de velcro rígidas, para que os fios fiquem presos no meio. Por último, colamos termicamente o módulo do joystick em uma peça impressa em 3D. Abaixo você pode encontrar o arquivo. STL.

Etapa 4: comece a usar sua mão como um mouse

Image
Image
Comece a usar sua mão como um mouse!
Comece a usar sua mão como um mouse!
Comece a usar sua mão como um mouse!
Comece a usar sua mão como um mouse!

Vote em nós no Concurso de Tecnologia Assistiva se você gostou do projeto.

Recomendado: