ThimbleKrox - Controle do mouse com os dedos
Componentes e suprimentos
| × | 1 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
|
Aplicativos e serviços online
|
Sobre este projeto
Olá a todos, aqui está o meu primeiro projeto, ThimbleKrox que é um dedal que permite controlar o ponteiro do mouse através do movimento do índice (ou de qualquer dedo).
Etapa 1:materiais e ferramentas necessários
Materiais necessários:
- Arduino Micro
- MPU-6050
- um cabo para conectar o Arduino e o PC (micro USB para USB)
- Jumper (para conectar o Arduino e o MPU-6050)
- um elástico (se você quiser prender o Arduino em sua mão)
Ferramentas necessárias:
- um computador com o Arduino IDE instalado (para inicializar o código no Arduino)
- Ferro de soldar (somente se o Arduino não tiver os conectores de pinos pré-montados)
- impressora 3D (se você quiser que seu dedal tenha uma aparência legal)
Etapa 2:conexão
Conecte os pinos do arduino aos pinos do MPU-6050:
- pino VCC do Arduino para pino VCC
- fixe GND em GND
- pino 2 para SDA
- pino 3 para SCL.
Etapa 3:impressão 3D (opcional)
Se você quiser que o dedal tenha uma boa aparência e se tiver uma impressora 3D, pode imprimir o dedal físico.
Fiz isso em duas versões, uma transparente que, portanto, não requer suportes para ser impressa e não é muito volumosa, uma segunda em vez disso tentei fazer no estilo steampunk sem torná-la muito volumosa (é ainda mais volumosa que a transparente um), mas este exige que os suportes sejam impressos e só retornam melhor se forem coloridos (para PLA me dei bem com têmpera). Ambos precisam ser impressos com a peça com as duas saliências internas na parte inferior
Etapa 4:montagem
Com o dedal impresso em 3D
Para montar tudo com o dedal impresso, após fazer as conexões é necessário inserir o MPU-6050 dentro da cavidade superior do dedal alojando os cabos na cavidade inferior
Sem o dedal impresso em 3D
Nesse caso, a montagem é feita de forma mais amadora, ou seja, posicionando o MPU-6050 na última falange do dedo interessado e bloqueando-o com fita adesiva ou elástico.
Etapa 5:Código e calibração
A primeira coisa a fazer para executar o código é instalar as bibliotecas necessárias:Wire.h, I2Cdev.h, MPU6050.he Mouse.h
Depois de fazer isso, é meu conselho carregar o código de calibração ThimbleKrox, colocar o dedal e abrir o monitor serial (Ctrl + Shift + M).
Agora você deve ver algo assim:
right | gx =3165 gy =469 gz =-1055 | ax =15232 ay =2064 az =-4496
Onde é mostrado a direção em que, se calibrado corretamente, você deseja fazer o ponteiro ir e a seguir alguns valores necessários para a calibração.
Agora você tem que reabrir o código e ir para as linhas marcadas com "// linha de calibração" e alterar os valores numéricos até obter a direção correta. (Cada vez que você altera um valor no código, você precisa recarregá-lo no Arduino)
Ex.
Monitor serial:
left | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
Código de calibração:
if (ax> =15000) {// linha de calibração
right ();
}
O monitor serial marca "esquerda", mas queremos que essa linha seja marcada como "direita", portanto, precisamos alterar o valor "15000" para "5000". Isso porque, neste caso, temos que nos certificar de que o "machado" detectado é maior que o valor no código. Entendemos que deve ser maior porque no código existe um sinal maior e que temos que olhar para o “machado” do monitor serial porque no código existe “machado”. (apenas os valores numéricos do código precisam ser alterados)
Depois de recarregar o código no Arduino, teremos:
Monitor serial:
right | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
Código de calibração:
if (ax> =5000) {// linha de calibração
right ();
}
Quando todas as linhas de calibração no código de calibração tiverem sido ajustadas e, portanto, o dedal da versão de calibração estiver funcional, os valores do código principal devem ser ajustados para corresponder ao código de calibração.
Ex.
Código de calibração:
if (ax> =5000) {// linha de calibração
right ();
}
Código principal:
if (ax> =15000) {// linha de calibração
right ();
}
O código principal deve ser alterado para:
if (ax> =5000) {// linha de calibração
right ();
}
Agora é hora de fazer o upload do código principal
Etapa 6:termine o projeto
Agora é a hora de usar o dedal e brincar com ele!
Código
- código ThimbleKrox
- Código de calibração ThimbleKrox
Código ThimbleKrox Arduino
Código principal para ThimbleKrok// Código para controlar o ponteiro do mouse através do movimento de um dedo // Para calibrar o dispositivo execute "Código de calibração ThimbleKrox" e siga o tutorial encontrado em https://www.hackster.io/projects / dd8881 /// As linhas que precisam ser alteradas para calibração têm "// linha de calibração" // código escrito por Magform # include#include #include #include MPU6050 mpu; int16_t ax, ay, az, gx, gy, gz; int vx, vy; int sensibility =10; // Altere este valor para alterar a sensibilidade do dispositivo void setup () {Serial.begin (9600); Wire.begin (); mpu.initialize (); if (! mpu.testConnection ()) {// verificar a conexão com o MPU-6050, se não houver conexão, pare de funcionar enquanto (1); }} void up () {Mouse.move (0, -sensibilidade); } void down () {Mouse.move (0, sensibilidade); } void left () {Mouse.move (-sensibility, 0); } void right () {Mouse.move (sensibilidade, 0); } void loop () {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {// linha de calibração à direita (); } if (ax <=- 9000) {// linha de calibração à esquerda (); } if (ay <=- 8000) {// alinhamento de calibração (); } if (ay> =10000) {// linha de calibração para baixo (); } // descomente as seguintes linhas para definir o clique direito com um sprint para cima e o clique esquerdo com um sprint para baixo (parte Trabalho em andamento) / * if (gy> =20000) {// linha de calibração Mouse.click (MOUSE_RIGHT); atraso (100); } if (gy <=- 20000) {// linha de calibração Mouse.click (MOUSE_LEFT); atraso (100); } * / atraso (10);}
Código de calibração ThimbleKrox Arduino
Código para calibração do ThimbleKrox// Código para calibrar o ThimbleKrox // Para calibrar o dispositivo execute este código e siga o tutorial encontrado em https://www.hackster.io/projects/dd8881///The lines that need a ser alterado (como o outro código) para calibração tem "// linha de calibração" // código escrito por Magform # include#include #include #include MPU6050 mpu; int16_t ax, ay, az, gx, gy, gz; int vx, vy; int Nwrong =1; void setup () {Nwrong =1; Serial.begin (9600); Wire.begin (); mpu.initialize (); while (Nwrong! =0) {if (! mpu.testConnection ()) {Serial.print ("Número de conexão errado:"); Serial.print (Nwrong); Nwrong ++; atraso (1000); } senão {Nwrong =0; }}} void up () {Serial.print ("up"); } void down () {Serial.print ("down"); } void left () {Serial.print ("left"); } void right () {Serial.print ("right"); } void rightclick () {Serial.print ("RightClick");; } void leftclick () {Serial.print ("LeftClick");; } void loop () {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {// linha de calibração à direita (); } if (ax <=- 9000) {// linha de calibração à esquerda (); } if (ay <=- 8000) {// alinhamento de calibração (); } if (ay> =10000) {// linha de calibração para baixo (); } // descomente as linhas a seguir para definir o clique direito com um sprint para cima e o clique esquerdo com um sprint para baixo (parte Trabalho em andamento) / * if (gy> =20000) {// linha de calibração rightclick (); atraso (100); } if (gy <=- 20000) {// linha de calibração leftclick (); atraso (100); } * / Serial.print ("| gx ="); Serial.print (gx); Serial.print ("gy ="); Serial.print (gy); Serial.print ("gz ="); Serial.print (gz); Serial.print ("| ax ="); Serial.print (ax); Serial.print ("ay ="); Serial.print (ay); Serial.print ("az ="); Serial.print (az); Serial.print ("\ n"); atraso (5000); }
ThimbleKrox
https://github.com/Magform/ThimbleKroxPeças personalizadas e gabinetes
Modelo para impressão 3D ThimbleKrox
Para aqueles que preferem obter os modelos do arquivo ThingiverseCAD em thingiverse.com Suporte necessário; nenhum suporte necessárioEsquemas
Processo de manufatura
- Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
- Habilite o controle Alexa para o seu ventilador de teto
- Aceitar moeda de controle com Arduino
- Arduino Control Center
- Arduino com Bluetooth para controlar um LED!
- Controle do umidificador Arduino
- Arduino Nano:Controle 2 motores de passo com joystick
- Controle o seu LED com a Cortana
- Controle total de sua TV usando Alexa e Arduino IoT Cloud
- Controle de ventilador PWM de 4 pinos de 25 kHz com Arduino Uno