Índice:

3D AIR Mouse - Processamento Arduino +: 5 etapas
3D AIR Mouse - Processamento Arduino +: 5 etapas

Vídeo: 3D AIR Mouse - Processamento Arduino +: 5 etapas

Vídeo: 3D AIR Mouse - Processamento Arduino +: 5 etapas
Vídeo: I made the Worst Bluetooth Mouse with Magnets! [ESP32/Arduino] 2024, Novembro
Anonim
Mouse 3D AIR | Processamento Arduino +
Mouse 3D AIR | Processamento Arduino +

Mouse 3D AIR | Arduino + ProcessingSou estudante de design industrial e, no ano passado, como parte de um curso chamado "Tecnologia como material bruto", construí este projeto como meu trabalho final. Trabalho na maior parte do tempo com o SolidWorks, um software CAD para design e engenharia. A rotação de um corpo sólido na tela é feita usando o botão do meio do mouse. Eu estava procurando por algo mais intuitivo. Foi assim que acabei fazendo o air mouse 3D, onde a rotação real de um objeto é feita movendo o mouse no ar em todos os 3 eixos - da mesma forma que você giraria o objeto se o segurasse em sua mão. Usei o Arduino, alguns sensores e um sketch de Processing. NOTAS: - A partir de agora, esta é apenas uma demonstração do conceito, já que não há nenhum plug-in real para trabalhar com o SolidWork (mas é claro, fique à vontade para escreva um se você souber como:) - Como todo o hardware não era meu, o mouse 3D real se foi há muito tempo, e estou usando algumas fotos e um vídeo para tentar fazer algum sentido em tudo isso, e para dar a vocês alguma ideia se você quiser experimentar e construir um … Divirta-se … (é o meu primeiro Instructable) Aqui está um vídeo de demonstração do projeto concluído

Etapa 1: Hardware e outras coisas

Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas
Hardware e outras coisas

Não é o mais barato Instructable, pois é baseado em um acelerômetro de 3 eixos + sensor de bússola. Coisas que você precisa: * Um mouse - um usado é melhor (apenas porque é usado e mais barato), qualquer mouse deve servir. Você precisa ter algum espaço para abrigar os sensores e alguns fios extras, então não vá para mouses extrafinos / minúsculos. * Módulo de bússola com compensação de inclinação - HMC634 - Este é o sensor de 3 eixos, comprado na SpurkFun por ~ Conversor de nível lógico de $ 149 * - OBRIGATÓRIO! Como o Arduino tem 5 V e o sensor de 3 eixos é 3,3 V, você precisa de um deles para converter 5 V em 3,3 V. Ele tem um grande nome, mas custou apenas US $ 1,95 na SpurkFun. * Detector óptico grande / fototransistor - Este é um sensor óptico simples, usado neste projeto para detectar quando o mouse está sendo levantado da superfície de trabalho. Comprado na SpurkFun por $ 2,25 Se você não tiver espaço suficiente para abrigar este dentro do mouse escolhido, você pode usar este, menor e mais barato. * Um (1) LED - não importa a cor, ultra brilhante funcionará melhor. * 2 Resistores - Um (1) x 100Ω e Um (1) x 100KΩ (para o sensor óptico) * Placa Arduino - DA! Usei o modelo Diecimila. Um Duemilanove mais recente está disponível no SpurkFun por cerca de US $ 29,95 (deve funcionar também) + software Arduino instalado. * Software de processamento instalado. * O código-fonte do projeto (não se preocupe, você fará o download em um segundo) Mais: alguns cola quente (para fixar as coisas no lugar) Alguns parafusos minúsculos. Cerca de 10 cm de uma âncora de madeira de 6 mm (diâmetro). Alguns fios extras. Ferro de soldar. Para cortar o plástico, usei uma faca e uma lima para cortar o plástico. PARA modelagem). ("Ok, não me odeie por essa etapa, o inglês é meu segundo idioma, se entendi errado, sinto muito, tenho certeza de que você entenderá o que estou falando em um segundo. Quando você verá em fotos ")

