Índice:

Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth: 7 etapas (com imagens)
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth: 7 etapas (com imagens)

Vídeo: Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth: 7 etapas (com imagens)

Vídeo: Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth: 7 etapas (com imagens)
Vídeo: Aula 26 - Projeto 22 - Pareamento Bluetooth com Raspberry Pi 4- Livro Raspberry Pi Descomplicado 2024, Novembro
Anonim
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth
Raspberry Pi, Android, IoT e Drone com tecnologia Bluetooth

Usando um Raspberry Pi para a lógica de bordo, este computador móvel compacto criará uma porta local que transmite um vídeo em tempo real enquanto cria soquetes Bluetooth para ler valores enviados por um aplicativo Android personalizado. O aplicativo sincroniza com o drone e usa a entrada do usuário para enviar instruções para o drone instantaneamente.

Este projeto é bastante difícil de fazer do zero. Esperançosamente, as informações a seguir fornecerão uma visão para várias aplicações de drones. Todos os projetos de software e circuito pertencentes a este projeto são fornecidos. Sinta-se à vontade para modificar e compartilhar o código de acordo com sua preferência. Use as informações fornecidas com responsabilidade e fique à vontade para deixar um comentário abaixo.

Etapa 1: O Hardware

O Hardware
O Hardware
O Hardware
O Hardware
O Hardware
O Hardware
O Hardware
O Hardware

Abaixo está a lista de hardware que usei.

  • Raspberry Pi 3 Modelo B
  • Módulo de câmera Raspberry PI
  • Motorista L298N
  • 2, motores DC
  • Um teclado, qualquer monitor, mouse, cabo Ethernet e cabo HDMI (para o pi)
  • Cartão MicroSD 8GB
  • Parafusos, fita, ect.
  • 2 rodas
  • Um dispositivo Android Bluetooth (meu telefone)
  • 2, 18650 células
  • Um regulador de 5 volts
  • Um computador para programar o aplicativo

A Raspberry Pi: Para resoluções de stream mais altas (ou para iniciantes), eu recomendaria a versão mais recente do modelo B, enquanto as versões mais compactas podem usar o modelo A + mais recente ou o Pi Zero (versão da câmera). Lembre-se de que se você usar um raspberry pi zero, precisará de um dongle Bluetooth e / ou WiFi para ele. Este tutorial presumirá que você está usando um Raspberry Pi 3 B.

Um driver de motor: usei um L298N, embora qualquer driver de motor deva funcionar. Apenas certifique-se de que ele pode lidar com a tensão e a corrente de seus motores.

2 motores CC: certifique-se de que eles podem suportar o peso do seu drone.

Um corpo: usado para segurar todos os componentes. Normalmente, plástico rígido ou alumínio é um material durável e leve de usar. Para resultados ideais, até mesmo uma impressora 3D pode ser usada.

Uma fonte de alimentação: quase sempre é a decisão mais difícil ao escolher as peças. A bateria necessária depende do consumo de corrente. Para aplicações de baixa potência (como 1 ou 2 amperes), uma bateria de 9 V deve ser suficiente. Para amperagem mais alta, eu recomendo uma célula de íon de lítio 18650 ou uma bateria de polímero de lítio, pois são leves, podem conter muita energia para seu tamanho e são recarregáveis.

2 Rodas: Apenas certifique-se de que suas Rodas tenham o mesmo tamanho de orifício que o eixo do seu motor. Certifique-se também de que os diâmetros das rodas são grandes o suficiente para o seu drone. Uma vez que existem várias variações e designs possíveis para este projeto, existem vários tipos e tamanhos de rodas diferentes para usar.

Reguladores de tensão: um regulador de 5 volts é necessário para alimentar o pi por meio de uma bateria. Usei um conversor de buck LM2596 DC-DC.

A maioria dos produtos nos links foram usados neste projeto e foram os melhores negócios que pude encontrar na época.

Agora que você tem tudo de que precisa, vamos configurar o pi.

Etapa 2: Configurando o Raspberry Pi

Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi

Esta etapa mostrará como configurar o Raspberry Pi para que você possa começar a codificar. Se você já tem uma configuração de pi com Raspbian, fique à vontade para passar para a próxima etapa.

Primeiro, você precisa baixar um sistema operacional para o framboesa. Obtenha NOOBS se você for um iniciante. Se você já tem uma experiência notável com um pi de framboesa, então você pode se interessar pelo Raspbian. Presumo que você esteja usando o NOOBS para este tutorial.

Durante o download, formate seu cartão SD com o SD Formatter.

