Índice:
- Etapa 1: componentes necessários para o botão para configuração do motor de vibração
- Etapa 2: Esquema do botão para configuração do motor de vibração
- Etapa 3: A configuração do botão para configuração do motor de vibração
- Etapa 4: O Código
- Etapa 5: Vídeo do botão para configuração do motor de vibração
- Etapa 6: Protótipo de luva extensível
- Etapa 7: Código para vários botões com saída de vibração exclusiva
Vídeo: Uma aplicação de um botão extensível com feedback de vibração: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Neste tutorial, vamos primeiro mostrar como usar um Arduino Uno para controlar um motor de vibração por meio de um botão estendido. A maioria dos tutoriais sobre botões envolvem o botão na placa de ensaio física, enquanto neste tutorial, o botão foi modificado para ser conectado à placa de ensaio por meio de cabos jumper. Este botão permitirá que você controle a força e o padrão de vibração do motor. Em seguida, mostraremos um possível protótipo de uma tecnologia vestível fazendo uso dessa configuração. Este wearable é uma luva com pontas de dedos extensíveis com botões presos na extremidade, programada para fornecer feedback de vibração exclusivo para o usuário com base no botão específico pressionado.
Etapa 1: componentes necessários para o botão para configuração do motor de vibração
- Arduino Uno
- Tábua de pão
- Motor Vibrator Coin Vibrator
- Botão Grove
- Fios de ligação macho-macho (x10)
- Jumper Wire 4 Pin
- Driver do motor tátil
- Conector de borda macho-fêmea
- Ferro de solda
Etapa 2: Esquema do botão para configuração do motor de vibração
O diagrama anterior foi criado com Fritzing.org.
Etapa 3: A configuração do botão para configuração do motor de vibração
Etapa 1: Solde o conector de borda ao acionador do motor de vibração. Solde os fios do vibrador de moeda nos terminais do acionador do motor de vibração.
Etapa 2: Conecte o cabo de jumper de 4 pinos ao botão breakout.
Etapa 3: usando um dos fios de jumper, conecte o pino GRD no Arduino a uma linha na placa de ensaio.
Etapa 4: usando outro fio de jumper, conecte o pino Volt 3.3 no Arduino a uma linha diferente na placa de ensaio.
Etapa 5: Agora, conectaremos o driver do motor de vibração ao Arduino. Usando um terceiro fio de jumper, conecte o pino GND no driver do motor de vibração à mesma linha da placa de ensaio que o pino GRD do Arduino. Faça o mesmo com outro fio para VCC (volt) no driver do motor de vibração, para a fileira volt da placa de ensaio.
Etapa 6: use outro fio para conectar o pino SDA no driver do motor de vibração ao pino SDA diretamente no Arduino. Novamente, faça o mesmo com os pinos SCL em ambos. Como alternativa, siga uma abordagem semelhante à etapa 5 e conecte os pinos SDA e SCL no Arduino às suas próprias linhas na placa de ensaio por meio de fios de jumper. Em seguida, passe um fio da fileira onde o pino SDA está conectado na placa de ensaio ao pino SDA no driver do motor. Faça o mesmo para a linha SCL na placa de ensaio até o pino SCL no driver do motor.
Etapa 7: Agora terminaremos conectando o botão ao driver do motor de vibração e ao Arduino. Use outro fio jumper para conectar o GRD do fio jumper de 4 pinos conectado ao botão breakout à mesma linha que os outros fios GRD na placa de ensaio. Faça o mesmo com volt mais uma vez (VCC).
Etapa 8: Conecte uma gravação final do SIG no botão breakout a um pino no Arduino (para fins de nosso código, usamos o pino 7).
Etapa 9: Conecte o Arduino, faça upload do código e veja como funciona!
Etapa 4: O Código
Botão-vibração-motor.c
/ * Código adaptado de https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 * / |
#incluir |
#incluir |
SFE_HMD_DRV2605L HMD; // Criar objeto de driver de motor háptico |
botão int = 7; // escolha o pino de entrada 7 para o botão de pressão |
botão_val interno = 0; // variável para ler o status do pino |
voidsetup () |
{ |
/ * Initialize Haptic Motor Driver Object * / |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Modo de entrada do acionador interno - Deve-se usar a função GO () para acionar a reprodução. |
HMD. MotorSelect (0x36); // Motor ERM, frenagem 4x, ganho de loop médio, ganho de EMF traseiro de 1,365x |
HMD. Library (2); // 1-5 e 7 para motores ERM, 6 para motores LRA |
} |
voidloop () |
{ |
/ * Iniciar o motor de vibração * / |
HMD.go (); |
button_val = digitalRead (botão); |
if (button_val == HIGH) { |
/ * Isso indica que o botão foi pressionado, use para debugginh * / |
Serial.println ("Botão pressionado."); |
/ * A biblioteca de formas de onda tem 0-122 tipos diferentes de ondas * / |
HMD. Waveform (0, 69);} |
outro{ |
/ * Se o botão não for pressionado, pare o motor de vibração * / |
HMD.stop (); |
} |
} |
veja rawButton-Vibration-Motor.c hospedado com ❤ por GitHub
Etapa 5: Vídeo do botão para configuração do motor de vibração
Etapa 6: Protótipo de luva extensível
Uma possível aplicação do botão ao motor de vibração é a luva mostrada acima. Modificamos materiais baratos acessíveis, como seringas, para fazer "pontas dos dedos" extensíveis. Colocamos os botões do aro na extremidade das seringas modificadas com velcro, cortamos orifícios na ponta dos dedos de uma luva e colocamos cada seringa nos orifícios. Os fios de jumper de 4 pinos dos botões são enfiados nas seringas e são longos o suficiente para que você possa estender as seringas em seu comprimento total. O Arduino e a placa de ensaio são presos por velcro na parte superior da luva, o que permite que os fios dos botões sejam facilmente conectados por meio de uma pequena fenda na base de cada dedo. O acionador do motor é fixado na parte inferior da luva pela abertura, para prender o motor de vibração no interior da luva. Quando o usuário está com a luva, o motor de vibração fica na parte inferior do pulso do usuário. Quando o usuário toca uma superfície e pressiona um dos botões, uma vibração de feedback única é fornecida pelo motor.
O processo de pensamento por trás de tal luva seria permitir que alguém a usasse "tocasse" coisas além do alcance de seus dedos regulares e recebesse o feedback de que está tocando essas superfícies. O feedback de vibração muda dependendo de qual dedo está tocando a superfície, de modo que seja possível para o usuário dizer qual dedo está tocando a superfície com base no padrão de vibração.
Há muitas maneiras de levar o protótipo adiante, como tornar os dedos mais extensíveis ou fazer a mudança de feedback com base no tipo de superfície que está sendo tocada. Idealmente, dedos extensíveis seriam criados por meio de impressão 3D, para melhores opções de telescópio. Um sensor de temperatura pode ser usado no lugar dos botões, para permitir feedback sobre o quão quente está a superfície que o usuário está tocando, ou um sensor de umidade para fins semelhantes. Uma maneira de sentir o quão longe o "dedo" foi estendido pode ser implementada, para permitir que o usuário saiba a que distância está o objeto que está tocando. Essas são apenas algumas opções possíveis para levar esse protótipo adiante.
Esta luva pode ser confeccionada com materiais comuns como uma maneira fácil de estender seus sentidos e criar feedback que o usuário possa sentir e entender.
Etapa 7: Código para vários botões com saída de vibração exclusiva
mutliple_buttons_to_vibmotor.ino
/ * Código adaptado de SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide * / |
#incluir |
#incluir |
SFE_HMD_DRV2605L HMD; // Criar objeto de driver de motor háptico |
int button_middle = 7; |
botão_index int = 5; // escolha o pino de entrada para o botão de pressão |
botão_ring int = 9; |
int button_pinky = 3; |
voidsetup () |
{ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Modo de entrada do acionador interno - Deve-se usar a função GO () para acionar a reprodução. |
HMD. MotorSelect (0x36); // Motor ERM, frenagem 4x, ganho de loop médio, ganho EMF traseiro de 1,365x |
HMD. Library (2); // 1-5 e 7 para motores ERM, 6 para motores LRA |
} |
voidloop () |
{ |
HMD.go (); // liga o motor de vibração |
/ * Verifique qual botão está pressionado e a forma de onda de saída 0-122 * / |
if (digitalRead (button_middle) == HIGH) { |
Serial.println ("Botão pressionado."); |
HMD. Waveform (0, 112);} |
elseif (digitalRead (button_index) == HIGH) { |
HMD. Waveform (0, 20); |
} |
elseif (digitalRead (button_ring) == HIGH) { |
HMD. Waveform (0, 80); |
} |
elseif (digitalRead (button_pinky) == HIGH) { |
HMD. Waveform (0, 100); |
} |
/ * Se nenhum botão for pressionado, pare * / |
outro{ |
HMD.stop (); |
} |
} |
visualizar rawmutliple_buttons_to_vibmotor.ino hospedado com ❤ por GitHub
Recomendado:
Microcontrolador AVR. Alterne os LEDs usando um botão de pressão. Botão Debouncing: 4 etapas
Microcontrolador AVR. Alterne os LEDs usando uma chave de botão. Push Button Debouncing: Nesta seção, aprenderemos como fazer o código do programa C para ATMega328PU para alternar o status dos três LEDs de acordo com a entrada de uma chave de botão. Além disso, exploramos uma solução para o problema de ‘Switch Bounce’. Como de costume, nós teremos
Colocando um botão Copiar para a área de transferência em uma página da web: 5 etapas (com imagens)
Colocando um botão Copiar para a área de transferência em uma página da Web: isso pode parecer simples e posso parecer bobo por colocá-lo no Instructables, mas, na realidade, não é tão fácil. Há CSS, Jquery, HTML, alguns javascript sofisticados e, tudo bem, você sabe
Limusina extensível controlada ESP8266: 8 etapas (com fotos)
Limusine Stretch Controlada ESP8266: Mostraremos neste manual como trocar um sistema de controle do interior de um carro existente por uma nova solução IoT ESP8266. Fizemos este projeto para um cliente. Visite nosso site também para obter mais informações, código-fonte etc.https: //www.hwhard
Sistema de gerenciamento de motor para aplicação de içamento usando Arduino Mega 2560 e IoT: 8 etapas (com imagens)
Sistema de gerenciamento de motor para aplicação de içamento usando Arduino Mega 2560 e IoT: Atualmente, os microcontroladores baseados em IoT são amplamente usados na aplicação industrial. Economicamente, eles são usados em vez de um computador. O objetivo do projeto é o controle totalmente digitalizado, registrador de dados e monitoramento do motor de indução trifásico w
Gimbal portátil extensível para GoPro / SJ4000 / Xiaomi Yi / iLook: 9 etapas (com imagens)
Gimbal portátil extensível para GoPro / SJ4000 / Xiaomi Yi / iLook: Este tutorial irá guiá-lo como hackear um stick de selfie e um Gimbal 2D para fazer um gimbal portátil extensível que pode montar câmeras como GoPro SJ4000 / 5000/6000 Xiaomi Yi Walkera iLook. Um Gimbal é um mecanismo de estabilização que rem