Etapa 2: Eletrônica

Eletrônicos
Eletrônicos
Eletrônicos
Eletrônicos

Tudo precisa ser soldado … De certa forma … NOTA: O sensor de 3 eixos é uma coisa pequena e cara, verifique a fiação antes de ligar tudo … Veja o esquema em anexo para toda a fiação usada neste projeto. O código-fonte em anexo só pode funcionar se você usar os mesmos números de pin que eu usei, mas sinta-se à vontade para alterá-los ao se conectar, contanto que altere os números apropriados no código. Conectando o sensor de 3 eixos ao conversor de nível lógico: Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Conversor TXI (Chan1) Conversor TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Conversor TXI (Chan2) Conversor TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (pelo menos um deles) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Sensor óptico para Arduino: Ver imagem digital anexada em = Pino 11 no ArduinoLED: GND para alguns GND (usei um dos sensores ópticos) + para Arduino PIN 13 (Isso foi feito porque este pino já tem um resistor on-board, se você usar um diferente, certifique-se de usar um resistor para não queimar o LED)

Etapa 3: preparando o mouse

Preparando o Mouse
Preparando o Mouse
Preparando o Mouse
Preparando o Mouse
Preparando o Mouse
Preparando o Mouse

É aqui que os sensores encontram seu lugar dentro da caixa do mouse. Encontre o melhor lugar para fixar o sensor de 3 eixos. Certifique-se de que está nivelado e preste atenção à orientação (você saberá quando tiver o sensor em mãos). Você pode consertá-lo da maneira que quiser, usei 2 peças curtas da âncora de madeira, perfuradas para aceitar os 2 parafusos minúsculos, e colado a quente na placa principal do mouse. Para o sensor óptico, faça um orifício retangular na parte inferior do mouse, a ideia é fazer com que o sensor "veja" a mesa o tempo todo. Quando o mouse é levantado e o estado do sensor está "aberto" (sem tabela para ver), o mouse muda para o modo 3D (executa o esboço de processamento) Faça outro orifício para direcionar os fios extras (dos sensores para o Arduino) para fora do caixa de plástico. O meu estava localizado no lado direito do mouse. Fixe o LED onde aparecerá. Neste projeto, o LED é o indicador do modo 3D. Coloco o meu ao lado da roda do mouse de silicone. Quando o mouse é levantado, a roda tem um belo brilho azul.

Etapa 4: o código-fonte

O código do Arduino foi escrito por Shachar Geiger, meu professor, e foi modificado por mim para este projeto. O código do cubo 3D é o código básico encontrado no site da Processing. Eu modifiquei um pouco. No código, este pedaço converte as informações brutas vindas do sensor (normalmente -180 a 180 x 10) em 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y + 1800) / 14; Serial.write (y); Serial.write ('z'); z = (z + 1800) / 14; Serial.write (z); As informações do sensor e do Arduino vão para o esboço de processamento para cada eixo separado, mas com uma letra de eixo precedente (para exp. X12 Y200 Z130), o código a seguir descarta a letra e deixa apenas os valores para serem enviados para o COM port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Este pedaço de código descarta todos os valores negativos … if ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (- (float) Y / 25.0); rotateX ((flutuar) X / 25,0); girarY ((flutuar) Z / 25.0); pX = X; pY = Y; pZ = Z;} else {girarZ (- (flutuar) pY / 25.0); girarX ((flutuar) pX /25.0);rotateY(((float)pZ/25.0);} O arquivo ZIP anexado continha o Arduino e o código de processamento

Etapa 5: Vídeo

É isso … Este é o projeto finalizado em um vídeo. Há uma pequena falha (você pode ver que o cubo às vezes "pula" no vídeo), isso é por causa do eixo Z, pode não acontecer com você …

Recomendado: