Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Control de circuito sensible al movimiento a través de Intel Curie

Componentes y suministros

Arduino 101
× 1

Acerca de este proyecto

Objetivos

  • Enciende (y apaga) las luces automáticamente cuando se detectan pasos
  • Sincronice el parpadeo de las luces con el tempo detectado de bailes / tapping cercanos
  • Salida de lecturas de acelerómetro / giroscopio a través de USB / Bluetooth para la detección de eventos sísmicos

Repositorio de GitHub

https://github.com/ckuzma/arduino-101-sketches

Bocetos

TapFlashTest

  #include "CurieIMU.h" void setup () {pinMode (LED_BUILTIN, OUTPUT); CurieIMU.begin (); CurieIMU.attachInterrupt (eventCallback); CurieIMU.setDetectionThreshold (CURIE_IMU_SHOCK, 1050); // 1.050g =1050mg CurieIMU.setDetectionDuration (CURIE_IMU_SHOCK, 75); // 75ms CurieIMU.interrupts (CURIE_IMU_SHOCK); } void loop () {// No necesitamos poner nada en el bucle principal ...} static void eventCallback (void) {if (CurieIMU.getInterruptStatus (CURIE_IMU_SHOCK)) {digitalWrite (LED_BUILTIN, HIGH); retraso (50); digitalWrite (LED_BUILTIN, BAJO); }}  
  • Parpadea el LED integrado cuando se detecta un toque
  • Se usa para descubrir cambios en la detección de impulsos

TapBeatMatch

  • Sincroniza el parpadeo del LED integrado con el tempo de tocar la superficie de la mesa cerca del Arduino 101
  • Promedio ponderado implementado para ayudar a mitigar el ruido
  • Umbral de detección de golpes ajustable

SeismicReader + Script de visualización de Python

  • La placa Arduino 101 genera valores de acelerómetro y giroscopio con formato JSON a través de serie, que luego es leído por una computadora conectada
  • Escribió una pequeña secuencia de comandos de Python que lee los datos del tablero y los grafica en líneas muy simples en la terminal / símbolo del sistema
  • Guarda los resultados en un archivo CSV que se puede abrir en Excel y representar gráficamente.
  • Uso multiplataforma de Python 2.x / 3.x:

VibrationLighting

  • Diseñado originalmente para detectar pasos que se acercan y activar la iluminación cuando hay alguien cerca, se redujo a la detección de doble toque ya que la relación señal-ruido no era lo suficientemente limpia para mi instalación
  • La tira de LED pegada debajo del espejo de la entrada se enciende y apaga cuando el espejo se golpea dos veces seguidas

Bonificación

Una conversación con Bogdan me hizo darme cuenta de que sería muy fácil modificar el boceto de Arduino para que funcione con sensores independientes de acelerómetro + giroscopio conectados a casi cualquier dispositivo Arduino, y luego usar CurieGraph.py para visualizar los datos. Dado que el objetivo de recopilar lecturas sísmicas es demostrar que es posible recopilar datos de forma masiva sin equipos complicados o especializados, busqué en mi escritorio el "ITG-MTU" / "GY-521" / "MPU-6050" placa del sensor, y escribí el siguiente boceto para él. CurieGraph.py puede fallar al iniciarse un par de veces, pero por lo general se detecta correctamente al tercer intento.

Giroscopio externo

  #include  const int MPU_addr =0x68; // Dirección I2C para ITG-MTU int ax, ay, az, temp, gx, gy, gz; configuración vacía () {Serial.begin (9600); Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (verdadero); } String jsonEncodeValue (String key, float keyVal) {return "\" "+ key +" \ ":" + String (keyVal) + ""; } String assemblyJson (String keysAndVals) {return "{" + keysAndVals + "}"; } bucle vacío () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (falso); Wire.requestFrom (MPU_addr, 14, verdadero); ax =Wire.read () <<8 | Wire.read (); ay =Wire.read () <<8 | Wire.read (); az =Wire.read () <<8 | Wire.read (); temp =Wire.read () <<8 | Wire.read (); gx =Wire.read () <<8 | Wire.read (); gy =Wire.read () <<8 | Wire.read (); gz =Wire.read () <<8 | Wire.read (); // temp =temp / 340,00 + 36,53; // Convierta los datos temporales a grados Celsius - NO SE UTILIZA String keyVals =jsonEncodeValue ("ax", ax) + ","; keyVals + =jsonEncodeValue ("ay", ay) + ","; keyVals + =jsonEncodeValue ("az", az) + ","; keyVals + =jsonEncodeValue ("gx", gx) + ","; keyVals + =jsonEncodeValue ("gy", gy) + ","; keyVals + =jsonEncodeValue ("gz", gz); Serial.println (ensamblarJson (keyVals)); retraso (100); }  

Código

arduino-101-sketches
Una colección de bocetos escritos específicamente para Arduino 101, aprovechando los acelerómetros y giroscopios de Intel Curie. Https://github.com/ckuzma/arduino-101-sketches

Proceso de manufactura

  1. Circuitos de control del motor
  2. Habilita el control de Alexa en tu ventilador de techo
  3. Programación de la serie Atmel AT89 a través de Arduino
  4. Control remoto universal usando Arduino, 1Sheeld y Android
  5. Controlar el aceptador de monedas con Arduino
  6. Centro de control de Arduino
  7. Uso de IoT para controlar de forma remota un brazo robótico
  8. ¡Arduino con Bluetooth para controlar un LED!
  9. Control del humidificador Arduino
  10. Arduino Nano:Controla 2 motores paso a paso con joystick
  11. Arduino - Enviar temperatura a la web a través de serie