Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)

Komponenten und Zubehör

Projektziele

GitHub-Repository

github.com/ckuzma/arduino-101-sketches – Sammlung aller Sketches.

Enthaltene Sketches

1. TapFlashTest

Einfacher Test: Die Onboard-LED blinkt kurz, wenn ein Schlag/Schritt (Shock) erkannt wird. Dient zur Kalibrierung der Erkennungsschwellen.

#include "CurieIMU.h"
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  CurieIMU.begin();
  CurieIMU.attachInterrupt(eventCallback);
  CurieIMU.setDetectionThreshold(CURIE_IMU_SHOCK, 1050); // 1,050 g = 1050 mg
  CurieIMU.setDetectionDuration(CURIE_IMU_SHOCK, 75);     // 75 ms
  CurieIMU.interrupts(CURIE_IMU_SHOCK);
}
void loop() { }
static void eventCallback(void) {
  if (CurieIMU.getInterruptStatus(CURIE_IMU_SHOCK)) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(50);
    digitalWrite(LED_BUILTIN, LOW);
  }
}

2. TapBeatMatch

Synchronisiert das Blinken der Onboard-LED mit dem Takt von Klopfbewegungen auf der Tischplatte. Verwendet einen gewichteten Mittelwert zur Rauschunterdrückung. Die Schock-Erkennungsschwelle ist einstellbar.

Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)

3. SeismicReader + Python-Visualisierung

Der Arduino 101 sendet JSON-formatierte Beschleunigungs- und Gyroskopdaten über die serielle Schnittstelle. Ein Python-Skript (CurieGraph.py) liest diese Daten, stellt sie im Terminal grafisch dar und speichert sie als CSV für Excel.

Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)
Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)

Das Python-Skript läuft unter Python 2.x und 3.x, plattformunabhängig.

4. VibrationLighting

Ursprünglich für Fußschritt-Erkennung zur Lichtsteuerung konzipiert. Wegen unzureichendem Signal-Rausch-Verhältnis auf Doppelklopfer-Erkennung reduziert. Ein LED-Strip unter einem Flurspiegel schaltet bei doppeltem Klopfen ein/aus.

Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)
Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)

Bonus: Externe Sensoren (MPU-6050 / GY-521) an jedem Arduino

Um das Ziel der crowdsourceten Erdbebenerkennung ohne Spezialhardware zu erreichen, wurde ein Sketch für den weit verbreiteten MPU-6050 (I2C-Adresse 0x68) geschrieben, der dieselbe JSON-Ausgabe erzeugt und mit CurieGraph.py visualisiert werden kann.

Bewegungsaktiviertes Beleuchtungssystem mit Intel Curie (Arduino 101)
#include <Wire.h>
const int MPU_addr = 0x68;
int ax, ay, az, temp, gx, gy, gz;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); // Wake up
}

String jsonEncodeValue(String key, float val) {
  return "\"" + key + "\":" + String(val);
}
String assembleJson(String kv) { return "{" + kv + "}"; }

void loop() {
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B); Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr, 14, true);
  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();

  String kv = jsonEncodeValue("ax", ax) + ",";
  kv += jsonEncodeValue("ay", ay) + ",";
  kv += jsonEncodeValue("az", az) + ",";
  kv += jsonEncodeValue("gx", gx) + ",";
  kv += jsonEncodeValue("gy", gy) + ",";
  kv += jsonEncodeValue("gz", gz);
  Serial.println(assembleJson(kv));
  delay(100);
}

Hinweis: CurieGraph.py startet gelegentlich erst beim 2.–3. Versuch zuverlässig.

Herstellungsprozess

  1. Fortgeschrittene Motorkontrollschaltungen: Selbsthaltung, Stopp und Zeitverzögerung
  2. Deckenventilator per Alexa steuern – Schritt-für-Schritt-Anleitung
  3. ATmel AT89-Serie mühelos mit Arduino Uno programmieren – Schritt-für-Schritt-Anleitung
  4. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  5. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  6. Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
  7. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  8. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  9. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  10. Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial