Códigos Utilizados:

Página em PHP

<html>
<head>
<title>Controle WebServer</title>
</head>
<body>

<?php
echo "<p>Pagina de Controle</p>";


include "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB0");
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
//sleep(1); //era 2

?>

<br>
<table>
<tr>

<tr>

<td></td>

<td>
<?php
// Botão para Frente ?>
<form action="index.php" method="POST">
<input type="hidden" name="direcao" value="frente" />
<input type="Submit" value="Frente">
</form>
</td>
</tr>


<td>
<?php
// Botão para Esquerda ?>
<form action="index.php" method="POST">
<input type="hidden" name="direcao" value="esquerda" />
<input type="Submit" value="Esquerda">
</form>
</td>

<td>
</td>

<td>
<?php
// Botão para Direita ?>
<form action="index.php" method="POST">
<input type="hidden" name="direcao" value="direita" />
<input type="Submit" value="Direita">
</form>
</td>

</tr>

<tr>
<td></td>
<td>
<?php
// Botão para Trás ?>
<form action="index.php" method="POST">
<input type="hidden" name="direcao" value="tras" />
<input type="Submit" value="Tras">
</form>
</td>
</tr>

</table>

<?php

if ($_POST['direcao']=="esquerda"){
echo "Anda para esquerda";
$serial->sendMessage('e');
}

if ($_POST['direcao']=="frente"){
echo "Anda para frente";
$serial->sendMessage('f');
}

if ($_POST['direcao']=="direita"){
echo "Anda para direita";
$serial->sendMessage('d');
}

if ($_POST['direcao']=="tras"){
echo "Anda para tras";
$serial->sendMessage('t');
}


$serial->deviceClose();

?>

</body>
</html>

Código para Arduino

#include <Servo.h> //Inclui a biblioteca Servo

char c;
Servo servodir,servoesq; // Identifica os servos utilizados

void setup(){

pinMode(13, OUTPUT);
servodir.attach(2); //Determina a porta 10 para o servo da direita
servoesq.attach(3); //Determina a porta 11 para o servo da esquerda

servodir.write(89.9);
servoesq.write(89.9);

//Inicializaçao da Serial e Abertura
Serial.begin(9600);
Serial.println("### WWW.LAB DE GARAGEM .COM ###");
Serial.println("### Servidor PHP e Arduino ###");

for (int i=0;i<5;i++){
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}

}

void loop(){

if (Serial.available() > 0)
{
c = Serial.read();
Serial.println(c);
}
else
{
delay(5);
}


if (c=='e'){
Serial.println("esquerda");
digitalWrite(13, HIGH);
servodir.write(75);
servoesq.write(78);
delay(500);
servodir.write(89.9);
servoesq.write(89.9);
digitalWrite(13, LOW);
}
if (c=='f'){
Serial.println("frente");
digitalWrite(13, HIGH);
servodir.write(75);
servoesq.write(100);
delay(1500);
servodir.write(89.9);
servoesq.write(89.9);
digitalWrite(13, LOW);
}
if (c=='d'){
Serial.println("direita");
digitalWrite(13, HIGH);
servodir.write(100);
servoesq.write(100);
delay(500);
servodir.write(89.9);
servoesq.write(89.9);
digitalWrite(13, LOW);
}
if (c=='t'){
Serial.println("tras");
digitalWrite(13, HIGH);
servodir.write(100);
servoesq.write(80);
delay(1000);
servodir.write(89.9);
servoesq.write(89.9);
digitalWrite(13, LOW);
}
if (c=='p'){
Serial.println("pare");
servodir.detach(); //Determina a porta 10 para o servo da direita
servoesq.detach(); //Determina a porta 11 para o servo da esquerda
delay(10000);
servodir.attach(2); //Determina a porta 10 para o servo da direita
servoesq.attach(3); //Determina a porta 11 para o servo da esquerda
Serial.println("reativado!");
}


c='\0';

}

Exibições: 3874

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Lucas Barreto em 3 novembro 2014 às 9:58

Ok, Pode deixar um abraço, valeu mesmo!!!

Comentário de Marcelo Rodrigues em 31 outubro 2014 às 15:27

Valeu Lucas!
Ah! Um detalhe. Não pode esquecer de dar permissão de acesso à porta serial, conforme esse tópico: http://labdegaragem.com/forum/topics/ajuda-com-webserver-apache-php...

Boa sorte!

Comentário de Lucas Barreto em 31 outubro 2014 às 7:38

Muito obrigado pelo compartilhamento Marcelo, boa sorte nos projetos, você merece!!!

Abraços

Comentário de Marcelo Rodrigues em 30 outubro 2014 às 17:42

Lucas,

Coloquei os códigos no post. Boa sorte!

Abraço!

Comentário de Lucas Barreto em 30 outubro 2014 às 9:35

Olá Marcelo, 

Achei legal seu projeto, gostaria de saber se vc compartilharia, me amarro em projetos desses tipos, não tenho tanta experiência com Arduíno assim, mas gostei, e como faço para te adicionar como amigo?

Valeu cara abraço e boa sorte nos seus projetos.

Comentário de Marcelo Rodrigues em 16 novembro 2013 às 12:45

Gean,

Nesse projeto usamos uma webcam comum mesmo transmitindo para um serviço de stream, o Ustream. O server com página em PHP ficou responsável pelos comandos de direção, enviando dados via serial para o Arduino.

No seu caso, você precisará embutir o vídeo na página do Server que você vai criar. Essa parte não fiz, então precisa fuçar.

Boa sorte!

Comentário de Gean Felipe dos santos Moura em 13 novembro 2013 às 17:52

OLá Marcelo pode me ajudar?!!

Estou querendo fazer (quase) o mesmo. Basicamente o robô será no mesmo style. Será totalmente controlado via interface gráfica(GUI) contendo uma câmera na qual ele enviará pra esse interface. A interface vou fazer no QT mesmo.

 A questao é que nao sei que tipo de camera uso, e como será essa transmissão da video imagem para a interface gráfica,e se será arduino ou PIC. Tem ideia uheuheueuhe?

Abraço amigo

Comentário de Marcelo Rodrigues em 22 agosto 2011 às 12:57

Rubens,

 

Com certeza! Vou postar todos os detalhes lá no wiki. O que está faltando é tempo! :(

Acho que até a semana que vem vai rolar.

O programa é basicamente o que postei no fórum, quando deu pau e pedi uma ajuda para a galera. Dá uma olhada lá que já dá para começar. assim que eu ajeitar tudo coloco no ar. Ok?

 

Abraço!!

Comentário de Rubens de Andrade Neto em 18 agosto 2011 às 17:41

Legal,

Como funciona o webserver?

Você pode explicar melhor como é feita a comunicação e a programação para o controle?

Abraço

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço