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

A integração dos dados do sensor com o microprocessador Raspberry Pi

Resumo



Para implementar vários sensores em um sistema robótico integrado, é necessário um ambiente de programação e métodos de comunicação válidos que sejam capazes de inserir dados digitalizados do sensor e usar esses dados no circuito de controle.

Palavras-chave:comunicação I2C, comunicação UART, Adafruit Ultimate GP Breakout, Sparkfun MPU-9150 Breakout, Raspberry Pi Setup


Introdução



A aquisição e associação de dados do sensor são peças críticas para o sistema de controle digital. Uma vez que um controlador digital integrado é empregado para processar todas as entradas de dados do sensor, a interface de comunicação, que torna esses dados legíveis e utilizáveis ​​no microprocessador, é a primeira prioridade no nível de programação. Um sistema de navegação
autônomo, para o projeto da equipe, requer um rastreamento contínuo da localização GPS e medição consistente do ângulo do curso. Portanto, o grupo decide usar um módulo GPS para detectar a localização atual (em latitude e longitude) do robô e usar um magnetômetro para medir o curso. Os dados adquiridos por ambos os módulos podem ser visualizados em uma interface de usuário remota e também podem ser usados ​​no software de controle.

Objetivo


Este é um tutorial avançado que assume que o usuário conhece algumas manipulações básicas no sistema operacional Raspbian, por exemplo, instalar uma biblioteca ou criar um arquivo de script usando o terminal Unix em comandos bash na linha de comando. O objetivo desta nota de aplicação é orientar um método que o usuário pode ler dados de acelerômetro e dados de GPS de interface de comunicação diferente com o Raspberry Pi em real. Além das instruções de linha de comando, este tutorial também cobre os detalhes na fiação dos sensores para o Pi e a configuração do hardware para os sensores.

Informação


Hardware
○ Sparkfun 9 graus de liberdade Breakout MPU9150

O sensor de medição inercial usado para este projeto é o Invensense MPU-9150 com placa breakout projetado pela sparkfun. O MPU-9150 é um módulo multi-chip que consiste em duas matrizes integradas em um único pacote. Um dado é o MPU-6050 com um giroscópio de 3 eixos e um acelerômetro de 3 eixos. A outra matriz abriga a bússola / magnetômetro digital de 3 eixos AK8975 da Asahi Kasei Microdevices Corporation. Este chip foi projetado para baixo consumo de energia, baixo custo e alto desempenho e atualmente está sendo usado em muitos lugares, incluindo smartphones e tablets.

Breakout Adafruit Ultimate GPS

O breakout é construído em torno do módulo baseado em MTK3339 de terceira geração, que possui suporte para antena externa e saída de pulso por segundo. Ele tem uma taxa de atualização de 10 Hz e pode rastrear até 22 satélites em 66 canais. Este módulo GPS é construído para um sistema embarcado que oferece uma entrada de baixa potência (3,3 - 5V) e o pino ENABLE pode ser usado para desligar o módulo usando qualquer pino do microcontrolador. Há também um pequeno LED vermelho que é capaz de indicar o status do sinal. O LED pisca a 1 Hz enquanto está procurando por satélites e pisca uma vez a cada 15 segundos quando uma correção é encontrada. Este GPS só funciona em um campo aberto quando não há nenhum prédio ao redor. Sempre que adquire um sinal FIX, ele terá os dados de curso, longitude, latitude e altura atualizados na frequência
definida pelo usuário.

Padrões de comunicação


○ Comunicação I2C
I2C significa Inter-Integrated Circuit Bus. O I2C usa o microcontrolador como mestre e se conecta a vários escravos com endereços exclusivos por meio de um barramento de computador de terminação única. Ele usa apenas duas linhas de dreno aberto bidirecionais:Serial Data Line (SDA) e um Serial Clock (SCL). SDA define o bit transferido enquanto SCL está baixo e os dados são recebidos quando SCL está alto.
○ Comunicação UART
UART significa receptor / transmissor assíncrono universal. Ele transmite / recebe dados em série de um byte (5-8 bits) de dados gravados / armazenados em um registrador. Todos os dados serão lidos em certa taxa de transmissão predefinida pelo programador. A transmissão UART requer três tipos de sinal:um Transmit Data (TxD), um Recebe Dados (RxD) e Signal Ground (SG). Como esse tipo de transmissão não é bidirecional, são necessárias duas linhas de recepção e transmissão separadas.

