Tabla de contenido:

Luces con sensor de movimiento Basys3: 8 pasos
Luces con sensor de movimiento Basys3: 8 pasos

Video: Luces con sensor de movimiento Basys3: 8 pasos

Video: Luces con sensor de movimiento Basys3: 8 pasos
Video: Programación de Basys 3 en VHDL- Programación de MicroSistemas 2024, Mes de julio
Anonim
Luces con sensor de movimiento Basys3
Luces con sensor de movimiento Basys3
Luces con sensor de movimiento Basys3
Luces con sensor de movimiento Basys3
Luces con sensor de movimiento Basys3
Luces con sensor de movimiento Basys3

Para nuestro proyecto final de diseño digital, decidimos simular luces con sensores de movimiento, que se activan no solo cuando un objeto está cerca de él, sino que también se activan solo durante una determinada hora del día. Podemos modelar esto usando FPGA (placa Basys3). Mientras usamos la FPGA, permitimos que un usuario ingresara un tiempo en el que los sensores de movimiento pueden comenzar a activarse, y luego los sensores enviarán una señal dependiendo de qué sensor es encender esa luz específica en esa habitación o área. Modelamos esto permitiendo que solo se activara un sensor de movimiento en un momento dado y encendiendo las luces dadas en consecuencia. Debido a la restricción del tiempo, no podemos hacer que el tiempo ingresado por el usuario afecte la activación del sensor de movimiento. Sin embargo, la base de nuestra lógica debería permitirle a alguien replicarla y mejorarla fácilmente.

### El enlace a continuación muestra un video del proyecto

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

Paso 1: Equipo necesario

Equipo necesario
Equipo necesario

Para este proyecto, necesitará lo siguiente:

-Tablero Basys3

-Cable USB a microusb

-8 cables de puente de tablero

-Tablero de circuitos

-2 LED difuso

Paso 2: Diagrama de caja negra / Máquina de estados finitos

Diagrama de caja negra / Máquina de estados finitos
Diagrama de caja negra / Máquina de estados finitos
Diagrama de caja negra / Máquina de estados finitos
Diagrama de caja negra / Máquina de estados finitos

Este diagrama de caja negra muestra las entradas necesarias para que se enciendan las luces LED. La entrada de hora y las entradas mín. Representan el tiempo que el usuario ingresó en el tablero basys3 (usando interruptores). Como, para la entrada sw representa en qué parte de la habitación se encuentra el usuario (nuevamente usando interruptores para representar la ubicación del objeto).

El FSM muestra la transición de un área a otra área de una habitación donde se encuentra un objeto en un momento dado. Hay 4 sensores diferentes en las diferentes habitaciones que se representan como (s1, s2, s3, s4). Que controlan las salidas, o las luces en las diferentes estancias por ejemplo la luz (L1, L2, L3). El estado inicial de los sensores no detecta a nadie, por lo que todas las luces están apagadas. Para pasar al siguiente estado (Estado 1), s1 tiene que detectar a alguien, s2, s3 y s4 estarán apagados. Esto generará L1 (encienda la luz 1), L2 y L3 se apagarán. Para pasar al estado 2 desde el estado 1, s1, s3 y s4 deben estar apagados, s2 debe estar encendido. Esto encenderá L1 y L2. Para pasar al siguiente estado desde este estado, s3 debe estar encendido y todos los demás sensores apagados. Esto encenderá L2 y L3, L1 se apagará. Para pasar al estado final, S4 debe estar encendido y todos los demás sensores deben estar apagados. Esto encenderá solo L3, todas las demás luces se apagarán. Si una persona entra en la habitación por el lado s4 y sale por s1, todos los pasos serán en orden inverso.

Paso 3: Reloj digital BlackBox

Reloj digital BlackBox
Reloj digital BlackBox

El propósito del reloj digital que creamos es que las luces de los sensores no se activen durante el día y solo funcionen durante el tiempo que ingresó el usuario. El reloj digital toma la entrada hour_in y mins_in usando interruptores en la placa basys3, y para poder cargarlo en la placa, debe presionar (led_btn) para que se muestre en la placa. También agregamos el botón de reinicio (rst_b) para que pueda volver a cargar en otro momento. Como basys3 tiene suficiente espacio para mostrar 3 instancias diferentes de información, implementamos los segundos en segundo plano. Para este propósito, implementamos un cambio de segundos para que solo se incremente en el tiempo cuando el usuario decida activar la entrada (e_sec) en la placa basys3. El marco de trabajo interno dentro del reloj digital se compone de flip-flops que almacenan el tiempo ingresado y contadores que incrementan el tiempo ingresado por el usuario solo cuando (e_sec) está activado. Agregaremos el código para que pueda ver exactamente cómo se implementó.

Paso 4: Componentes juntos y descripción

Componentes juntos y descripción
Componentes juntos y descripción
Componentes juntos y descripción
Componentes juntos y descripción

Las imágenes de arriba muestran cómo los componentes están conectados entre sí. Comienza tomando primero las horas y los minutos de entrada. Las señales de esas entradas se envían al contador de horas y minutos, donde suma los bits, y la señal de salida de los contadores se envía al componente SSEG, donde convierte los bits en caracteres específicos que se mostrarán en la placa basys3. Sin embargo, la señal de los contadores no se enviará al componente SSEG hasta que el usuario presione input (led_btn). Esto se hizo porque no creamos FSM para reloj digital. Además, el tiempo ingresado no se incrementará hasta que el interruptor de entrada (e_sec) esté encendido porque, de lo contrario, el contador de segundos siempre funcionaría en segundo plano. Una vez que el contador de segundos ha alcanzado "59", enviará una señal a los minutos para que incremente los minutos. Lo mismo se hace de minutos a horas. Además, hay entradas de sensor de movimiento y las señales se envían al componente FSM donde determina a qué estado ir dependiendo del sensor encendido. Su estado inicial es cuando todos los sensores están apagados. Toda la descripción de FSM se describió en el paso 2.

Paso 5: Código

Paso 6: modificaciones futuras

En el futuro, agregar sensores de movimiento reales con una combinación de LED al proyecto sería una mejora para que podamos aumentar la complejidad del proyecto y ver si podemos crear un sensor de luz de movimiento moderno. Esto crearía más problemas, ya que también tendrá que pensar en la proximidad del objeto para que las luces se enciendan en consecuencia. Además, todas las demás funcionalidades anteriores. Además, se mejora la funcionalidad del reloj digital utilizando un FSM en lugar de esperar a que el usuario encienda los segundos (e_sec). El FSM de un reloj digital sería similar al del sensor de movimiento.

Paso 7: Conclusión

En general, este proyecto nos ha ayudado a comprender mejor cómo funcionan las máquinas de estados finitos. Además, con FSM siempre debe tener en cuenta que necesita saber en qué estado se encuentra y cuándo desea cambiar a otro estado. En otras palabras, necesita saber dónde se encuentra en un momento determinado y dónde estará más adelante. Teniendo en cuenta qué factores le permitirán (entradas) cambiar a otro estado y qué hará cuando llegue allí (salida). También aprendimos cómo almacenar información dentro del tablero basys3 usando flip-flops que son registros, y cómo incrementar el tiempo usando contadores que suman números binarios.

Paso 8: Citación

El two_sseg.vhdl = universal_sseg_dec.vhd

Ratner, James y Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd

Recomendado: