Bloqueo de huellas dactilares Arduino pisando el hoyo

prefacio

Creo que muchos entusiastas de la electrónica quieren hacer algunas placas de desarrollo electrónico y similares al principio. Hay muchas plataformas de placa de desarrollo: serie STM32, serie ESP, serie FPGA y, por supuesto, el protagonista de hoy: la serie Arduino. Tal vez muchas personas comenzaron a jugar con estos para realizar algunos equipos de automatización, pero comencé a hacerlo después de ver a alguien haciendo un bloqueo de huellas dactilares en Douyin. Aunque esto es para los que se especializan en electrónica, no es difícil escuchar la introducción, así que también quiero hacer uno para los no profesionales, quienes me interesaron mucho en esto. No hay mucho que decir, ¡pongámonos talentosos! (En realidad, es un registro de volcadura de automóvil) Woohoo ~

pisó el pozo

  • hardware

  1. Trate de comprar un movimiento de metal completo para el mecanismo de dirección. Los servos MG996R están disponibles baratos (más de 10 yuanes) y más caros (más de 20 yuanes).Antes de comprar, debe preguntar al dueño de la tienda si el movimiento del mecanismo de dirección es de metal puro. Porque los engranajes exteriores de algunos engranajes de dirección son de metal, pero los conjuntos de engranajes desmontados son todos de plástico. De esta manera, las cosas con cargas pesadas pueden resbalar (no tenía una mano en ese momento, pensando que el mecanismo de dirección es el mismo que el de un motor normal, y el movimiento y el engranaje externo son directos. Simplemente giro a la fuerza) el mecanismo de dirección sin encendido, y solo escuché un clic, y el cable se deslizó), es equivalente a desguace directamente después de resbalar.
  2. No compre la versión de 360° del mecanismo de dirección. La versión de 360° se controla cambiando la velocidad de rotación del servo a través de PWM, por lo que será problemático controlar el desbloqueo. La versión por debajo de 180° usa PWM para cambiar el ángulo de rotación del servo, lo cual es muy conveniente en un solo paso.
  3. Agregue un módulo de relé o un módulo de accionamiento del motor al motor de carga de la placa de desarrollo tanto como sea posible, y no conecte directamente el mecanismo de dirección a la placa de desarrollo. Cuando la placa está cargada con componentes de conversión de energía eléctrica pura, la corriente es generalmente muy grande.Si no se agrega el relé intermedio, el fenómeno más intuitivo es que el LED integrado se atenuará tan pronto como se encienda el servo. En este momento, será obvio que es muy difícil manejar el mecanismo de dirección, y el programa se atascará inexplicablemente después de ejecutarlo varias veces. Lo que es más grave es que en otros proyectos es posible quemar directamente la placa de desarrollo.
  4. Los relés tienen disparador de alto nivel, disparador de bajo nivel y disparador compuesto.
    Relé activado por bajo nivel
    Relé de disparo compuesto
    Estos tipos de relés están conectados al terminal IN del relé con una placa de desarrollo para controlar la apertura y el cierre del relé cambiando sus niveles alto y bajo (I Acabo de comprar un disparador de nivel bajo. Cuando lo acabo de comprar, accidentalmente toqué todos los VCC, GND e IN del relé. El relé chirrió por un tiempo y luego dejó de funcionar. Pensé que estaba roto, así que simplemente ignoré (eliminé) el circuito periférico. La parte que está directamente conectada al azul se usa como disparador de alto nivel. Más tarde supe que hay dos modos de disparador, todos causados ​​​​por no leer cuidadosamente las instrucciones)
  5. Si desea conectar la pantalla IIC, los dos pines de SCL y SDA se pueden conectar directamente a los pines correspondientes en el tablero.Algunos componentes comprados están conectados a A0, A1 o A4, A5 en la rutina, por lo que a veces puede causar la pantalla no se enciende, lo que debería deberse a una definición incorrecta de pines en la biblioteca.
  • software

  1. Uso de la librería Arduino. Cuando el IDE de Arduino se acaba de descargar e instalar, viene con varias bibliotecas , como <Servo.h>, <Keyboard.h>. Estas bibliotecas están todas en \软件安装目录下\librariesesta carpeta, por lo que ya no necesita molestarse en buscarlas, solo cítelas directamente.
  2. El monitor serie no se puede abrir en dos softwares al mismo tiempo. Por ejemplo, si desea cargar un programa y encuentra un error de carga, puede verificar si el puerto de carga está ocupado. Si se abren dos programas de puerto serie al mismo tiempo, es muy probable que uno de los programas de puerto serie se bloquee, causando problemas innecesarios.
  3. Al cargar el programa, desconecte la conexión entre el puerto 0 y el puerto 1 de la placa. Debido a los dos puertos ocupados por el programa de carga. Puede cambiar parte del código que necesita comunicación de puerto serie a puerto serie suave, para que no tenga que preocuparse por estos dos puertos al descargar.
  4. Cuando un grupo de puertos serie duros y un grupo de puertos serie blandos aparecen en el programa, es necesario distinguir la tasa de baudios del puerto serie correspondiente. Por ejemplo, <Adafruit_Fingerprint>el código de muestra en la biblioteca Fingerprint:
#include <Adafruit_Fingerprint.h>
SoftwareSerial mySerial(2, 3);
#else
// On Leonardo/M0/etc, others with hardware serial, use hardware serial!
// #0 is green wire, #1 is white
#define mySerial Serial
#endif

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()
{
    
    
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit finger detect test");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  delay(5);
  if (finger.verifyPassword()) {
    
    
    Serial.println("Found fingerprint sensor!");
  } else {
    
    
    Serial.println("Did not find fingerprint sensor :(");
    while (1) {
    
     delay(1); }
  }

  • Hay dos inicializaciones de puerto serie en el código.
    • Puerto serial duro : la línea 13 Serial.begin(9600);corresponde al nombre Serial definido en la línea 6 mySerial, y mySerial se define con la palabra clave SoftwareSerial en la línea 2: corresponde al puerto serial para la comunicación entre el microcontrolador y la computadora.
    • Puerto serie suave : la línea 19 finger.begin(57600);corresponde al <Adafruit_Fingerprint.h>puerto serie definido en esta biblioteca, que se utiliza para la comunicación entre el módulo de huellas dactilares y el microcontrolador.
  • Debido a que la configuración de la velocidad en baudios del puerto serie suave no es correcta, a menudo conduce a la situación en la que la placa y el módulo de huellas dactilares no pueden comunicarse. Por ejemplo, la velocidad en baudios en la línea 19 del código anterior se establece en 57600, mientras que el valor predeterminado del módulo de huellas dactilares general es 9600. Como resultado, no se puede reconocer el módulo de huellas dactilares.

En el futuro, también puede agregar una pantalla de visualización, indicaciones de voz, alarmas de sonido y luz, etc. al bloqueo de huellas dactilares, ¡y escribirlo más tarde!

Supongo que te gusta

Origin blog.csdn.net/qq_32917155/article/details/119866527
Recomendado
Clasificación