INSTITUTO POLITÉCNICO NACIONAL
UNIDAD PROFESIONAL INTERDISCIPLINARIA DE
INGENIERÍA CAMPUS ZACATECAS
UPIIZ
INGENIERÍA MECATRÓNICA
Dispositivos Lógicos Programables
Práctica 7: “Módulos de sensores y actuadores”
Alumnos:
Oscar Alejandro Carrillo González
Gilberto Alan García Longoria
Docente:
Fernando Olivera Domingo
Grupo:
2MM3
Zacatecas, Zac., Noviembre, 2019
Objetivo:
Practicar con el diseño e implementación de aplicaciones que hagan uso de
sensores y actuadores con tarjetas de desarrollo FPGA.
Herramientas / preparación:
1 Computadora PC
1 Tarjeta de desarrollo Xilinx Spartan 3
1 Licencia del Xilinx Web Pack o Xilinx ISE
1 Sensor ultrasónico
1 Servomotor.
Información básica:
Para conectar cualquier tipo de transductor (sensor o actuador) a una FPGA es
necesario considerar los niveles de voltaje a los que trabaja. En esta práctica se va
a trabajar con un sensor ultrasónico y un servomotor.
Si consideramos el sensor ultrasónico más habitual, el HC - SR04, contamos con
dos pines para su alimentación (Vcc y GND), que debe ser a 5V, y otros dos pines
para sensar (Trig y Echo). Cuando se envía un pulso corto de 10 µs a nivel alto
por el pin de Trig, se recibe un pulso a nivel alto en Echo con duración
proporcional a la distancia a la que se encuentra el objeto donde han rebotado las
ondas de ultrasonido, siendo de manera aproximada la distancia en centímetros
igual a los microsegundos de duración del pulso entre 58.
En el caso del servomotor, los hay con diversos voltajes de alimentación, aunque
es habitual una alimentación entre 4.8 V y 6V. Estos motores constan de tres pines,
dos para la alimentación y otro para enviar una señal PWM con la que se indica que
posición debe adoptar el servomotor.
En ninguno de los casos se requiere una señal bidireccional, por lo que no se
necesitarán adaptadores de nivel (level shifters) comerciales. En este caso, para
comunicar una salida a 5V con una entrada a 3.3V se puede usar desde un simple
divisor de tensión, pasando por una resistencia serie y un Zener (de 3.3V o 3.6V) o
mediante un diodo Schottky y una resistencia de pull-up (ver figura).
Para conectar una salida a 3.3V con una entrada a 5V generalmente no es
necesario colocar ningún componente, pues si la entrada a 5V es TTL reconocerá
sin problemas un valor de 3.3V como un ‘1’ lógico, pero en caso extremo se puede
usar el circuito de la figura, que lleva un par de transistores, pues está pensado para
limitar la corriente entre los dos dispositivos que se asumen de alta impedancia.
Procedimiento:
1. Realizar una descripción en VHDL mediante la cual se obtenga una salida
PWM en uno de los pines de la Spartan 3 cuya frecuencia se pueda cambiar
entre 50Hz y 100Hz mediante un switch y cuyo ciclo de trabajo pueda tomar
los valores 25%, 50%, 75% y 100% en función de la posición de otros dos
switches.
EL código implementado en la FPGA es el siguiente:
El código UCF es el siguiente:
- Resultados:
Se muestra en el osciloscopio la salida PWM, con una frecuencia de 100 Hz y un
ciclo de trabajo del 50%.
2. Realizar un sistema de medición, de modo que al conectar un sensor
ultrasónico y un servomotor a una FPGA Spartan 3, el servomotor funcione
como una interfaz de salida que indique de forma aproximada la distancia a
la que se encuentra un objeto frente al sensor ultrasónico, en forma de gráfico
de velocímetro (ver figura siguiente). Es decir, que el servomotor debe
posicionarse en 0º cuando el sensor no detecte ningún objeto en frente e ir
evolucionando hasta los 180º cuando detecte un objeto muy cercano.
El código implementado en la FPGA es el siguiente:
- Para el sensor ultrasónico:
- El código UCF es el siguiente:
- Resultados:
En la siguiente imagen se muestra señal captada por el osciloscopio, la cual se
envía directamente desde el pin “B2” de la Spartan, donde representa la señal de
salida del ultrasónico.
Se observan los resultados obtenidos de la implementación del sensor ultrasónico
y el servomotor a la FPGA. Donde el servomotor es controlado directamente por la
señal detectada por el sensor, y siendo capaz de girar hasta 180° y regresar a su
posición inicial (0°) cuando el sensor detecta una posición cerca a cero.
CONCLUSIÓN
Es necesario tener cuidado a la hora de realizar conexiones con la FPGA. No se
debe olvidar que la FPGA funciona a 3.3V y que los sensores y actuadores que se
conecten pueden funcionar con un voltaje diferente (5V generalmente). Recordar
que, aunque las fuentes de alimentación sean distintas las tierras deben estar
conectadas y que en caso de ser necesario se deben utilizar circuitos que adapten
la señal de un voltaje a otro.