Traducido del inglés al español - [Link].
com
Instrucciones de prueba
C_Code_13_Ultrasonido
Primero, observe el resultado del proyecto, luego analice el código.
7. Use el comando cd para ingresar al directorio 13_Ultrasonic del código C.
cd ~/LAFVIN_PI_Code/C_Code/13_Ultrasonic
2. Use el siguiente comando para compilar el código "Ultrasonic.c" y generar el archivo
ejecutable "Ultrasonic.c"
gcc ultrasónico.c -o ultrasónico -lwiringPi
3. Luego ejecute el archivo generado "Ultrasonic".
sudo ./Ultrasónico
80/106
Después de ejecutar el programa, haga que el detector del módulo de rango ultrasónico apunte al
plano de un objeto, luego la distancia entre el módulo ultrasónico y el objeto se mostrará en la
terminal. Como se muestra a continuación:
Explicación del código
int pulseIn(int pin, int level, int timeout);
/*Devuelve la longitud del pulso (en microsegundos) o 0 si no se completa ningún pulso antes del
tiempo de espera (unsigned long).*/
# definir el tiempo de espera MAX_DISTANCE*60
/*Si el modulo no regresa de alto nivel, no podemos esperar eternamente. Entonces necesitamos
calcular el tiempo de duración sobre la distancia máxima, es decir,
se acabó el tiempo. timOut= 2*MAX_DISTANCE/100/340*1000000.
La parte constante detrás es aproximadamente igual a 58.8.*/
Python_Code_13_Ultrasonic
Primero, observe el resultado del proyecto, luego analice el código.
1. Use el comando cd para ingresar al directorio 13_Ultrasonic del código Python.
cd ~/LAFVIN_PI_Code/Python_Code/13_Ultrasonic
2. Use el comando Python para ejecutar [Link].
python ultrasó[Link]
Después de ejecutar el programa, haga que el detector del módulo de rango ultrasónico apunte al
plano de un objeto, luego la distancia entre el módulo ultrasónico y el objeto se mostrará en la
terminal. Como se muestra a continuación:
81/106
Explicación del código
tiempo de espera = = MAX_DISTANCE* *60
" " "Si el módulo no regresa a un nivel alto, no podemos esperar para siempre. Por lo tanto, debemos
calcular el tiempo de duración sobre la distancia máxima, es decir,
se acabó el tiempo. timOut= 2*MAX_DISTANCE/100/340*1000000.
La parte constante detrás es aproximadamente igual a 58,8." " "
def pulseIn(pin,nivel,timeOut):
" " "Devuelve la longitud del pulso (en microsegundos) o 0 si no se completa ningún pulso antes del d
tiempo de espera (largo sin firmar)".
82/106
Lección 14 Módulo de interruptor de membrana
Acerca de esta lección:
En esta lección, en este proyecto, veremos cómo integrar un teclado con una
raspberry pi para que la raspberry pi pueda leer las teclas que presiona un usuario.
Introducción
Módulo de interruptor de membrana
Los teclados se utilizan en todo tipo de dispositivos, incluidos teléfonos móviles, máquinas de fax, microondas, hornos,
cerraduras de puertas, etc. Están prácticamente en todas partes. Toneladas de dispositivos electrónicos los usan para la
entrada del usuario.
Por lo tanto, saber cómo conectar un teclado a un microcontrolador como una placa UNO R3 es muy
valioso para construir muchos tipos diferentes de productos comerciales.
Al final, cuando todo está correctamente conectado y programado, cuando se presiona una tecla,
aparece en el monitor serie de su computadora. Cada vez que presiona una tecla, aparece en el monitor
serie. Para simplificar, comenzamos simplemente mostrando la tecla presionada en la computadora.
Para este proyecto, el tipo de teclado que usaremos es un teclado matricial. Este es un teclado que sigue
un esquema de codificación que le permite tener muchos menos pines de salida que teclas. Por ejemplo,
el teclado de matriz que estamos usando tiene 16 teclas (0-9, AD, *, #), pero solo 8 pines de salida. Con
un teclado lineal, tendría que haber 17 pines de salida (uno para cada tecla y un pin de tierra) para que
funcione. El esquema de codificación matricial permite menos pines de salida y, por lo tanto, muchas
menos conexiones que deben realizarse para que el teclado funcione. De esta forma, son más eficientes
que los teclados lineales, ya que tienen menos cableado.
83/106
Diagrama de cableado
84/106
85/106
Instrucciones de prueba
Este código se usa para obtener todos los códigos de tecla del teclado Matrix 4x4, cuando se presiona una de las
teclas, el código de tecla se
imprimirse en la ventana del terminal.
C_Code_14_Membrane_Switch_Module
Primero, observe el resultado del proyecto, luego analice el código.
8. Use el comando cd para ingresar al directorio 14_Membrane Switch Module del código C.
cd ~/LAFVIN_PI_Code/C_Code/14_Membrane_Switch_Module
2. Use el siguiente comando para compilar el código
"Membrane_Switch_Module.c" y generar el archivo ejecutable
"Membrane_Switch_Module.c"
gcc Membrane_Switch_Module.cpp [Link] [Link] -o Membrane_Switch_Module
- lwiringPi
3. Luego ejecute el archivo generado "Membrane_Switch_Module".
sudo ./Membrane_Switch_Module
Después de ejecutar el programa, presione cualquier tecla en MatrixKeypad, el terminal imprimirá el
código de tecla correspondiente. Como se muestra a continuación:
Explicación del código
# incluir "[Link]"
/*En este código de proyecto, usamos dos archivos de biblioteca personalizados "[Link]" y
"[Link]". Se encuentran en el mismo directorio que los archivos de programa "[Link]",
"[Link]" y "[Link]". El teclado de la biblioteca se trasplanta del teclado de la biblioteca
Arduino. Y este archivo de biblioteca proporciona un método para leer el teclado. Al usar esta
biblioteca, podemos leer fácilmente el teclado de matriz.*/
Teclado numérico = = Teclado numérico( (makeKeymap((teclas), pinesfila, pinescol, , FILAS,
COLUMNAS);/*según la información anterior, crea una instancia de un objeto de clase Keypad para
operar el teclado de matriz.*/
teclado de clase
Teclado( ( char * * userKeymap, , byte * * fila, , byte * * col, , byte numRows, , byte
numCols );
86/106
/*Constructor, los parámetros son: código de tecla del teclado, pin de fila, pin de columna,
número de filas, número de columnas.*/
char getClave();
//Obtener el código de tecla de la tecla presionada. Si no se presiona ninguna tecla, el valor devuelto es
NULL.
void setDebounceTime( ( uint );
/*Establecer el tiempo de rebote. Y el tiempo predeterminado es 10ms.*/
void setHoldTime(( uint );
/*Establece el tiempo en que la tecla se mantiene estable después de presionarla.*/
bool isPressed( ( char keyChar );
/*Juzga si se presiona la tecla con el código "keyChar".*/
char esperaLlave();
/*Espere a que se presione una tecla y devuelva el código de tecla de la tecla presionada.*/
estado clave obtener estado ();
/*Obtener el estado de las llaves.*/
bool claveEstadoCambiado ();
/*Juzga si hay un cambio de estado clave, luego devuelve Verdadero o Falso.*/
Python_Code_14_Membrane_Switch_Module
Primero, observe el resultado del proyecto, luego analice el código.
1. Use el comando cd para ingresar al directorio 8_LCD1602 del código Python.
cd ~/LAFVIN_PI_Code/Python_Code/14_Membrane_Switch_Module
2. Use el comando de Python para ejecutar Membrane_Switch_Module.py.
python Membrane_Switch_Module.py
Después de ejecutar el programa, presione cualquier tecla en MatrixKeypad, el terminal imprimirá el
código de tecla correspondiente. Como se muestra a continuación:
87/106
Explicación del código
importar teclado
" " ""[Link]" se encuentra en el mismo directorio que el archivo de programa mi
"[Link]". Y este archivo de biblioteca, que se trasplanta de la biblioteca de o
funciones de Arduino Keypad, proporciona un método para leer el teclado. Al usar esta s
biblioteca, podemos leer fácilmente el teclado de matriz". " "
teclado de clase
def __init__( ( self, , usrKeyMap, , pines_fila, , pines_col, , num_Filas, ,
num_Cols ):
" " "Función construida, los parámetros son: código de tecla del teclado, pin de fila, pin,
de columna, número de filas, número de columnas". " "
def getKey( (auto):
# Obtener una tecla presionada. Si no se presiona ninguna tecla, el valor devuelto es NULL del teclado.
def establecerTiempoRebote( ( self, , ms ):
# Establecer el tiempo de rebote. Y el tiempo predeterminado es de 10 ms.
def setHoldTime( ( self, , ms ):
# Configure el tiempo en que la tecla mantiene un estado estable después de presionarla.
def estáPresionado( ( keyChar ):
# Juzgue si se presiona la tecla con el código "keyChar".
def esperar la clave ():
# Espere a que se presione una tecla y devuelva el código de tecla de la tecla presionada.
def getState ():
# Obtener el estado de las claves.
def keyStateChanged ():
# Juzgue si hay un cambio de estado clave, luego devuelva Verdadero o Falso.
88/106
Lección 15 SENSOR GY-521
Acerca de esta lección:
En esta lección, aprenderemos a usar el módulo GY-521, que es uno de los mejores sensores IMU (Unidad
de medición de inercia), compatible con Arduino. Los sensores IMU como el GY-521 se utilizan en robots
autoequilibrados, vehículos aéreos no tripulados, teléfonos inteligentes, etc.
Introducción
SENSOR GY-521
El sensor InvenSense GY-521 contiene un acelerómetro MEMS y un giroscopio MEMS en un
solo chip. Es muy preciso, ya que contiene hardware de conversión de analógico a digital
de 16 bits para cada canal. Por lo tanto, captura el canal x, y y z al mismo tiempo. El sensor
utiliza el bus I2C para interactuar con el Arduino.
El GY-521 no es caro, especialmente dado que combina un
acelerómetro y un giroscopio.
89/106