Introduction: Sistema Para Mapeamento De Buracos Em Vias Públicas Com a DragonBoard 410c

Este projeto foi desenvolvido para o programa de parcerias em IoT da Qualcomm - “Inventando o Futuro com DragonBoard 410c”. O histórico do desenvolvimento e outros detalhes podem ser encontrados no site do Embarcados Contest.

O sistema proposto visa detectar imperfeições na pavimentação para realizar um mapeamento da qualidade das vias públicas com um custo baixo de implantação, pois utiliza a própria frota da prefeitura ou até mesmo os ônibus do transporte público.

  • Problemas encontrados:
    • A pavimentação é sempre uma das principais reivindicações da comunidade e é um problema frequente nas cidades brasileiras.
    • Os buracos afetam a boa fluidez do trânsito e causam desconforto e prejuízos aos motoristas.
    • O método mais comum e utilizado atualmente para o levantamento das ruas que precisam de manutenção é por meio dos cidadãos que realizam chamados ao órgão responsável.
    • O que falta é um método de baixo custo para coletar dados sobre a qualidade do pavimento para todas as ruas de uma cidade de uma maneira consistente e metódica.
  • Solução proposta:
    • O projeto resolve os problemas apresentados por meio de um sistema que realiza o mapeamento da qualidade das vias públicas com um custo de implantação muito baixo, pois é possível utilizar a própria frota de carros da prefeitura ou até mesmo os ônibus do transporte público.
    • O sistema possui acelerômetro e uma câmera (na traseira de um veículo) para detectar imperfeições da pavimentação. Os dados serão registrados e apresentados em um mapa indicando a classificação da qualidade do pavimento, bem como os pontos críticos que devem ser priorizados.
  • Diferenciais:
    • Sistema open source que poderá ser modificado e adicionado novos recursos, como, por exemplo: sensor de qualidade do ar, sensor de nível UV, entre outros sensores que monitorem variáveis interessantes para indicadores de qualidade de vida de uma cidade.
    • Não existe nenhum sistema do tipo sendo utilizado no Brasil.
    • A proposta sugere utilizar a própria frota de carros da prefeitura ou o transporte público, ou seja, não é necessário destinar um veículo específico para realizar o mapeamento.
    • A ideia é que este mapeamento fique aberto para que qualquer cidadão veja e acompanhe a situação da pavimentação da cidade, podendo inclusive servir na tomadas de decisão ao traçar rotas desviando de pontos críticos.

Autor do projeto: Kleber Lima da Silva

Step 1: Materiais Utilizados

  • 1 Placa de desenvolvimento Qualcomm DragonBoard 410c (DB410c)
  • 1 Linker Mezzanine card para 96board
  • 1 Fonte AC/DC 12V 2A
  • 1 Módulo Acelerômetro+Giroscópio de 3 eixos - MPU6050
  • 1 Webcam USB
  • 1 Cartão micro SD + adaptador

Step 2: Diagrama De Blocos

Este diagrama de blocos mostra de maneira simplificada o hardware do sistema proposto e a partir dele, listam-se as principais funcionalidades de cada elemento:

  • Qualcomm DragonBoard 410C: placa de desenvolvimento com o Debian (Linaro Linux release 17.04) para a execução da aplicação.
  • GPS: obtenção dos dados de geolocalização.
  • WiFi: conectividade com a Internet para a comunicação com o servidor.
  • Cartão SD: log dos dados entre os envios para o servidor e enquanto não estiver conectado à Internet.
  • Webcam: obtenção das imagens da pavimentação para classificação e registro.
  • Acelerômetro: identificação de padrões de buracos e/ou qualidade da pavimentação.
  • Servidor (nuvem): local para guardar os dados e fotos obtidas pelo sistema.
  • Mapa: interface para a apresentação dos dados de maneira mais intuitiva para as tomadas de decisões.

Step 3: Instalação Do Debian Na DB410c

Neste passo são apresentados os procedimentos para instalar o Debian Linaro na memória interna da DB410c.

  • Baixar a imagem mais recente: neste link
  • Conferir o MD5SUM e descompactar a imagem
  • Gravar a imagem no cartão SD (pelo menos 4GB) - procedimentos no Linux:
    • Usar o comando lsblk para verificar o caminho do cartão SD (substituir o XXX)
    • sudo dd if=db410c_sd_install_debian.img of=/dev/XXX bs=4M oflag=sync status=noxfer
  • Gravar a imagem para a eMMC da DB410c:
    • Selecionar o boot (chave S6): 0-1-0-0 {SD Boot switch set to “ON”}
    • Necessário um teclado ou mouse para iniciar a instalação
    • Também é necessário um monitor HDMI
    • Conectar a alimentação, vai aparecer uma tela na qual deverá ser pressionado o botão “Install(i)”
    • Ao término, remover o cartão SD e clicar em OK
  • Usuário e senha padrão da imagem: linaro

Step 4: Instalação E Teste Do GPS Onboard Da DB410c

Este projeto foi desenvolvido em Python, a seguir são informados os comando prévios necessários para a utilização do script de testes do GPS onboard.

  • Instalar o GPS onboard: sudo apt-get install gpsd-clients gnss-gpsd
  • Dica 1: Visualizar NMEA no terminal: cat /dev/ttyGPS0
  • Dica 2: Comandos para visualizar as informações detalhadas do GPS: gpsmon (via terminal) ou xgps (com display)
  • Instalar a biblioteca parsing NMEA: pip install pynmea2
  • Instalar a biblioteca serial: pip install pyserial
  • Utilize este script em Python para testar o GPS: gps-test.py

Observação: todos os códigos fontes utilizados neste projeto estão neste repositório do GitHub.

Step 5: Instalação E Teste Do MPU6050

A sequência a baixo é necessária para a utilização do módulo MPU6050.

  • Usar o conversor de nível da Linker Mezzanine em 3V3 e ligar o módulo MPU6050 na porta "IIC"
  • Instalar o driver I2C: sudo apt-get install python-smbus
  • Permitir usuário normal linaro usar a I2C: sudo adduser linaro i2c
  • Instalar a biblioteca MPU6050:
  • Utilize este script em Python para testar o MPU6050: mpu-test.py

Step 6: Webcam - OpenCV E Envio Para O Google Drive

O script deste passo utiliza o OpenCV para tirar fotos e envia elas para o Google Drive.

  • Instalar o OpenCV: sudo apt-get install python-opencv
  • Instalar a biblioteca PyDrive: pip install PyDrive
  • Configurar a Google API: não fazer o passo 5 do guia deste link
  • Criar um arquivo settings.yaml para configurar a autenticação automática (melhor do que seguir o “passo 5” que é necessário sempre abrir o browser). Observação: ainda sim será necessário realizar o login e permitir o acesso pela primeira e única vez.
  • Utilize este script em Python para testar a Webcam e o envio para o Google Drive: cam-drive-test.py

Step 7: Aplicação Final

Em desenvolvimento...

Step 8: Referências

Step 9: Repositório No GitHub

Veja todos os códigos fontes do projeto no repositório do GitHub: olha-o-buraco

Comments

author
Swansong made it! (author)2017-07-04

That would be really helpful in rural areas, they tend to be left to deteriorate for longer periods of time than holes in city roads.

About This Instructable

120views

2favorites

Bio: Engenheiro Biomedico e Tecnico em Eletronica. Ampla experiencia com desenvolvimento de placas de circuito impresso e sistemas embarcados. Co-fundador/CTO da startup Ioton Technology, fundador ... More »
More by krebyy:Sistema Para Mapeamento De Buracos Em Vias Públicas Com a DragonBoard 410c
Add instructable to: