Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Robô controlado por gestos usando Raspberry Pi


Você já se cansou de controlar tudo com botões? Pensou em controlar algo com movimentos simples das mãos, sentando-se em seu sofá preguiçoso? Se sim, então você está no site certo. Neste tutorial, vamos controlar um robô movido por dois motores DC simplesmente usando movimentos manuais. Existem diferentes tipos de sensores para detectar o movimento da mão, como sensores de fluxo, acelerômetros e outros sensores baseados em gravidade. Então, para a transmissão sem fio, vamos usar o módulo RF 434 que transmite dados de 4 bits. Dados de 4 bits significam que você pode transmitir 16 combinações diferentes, ou seja, 0000 a 1111. Mais adiante neste tutorial, usaremos um codificador e um decodificador para evitar interferência na interface aérea. Um driver de motor impedirá os motores de usar os dados do decodificador.


Robô controlado por gestos usando Raspberry Pi

Usamos nosso Raspberry pi na extremidade do transmissor para analisar os dados do sensor e para transmitir uma combinação de dados ao driver do motor para acionar os motores de forma que o robô possa pairar ao redor. Estaremos usando uma bateria de 12 V no robô para alimentar o módulo decodificador, o módulo receptor e os motores. Na extremidade do transmissor, os sensores e o módulo codificador do transmissor são alimentados pelo próprio Raspberry Pi.

Componentes

Mostrando 1 a 9 de 9 entradasAnteriorPróximo

Robô controlado por gestos usando Raspberry Pi - Diagrama de blocos

Extremidade do transmissor



Robô controlado por gestos usando Raspberry Pi - Extremidade do transmissor

No lado do transmissor temos acelerômetro, raspberry pi, módulo codificador e transmissor RF. Os dados do gesto fluem do acelerômetro para o raspberry pi e lá são processados ​​para decidir o movimento do robô e os dados do movimento são transferidos para o módulo codificador via pinos GPIO. O módulo codificador codifica os dados e os transmite para a interface aérea com a ajuda do transmissor RF.

Robô controlado por gestos usando Raspberry Pi - Terminal receptor



Robô controlado por gestos usando Raspberry Pi - extremidade do receptor

O receptor RF da extremidade do receptor obtém os dados da interface aérea e os entrega ao módulo decodificador. O módulo decodificador decodifica os dados recebidos e os fornece ao driver do motor L293D. A partir do driver do motor, os motores são acionados de acordo com os dados do gesto.

Acelerômetro


Aceleração é a medida da mudança na velocidade, ou velocidade dividida pelo tempo. Por exemplo, se um carro se move do repouso 0 a 60 Km / h em 10 segundos, o carro está acelerando a 6Km / h. Então, o que isso tem a ver com meu gesto de mão?



Um acelerômetro é um dispositivo eletromecânico usado para medir as forças de aceleração. Essas forças podem ser estáticas, como a força contínua da gravidade ou, como é o caso de muitos dispositivos móveis, dinâmicas para detectar movimento ou vibrações. Ao medir a quantidade de aceleração estática devido à gravidade, você pode descobrir o ângulo em que o dispositivo está inclinado em relação à Terra. Ao sentir a quantidade de aceleração dinâmica, você pode analisar a maneira como o dispositivo está se movendo.

Alguns acelerômetros usam o efeito piezoelétrico - eles contêm estruturas cristalinas microscópicas que são estressadas por forças acelerativas, o que faz com que uma voltagem seja gerada. Outra maneira de fazer isso é detectar mudanças na capacitância. Se você tiver duas microestruturas próximas uma da outra, elas terão uma certa capacitância entre elas. Se uma força aceleradora mover uma das estruturas, a capacitância mudará. Adicione alguns circuitos para converter de capacitância em voltagem e você terá um acelerômetro.

Acelerômetros são dispositivos de baixa potência que emitem aceleração na forma de tensão analógica e alguns acelerômetros na forma digital. Acelerômetros analógicos como ADXL 335 oferecem 3 saídas analógicas X, Y, Z com base no eixo de seu movimento. Você pode converter essas tensões analógicas em tensões digitais por meio de um ADC. Acelerômetros digitais como ADXL345 se comunicam por meio de protocolos SPI ou I2C. Isso tem muito menos ruído e é mais confiável

Há outro sensor MPU6050 que possui acelerômetro e giroscópio. Isso também pode ser usado no lugar do acelerômetro. O endereço de ADXL345 e MPU6050 difere ao conectar no modo I2C com raspberry pi, para ADXL 0x53 e MPU é 0x68. Neste tutorial, explicarei como usar ADXL345 e MPU6050.

Acelerômetro de interface


Agora faremos a interface do nosso acelerômetro ADXL 345 e MPU 6050 com o nosso raspberry pi e verificaremos as leituras do sensor. Eu acredito que seu raspberry pi está instalado com o sistema operacional mais recente e python nele, já que vamos usar o código python aqui.



Vamos conectar ADXL345 / MPU6050 ao nosso framboesa pi. Aqui, vamos usar o protocolo I2C para a comunicação entre os dispositivos. No protocolo I2C os dados são transferidos via SDA (Serial Data) e clock no SCL (Serial Clock). É um protocolo de comunicação half duplex assíncrono. O mestre controla todo o processo e os escravos respondem de acordo com os comandos do mestre. A taxa de dados é determinada pela frequência capaz do escravo. Existem apenas 4 conexões entre mestre e escravo aqui 3V, Gnd, SCL e SDA.


Acelerômetro digital ADXL345

No diagrama de pinagem GPIO, você pode ver os pinos SDA e SCL no Rpi e conectá-lo aos pinos ADXL345 / MPU6050 SDA e SCL, respectivamente. Alimente o sensor usando o próprio RPi. Agora as conexões estão feitas.


Cabeçalho Raspberry pi 3 GPIO

Antes de testar o sensor, vamos instalar o python-smbus para o protocolo I2c em rpi e habilitar o protocolo I2C em nosso RPi.

Instalando smbus:
sudo apt-get install python-smbus i2c-tools
Ativando o I2C em RPi:
sudo raspi-config
Vá para as opções de interface e habilite o protocolo I2c.



Em seguida, inclua as linhas de especificação i2c por esses comandos.
sudo nano / etc / modules
Adicionar estas linhas
i2c-bcm2708
i2c-dev

Se você estiver usando um rpi antigo, remova o i2c da lista anterior usando estes comandos
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Comente (#) lista negra i2c-bcm2708
reinicialização do sudo
Teste a conexão usando este comando. Isso mostrará o endereço do sensor conectado ao nosso pi.
sudo i2c detect -y 1
Adxl será encontrado em 0x53 e Mpu será encontrado em 0x68 ou 0x69

Agora vamos baixar uma biblioteca pré-escrita para ADXL345 para pi em python do Github e testar a saída do sensor. Use estes comandos.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py é o programa que fornece os valores X, Y e Z conforme mostrado abaixo.

Podemos modificar este programa ou usá-lo em nosso projeto.



Para MPU6050 o programa pimoroni não funcionará, então usaremos um módulo python diferente do github.

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

cd mpu6050

python setup.py install
Para verificar a conexão do nosso sensor e o endereço do terminal aberto e digite o comando abaixo. Ele mostrará o endereço do sensor em 0x68 ou 0x69 conforme mostrado abaixo.



E para testar os dados do nosso sensor, vá para o editor Python e digite esses comandos apenas por um para ver a saída do sensor.
from mpu6050 import mpu6050

mympu =mpu6050 (0x69)

Data =mympu.get_accel_data ()



Um passo adiante agora você pode determinar os valores de limiar de 4 posições diferentes para o movimento da direita, esquerda, para frente e para trás e anotá-los. A calibração pode ser feita com base nos valores do seu sensor em diferentes posições, como mantê-lo em uma posição desejada para o movimento de avanço e anotar 5 valores semelhantes e arredondá-lo para um limite, de modo que se o sensor ultrapassar o valor arredondado, a declaração de condição no programa pode ser habilitada. Calibre-o da mesma forma para todos os outros movimentos, como esquerda, direita, para trás e parada.

Leia mais informações….

Robô controlado por gestos usando Raspberry Pi

Projeto / postagem atual também pode ser encontrado usando:


Processo de manufatura

  1. Perfil de temperatura Raspberry Pi usando LabVIEW
  2. Aquaponia controlada com Raspberry Pi
  3. Registrador de dados profissional multicanal no Raspberry Pi - Parte 1
  4. Sensor de temperatura Python e Raspberry Pi
  5. Monitoramento remoto do clima usando Raspberry Pi
  6. SensorTag para Blynk usando Node-RED
  7. Sensor de movimento usando Raspberry Pi
  8. Robô usando Raspberry Pi e Bridge Shield
  9. Robô da caixa de CD do Raspberry Pi
  10. Robô Raspberry Pi controlado por Bluetooth