es:pibot:lesson3
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
es:pibot:lesson3 [2021/10/21 19:03] – Fixed syntax error jstruebel | es:pibot:lesson3 [2022/10/20 19:53] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Objetivo ====== | ||
+ | |||
+ | Esta lección le mostrará cómo hacer que el PiBot evite obstáculos frente a él. Primero le mostrará cómo agregar el sensor de distancia ultrasónico al PiBot. Luego te mostrará cómo programar el PiBot para evitar obstáculos que se encuentren frente a él. Finalmente, describirá cómo la electrónica permite que el PiBot " | ||
+ | |||
+ | ====== Piezas Necesarias ====== | ||
+ | |||
+ | Las partes siguientes son necesarias para completar esta lección. Tenga en cuenta que todas las piezas, excepto los bloques de espuma de poliestireno y el hardware opcional, se incluyen en el [[https:// | ||
+ | |||
+ | - PiBot ensamblado de [[: | ||
+ | - Sensor de distancia ultrasónico HC-SR04 | ||
+ | - Soporte de sensor de distancia ultrasónico OSOYOO | ||
+ | - Micro servomotor y hardware | ||
+ | - Cables de puente hembra a hembra de 20 cm | ||
+ | - Bloques de espuma de poliestireno de al menos 5 pulgadas de alto y 2 pulgadas de grosor | ||
+ | - Hardware | ||
+ | - Tornillos M1.5x8mm | ||
+ | - Tuercas hexagonales M1.5 | ||
+ | - Tornillos autorroscantes M2.2x8mm | ||
+ | - Tornillos autorroscantes M2x4mm | ||
+ | - Hardware Opcional | ||
+ | - Tornillos de cabeza hexagonal M1.4x8mm | ||
+ | - Tuercas hexagonales M1.4 | ||
+ | - Tornillos de cabeza hexagonal M1.6x8mm | ||
+ | - Tuercas hexagonales M1.6 | ||
+ | |||
+ | ====== Ensamblaje de Hardware ====== | ||
+ | |||
+ | <WRAP round important> | ||
+ | |||
+ | <WRAP round tip> | ||
+ | |||
+ | - Instale el Micro Servomotor en el chasis superior con 2 tornillos autorroscantes M2.2x8mm del kit de hardware como se muestra a continuación\\ \\ <WRAP round tip> | ||
+ | - Instale el sensor de distancia ultrasónico en el soporte con 4 tornillos M1.5x8mm y tuercas hexagonales M1.5 como se muestra a continuación\\ \\ <WRAP round tip>Los tornillos y tuercas hexagonales M1.4x8mm o los tornillos y tuercas hexagonales M1.6x8mm se pueden usar en lugar de los tornillos y tuercas M1.5x8mm si se desea o es necesario</ | ||
+ | - Instale el soporte del sensor de distancia ultrasónico en el micro servomotor con un tornillo autorroscante M2x4 mm de 1 pieza como se muestra a continuación\\ \\ <WRAP box>{{ : | ||
+ | - Conecte el Micro Servomotor a la placa compatible PCA9685 como se muestra a continuación\\ \\ <WRAP round tip>Cree bucles en los cables envolviéndolos alrededor de su dedo para mantener el cableado ordenado</ | ||
+ | ^ Micro Servomotor | ||
+ | | @-brown:GND (Marrón) | ||
+ | | @-red:5V (Roja) | ||
+ | | @-orange: | ||
+ | </ | ||
+ | - Conecte el sensor de distancia ultrasónico a la placa compatible PCA9685 y la placa Raspberry Pi como se muestra a continuación\\ \\ <WRAP round tip>Tire de los cables uno a la vez para separarlos del haz de cables</ | ||
+ | ^ Sensor de Distancia Ultrasónico | ||
+ | | @-red: | ||
+ | | @-purple: | ||
+ | | @-orange: | ||
+ | | @-black: | ||
+ | </ | ||
+ | - Configure algunos bloques de espuma de poliestireno para crear obstáculos para el PiBot\\ \\ <WRAP round tip>Use algunas paredes de la habitación para crear una caja con los bloques de espuma de poliestireno en los que el PiBot pueda conducir</ | ||
+ | - Encienda el PiBot y colóquelo de modo que algunos de los bloques de espuma de poliestireno queden frente a él. | ||
+ | |||
+ | ====== Software ====== | ||
+ | |||
+ | Seleccione el enlace correspondiente a continuación para obtener instrucciones para configurar el software en PiBot y una exploración de cómo funciona. | ||
+ | |||
+ | * [[: | ||
+ | * [[: | ||
+ | |||
+ | ====== Descripción Eléctrica ====== | ||
+ | |||
+ | El sensor de distancia ultrasónico HC-SR04 tiene 2 transductores ultrasónicos. Un transductor actúa como un altavoz para enviar pulsos ultrasónicos y el otro actúa como un micrófono para recibir los pulsos que rebotan. Los pulsos ultrasónicos son sonidos que están por encima de las frecuencias que los humanos pueden escuchar, por lo que para nosotros es silencioso. Los humanos no pueden escuchar sonidos por encima de $20kHz$ y el HC-SR04 envía pulsos ultrasónicos a $40kHz$. | ||
+ | |||
+ | Cuando el pulso de activación de $10 \mu s$ se le da al HC-SR04, envía 8 pulsos de sonido de $40kHz$ usando el transductor del altavoz. Cuando termina de enviar los pulsos, coloca el pin de eco en alto y espera escuchar cualquier reflejo que pueda rebotar en algo que está frente a él. Cuando recibe un eco, establece el pin de eco en un nivel bajo, y si no se recibe ningún eco, tiene un temporizador interno que establecerá el pin de eco en un nivel bajo después de $38ms$. | ||
+ | |||
+ | El tiempo que el pin de eco está alto se puede usar para determinar qué tan lejos del transductor se encuentra un objeto. Dado que la distancia al objeto es solo la velocidad del sonido multiplicada por el tiempo que lleva llegar allí, podemos usar esa fórmula para calcular la distancia al objeto. Esta es la fórmula que se proporciona en la [[https:// | ||
+ | |||
+ | \begin{equation}Distancia (m) = {Tiempo (s) \times 343 (m/s) \over 2} \label{eqn1}\end{equation} | ||
+ | |||
+ | Los pines de disparo y eco están conectados a la Raspberry Pi GPIO para que la Raspberry Pi pueda controlar cuándo se inicia una medición y detectar el tiempo en que el pin de eco está alto. | ||
+ | |||
+ | El PiBot utiliza el Micro Servo Motor para girar el Sensor de Distancia Ultrasónico para que pueda detectar si hay algún objeto a la izquierda o derecha de él, además de directamente enfrente de él. El micro servomotor usa una señal PWM que le dice en qué ángulo girar. Esto es similar a cómo funciona PWM para controlar los motores como se describe en [[: | ||
+ | |||
+ | El micro servomotor usa tiempos altos entre $1ms$ y $2ms$ para representar los ángulos entre $0^{\circ}$ y $180^{\circ}$ donde $1ms$ es $0^{\circ}$ y $2ms$ es $180^{\circ}$. La señal PWM genera un pulso alto basado en el valor pasado a la función set_pwm en la Raspberry Pi. Cada recuento de ese valor equivale a $4.069 \mu s$ cuando la frecuencia se establece en $60Hz$ como se muestra en la ecuación \ref{eqn2} a continuación. Esto significa que cada cuenta es igual a $0, | ||
+ | |||
+ | \begin{equation} | ||
+ | \begin{split} | ||
+ | Contar (s/ | ||
+ | & = {1/60(Hz) \over 4096(cnt)}\\ | ||
+ | & = 4.069(\mu s/cnt) | ||
+ | \end{split} | ||
+ | \label{eqn2} | ||
+ | \end{equation} | ||
+ | |||
+ | \begin{equation} | ||
+ | \begin{split} | ||
+ | Ángulo (^{\circ}/ | ||
+ | & = {180 (^{\circ}) - 0 (^{\circ}) \over 2 (ms) - 1 (ms)} \times 4.069 (\mu s/cnt)\\ | ||
+ | & = 0.7324 (^{\circ}/ | ||
+ | \end{split} | ||
+ | \label{eqn3} | ||
+ | \end{equation} | ||
+ | |||
+ | [[: | ||
+ | |||
+ | |||