Índice:

Robô Raspberry SPy: 8 etapas (com imagens)
Robô Raspberry SPy: 8 etapas (com imagens)

Vídeo: Robô Raspberry SPy: 8 etapas (com imagens)

Vídeo: Robô Raspberry SPy: 8 etapas (com imagens)
Vídeo: New Raspberry Pi Cameras - Raspberry Pi Camera Module V3 2024, Julho
Anonim
Image
Image
Robô Raspberry SPy
Robô Raspberry SPy

Este projeto permite que você conduza um robô por meio de uma página da web e veja uma transmissão ao vivo. Pode ser usado para espionar animais de estimação, certificar-se de que não há nada queimando no forno e até mesmo para observar pássaros! A DFRobot forneceu o Raspberry Pi 3 e o módulo de câmera Raspberry Pi.

Etapa 1: O Robô Eletrônico

O Robô Eletrônico
O Robô Eletrônico

Comecei montando o kit de chassis 2WD MiniQ da DFRobot. Deslizei as rodas nos eixos do motor, depois as inseri nos suportes e as fixei no chassi. Finalmente, adicionei os suportes de metal. Agora era a hora de construir a placa principal. O driver do motor L293d foi soldado no lugar, junto com os fios que ligam os pinos GPIO do Raspberry Pi. Em seguida, soldei um conector para a bateria, pois isso fornecerá a alimentação principal. Depois que a fonte de alimentação foi adicionada, instalei um regulador de 5V.

Etapa 2: Configurando o Pi

Configurando o Pi
Configurando o Pi

O DFRobot me procurou e enviou seu Módulo de Câmera Raspberry Pi 3 e Raspberry Pi. Então, depois de abrir as caixas, comecei a trabalhar configurando o cartão SD. Primeiro fui para a página de downloads do Raspberry Pi e baixei a versão mais recente do Raspbian. Em seguida, extraí o arquivo e coloquei em um diretório conveniente. Você não pode simplesmente copiar / colar um arquivo.img em um cartão SD, você tem que "gravá-lo" no cartão. Você pode baixar um utilitário de gravação como o Etcher.io para transferir facilmente a imagem do sistema operacional. Depois que o arquivo.img estava no meu cartão SD, eu o inseri no Raspberry Pi e liguei. Após cerca de 50 segundos, desconectei o cabo e removi o cartão SD. Em seguida, coloquei o cartão SD de volta no meu PC e fui para o diretório "boot". Abri o bloco de notas e salvei-o como um arquivo em branco chamado "ssh" sem extensão. Também havia um arquivo que adicionei chamado "wpa_supplicant.conf" e coloquei este texto nele:

rede = {ssid = psk =}

Em seguida, salvei e ejetou o cartão e coloquei-o de volta no Raspberry Pi 3. Isso agora deve permitir o uso de SSH e conexão com Wi-Fi.

Etapa 3: preparando a câmera

Preparando a câmera
Preparando a câmera

Por padrão, a câmera está desabilitada no Pi, então você deve abrir o tipo de terminal sudo raspi-config para abrir o menu. Vá para "opções de interface" e habilite a câmera. Agora basta selecionar "Concluir" e inserir o cabo de fita do módulo da câmera na área correta do Pi.

Etapa 4: Instalando o software

Existem vários softwares diferentes que podem transmitir vídeo, como vlc e motion, mas decidi usar o mjpeg-streamer devido à sua baixa latência e fácil instalação. De acordo com as instruções no site, faça um clone do git https://github.com/jacksonliam/mjpg-streamer.git em uma pasta e digite sudo apt-get install cmake libjpeg8-dev para instalar as bibliotecas necessárias. Mude o seu diretório para a pasta que você baixou e digite make seguido de sudo make install para compilar o software. Por fim, insira export LD_LIBRARY_PATH =. e para executá-lo digite./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Você pode acessar o fluxo indo para https://: 8080 / stream.html para visualizar o fluxo.

Etapa 5: Controlador

Controlador
Controlador
Controlador
Controlador

Em seguida, veio a parte de como controlar um Raspberry Pi por WiFi, porque o Bluetooth tem um alcance muito pequeno. Decidi usar um servidor Flask rodando no Raspberry PI e um módulo ESP8266 ESP12E para enviar dados para ele. O ESP8266 possui apenas uma entrada analógica, o que significa que eu não poderia usar o joystick diretamente, pois são necessárias duas entradas analógicas. A melhor opção foi o ADS1115, que é um dispositivo I2C que lê sinais analógicos com resolução de 16 bits. Simplesmente conectei SDA a 4 e SCL a 5, junto com VCC e GND. O eixo X do joystick se conecta a A0 no ADS1115 e o eixo Y se conecta a A1. MAS, acidentalmente queimei o ADS1115, então tive que recorrer à segunda melhor opção: botões! Então agora minha configuração é uma ESP8266 Sparkfun Thing Dev Board com 3 botões - avançar, direita e esquerda. Agora, sempre que um é pressionado, ele envia dados para girar as rodas nessa direção.

Etapa 6: o código para o robô

O Código para o Robô
O Código para o Robô

Fiz um projeto anterior que utilizava a biblioteca GPIO PWM do Pi para controlar os motores via json, então apenas redirecionei o código para aceitar dados por meio de um aplicativo Flask. Flask é uma biblioteca Python que essencialmente transforma seu Pi em um servidor web capaz de enviar e receber dados. Ao usar o PWM, os motores podem ser controlados com maior precisão em comparação com o tank drive. Isso também significa que o robô pode ir a velocidades variáveis em vez de uma velocidade fixa. Meu aplicativo flask está configurado para alterar o PWM dos motores assim que receber dados de uma solicitação GET via http do ESP12e. Ele também usa a biblioteca subprocess. Popen para executar o script webstreaming em segundo plano. Anexei o código à página do projeto, então tudo o que é necessário é um download.

Etapa 7: Código do controlador

O código era muito simples, basta fazer leituras dos 3 pinos, executá-las em algumas instruções if para determinar a direção da roda e, finalmente, enviar esses valores para o Raspberry Pi. A adição da placa ESP8266 para o Arduino IDE vem com a biblioteca HTTPClient, que lida com cabeçalhos e envio de dados. O servidor Flask precisa receber dados por meio de uma chamada POST, então o código inicia uma conexão com o servidor da web Raspberry Pi, adiciona um cabeçalho aos dados denotando que está codificado em JSON e, finalmente, envia os dados na forma de um objeto JSON. Eu adicionei um atraso de 40 ms para evitar que o Raspberry Pi fique sobrecarregado com dados.

Etapa 8: executando o Raspberry SPy

Executando o Raspberry SPy
Executando o Raspberry SPy
Executando o Raspberry SPy
Executando o Raspberry SPy

Tudo o que é necessário é digitar sudo python.py! Você deve ver a luz da câmera e, indo para o endereço da web do pi com a porta 8080, o stream deve estar visível. Agora você pode usar o controlador em qualquer lugar da casa e ter um feed ao vivo também.

Recomendado: