Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Robot controlado por gestos con Raspberry Pi

¿Alguna vez te has cansado de controlar todo con botones? ¿Has pensado en controlar algo con simples movimientos de la mano sentándote en tu sofá perezoso? Si es así, entonces estás en el sitio correcto. En este tutorial vamos a controlar un robot impulsado por dos motores de CC simplemente usando movimientos de la mano. Hay diferentes tipos de sensores para detectar el movimiento de su mano, como sensores de flujo, acelerómetros y otros sensores basados ​​en la gravedad. Entonces, para la transmisión inalámbrica, usaremos el módulo RF 434 que transmite datos de 4 bits. Los datos de 4 bits significan que puede transmitir 16 combinaciones diferentes, es decir, 0000 a 1111. Más adelante en este tutorial usaremos un codificador y decodificador para evitar interferencias en la interfaz aérea. Un controlador de motor hará que los motores no utilicen los datos del decodificador.

Robot controlado por gestos con Raspberry Pi

Usamos nuestra Raspberry pi en el extremo del transmisor para analizar los datos del sensor y transmitir una combinación de datos al controlador del motor para impulsar los motores en consecuencia para que el robot pueda flotar. Usaremos una batería de 12 V en el robot para alimentar el módulo decodificador, el módulo receptor y los motores. En el extremo del transmisor, los sensores y el módulo codificador del transmisor funcionan con la propia Raspberry Pi.

Componentes

Mostrando 1 a 9 de 9 entradas

Robot controlado por gestos con Raspberry Pi - Diagrama de bloques

Extremo del transmisor

Robot controlado por gestos con Raspberry Pi:extremo del transmisor

En el lado del transmisor tenemos acelerómetro, raspberry pi, módulo codificador y transmisor de RF. Los datos de gestos fluyen desde el acelerómetro a la raspberry pi y allí se procesan para decidir el movimiento del robot y los datos de movimiento se transfieren al módulo codificador a través de pines GPIO. El módulo codificador codifica los datos y los transmite a la interfaz aérea con la ayuda del transmisor de RF.

Robot controlado por gestos con Raspberry Pi:extremo del receptor

Robot controlado por gestos con Raspberry Pi:extremo del receptor

El receptor de RF del extremo del receptor obtiene los datos de la interfaz aérea y los transmite al módulo decodificador. El módulo decodificador decodifica los datos recibidos y los proporciona al controlador de motor L293D. Desde el controlador del motor, los motores se manejan de acuerdo con los datos del gesto.

Acelerómetro

La aceleración es la medida del cambio de velocidad, o rapidez dividida por el tiempo. Por ejemplo, si un automóvil se mueve desde el reposo 0 a 60 km / h en 10 segundos, el automóvil está acelerando a 6 km / h. Entonces, ¿qué tiene que ver con el gesto de mi mano?

Un acelerómetro es un dispositivo electromecánico que se utiliza para medir las fuerzas de aceleración. Tales fuerzas pueden ser estáticas, como la fuerza continua de la gravedad o, como es el caso de muchos dispositivos móviles, dinámicas para detectar movimientos o vibraciones. Al medir la cantidad de aceleración estática debida a la gravedad, puede averiguar el ángulo en el que está inclinado el dispositivo con respecto a la tierra. Al detectar la cantidad de aceleración dinámica, puede analizar la forma en que se mueve el dispositivo.

Algunos acelerómetros utilizan el efecto piezoeléctrico:contienen estructuras cristalinas microscópicas que se estresan por las fuerzas aceleradoras, lo que provoca la generación de voltaje. Otra forma de hacerlo es detectando cambios en la capacitancia. Si tiene dos microestructuras una al lado de la otra, tienen una cierta capacitancia entre ellas. Si una fuerza aceleradora mueve una de las estructuras, la capacitancia cambiará. Agregue algunos circuitos para convertir de capacitancia en voltaje, y obtendrá un acelerómetro.

Los acelerómetros son dispositivos de baja potencia que emiten aceleración en forma de voltaje analógico y algunos acelerómetros en forma digital. Los acelerómetros analógicos como ADXL 335 le brindan 3 salidas analógicas X, Y, Z base en el eje de su movimiento. Puede convertir estos voltajes analógicos en voltajes digitales por medio de un ADC. Los acelerómetros digitales como ADXL345 se comunicarán a través de los protocolos SPI o I2C. Esto tiene menos ruido y es más confiable

Hay otro sensor MPU6050 que tiene tanto acelerómetro como giroscopio. Eso también se puede usar en lugar del acelerómetro. La dirección de ADXL345 y MPU6050 difiere mientras se conecta en modo I2C con raspberry pi, para ADXL 0x53 y MPU es 0x68. En este tutorial, explicaré cómo usar ADXL345 y MPU6050.

Acelerómetro de interfaz

Ahora conectaremos nuestro acelerómetro ADXL 345 y MPU 6050 a nuestro raspberry pi y comprobaremos las lecturas del sensor. Creo que su raspberry pi está instalado con el último sistema operativo y python, ya que vamos a usar el código Python aquí.

Conectemos ADXL345 / MPU6050 a nuestra raspberry pi. Aquí vamos a utilizar el protocolo I2C para comunicarnos entre dispositivos. En el protocolo I2C, los datos se transfieren a través de SDA (datos en serie) y el reloj en SCL (reloj en serie). Es un protocolo de comunicación asincrónico semidúplex. El maestro controla todo el proceso y los esclavos responden de acuerdo con los comandos del maestro. La velocidad de datos está determinada por la frecuencia capaz del esclavo. Solo hay 4 conexiones entre maestro y esclavo aquí 3V, Gnd, SCL y SDA.

Acelerómetro digital ADXL345

En el diagrama de pines GPIO puede ver los pines SDA y SCL en Rpi y conectarlo a los pines ADXL345 / MPU6050 SDA y SCL respectivamente. Encienda el sensor usando el propio RPi. Ahora las conexiones están hechas.

Encabezado GPIO de Raspberry pi 3

Antes de probar el sensor, instalemos python-smbus para el protocolo I2c en rpi y habilitemos el protocolo I2C en nuestro RPi.

Instalación de smbus:
sudo apt-get install python-smbus i2c-tools
Habilitación de I2C en RPi:
sudo raspi-config
Vaya a las opciones de la interfaz y habilite el protocolo I2c.

Luego incluya las líneas de especificación i2c con estos comandos.
sudo nano / etc / modules
Agregue estas líneas
i2c-bcm2708
i2c-dev

Si está usando un rpi antiguo, elimine i2c de la lista de respaldo usando estos comandos
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Comentar (#) blacklist i2c-bcm2708
reinicio de sudo
Pruebe la conexión usando este comando. Esto mostrará la dirección del sensor conectado a nuestro pi.
sudo i2c detect -y 1
Adxl se encontrará en 0x53 y Mpu se encontrará en 0x68 o 0x69

Ahora descargaremos una biblioteca preescrita para ADXL345 para pi en python desde Github y probaremos la salida del sensor. Usa estos comandos.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py es el programa que genera los valores X, Y y Z como se muestra a continuación.

Podemos modificar este programa o usarlo para nuestro proyecto.

Para MPU6050, el programa pimoroni no funcionará, por lo que usaremos un módulo de Python diferente de github.

Usando estos comandos.
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

instalación de python setup.py
Para verificar la conexión y dirección de nuestro sensor, abra el terminal y escriba el comando a continuación. Mostrará la dirección del sensor en 0x68 o 0x69 como se muestra a continuación.

Y para probar los datos de nuestro sensor, vaya al editor de Python y escriba estos comandos solo uno por uno para ver la salida del sensor.
from mpu6050 import mpu6050

mympu =mpu6050 (0x69)

Datos =mympu.get_accel_data ()

Un paso más allá ahora puede determinar los valores de umbral de 4 posiciones diferentes para el movimiento de derecha, izquierda, adelante y atrás y anotarlo. La calibración se puede realizar en función de los valores de su sensor en diferentes posiciones, como mantenerlo en la posición que desee para el movimiento hacia adelante y anotar 5 valores similares y redondearlo a un umbral, de modo que si el sensor cruza el valor redondeado un Se puede habilitar la declaración de condición en el programa. De manera similar, calíbrelo para todos los demás movimientos como izquierda, derecha, atrás y parada.

Leer más información….

Robot controlado por gestos con Raspberry Pi

El proyecto / publicación actual también se puede encontrar usando:


Proceso de manufactura

  1. Perfil de temperatura de Raspberry Pi usando LabVIEW
  2. Acuaponía controlada por Raspberry Pi
  3. Registrador de datos profesional multicanal en Raspberry Pi - Parte 1
  4. Sensor de temperatura Python y Raspberry Pi
  5. Monitoreo remoto del clima usando Raspberry Pi
  6. SensorTag a Blynk usando Node-RED
  7. Sensor de movimiento con Raspberry Pi
  8. Robot que usa Raspberry Pi y Bridge Shield
  9. Robot de caja de CD Raspberry Pi
  10. Robot Raspberry Pi controlado por Bluetooth
  11. Cree su robot de transmisión de video controlado por Internet con Arduino y Raspberry Pi