Agora extraia e copie o conteúdo do download na raiz do seu cartão SD. Root significa simplesmente que não está dentro de nenhuma pasta. Se uma nova pasta foi criada para conter todos os arquivos extraídos, copie esse arquivo.

Em seguida, conecte o cartão SD ao pi. Durante a inserção, ele deve "clicar" ou apenas ficar dentro da parte inferior do pi.

Conecte o mouse e o teclado no pi. Em seguida, conecte um cabo HDMI ao pi de um monitor. Por fim, conecte um adaptador de tomada de parede micro USB de 3 amp ao pi. Embora uma tomada seja recomendada, usei meu laptop como fonte de alimentação (USB do meu laptop para Micro USB no pi).

Deixe o pi fazer seu trabalho. Se solicitado, selecione Raspbian e deixe-o instalar. Siga as instruções do instalador. Pode demorar um pouco para ser concluído. Se tudo der certo, você deverá ver uma tela de desktop semelhante à mostrada acima.

Conecte um cabo Ethernet do seu roteador ao pi. Em seguida, abra a linha de comando (o ícone de "caixa" preta na parte superior da tela). Você precisará atualizar o pi por meio de uma rede com fio para conectá-lo a uma rede sem fio.

Em seguida, clique no ícone Cabo na parte superior da tela. Digite os detalhes da sua rede quando solicitado.

Digite o texto na próxima linha exatamente como mostrado e pressione Enter. Isso atualizará o pi. Pode demorar um pouco. Apenas deixe isso fazer o que quer.

sudo apt-get update

Em seguida, digite o código na próxima linha. Isso também levará algum tempo. Não faça nada até que esteja terminado.

sudo apt-get dist-upgrade

Agora você deve ser capaz de desconectar o cabo Ethernet, clicar no ícone sem fio na parte superior da tela, inserir as informações da sua rede e, finalmente, conectar-se à sua rede via sem fio.

Agora vamos codificar a parte do drone que controla os movimentos.

Etapa 3: manipulação de movimentos (servidor Bluetooth)

Movimentos de manipulação (servidor Bluetooth)
Movimentos de manipulação (servidor Bluetooth)

Para manipulação de movimentos, a linguagem de programação "Python 3" é usada. As mensagens que instruem o robô a se mover serão enviadas via Bluetooth do aplicativo.

Primeiro, você precisa instalar a biblioteca Bluetooth. Digite os seguintes comandos para fazer isso.

sudo apt-get update

sudo apt-get install bluetooth

sudo apt-get install bluez

sudo apt-get install python-bluez

Agora, na área de trabalho, clique no ícone do menu Iniciar, em Programação e em Python 3. Em seguida, na barra de ferramentas, clique em Arquivo, novo. Uma nova janela deve aparecer.

Copie o conteúdo do anexo "bluetoothpi.rtf" para a janela.

Na barra de ferramentas, clique em Arquivo, Salvar como. Salve-o no diretório / home / pi / Desktop / como moves.py.

Agora, para testar o código, clique no ícone Bluetooth no canto superior direito da tela. Emparelhe o raspberry pi com o seu dispositivo Android. Baixe um aplicativo chamado BlueTerm em seu dispositivo Android. Em seguida, na linha de comando, digite o seguinte código em negrito. Isso executará o código Python.

sudo python /home/pi/Desktop/movements.py

O texto "Aguardando conexões" deve aparecer no pi.

Inicie o BlueTerm e clique no ícone de opções e depois no botão "procurar conexões".

No aplicativo, o nome do seu raspberry pi deve aparecer. Clique no botão com o nome do pi. O texto "Conexão aceita de" deve aparecer no pi seguido de seu endereço. Agora, tudo o que você digitar no telefone, deve ser exibido no pi.

Você codificou com sucesso seu próprio soquete de servidor Bluetooth!

Etapa 4: o aplicativo Android (cliente Bluetooth)

O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)
O aplicativo Android (cliente Bluetooth)

Baixe o Android Studio aqui. Instale-o e siga as instruções fornecidas no instalador.

Comece um novo projeto. Crie uma atividade em branco chamada MainActivity.

Copie o conteúdo do anexo "Logic.txt" no arquivo "MainActivity.java" (guia). Ele contém toda a lógica por trás do aplicativo. Pode ser necessário alterar o nome do seu dispositivo na parte inferior do arquivo.

Em seguida, copie o conteúdo do arquivo "GUI" no arquivo "activity_main.xml" (guia). Ele contém uma GUI muito simples para o aplicativo.

Agora você precisará importar os botões de seta (imagens) para o aplicativo. Descompacte o anexo Arrows.zip. À esquerda do android studio, abra a estrutura do arquivo para ver app, res, minimap. Copie as imagens das setas (arquivos PNG), clique com o botão direito no minimapa do arquivo e cole as imagens no arquivo, mantendo os nomes das setas iguais. Deve se parecer com a imagem quando terminar.

Por fim, copie o conteúdo do arquivo "Manifest" para o seu arquivo "AndroidManifest.xml" (guia).

Para testar o aplicativo, você precisará executá-lo em seu dispositivo. Para fazer isso, você precisará definir o dispositivo para o modo de desenvolvedor e habilitar a depuração USB. Para a maioria dos dispositivos, você precisará ir em "Configurações", "Sobre o telefone", rolar até a parte inferior e clicar em "Número da versão" sete vezes até ver a mensagem "Agora você é um desenvolvedor!" Volte e você verá uma guia "Opções do desenvolvedor". Clique nele e habilite a depuração USB.

Conecte seu dispositivo Android ao computador via USB, clique no ícone de execução no Android Studio e selecione seu dispositivo.

No pi, inicie o código Python criado na etapa 3 digitando o comando em negrito:

sudo python /home/pi/Desktop/movements.py

Em seguida, clique no botão de conexão no aplicativo. Quando conectado, algumas setas devem aparecer no aplicativo. Sempre que você clicar em um, ele atualizará o estado de "movimento" do pi.

Tudo bem se o plano de fundo do aplicativo apresentar um erro. Isso será consertado mais tarde.

Você acabou de criar seu próprio aplicativo e cliente Bluetooth.

Etapa 5: Conectando o Hardware

Conectando o Hardware
Conectando o Hardware
Conectando o Hardware
Conectando o Hardware
Conectando o Hardware
Conectando o Hardware

Solde as conexões no diagrama acima. Anexe o módulo da câmera ao pi também.

Execute o aplicativo e execute o arquivo moves.py. Se os motores se moverem corretamente ao usar o aplicativo, fique à vontade para colocar todos os componentes em uma carcaça finalizada para o drone. Você pode precisar modificar os valores dos códigos "HIGH" e "LOW" para que ele se mova corretamente.

Na próxima etapa, adicionaremos o recurso de streaming do drone.

Etapa 6: streaming

Transmissão
Transmissão
Transmissão
Transmissão
Transmissão
Transmissão

Existem várias maneiras de transmitir um vídeo usando um Pi, mas usar uv4l é de longe a maneira mais fácil, praticamente sem atrasos.

Apenas uma observação: se você já montou o drone e não consegue conectá-lo ao monitor e ao teclado, será necessário conectar-se ao drone com SSH. Para fazer isso, baixe o Putty em seu computador. Abra-o e digite o endereço IP do seu raspberry (encontre o endereço IP digitando o comando ifconfig). Ele solicitará um nome de usuário e uma senha. O nome de usuário e a senha padrão são pi e raspberry, respectivamente. Agora, tudo o que você digitar na caixa de comando será como inserir comandos diretamente no drone.

configurando uv4l

Digite este comando:

sudo nano /etc/apt/sources.list

Adicione a seguinte linha na última linha do arquivo.

deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

Saia e salve o arquivo pressionando Ctrl-X e digitando Sim.

Em seguida, digite a seguinte linha e pressione Enter.

sudo apt-get update

então isso:

sudo apt-get install uv4l uv4l-raspicam

Digite os seguintes comandos linha por linha. Aguarde até que ele termine o que está fazendo antes de digitar na próxima linha.

sudo apt-get install uv4l-raspicam-extras

sudo service uv4l_raspicam restart

sudo rpi-update

sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp

sudo apt-get install uv4l-webrtc

sudo apt-get install uv4l-xmpp-bridge

sudo apt-get install uv4l-raspidisp-extras

Depois disso, tudo o que você precisa fazer é digitar o seguinte comando para iniciar o streaming (substitua "raspberrypi" pelo endereço IP / nome do host do raspberry em sua rede)

cvlc https:// raspberrypi: 8080 / stream / video.mjpeg

Isso iniciará o streaming de vídeo em tempo real na porta 8080. O stream deve ser visto no plano de fundo do seu aplicativo agora. Para visualizar o stream em qualquer navegador, digite este URL (onde "raspberrypi" é o endereço IP do seu drones).

https:// raspberrypi: 8080 / stream / video.mjpeg

Parabéns, você concluiu seu drone espião.

Etapa 7: Dirija

Ligue o botão liga / desliga e comece a explorar.

Se você quiser saber fazer outra coisa, pergunte-me e verei o que posso fazer.

Se você tiver alguma dúvida, comente abaixo e farei o possível para respondê-la.

Obrigado por ler!

Recomendado: