.. 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 experto**: 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.
- **Avances exclusivos**: Obtén acceso anticipado a anuncios de nuevos productos y adelantos.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes.
- **Promociones festivas y sorteos**: 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_js:
2.2.5 Sensor de Evitación de Obstáculos por IR
====================================================
Introducción
---------------
En este proyecto, aprenderemos sobre el módulo de evitación de obstáculos por IR, que es un módulo sensor que se puede usar para detectar obstáculos a distancias cortas, con poca interferencia, fácil de ensamblar, fácil de usar, etc. Se puede utilizar ampliamente en la evitación de obstáculos en robots, carritos de evitación de obstáculos, conteo en líneas de ensamblaje, 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
- ELEMENTOS 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 DEL COMPONENTE
- 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:** Construir el circuito
.. image:: ../img/2.2.5fritzing.png
:width: 700
:align: center
**Paso 2:** Ir a la carpeta del código.
.. raw:: html
.. code-block::
cd ~/raphael-kit/nodejs/
**Paso 3:** Ejecutar el código.
.. raw:: html
.. code-block::
sudo node ir_obstacle.js
Después de ejecutar el código, cuando pongas tu mano frente a la sonda del módulo, el indicador de salida del módulo se encenderá y "¡Barrera Detectada!" será
impreso repetidamente en la pantalla hasta que retires tu mano.
**Código**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const ir_ob = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.FALLING_EDGE
});
ir_ob.on('interrupt', () => {
console.log('Detected Barrier!');
});
**Explicación del Código**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const ir_ob = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.FALLING_EDGE
});
Importar el módulo pigpio, crear un objeto para controlar el puerto IO Gpio17,
Configúralo en modo de entrada e interrupción en el borde descendente.
.. code-block:: js
ir_ob.on('interrupt', () => {
console.log('Detected Barrier!');
});
Cuando se desencadena una interrupción, lo que significa que se detecta un obstáculo, imprime "¡Barrera Detectada!".
Imagen del Fenómeno
-------------------
.. image:: ../img/2.2.5IR.JPG
:width: 500