
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03



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

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

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

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


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ô

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


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:
Arduino - Robô de solução de labirinto (MicroMouse) Robô que segue a parede: 6 etapas (com imagens)

Arduino | Maze Solving Robot (MicroMouse) Wall seguindo Robot: Bem-vindo, sou Isaac e este é meu primeiro robô " Striker v1.0 ". Este robô foi projetado para resolver um labirinto simples. Na competição, tivemos dois labirintos e o robô foi capaz de identificá-los. Quaisquer outras mudanças no labirinto podem exigir uma mudança no
Pocket Spy-Robot: 5 etapas (com imagens)

Pocket Spy-Robot: Entediado durante o bloqueio? Quer explorar o reino escuro sob o sofá da sala? Então o robô espião de bolso é para você! Com apenas 25 mm de altura, este pequeno robô é capaz de se aventurar em lugares muito pequenos para as pessoas irem e devolve tudo
Gesture Hawk: robô controlado por gestos manuais usando interface baseada em processamento de imagens: 13 etapas (com imagens)

Gesture Hawk: Robô controlado por gestos manuais usando uma interface baseada em processamento de imagem: Gesture Hawk foi apresentado no TechEvince 4.0 como uma interface homem-máquina baseada em processamento de imagem simples. Sua utilidade reside no fato de que nenhum sensor adicional ou vestível, exceto uma luva, é necessário para controlar o carro robótico que funciona em diferentes
Robô de equilíbrio / Robô de 3 rodas / Robô STEM: 8 etapas

Robô de balanceamento / Robô de 3 rodas / Robô STEM: Construímos um robô de balanceamento combinado e de 3 rodas para uso educacional em escolas e programas educacionais após as aulas. O robô é baseado em um Arduino Uno, um escudo personalizado (todos os detalhes de construção fornecidos), um pacote de bateria Li Ion (todos constr
O Robô Manteiga: o Robô Arduino com Crise Existencial: 6 Passos (com Imagens)

The Butter Robot: o Arduino Robot com crise existencial: Este projeto é baseado na série animada " Rick e Morty ". Em um dos episódios, Rick faz um robô cujo único propósito é trazer manteiga. Como alunos da Bruface (Faculdade de Engenharia de Bruxelas), temos uma tarefa para o mecha