Lista de peças
Para configuração de hardware e programação no Raspberry Pi, as seguintes partes são
necessárias:
● Um Raspberry Pi
● Uma fonte de alimentação
● Um dongle Wifi
● Um Sparkfun MPU9150 Giroscópio e Acelerômetro
● Um Adafruit Ultimate GPS Breakout
● Um cabo adaptador USB para TTL (opcional)
● Uma placa de ensaio
● Fios MF Jumper
Suposições
Antes de iniciar este tutorial, existem várias suposições que precisam ser feitas. Uma vez que as notas deste aplicativo se concentrarão apenas em uma faceta particular de todo o projeto, o procedimento básico de configuração para o Raspberry Pi novo e pronto para uso e a configuração da rede sem fio serão ignorados aqui. A seguir estão algumas suposições subjacentes a este aplicativo com base em:
● um acesso válido à Internet
● um sistema operacional Raspian instalado e o comportamento de inicialização do Pi foi definido para o modo desktop
● a mouse e um teclado são conectados às portas usb do raspberry pi, e um monitor é conectado via adaptador HDMI para garantir a exibição gráfica.

Procedimentos:
  1. Conhecer a configuração do Raspberry Pi GPIO para comunicação serial. Os pinos seriais usados ​​na parte posterior deste tutorial são GPIO 14 e 15 para UART e GPIO 2 e 3 para I2C.
  1. Conectando o GPS Adafruit ao Raspberry Pi
    Encontre os pinos Tx / Rx, Vin e gnd em seu módulo gps adafruit. Conexão cruzada de seus pinos Tx e Rx com os pinos Rx e Tx no Raspberry Pi. Em seguida, forneça 5 V ou 3,3 V do Pi ao pino Vin e coloque o pino GND no aterramento do Pi.
  1. Fiação do MPU9150 ao Raspberry Pi
    Conecte os quatro pinos superiores no breakout do MPU9150 ao Raspberry Pi. Conecte o GPIO 2 ao SDA (linha de dados) e o GPIO 3 ao SCL (linha do relógio). Forneça 3,3 V do Pi ao pino Vcc do acelerômetro e coloque o pino GND no solo.
  1. Preparando o Pi para comunicação I2C
    a. Abra um terminal no Raspberry Pi e digite os seguintes comandos bash:
    sudo apt-get update
    sudo apt-get install i2c-tools libi2c-dev
    b. WiringPi é uma biblioteca C ++ muito poderosa projetada para o RasPi que inclui uma ampla variedade de ferramentas GPIO para o PI. Para instalar o WiringPi, digite os seguintes comandos:
    git clone git://git.drogon.net/wiringPi
    cd wiringPi
    sudo nano / etc / modules
    c. Adicione as três linhas a seguir ao final do arquivo (/ etc / modules) se elas ainda não estiverem lá
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    d . Em seguida, modifique os parâmetros de inicialização para ligar o i2c no início. Digitando o comando bash:
    sudo nano /boot/config.txt
    e. Adicione as seguintes linhas ao final deste arquivo:
    dtparam =i2c1 =on
    dtparam =i2c_arm =on
    f. Reinicie o Raspberry Pi
  2. Instalando e executando o software MPU-6050-Pi-Demo
    a. Insira os seguintes comandos bash em uma janela de terminal:
    git clone git://github.com/richardghirst/
    PiBits.git
    cd PiBits / MPU6050-Pi-Demo
    sudo apt-get install libgtkmm-3.0-dev
    b. Alguns dos arquivos de origem precisam ser editados para funcionar com o Pi. Precisamos modificar os arquivos I2Cdev.cpp e setup-i2c.sh. Use os comandos bash
    “nano” para editar o arquivo.
    c. Altere todas as referências a “/ dev / i2c-0” para ler “/ dev / i2c-1” neste arquivo e salve.
    d. Digite os seguintes comandos bash para compilar o código-fonte:
    make
    ./setup-i2c.sh
    e. Espere até que as fontes tenham terminado de compilar, então digite o seguinte comando bash:
    sudo i2cdetect -y 1
    f. Você deve ver a seguinte saída

