Robô Wi-Fi controlado via Internet com Arduino e Shield Ethernet



Documentos relacionados
Arduino Aula 4 SHIELDS: BLUETOOTH, ETHERNET E EMG

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Manual Técnico Módulo Ponte H Dupla

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Parte I Tutorial Wi Fi 2.0 Arduino Exemplo usado: Webserver

Hacking Class Controlando tomadas da sua casa via Internet

Repetidor / Access Point Wi Fi N Mbps WN9255. Guia Rápido de Instalação

O Laboratório de Garagem

Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Manual. Controle de motores via Bluetooth. William Trevine

Manual da Placa de Interface e Acionamento. SnowFlakes 4S

Programa de Atualização de Pontos do Lince GPS

AirPort Express: configurações iniciais

GERTEC Manual de Operação e Instalação MTi-760 Versão 1.0

Programação de Robótica: Modo Circuitos Programados - Avançado -

Robótica com Arduino

GUIA RÁPIDO. DARUMA Viva de um novo jeito

Programa de Instalação do Lince GPS

Como atualizar os preços da ABCFarma.

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO

Queremos ajudar você a usar melhor a sua internet.

1. Introdução. 2. Conteúdo da embalagem

Manual Equipamento ST10 Flasher Rev. 1

Banner Flutuante. Dreamweaver

Cerne Tecnologia e Treinamento

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

Guia de instalação. 3. Acesse o menu novamente vá em SISTEMA, CANAL GESTÃO e DIGITAL CHANNELS

Programação Básica em Arduino Aula 2

Resolvendo problemas de conexão de rede wireless no pregão 83/2008

TeamViewer 9 Manual Wake-on-LAN

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

O Servidor de impressão DP-300U atende a seguinte topologia: Podem ser conectadas 2 impressoras Paralelas e 1 USB.

Câmera IP Sem/Com Fio. Manual de Instalação Rápida. (Para MAC OS)

Roteador N300 WiFi (N300R)

Compartilhando arquivos no Windows XP

1. Instalei o DutotecCAD normalmente no meu computador mas o ícone de inicialização do DutotecCAD não aparece.

Descrição dos pinos do Módulo Driver Motor com Dupla Ponte-H - L298N:

ROTEADOR WIRELESS N 300 ADSL2+ DSL-2740E GUIA DE INSTALAÇÃO RÁPIDA

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Capítulo 2. Laboratório 2.1. Introdução ao Packet Tracer, Roteadores, Switches e Inicialização

PASSO A PASSO PARA CADASTRAR OFERTAS, PRODUTOS E SERVIÇOS

Acesso via Roteador (WIRELESS - CABEADO)

STK (Start Kit DARUMA) Utilizando conversor Serial/Ethernet com Mini-Impressora DR600/DR700.

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Índice. Instalação de driver no Windows Vista

Com o DPR-1260 podem ser utilizadas até 4 impressoras USB. Segue um exemplo de topologia a que o equipamento atende:

RESULTAR EM "CHOQUE ELÉTRICO", FOGO, ENTRE OUTROS.

Manual de utilização do módulo NSE METH-8RL/Exp

Sessão Prática: Oficina de Robótica com NI LabVIEW e LEGO Mindstorms NXT

O Servidor de impressão DP-301U atende a seguinte topologia: Com o DP-301U pode ser conectada uma impressora USB.

Tutorial de Atualização de Mikrotik

ÍNDICE INFORMAÇÕES GERAIS DO MODEM... 3 INSTALAÇÃO DO MODEM... 6 ACESSO ÀS CONFIGURAÇÕES DO MODEM... 8 CONFIGURAÇÃO WI-FI... 10

Daruma NFCe Conheça todos os passos para testar a NFCe Daruma

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Guia de Instalação Rápida. Guia de Instalação Rápida. Adaptador PCI-E Sem Fio N300/N150. Adaptador PCI-E Sem Fio N300/N150

GUIA DE INSTALAÇÃO F 19

GUIA DO CLIENTE VETTI INSTALANDO SEU KIT A-HD

Lojamundi CNPJ: / Av. Paranoá Qd. 09 conj. 01 lote 01 sala 304, Paranoá DF CEP:

GUIA DE INSTALAÇÃO Modem 4G

Vivo Soluciona TI. Manual de Autoinstalação

