Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

ThimbleKrox - Controle do mouse com os dedos

Componentes e suprimentos

Arduino Micro
× 1
SparkFun Triple Axis Accelerometer and Gyro Breakout - MPU-6050
× 1

Ferramentas e máquinas necessárias

Impressora 3D (genérica)
Opcional

Aplicativos e serviços online

Arduino IDE

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/ThimbleKrox

Peç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ário

Esquemas


Processo de manufatura

  1. Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
  2. Habilite o controle Alexa para o seu ventilador de teto
  3. Aceitar moeda de controle com Arduino
  4. Arduino Control Center
  5. Arduino com Bluetooth para controlar um LED!
  6. Controle do umidificador Arduino
  7. Arduino Nano:Controle 2 motores de passo com joystick
  8. Controle o seu LED com a Cortana
  9. Controle total de sua TV usando Alexa e Arduino IoT Cloud
  10. Controle de ventilador PWM de 4 pinos de 25 kHz com Arduino Uno