g. Agora execute o programa de exemplo “demo_raw” nesta pasta digitando o seguinte comando bash:
./demo_raw
h. Esta demonstração exibirá valores brutos de giroscópio e aceleração no terminal
a / g:Axe Ay Az Gx Gy Gz
  1. A fim de obter os dados do módulo Adafruit GPS, a Adafruit tem seu próprio software desenvolvido por conta própria, denominado GPS Daemon (gpsd). O tutorial está disponível no link:https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi
  2. Visto que o gpsd não é um software de código aberto, é melhor usar um software de terceiros que permita aos usuários modificar e criar seu próprio arquivo para ler do gps. “Libgps” é uma biblioteca de gps de código aberto criada para uso principalmente em placas ARM Raspberry e foi testada com Adafruit Ultimate GPS Breakout. Estamos usando esta biblioteca em nosso projeto.
  3. Instalando e compilando o pacote libgps.
    a. Para instalar o libgps, digite os seguintes comandos:
    git clone git://github.com/wdalmut/libgps.git
    cd libgps
    b. Depois de direcionar para a pasta libgps, construa os arquivos para obter libgps.a digitando:
    make
    sudo make install
  4. Você pode encontrar um código de amostra na pasta de exemplos chamada “position_logger.c” para testar a conexão
    a. Compile-o com
    gcc -o position_logger position_logger.c -lgps
    -lm
    b. Execute-o com
    $ ./position_logger
    c. Quando houver um sinal gps válido (o LED de correção não está piscando em 1 Hz),
    você deve ver os graus decimais para latitudes e longitudes
    diretamente no console, como o seguinte:
    45.071060 7.646363
    45.071082 7.646385
    45.071078 7.646387
    45.071060 7.646373
    45.071048 7.646358
    45.071052 7.646372
    45.071057 7.646393387
    45.071060 7.646373
    45.071048 7.646358
    45.071052 7.646.372
    45.071057 7.64639338
    45.071062 / 7.64639338
    45.071062 / 7.64639338
    45.071062 / 7.64639338
    45,071073 7,646395
    45,071082 7,646403
    Conclusão
    Esta nota de aplicação pegou dois sensores como exemplo e orientou o usuário como configurar a comunicação serial entre os sensores e o Pi desde a primeira etapa. Também explicou resumidamente o método de linha de comando para editar, compilar e executar um arquivo. No entanto, para gravar esses dados do sensor em um algoritmo, são necessários muito mais esforços do que apenas visualizá-los. O objetivo final, ou em outras palavras, a derivação mais avançada desta nota de aplicação deve abordar diferentes bibliotecas de sensores a partir de um único
    arquivo de script. Isso requer uma compreensão mais profunda dos princípios de codificação por trás de cada pacote de software de sensor.
    Referência:
  5. Kevin Townsend. Adafruit Ultimate GPS no Raspberry Pi, 15 de julho de 2014.
    Web. https://learn.adafruit.com/downloads/pdf/adafruit-ultimate-gps-on-theraspberry-pi.pdf
  6. Walter Dal Mut. Biblioteca UART NMEA GPS para Raspberry Pi. 08 de setembro de 2014.
    Web. https://github.com/wdalmut/libgps
  7. InvenSense. Folha de dados MPU-9150, 18 de setembro de 2013. Web. http://
    www.invensense.com/mems/gyro/documents/PS-MPU-9150A-00v4_3.pdf

Fonte:A integração dos dados do sensor com o microprocessador Raspberry Pi

Processo de manufatura

  1. Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
  2. Monitoramento de temperatura no Raspberry Pi
  3. Monitorando a temperatura com Raspberry Pi
  4. Sensor de movimento usando Raspberry Pi
  5. Sensor de umidade do solo Raspberry Pi
  6. Acompanhamento de rotação horizontal / vertical com o pi de framboesa
  7. Como conectar um sensor ultrassônico Lego Mindstorms NXT ao Raspberry Pi
  8. Sensor de alcance ultrassônico HC-SR04 no Raspberry Pi
  9. Crie sua primeira IOT com um Raspberry Pi, sensor DHT11 e Thingspeak.
  10. Aeroponia com Raspberry Pi e sensor de umidade