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

Gestengesteuerte Sperre

Komponenten und Verbrauchsmaterialien

SparkFun APDS-9960
× 1
Arduino UNO
× 1
RGB diffundierte gemeinsame Kathode
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
Widerstand 4,75 kOhm
× 2
Jumper (generisch)
× 1
Widerstand 1k Ohm
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

*Der APDS-9960-Sensor funktioniert nicht mit dem Arduino Nano oder Mega 2560 (in meinen Tests).

Dieses Projekt ist einfach zu erstellen und zu verwenden. Fühlen Sie sich frei, bei diesem Projekt jede Art von Servo- oder Verriegelungsmechanismus zu verwenden. Dies soll eine Startplattform für eine gestenbasierte Sperre sein. Auf zum Gebäude!

Materialien

Ich habe die meisten meiner Teile von Amazon.com und den APDS-9960-Sensor von Sparkfun. Sie können bisher nur ein Arduino Uno oder Micro 3.3v verwenden, da jedes andere Board aus irgendeinem Grund nicht funktioniert.

Montage

Bringen Sie das LCD wie abgebildet an. Wenn Sie kein 10k-Potentiometer haben, verwenden Sie einen 1k-Widerstand, der vom Kontrast zu GND geht. Der APDS-9960-Sensor muss bei Verwendung des Arduino Uno verschoben werden. Ich habe also den SCL und SDA genommen und sie an einen 4,7k-Widerstand angeschlossen und sie dann hoch gezogen, indem ich den 4,7k-Widerstand auf 3,3 V gebracht habe. Verbinden Sie diese dann entsprechend mit A4 und A5 (siehe Schema). Der Arduino kann mit einer 9-V-Batterie mit einem angeschlossenen Gleichstrom-Fass betrieben werden.

Gehäuse

Ich benutzte eine einfache Pappschachtel und schnitt Löcher heraus, um zu passen, wo die Komponenten hingehen würden. Sie könnten dies alles auf ein Stück Perfboard löten, aber ich habe es einfach im Steckbrett gelassen und die Überbrückungsdrähte mit den Komponenten verbunden. Als ich fertig war, sah es so aus.

Code

  • Arduino-Code
Arduino-CodeC/C++
/* Hardware-Anschlüsse:WICHTIG:Das APDS-9960 kann nur 3,3V aufnehmen! Arduino Pin APDS-9960 Board Funktion 3.3V VCC Power GND GND Ground A4 SDA I2C Data A5 SCL I2C Clock 2 INT InterruptResources:Include Wire.h und SparkFun_APDS-9960.h*/#include #include #include #include #define PINSIZE 6 #define SERVOPIN 9//Wie viele Gesten lang Ihr Passwort ist// Pins#define APDS9960_INT 2 // Muss ein Interrupt sein pinLiquidCrystal lcd( 12,11,6,5,4,3);Servoservo;uint8_t Proximity_Data =0;int red_led =A1;int green_led =A2;int pageNum =0; //Die LCD-"Seite"String secret[PINSIZE] ={"UP","DOWN","UP","UP","RIGHT","LEFT"}; //Passwort geht hier. Muss in GROSSBUCHSTABEN sein. Kann "UP", "DOWN", "LEFT" oder "RIGHT" sein String currentGesture ="";int numRight =0;SparkFun_APDS9960 apds =SparkFun_APDS9960(); // Init APDS-9960 libraryint isr_flag =0;void setup () { // Interrupt-Pin als Input setzen pinMode (APDS9960_INT, INPUT); lcd.begin (16,2);servo.attach (SERVOPIN);servo.write ( 0);servo.detach(); // Serielle Schnittstelle initialisieren Serial.begin (9600); Serial.print ("Ihr Passwort ist"); Serial.print (PINSIZE); Serial.println(" Gesten lang."); Serial.println(); Serial.println (F("----------------")); Serial.println (F ("APDS-9960-Sperre")); Serial.println (F("----------------")); // Interrupt-Service-Routine initialisieren attachInterrupt(0, InterruptRoutine, FALLING); // APDS-9960 initialisieren (I2C und Anfangswerte konfigurieren) if (apds.init()) { Serial.println (F ("APDS-9960 Initialisierung abgeschlossen")); } else { Serial.println (F ("Etwas ist während der APDS-9960-Initialisierung schief gelaufen!")); } if (!apds.setProximityGain(PGAIN_1X)) {Serial.println(F("Etwas ist beim Einstellen von PGAIN schief gelaufen")); } if (apds.enableProximitySensor (false)) { Serial.println (F ("Näherungssensor läuft jetzt")); aufrechtzuerhalten. Else { Serial.println (F ( "Bei der Sensorinit ist etwas schief gelaufen!")); } // Starten Sie die APDS-9960-Gestensensor-Engine, wenn (apds.enableGestureSensor (true)) { Serial.println (F ("Gestensensor wird jetzt ausgeführt")); } else { Serial.println (F ("Etwas ist beim Init des Gestensensors schief gelaufen!")); aufrechtzuerhalten. aufrechtzuerhalten. aufrechtzuerhalten. aufrechtzuerhalten. Sonst {Serial.println (proximity_data); if((proximity_data>=40) &&(pageNum==0)){ pageNum=1; Verzögerung (2000); } } } switch(pageNum){ Fall 0:LCDClear(); lcd.print("Locked-get"); lcd.setCursor(0,1); lcd.print("3 Zoll entfernt."); blinkRot(); LCDClear(); brechen; Fall 1:numRight =0; lcd.print("Code eingeben..."); lcd.setCursor(0,0); for (int x =0; x 0;x--){LCDClear(); lcd.print("Schließt in:"); lcd.setCursor(0,1); lcd.print(x); lcd.setCursor(1,1); lcd.print("Sekunden..."); delay(1000);}LCDClear();lcd.print("Closing");}

Schaltpläne


Herstellungsprozess

  1. Sperren
  2. Kombinationssperre
  3. Pflanzenalarm bei Durstalarm
  4. italienische Wordclock
  5. Nur drei Pins für eine 4x3-Tastatur
  6. Sigfox-kWh-Zähler
  7. Bluetooth-Temperaturüberwachung
  8. Der Companion-IC
  9. Ein isolierter Analogeingang für Arduino
  10. Messen Sie Ihre Reaktionszeit