Como melhorar o sinal da rede sem fio mudando o canal Wi-Fi do roteador

Guia Rápido de Instalação. Modelo M151RW

KVM CPU Switch 4 Portas Manual do Usuário

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA CURSO DE ENGENHARIA DE COMPUTAÇÃO

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

Caro cliente. Guia do cliente. Página 1

MANUAL DE CONFIGURAÇÃO

GUIA DO CLIENTE VETTI INSTALANDO SEU KIT IP-Onvif 720P

Projeto No. 11 Display de Leds de 7 Segmentos

SISTEMA DE MONITORAMENTO VIA RFID

Manual de funcionamento Esteira transportadora

Conexão rápida entre dois computadores em uma plataforma Linux

Aula Prática Wi-fi Professor Sérgio Teixeira

Monitoramento Remoto Wi Fi Mod. CS9267

MANUAL ZEDIT 32 Índice:

Manual do instalador Box Output DC Rev Figura 01 Apresentação do Box Output DC.

Manual de Instalação de Rede. Epson Stylus TX550W

Usar o Office 365 no iphone ou ipad

Procedimentos para Configuração de Redirecionamento de Portas

COMO USAR DOIS MONITORES NO WINDOWS 8

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Como funciona? SUMÁRIO

Guia de Instalação de Software

Testador de cabos de rede

Servo Motores. Jener Toscano Lins e Silva

Dúvidas Freqüentes sobre o OpenOffice Apresentação

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

UNIDADE V COMO CONSEGUIR LEADS

MANUAL DO ANIMAIL Terti Software

Guia Rápido de Instalação Ilustrado

Central de Alarme de Oito Zonas

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Poder Judiciário Tribunal Regional Federal da Terceira Região

Microcontrolador Modelix 3.6

Instalação Mesa Virtual 2.0 Impacta

Transcrição:

Robô Wi Fi controlado via Internet com Arduino e Shield Ethernet Robô Wi-Fi controlado via Internet com Arduino e Shield Ethernet Esse é um robô com 3 rodas feito com motores DC e controlado pelo Arduino com Shield Ethernet. As duas rodas da frente possuem tração, cada uma está ligada a um motor DC, a de trás gira e vira livremente. Se os dois motores girarem para frente, o robô anda para frente, se o motor da direita gira para frente e o motor da esquerda gira para trás, o robô vira para a esquerda, e vice-versa para virar para a direita.

O robô é comandado por uma página HTML que ele mesmo gera trabalhando como webserver. Ou seja, você acessa o endereço IP configurado no programa feito para o Arduino e abre a página HTML que ele gera. Ela contém 3 botões: esquerda, frente e direita. Quando se aperta um botão, o formulário da página HTML envia os dados via ethernet para o arduino+shield que interpreta e manda sinais para uma placa controladora. Essa placa foi feita com transistores operando como chave e relês de dois pólos e dois terminais, que invertem a polaridade dos motores conforme a direção que se pretende que eles girem. O arduino é programado para emitir 4 sinais digitais de saída, 2 para cada motor, sendo 1 para acionar o motor (liga/desliga através dos transistores) e outro para dizer a direção ( 0 para a frente, e 1 para trás), esse último sinal aciona o relê que inverte a polaridade do motor. Cada vez que o usuário aperta o botão, o programa aciona os motores de acordo com a direção a ser seguida por 1 segundo para virar e 2 segundos para andar para frente. Isso evita que o robô ande indefinidamente caso haja perda de conexão. Já que foi desenvolvido para operar remotamente em rede wi-fi (ele possui um access point acoplado) com câmera IP e via internet (basta configurar o roteador onde ele será instalado para fazer encaminhamento de porta). Além disso existe o atraso da câmera e da internet. Para que seja viável sua operação, o usuário terá que dar o comando e aguardar a resposta do sistema. Acompanhando via câmera IP. Dessa maneira pode-se controlar o robô de qualquer lugar no planeta. Em caso de dúvida, é só escrever. Veja abaixo o diagrama de blocos, as imagens e o programa para o Arduino:

Diagrama de blocos

Robô (caixa plástica, câmera IP, rodízios de carrinho de mão, switch e access point) Robô aberto mostrando a montagem (tosca eu sei! Hehehe... mas foi só para brincar)

