Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Gebarengestuurd slot

Componenten en benodigdheden

SparkFun APDS-9960
× 1
Arduino UNO
× 1
RGB diffuse gemeenschappelijke kathode
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
Weerstand 4.75k ohm
× 2
Jumperdraden (algemeen)
× 1
Weerstand 1k ohm
× 1

Apps en online services

Arduino IDE

Over dit project

*De APDS-9960-sensor werkt niet met de Arduino Nano of Mega 2560 (in mijn testen).

Dit project is gemakkelijk te maken en te gebruiken. Voel je vrij om elk soort servo of vergrendelingsmechanisme te gebruiken bij dit project. Dit is bedoeld als startplatform voor een op gebaren gebaseerd slot. Op gebouw!

Materialen

Ik heb de meeste van mijn onderdelen van Amazon.com en de APDS-9960-sensor van Sparkfun. Je kunt tot nu toe alleen een Arduino Uno of Micro 3.3v gebruiken, omdat elk ander bord om de een of andere vreemde reden niet zal werken.

Montage

Bevestig het LCD-scherm zoals afgebeeld. Als je geen 10k-potentiometer hebt, gebruik dan een weerstand van 1k die van contrast naar GND gaat. De APDS-9960-sensor moet worden verschoven als je de Arduino Uno gebruikt, dus wat ik deed, was de SCL en SDA nemen en ze verbinden met een weerstand van 4,7 k en ze vervolgens hoog trekken door de weerstand van 4,7 k naar 3,3 v te brengen. Sluit ze vervolgens dienovereenkomstig aan op A4 en A5 (zie schema). De Arduino kan werken op een 9v-batterij met daaraan een DC-stroomcilinder.

Behuizing

Ik gebruikte een eenvoudige kartonnen doos en sneed er gaten uit om te matchen met waar de componenten zouden komen. Je zou dit allemaal op een stuk perfboard kunnen solderen, maar ik liet het gewoon in het breadboard zitten en verbond jumperdraden met de componenten. Toen ik klaar was, zag het er zo uit.

Code

  • Arduino-code
Arduino-codeC/C++
/* Hardware-aansluitingen:BELANGRIJK:de APDS-9960 accepteert slechts 3,3 V! Arduino Pin APDS-9960 Bord Functie 3.3V VCC Voeding GND GND Aarde A4 SDA I2C Data A5 SCL I2C Klok 2 INT InterruptResources:Inclusief Wire.h en SparkFun_APDS-9960.h*/#include #include #include #include #define PINSIZE 6 #define SERVOPIN 9//Hoeveel gebaren lang uw wachtwoord is// Pins#define APDS9960_INT 2 // Moet een interrupt zijn pinLiquidCrystal lcd( 12,11,6,5,4,3);Servo servo;uint8_t proximity_data =0;int red_led =A1;int green_led =A2;int pageNum =0; //De LCD "pagina"String secret [PINSIZE] ={"UP","DOWN","UP","UP","RIGHT","LEFT"}; //Wachtwoord komt hier. Moet in hoofdletters zijn. Kan "UP", "DOWN", "LEFT" of "RIGHT"String zijn currentGesture ="";int numRight =0;SparkFun_APDS9960 apds =SparkFun_APDS9960(); //Init APDS-9960 libraryint isr_flag =0;void setup() {// Stel de interrupt-pin in als input pinMode(APDS9960_INT, INPUT);lcd.begin (16,2);servo.attach(SERVOPIN);servo.write( 0);servo.detach(); // Initialiseer seriële poort Serial.begin (9600); Serial.print("Uw wachtwoord is "); Seriële.afdruk (PINSIZE); Serial.println(" gebaren lang."); Serieel.println(); Serial.println(F("----------------")); Serial.println(F("APDS-9960 Lock")); Serial.println(F("----------------")); // Initialiseer interrupt-serviceroutine attachInterrupt(0, interruptRoutine, FALLING); // Initialiseer APDS-9960 (configureer I2C en initiële waarden) if (apds.init()) { Serial.println(F("APDS-9960 initialisatie voltooid")); } else { Serial.println(F("Er is iets misgegaan tijdens APDS-9960 init!")); } if (!apds.setProximityGain(PGAIN_1X)) { Serial.println(F("Er is iets misgegaan bij het instellen van PGAIN")); } if (apds.enableProximitySensor(false)) {Serial.println(F("Nabijheidssensor is nu actief")); } else { Serial.println(F("Er is iets misgegaan tijdens het starten van de sensor!")); } // Start de APDS-9960-bewegingssensor-engine als ( apds.enableGestureSensor (true) ) { Serial.println (F ("Gebarensensor is nu actief")); } else { Serial.println(F("Er is iets misgegaan tijdens het opstarten van de bewegingssensor!")); } }void loop() { if(pageNum==0){ if (!apds.readProximity(proximity_data)) { Serial.println("Fout bij lezen van de nabijheidswaarde"); } else { Serial.println(proximity_data); if((proximity_data>=40) &&(pageNum==0)){ pageNum=1; vertraging (2000); } } } switch(pageNum){ geval 0:LCDClear(); lcd.print("Locked-get"); lcd.setCursor(0,1); lcd.print("3 inch afstand."); knipperenRood(); LCDClear(); pauze; geval 1:numRechts =0; lcd.print("Voer code in..."); lcd.setCursor(0,0); for(int x=0; x0;x--){ LCDClear(); lcd.print("Afsluiten:"); lcd.setCursor(0,1); lcd.print(x); lcd.setCursor(1,1); lcd.print("seconden..."); delay(1000);}LCDClear();lcd.print("Bezig met sluiten");}

Schema's


Productieproces

  1. Vergrendelen
  2. Combinatieslot
  3. Dorstalarm plantalarm
  4. Italiaanse Word Clock
  5. Slechts drie pinnen voor een 4x3-toetsenbord
  6. Sigfox kWh-meter
  7. Bluetooth-temperatuurmeter
  8. The Companion IC
  9. USB MIDI-adapter
  10. Een geïsoleerde analoge ingang voor Arduino
  11. Meet je reactietijd