Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Bloqueio controlado por gestos

Componentes e suprimentos

SparkFun APDS-9960
× 1
Arduino UNO
× 1
Cátodo comum difuso RGB
× 1
Adafruit LCD padrão - 16x2 branco em azul
× 1
Resistor 4,75 k ohm
× 2
Fios de jumpers (genérico)
× 1
Resistor 1k ohm
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


* O sensor APDS-9960 não funciona com o Arduino Nano ou Mega 2560 (em meus testes).

Este projeto é fácil de fazer e usar. Sinta-se à vontade para usar qualquer tipo de servo ou mecanismo de travamento com este projeto. Isso deve ser uma plataforma inicial para um bloqueio baseado em gestos. Em construção!





Materiais


Peguei a maioria das minhas peças na Amazon.com e o sensor APDS-9960 da Sparkfun. Você só pode usar um Arduino Uno ou Micro 3.3v até agora, pois qualquer outra placa não funcionará por algum motivo estranho.





Montagem


Conecte o LCD conforme mostrado. Se você não tiver um potenciômetro de 10k, use um resistor de 1k indo do contraste ao GND. O sensor APDS-9960 precisará ser deslocado se estiver usando o Arduino Uno, então o que eu fiz foi pegar o SCL e o SDA e conectá-los a um resistor de 4,7k, em seguida, aumentá-los levando o resistor de 4,7k a 3,3v. Em seguida, conecte-os a A4 e A5, de acordo (consulte o esquema). O Arduino pode funcionar com uma bateria de 9 V com um barril de alimentação DC conectado.





Gabinete


Usei uma caixa de papelão simples e cortei buracos para combinar onde os componentes iriam. Você poderia soldar tudo isso em um pedaço de perfboard, mas eu apenas deixei na placa de ensaio e conectei os fios do jumper aos componentes. Depois que eu terminei, ficou assim.


Código

  • Código Arduino
Código Arduino C / C ++
 / * Conexões de hardware:IMPORTANTE:O APDS-9960 só pode aceitar 3,3 V! Arduino Pin APDS-9960 Função da placa 3.3V VCC Power GND GND Ground A4 SDA I2C Dados A5 SCL I2C Clock 2 INT InterruptResources:Inclui Wire.h e SparkFun_APDS-9960.h * / # include  #include  #include  #include  #define PINSIZE 6 #define SERVOPIN 9 // Quantos gestos tem a sua senha // Pins # define APDS9960_INT 2 // Precisa ser uma interrupção pinLiquidCrystal lcd ( 12,11,6,5,4,3); Servo servo; uint8_t dados_de_proximidade =0; int red_led =A1; int green_led =A2; int pageNum =0; // A "página" do LCD String secreto [PINSIZE] ={"UP", "DOWN", "UP", "UP", "RIGHT", "LEFT"}; // A senha vai aqui. Deve estar em CAPS. Pode ser "UP", "DOWN", "LEFT" ou "RIGHT" String currentGesture =""; int numRight =0; SparkFun_APDS9960 apds =SparkFun_APDS9960 (); // Init APDS-9960 libraryint isr_flag =0; void setup () {// Define o pino de interrupção como entrada pinMode (APDS9960_INT, INPUT); lcd.begin (16,2); servo.attach (SERVOPIN); servo.write ( 0); servo.detach (); // Inicializa a porta serial Serial.begin (9600); Serial.print ("Sua senha é"); Serial.print (PINSIZE); Serial.println ("gestos longos."); Serial.println (); Serial.println (F ("----------------")); Serial.println (F ("APDS-9960 Lock")); Serial.println (F ("----------------")); // Inicializa a rotina de serviço de interrupção attachInterrupt (0, interruptRoutine, FALLING); // Inicializar o APDS-9960 (configurar I2C e os valores iniciais) if (apds.init ()) {Serial.println (F ("inicialização do APDS-9960 concluída")); } else {Serial.println (F ("Algo deu errado durante a inicialização do APDS-9960!")); } if (! apds.setProximityGain (PGAIN_1X)) {Serial.println (F ("Algo deu errado ao tentar definir PGAIN")); } if (apds.enableProximitySensor (false)) {Serial.println (F ("O sensor de proximidade agora está em execução")); } else {Serial.println (F ("Algo deu errado durante a inicialização do sensor!")); } // Comece a executar o mecanismo de sensor de gestos APDS-9960 if (apds.enableGestureSensor (true)) {Serial.println (F ("Sensor de gestos em execução")); } else {Serial.println (F ("Algo deu errado durante a inicialização do sensor de gesto!")); }} void loop () {if (pageNum ==0) {if (! apds.readProximity (proximidade_data)) {Serial.println ("Erro ao ler valor de proximidade"); } else {Serial.println (proximidade_dados); if ((proximidade_dados> =40) &&(pageNum ==0)) {pageNum =1; atraso (2000); }}} switch (pageNum) {case 0:LCDClear (); lcd.print ("Locked- get"); lcd.setCursor (0,1); lcd.print ("3 polegadas de distância."); blinkRed (); LCDClear (); pausa; caso 1:numRight =0; lcd.print ("Insira o código ..."); lcd.setCursor (0,0); para (int x =0; x  0; x -) {LCDClear (); lcd.print ("Fechamento em:"); lcd.setCursor (0,1); lcd.print (x); lcd.setCursor (1,1); lcd.print ("segundos ..."); delay (1000);} LCDClear (); lcd.print ("Fechando");} 

Esquemas


Processo de manufatura

  1. Bloquear
  2. Bloqueio de combinação
  3. Alarme de planta de alerta de sede
  4. Word Clock italiano
  5. Apenas três pinos para um teclado 4x3
  6. Medidor Sigfox kWh
  7. Monitor de temperatura Bluetooth
  8. O Companion IC
  9. Uma entrada analógica isolada para Arduino
  10. Meça seu tempo de reação