.. note:: Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirse?** - **Soporte de expertos**: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprende y comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Previsualizaciones exclusivas**: Obtén acceso temprano a anuncios de nuevos productos y avances. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos. - **Promociones y sorteos festivos**: Participa en sorteos y promociones de temporada. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo! .. _2.2.5_py: 2.2.5 Sensor de evitación de obstáculos por infrarrojos =========================================================== Introducción ------------------- En este proyecto, aprenderemos sobre el módulo de evitación de obstáculos por infrarrojos, que es un módulo sensor que puede usarse para detectar obstáculos a cortas distancias, con poca interferencia, fácil de montar y usar, etc. Puede utilizarse ampliamente en robots de evitación de obstáculos, carritos de evitación de obstáculos, conteo en líneas de montaje, etc. .. image:: ../img/2.2.5IR_Obstacle.png :width: 300 :align: center Componentes necesarios -------------------------------- En este proyecto, necesitamos los siguientes componentes. .. image:: ../img/2.2.5component.png :width: 700 :align: center Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ARTÍCULOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DE COMPONENTES - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_avoid_module` - |link_obstacle_avoidance_buy| Diagrama esquemático ------------------------- .. image:: ../img/IR_schematic.png :width: 500 :align: center Procedimientos experimentales ---------------------------------------- **Paso 1:** Monta el circuito. .. image:: ../img/2.2.5fritzing.png :width: 700 :align: center **Paso 2:** Cambia el directorio. .. raw:: html .. code-block:: cd ~/raphael-kit/python **Paso 3:** Ejecuta. .. raw:: html .. code-block:: sudo python3 2.2.5_IrObstacle.py Después de ejecutar el código, cuando pongas tu mano frente a la sonda del módulo, el indicador de salida en el módulo se iluminará y "¡Barrera detectada!" se imprimirá repetidamente en la pantalla hasta que retires la mano. **Código** .. note:: Puedes **Modificar/Restablecer/Copiar/Ejecutar/Detener** el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como ``raphael-kit/python``. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto. .. raw:: html .. code-block:: python #!/usr/bin/env python3 import RPi.GPIO as GPIO import time ObstaclePin = 17 def setup(): GPIO.setmode(GPIO.BCM) # Numeración de GPIOs por ubicación física GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP) def loop(): while True: if (0 == GPIO.input(ObstaclePin)): print ("Detected Barrier!") time.sleep(1) def destroy(): GPIO.cleanup() # Liberar recursos if __name__ == '__main__': # El programa comienza aquí setup() try: loop() except KeyboardInterrupt: # Cuando se presiona 'Ctrl+C', se ejecuta el programa destroy(). destroy() **Explicación del Código** .. code-block:: python def setup(): GPIO.setmode(GPIO.BCM) # Numeración de GPIOs por ubicación física GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP) Configura el modo GPIO en Numeración BCM. Configura ``ObstaclePin`` en modo de entrada e inicialízalo a nivel alto (3.3v). .. code-block:: python def loop(): while True: if (0 == GPIO.input(ObstaclePin)): print ("Detected Barrier!") Cuando ``ObstaclePin`` está en nivel bajo, imprime "¡Obstáculo Detectado!". Esto significa que se ha detectado un obstáculo. Foto del Fenómeno ----------------------- .. image:: ../img/2.2.5IR.JPG :width: 500 :align: center