Placa controladora dos motores. Transistores operando como chave e relês 2 terminais e 2 posições para inversão da polaridade do motor (andar para trás) Placa reguladora de tensão, alimenta o Switch e a Câmera. O resto trabalha em 12V, que é a tensão da bateria.

Arduino com Ethernet Shield Programa para o arduino. Usa biblioteca para o Ethernet Shield: #include <Ethernet.h> #include <WString.h> // network configuration. gateway and subnet are optional. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; byte ip[] = { 192, 168, 0, 177 ; byte gateway[] = { 192, 168, 0, 1 ; byte subnet[] = { 255, 255, 255, 0 ; boolean esquerda = false; boolean direita = false; boolean frente = false; boolean primeiralinha = true; Server server = Server(80); void setup() { // initialize the ethernet device Ethernet.begin(mac, ip, gateway, subnet); // start listening for clients server.begin();

pinmode(2, OUTPUT); pinmode(3, OUTPUT); pinmode(4, OUTPUT); pinmode(5, OUTPUT); void loop() { Client client = server.available(); esquerda = false; direita = false; frente = false; // Aguarda o fim da HTML request do cliente if (client) { boolean NEW_LINE = false; boolean primeiralinha = true; String linha = ""; // Aguarda a chamada HTML e extrai dela a resposta do formulario while (client.connected()) { char c = client.read(); // Le os caracteres da chamada HTML um a um linha.append(c); // Monta a string 'linha' com os caracteres lidos if (c == '\n') { // Se for fim da linha if (linha.contains("esquerda=esquerda") && primeiralinha) esquerda = true; // Se a string (linha) tiver o termo e for a 1a linha da chamada HTML if (linha.contains("direita=direita") && primeiralinha) direita= true; // idem if (linha.contains("frente=frente") && primeiralinha) frente =true; // idem linha = ""; // apaga linha para receber a proxima linha NEW_LINE = true; // comecou nova linha primeiralinha = false; // a proxima nao sera a primeira linha else if (c!= '\r') {NEW_LINE = false; //ainda nao acabou o texto if (c == '\r' && NEW_LINE) { // acabou a chamada porque a ultima linha eh vazia 'carriage return' break; // Interrompe o loop do while client.println("http/1.1 200 OK");

client.println("content-type: text/html"); client.println(); client.write("<html><head></head><body>controle de Robo atraves de Rede Ethernet<br><br>"); if (direita) { client.write("direita..."); digitalwrite(2, HIGH); digitalwrite(3, LOW); digitalwrite(4, HIGH); digitalwrite(5, HIGH); delay(1000); else {digitalwrite(2, LOW); digitalwrite(3, LOW); digitalwrite(4, LOW); digitalwrite(5, LOW); if (esquerda) { client.write("esquerda..."); digitalwrite(2, HIGH); digitalwrite(3, HIGH); digitalwrite(4, HIGH); digitalwrite(5, LOW); delay(1000); else {digitalwrite(2, LOW); digitalwrite(3, LOW); digitalwrite(4, LOW); digitalwrite(5, LOW); if (frente) { client.write("frente..."); digitalwrite(2, HIGH); digitalwrite(3, LOW); digitalwrite(4, HIGH); digitalwrite(5, LOW); delay(2000); else {digitalwrite(2, LOW); digitalwrite(3, LOW); digitalwrite(4, LOW); digitalwrite(5, LOW); client.println( "<table><tr>" "<td><form method=get name=esquerda><input type=hidden name=esquerda value=esquerda><input style=width:60pt type=submit value=esquerda></form></td>" "<td><form method=get name=frente> <input type=hidden name=frente value=frente> <input style=width:60pt type=submit value=frente></form></td>" "<td><form method=get name=direita> <input type=hidden name=direita value=direita> <input style=width:60pt type=submit value=direita></form></td>" "</tr></table></body></html>"); client.stop(); Atenção! De tempos em tempos a Arduino altera algumas bibliotecas. Não copie e cole o programa acima apenas, analise-o e entenda-o. Assim, você será capaz de fazer qualquer atualização necessária. Ah! E claro. Caso faça alguma atualização, compartilhe-a conosco aqui. Muita gente tem me perguntado diversas coisas sobre esse projeto, demosntrando dificuldades variadas. Para que seu projeto evolua de maneira a manter a sua motivação do começo ao fim, sugiro que comecem do mais básico e vão expandindo conforme a grana e as dificuldades técnicas. Assim, não importa até onde cheguem, sempre terão algo interessante (e funcionando) alcançado. Sugiro as seguintes etapas: Etapa 1 - Parte mecânica

- Com peças usadas de bicicleta, vocês podem construir as esteiras, que seriam movimentadas por motores DC com caixa de redução. Acessa esse endereço: http://labdegaragem.com/profiles/blogs/esteira-para-robo-com-corrente Se essa parte estiver muito difícil ou faltar ferramentas, coloque rodas simples mesmo. Faça um controle remoto simples para controlar o robô. Etapa 2 - Parte eletrônica - Faça uma plaquinha simples com transistores de potência para controlar o acionamento dos motores a partir de baixa corrente em 5V. Com isso, qualquer sinal digital TTL poderá controlar o seu robô, sem risco de queimar o equipamento que emite o sinal. Use transistores de portência, MOSFETs, ou mesmo relês. Atenção a corrente que esses componentes irão drenar, mesmo na base. Alimente esse circuito com uma fonte de tensão adequada para os motores, ou mesmo uma bateria. Evite baterias muito pesadas. Etapa 3 - Integração com o Arduino - Faça a integração do que foi feito acima com um Arduino. Escreva um programa que controle o seu robô a partir de portas de entrada do Arduino, ou o que é mais interessante, a partir de comandos de texto que você envia via porta serial (USB) do Serial Monitor da IDE do Arduino para o seu robô. Etapa 4 - Conexão Ethernet - Adicione um Shield Ethernet ao Arduino, conecte o seu robô ao seu Roteador (via cabo de rede). O seu robô ainda não é wi-fi, mas já estará em rede. Programe um webserver como descrito no Projeto Robô Wi-Fi para que os controles sejam feitos através de form HTML. Existem outras formas de fazer esse controle, se descobrir alguma bacana, posta pra gente aí. Etapa 5 - Wi-Fi - Configure um Access Point (não use um de apenas 1 porta, você precisará de 2 se quiser colocar câmera) para acessar a sua rede wi-fi. Desative a conexão wi-fi do seu notebook, se usar Desktop, desconecte o cabo de rede e conecte ao Access Point. Se a configuração estiver correta, o seu computador deve ser capaz de acessar a rede via wireless. Configurado o AP, conecte o shield ethernet ao Access Point, e tente acessar o seu IP do seu computador (reconectado a rede, claro). Se tudo funcionar, o seu Robô já terá acesso a rede (e a internet) via wireless. Etapa 6 - Câmera IP - Prenda uma câmera IP no seu robô e conecte-a ao Access Point. Agora seu robô tem 2 IPs, um para acessar o Arduino (webserver) e outro para a câmera. Desse jeito, para controlar o robô, você precisa abrir 2 janelas de browser para ver e controlar o robô. Etapa 7 - Parte elétrica - Seu robô já está wi-fi, mas ainda está conectado a rede elétrica através das fontes de alimentação do Arduino, do AP e da placa que alimenta os motores. Agora é hora de adicionar a bateria e fazer um circuito regulador de tensão para alimentar esses dispositivos. Verifique qual é a tensão de alimentação de cada um, e a corrente que cada um puxa. Geralmente, cada dispositivo não deve puxar muita coisa, mas é preciso medir para ter certeza. CIs da linha 78XX devem resolver (até 1A cada). Etapa 8 - Port Forwarding - Agora seu robô está livre de fios e cabos e já pode ser acessado via rede local wi-fi. Para que ele possa ser controlado de qualquer lugar do planeta, é preciso que o roteador permita que acessos externos a sua rede sejam encaminhados para o seu robô, onde o webserver irá responder. Para isso, configure um "encaminhamento de portas" no seu roteador, por exemplo, quando alguém acessar o seu IP externo 201.xx.yy.z:porta, o seu robô será acessado pelo webserver que você programou no Arduino, onde "porta" é a porta configurada no roteador, que é encaminhada para o IP do webserver (ou o da câmera). Seu robô usará 2 portas (1 para a câmera e outra para o webserver no Arduino). Pronto! Caso surjam dúvidas, pode mandar que vou ajudar no que estiver ao meu alcance. Caso faça melhorias nesse projeto, poste aqui para a gente aprender com você também.