Tabla de contenido:

Ratón AIR 3D - Procesamiento Arduino +: 5 pasos
Ratón AIR 3D - Procesamiento Arduino +: 5 pasos

Video: Ratón AIR 3D - Procesamiento Arduino +: 5 pasos

Video: Ratón AIR 3D - Procesamiento Arduino +: 5 pasos
Video: TOP 15 Proyectos con Arduino 2022 2024, Noviembre
Anonim
Ratón AIR 3D | Procesamiento Arduino +
Ratón AIR 3D | Procesamiento Arduino +

Ratón AIR 3D | Arduino + Processing Soy un estudiante de diseño industrial, y el año pasado como parte de un curso llamado "Tecnología como material RAW" construí este proyecto como mi trabajo final. Trabajo la mayor parte del tiempo con SolidWorks, un software CAD para diseño e ingeniería.. La rotación de un cuerpo sólido en la pantalla se realiza con el botón central del mouse. Buscaba algo más intuitivo. Así es como terminé haciendo el mouse de aire 3D, donde la rotación real de un objeto se realiza moviendo el mouse en el aire en los 3 ejes, de la misma manera que rotarías el objeto si lo sostuvieras en tu mano. Usé el Arduino, un par de sensores y un boceto de procesamiento. NOTAS: - A partir de ahora, esto es solo una demostración del concepto, ya que no hay un complemento real para trabajar con SolidWork (pero, por supuesto, no dude en escriba uno si sabe cómo:) - Dado que todo el hardware no era mío, el mouse 3D real desapareció hace mucho tiempo, y estoy usando algunas fotos y un video para tratar de encontrar algo de sentido en todo esto, y para darle alguna idea si quieres probar y construir uno tú mismo … Disfrútalo … (Es mi primer Instructable) Aquí está la demostración en video del proyecto terminado

Paso 1: Hardware y cosas

Hardware y cosas
Hardware y cosas
Hardware y cosas
Hardware y cosas
Hardware y cosas
Hardware y cosas
Hardware y cosas
Hardware y cosas

No es el Instructable más barato, ya que se basa en un sensor de brújula + acelerómetro de 3 ejes. Cosas que necesitará: * Un mouse: uno usado es mejor (solo porque está usado y es más barato), cualquier mouse debería servir. Necesita tener algo de espacio para alojar los sensores y algunos cables adicionales, así que no opte por ratones extra delgados / extra pequeños. * Módulo de brújula con compensación de inclinación - HMC634 - Este es el sensor de 3 ejes, comprado en SpurkFun por ~ $ 149 * Convertidor de nivel lógico - ¡IMPRESCINDIBLE! Dado que el Arduino es de 5V y el sensor de 3 ejes es de 3.3V, necesita uno de esos para convertir el 5V en 3.3V. Tiene un gran nombre, pero solo cuesta $ 1.95 en SpurkFun. * Detector / fototransistor óptico grande: este es un sensor óptico simple, utilizado en este proyecto para detectar cuándo se levanta el mouse de la superficie de trabajo. Comprado en SpurkFun por $ 2.25 Si no tiene suficiente espacio para guardar este dentro del mouse elegido, puede usar este, más pequeño y más barato. * Un (1) LED: no importa el color, el ultrabrillante funcionará mejor. * 2 resistencias: una (1) x 100Ω y una (1) x 100KΩ (para el sensor óptico) * Placa Arduino - ¡DA! Usé el modelo Diecimila. Un Duemilanove más nuevo está disponible en SpurkFun por aproximadamente $ 29.95 (también debería funcionar) + software Arduino instalado. * Software de procesamiento instalado. * El código fuente del proyecto (no se preocupe, podrá descargarlo en un segundo). pegamento caliente (para fijar las cosas en su lugar) Un par de tornillos pequeños. Aproximadamente 10 cm de un ancla de madera de 6 mm (diámetro). Algunos cables adicionales. Soldador. Algo para cortar el plástico, utilicé un cuchillo de corte y una lima (PARA dar forma). ("Ok, no me odies por este paso, el inglés es mi segundo idioma, si me equivoqué, lo siento, estoy seguro de que entenderás de qué estoy hablando en un segundo. lo verás en fotos ")

Paso 2: Electrónica

Electrónica
Electrónica
Electrónica
Electrónica

Todo debe soldarse juntos … En cierto modo … NOTA: El sensor de 3 ejes es una pequeña cosa costosa, verifique dos veces el cableado antes de encenderlo todo … Vea los esquemas adjuntos para todo el cableado utilizado en este proyecto. Solo puede funcionar si usa los mismos números de PIN que yo, pero siéntase libre de cambiarlos cuando se conecte siempre que cambie los números apropiados en el código. Conexión del sensor de 3 ejes al convertidor de nivel lógico: Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Convertidor TXI (Chan1) Convertidor TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Convertidor TXI (Chan2) Convertidor TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (al menos uno de ellos) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Sensor óptico a Arduino: Ver imagen adjunta Entrada digital = Pin 11 en el ArduinoLED: GND a algunos GND (Usé uno de los sensores ópticos) + a Arduino PIN 13 (Esto se hizo ya que este pin ya tiene una resistencia incorporada, si usa una diferente, asegúrese de usar una resistencia para no quemar el LED)

Paso 3: preparación del mouse

Preparando el Ratón
Preparando el Ratón
Preparando el Ratón
Preparando el Ratón
Preparando el Ratón
Preparando el Ratón

Aquí es donde los sensores encuentran su lugar dentro de la carcasa del mouse. Encuentre el mejor lugar para fijar el sensor de 3 ejes. Asegúrese de que esté nivelado y tenga en cuenta la orientación (sabrá cuando tendrá el sensor en la mano) Puede arreglarlo de la forma que desee, utilicé 2 piezas cortas del ancla de madera, perforadas para aceptar los 2 tornillos pequeños, y pegado en caliente a la placa principal del mouse. Para el sensor óptico, forme un orificio rectangular en la parte inferior del mouse, la idea es que el sensor "vea" la mesa todo el tiempo. Cuando se levanta el mouse y el estado del sensor está "abierto" (no hay mesa para ver), el mouse cambia al modo 3D (ejecuta el boceto de procesamiento) Forme otro orificio para enrutar los cables adicionales (desde los sensores hasta el Arduino) fuera del carcasa de plástico. El mío estaba ubicado en el lado derecho del mouse. Fije el LED donde se mostrará. En este proyecto, el LED es el indicador de modo 3D. Coloco el mío junto a la rueda del mouse de silicona. Cuando se levanta el mouse, la rueda tiene un bonito brillo azul.

Paso 4: el código fuente

El código para Arduino fue escrito por Shachar Geiger, mi maestro, y yo lo modifiqué para este proyecto. El código del cubo 3D es el código básico que se encuentra en el sitio web de Processing. Lo modifiqué un poco En el código, este fragmento convierte la información sin procesar que proviene del sensor (típicamente -180 a 180 x 10) a 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; Escritura en serie (z); La información del sensor y el Arduino va al boceto de procesamiento para cada eje por separado, pero con una letra de eje anterior (para exp. X12 Y200 Z130), el siguiente código elimina la letra y deja solo los valores que se enviarán al COM. port while (port.available () == 0) {} char lectura = 0; while (lectura! = 'x') {while (puerto.available () == 0) {} lectura = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = puerto.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Este fragmento de código elimina todos los valores negativos … if ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (- (float) Y / 25.0); rotateX ((flotar) X / 25.0); rotarY ((flotar) Z / 25.0); pX = X; pY = Y; pZ = Z;} else {rotarZ (- (flotar) pY / 25.0); rotarX ((flotar) pX /25.0);rotateY((float)pZ/25.0);} El archivo ZIP adjunto contenía tanto Arduino como código de procesamiento

Paso 5: video

Eso es todo … Este es el proyecto terminado en un video. Hay una falla menor (Puedes ver que el cubo a veces "salta" en el video), Esto se debe al eje Z, puede que no te suceda …

Recomendado: