Bem estou a algum tempo acompanhando o LdG olhei todos os tópicos mas ainda não consegui tirar uma duvida que as vezes parece muito fácil, que é um controle usando teclas do teclado.

Projeto- Um Submarino para inspeção e manutenção, Medidas 130 CM Comprimento, 16 CM diâmetro peso 25Kg.

Vou receber informações do sub como Bateria, umidade, temperatura, profundidade, adernamento, isso ta pronto.

Vou enviar informações de controle ex. W acelera S desacelera A a esquerda D a direita e ai por diante, nessa parte não tive sucesso ainda, apenas consegui usando o "Mouse".

Utilizo um Mega 2580 + Shield W5100 + 5 Servo

Minhas Duvidas são essas.

1- Qual a linguagem mais recomendada HTML, PHP ou alguma outra ? e por que ?

2- Um ex de controle de um servo usando 2 teclas, quando soltar a tecla ele retorna a centro.

acho que um exemplo de apenas 1 servo ia ajudar a muitos de nos Arduinistas heheh.

 

Exibições: 2444

As respostas para este tópico estão encerradas.

Respostas a este tópico

Veja como funciona o Servomotores no tutorial:

http://labdegaragem.com/profiles/blogs/tutorial-robo-de-papel-faca-...

Se entender este tutorial irá conseguir fazer o que quer com o servo motor.

? Meu servo ja ta funcionando via teclado como eu falei, apenas quero controlar ele de forma direta via WASD . sem usar Serial .

Não entendi direito. Veja se é isso mesmo que vc quer.

Vc ja consegue faze-lo funcionar usando as teclas, porém ligado via serial. E o que vc quer é fazer funcionar via ethernet. É isso?

Se for não terá quase diferença alguma. Vc apenas terá que escolher qual programa vai utilizar e fazer esta comunicação via socket. Ja fiz isso em delph, php e em c#.

Primeiro quero saber se é isso mesmo, para eu te mandar alguns exemplos.

Sim é isso mesmo.

Eu consigo configurar ele pra usar tanto com serial como com Ethernet  porem apenas com botoes e clicando neles. Ex  (botão frete) clico nele ele vai pra frente, também consigo usar as teclas direto no serial monitor, porem gostaria de usar ele pelo Ethernet no Browser.

So não consigo enviar essas teclas pelo browser até o arduino.

Gostaria usar direto HTML, porem acho que não vai ser possível. 

Ai teria interesse em PHP ou Delphi. 

Nao gostaria de instalar nada nos clientes q irão acessar.

Eu tenho um exemplo disso q vc procura feito em c#. Serve pra você?

Neste exemplo eu utilizo as setinhas do teclado, mas acho q pode ser qualquer tecla. Vou verificar mais tarde se da pra ser qualquer tecla.

Sim pode ser, Na verdade so nao entendi como q faz a conversação entre o arduino e outro aplicativo, Precisa de um servidor? ou o q ?.

é isso que vc quer?

http://automacaoerobotica.blogspot.com.br/2012/07/controlando-servo...

Ta meio confuso, hora falas em Serial, outra hora em Ethernet...

Vou tentar resumir.

Não tenho nenhum problema com a serial, tudo funciona.

Quando uso a Ethernet (Escudo W5100) fica assim

Consigo receber todos os status q quero do arduino atraves do html q criei no arduino.

Quando tento controlar o arduino pela Ethernet nao consigo, nem faço ideia como faço isso, se tem q ser  php ou se consigo em HTML mesmo ?

Vamos lá. vou tentar te passar um exemplo;

Primeiramente vc deve definir as configurações no arduino.

//Configurações do Ethernet Shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,100, 100 }; // ip que o arduino assumirá
byte gateway[] = { 192,168,100, 1 }; // ip do roteador
byte subnet[] = { 255, 255,255, 0 };

EthernetServer server(8081); // Cria o servidor na porta 8081

char msg[13] = "0000000011L#"; // String onde vão ser guardadas as msgs recebidas

void setup() {

//Inicializa o servidor.

Ethernet.begin(mac, ip, gateway, subnet);
server.begin(); 

}

void loop()  {

// SE receber um caracter...
if (client) {
// guarda o caracter na string 'msg'
msg[1]=msg[2]; msg[2]=msg[3]; msg[3]=msg[4]; msg[4]=msg[5]; msg[5]=msg[6]; msg[6]=msg[7]; msg[7]=msg[8]; msg[8]=msg[9]; msg[9]=msg[10]; msg[10]=msg[11]; msg[11]=msg[12];
msg[12] = client.read();

if (msg[12]=='#') {
switch(msg[11]) {
case 'R':
// Se receber o comando 'R#' envia de volta o status qualquer coisa.
client.write("qualquercoisa");
break;
case 'L':
// Caso L#, ele faz qualquer coisa do tipo apagar ou acender um led.
digitalWrite(2,LOW);

break;

Até aí vc reparou que trabalhei apenas com as duas ultimas casa enviadas. 

Agora vou te dar um exemplo em delphi de como vc pode escutar o que o arduino responde e também enviar para ele.

No Delphi tem um componente chamado ClientSocket.

Assim q vc colocar este componente vc pode ir nas propriedades dele e configurar o ip e a porta que ele vai escutar.

Para escutar seria assim:

Crie uma variável 

Buffer:array[0..999] of char;

depois

procedure TForm1.CLIENTERead(Sender: TObject; Socket: TCustomWinSocket);

begin

Socket.ReceiveBuf(Buffer,Socket.ReceiveLength);

Tudo que o arduino escrever ele vai receber na variável Buffer

Daí é só vc trabalhar com ela do jeito que quiser.

*imagino q nao devo ter q te ensinar a programar. rsrs

Para enviar para o arduino é só usar

CLIENTE.Socket.SendText('L#');

###

Supondo que vc queira criar uma pagina em php (vai precisar colocar esta pagina em um servidor).

Em PHP ficaria assim:

<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Se conecta ao IP e Porta:
socket_connect($sock,"192.168.100.100", 8081);

// Envia para o arduino.
if(isset($_POST['bits'])) {
$msg = $_POST['bits'];

if(isset($_POST['Bnt1'])){ $msg = 'R#'; } // supondo que seja um botão criado com o nome Bnt1 e vai enviar R#
if(isset($_POST['Bntr2'])){ $msg = 'L#'; } // supondo que seja um botão criado com o nome Bnt2 e vai enviar L#

socket_write($sock,$msg,strlen($msg));
}

Para escutar

$status = socket_read($sock,12);

Supondo que o arduino tenha enviado algo terminado em L#

if (($status[10]=='L')&&($status[11]=='#')) {

echo "faz qualquer coisa que uma pagina pode fazer"

}

Coloquei esses exemplos trabalhando com array para ficar mais fácil caso deseje aproveitar o conteúdo de qualquer lugar das mensagens enviadas.

Espero q te ajude a desenrolar alguma coisa.

Bem vou tentar ver o q eu consigo fazer, ja tinha encontrado algo parecido mas menos explicado Muito Obrigado, assim que testar volto a postar.

Ainda só novo com Arduino e me entecerei bastante com o seu projeto de submarino, tem mais detalhes do projeto???Talvez eu possa te ajudar!!

Tenho fotos dele Renderizado no Face, e + detalhes dele tbm , ainda nao postei fotos reais dele, mas ta muito proximo ao do Renderizado, Renderização feita do SolidWorks.
Ja coloquei ele na agua porem sem ligar motores, mas esta tudo dentro do projeto até então.
Assim que consegui mover os motores (pelo teclado) pretendo postar ele todo principalmente a parte do arduino e seus motores, pois tem uma boa salada ai e aprendi muitas coisas.
Alguns detalher:
-Motor Outruner 500KW 900W (Motor de Aeromodelo)
-Esc (controlador Inversor) 150A de Automodelo
-Baterias de chumbo, tipo alarme residencial
-Motor comum com bomba d´agua e reversores.
-Sensores de umidade, de adernamento de tensao e corrente, de profundidade,
Mas se tiver alguma curiosidade mais especifica pode perguntar.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço