collapse

* Posts Recentes

Circuito Microfone que funcione por almamater
[Ontem às 17:14]


Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]

Autor Tópico: (Programação)Duvida no arduino  (Lida 33563 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação) Duvida no arduino
« Responder #105 em: 08 de Junho de 2011, 10:17 »
Código: [Seleccione]
// Bibliotecas para controlar os motores e para estabelecer uma comunicacao do tipo serie
#include <Stepper.h>
#include <SoftwareSerial.h>

#define rxPin    0                // Pino de recepcao
#define txPin    1                // Pino de transmissao
#define steps    100              // Numero de passos por rotacao do motor
// Definicao dos pinos de alimentacao e ground do motor
#define m1_red    2
#define m1_black  3
#define m2_red    4
#define m2_black  5

// Definicao de um porto de entrada serie
SoftwareSerial P1 = SoftwareSerial(rxPin, txPin);
// Definicao de um motor
Stepper motor = Stepper(steps, m1_red, m2_red, m1_black, m2_black);

//Programa principal
void setup()
{
  pinMode(rxPin, INPUT);           // Defino o pino 0 como de entrada
  pinMode(txPin, OUTPUT);          // Defino o pino 1 como de saida(embora nao o deve necessitar)
 
  // Vou definir a taxa de transmissao de dados do meu porto para o valor por defeito do Bluetooth (115200 bits/s)
  P1.begin(115200);
 
  // Definicao da velocidade do motor
  motor.setSpeed(10);
 
}

// Vou criar um ciclo em que o modulo fica a espera de dados pelo pino Rx. Quando recebe um valor entre 1 e 100, mete
// mete o motor a funcionar durante esse numero de passos. Quando o motor para, fica novamente a espera de outro numero
void loop()
{
  int passos = 0;              // Valor de controlo para os passos do motor
 
  passos = P1.read();
 
  if((passos >= 1) && (passos <= 100))    // Se o valor for valido
  {
    // Faz o motor andar esse numero de passos
    motor.step(passos);
  }
}



 O código diz ai tudo... Só que o meu problema é, como é que mando do telemovel informação para o pino Rx?
Tenho mesmo de fazer um programa para o telemovel? Não cosigo de maneira alguma fazer com que o arduino reconheça um numero que envie pelo bloco de notas do telemovel?
« Última modificação: 09 de Junho de 2011, 00:24 por AJoao »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: (Programação)Duvida no arduino
« Responder #106 em: 08 de Junho de 2011, 10:43 »
Se é possível que o Arduino reconheça o ficheiro enviado pelo telemóvel? É! http://tinyurl.com/66bkbdb
Eu eu fosse professor e tu conseguisses fazer isso dava-te 20!

Viste bem o projecto que te mandei?! Não me parece pois o python trás exemplos para enviar dados por Bluetooth em serie!

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #107 em: 08 de Junho de 2011, 22:48 »
O problema é que eu queria mesmo que fosse assim, do bloco de notas do telemovel enviar o numero e o arduino reconhecesse...

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #108 em: 08 de Junho de 2011, 22:52 »
E já agora, eu não quero 20 xD A unica coisa que quero é concluir isto para ter o 12º. Nem que seja com 9,5... Só quero passar...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: (Programação)Duvida no arduino
« Responder #109 em: 09 de Junho de 2011, 02:17 »
Mas qual é a parte que não compreendes que o bloco de notas não tem nada, mas mesmo nada a ver com bluetooth?
É que o bloco de notas nem sequer guarda o que escreves a cada segundo para estar sempre actualizado, logo tens de fazer um programa que le as teclas do telemovel e que envia por bluetooth informação após uma tecla ter sido premida.
Avr fanboy

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #110 em: 16 de Junho de 2011, 16:43 »
Sendo assim, vou tentar uma coisa mais facil... (Para começar acho que será mais fácil)
Controlar o "tanque" pelo pc. Mas eu queria que não tivesse sempre que andar a meter e tirar o codigo, percebes? Pelo pc, dizer para onde quero que ele vá é mais fácil, certo?
Cumprimentos

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: (Programação)Duvida no arduino
« Responder #111 em: 16 de Junho de 2011, 19:20 »
sim é mais fácil, não precisas de programar nada, pegas num terminal, o do ide do arduino serve, e envias os comandos, por exemplo: envias um "f" para andar para a frente, "t" para trás, etc, o arduino lê o comando e executa, se estiveres à vontade com VB ou C# podes fazer uma interface gráfica simples com uns botões...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: (Programação)Duvida no arduino
« Responder #112 em: 16 de Junho de 2011, 21:21 »
Andar a meter e tirar código de onde?
Se for para fazer depressa, tipo numa hora ou nem isso podes usar processing, o que não falta é precisamente robots feitos com Arduinos controlados em pc por processing.
Avr fanboy

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #113 em: 17 de Junho de 2011, 22:37 »
O que eu queria era que ele desde que estivesse conectado via bluetooth, com as setas apenas andasse por onde mandava.
É preciso criar alguma aplicação para isso? É que nao queria ter que andar sempre a fazer o upload para a placa sempre que queria que ele fosse em frente, parasse ou andasse para tras....

Cumprimentos

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: (Programação)Duvida no arduino
« Responder #114 em: 18 de Junho de 2011, 00:01 »
No lado do pc podes usar processing, o bluetooth pode ser tratado simplesmente como uma porta serial, do lado do arduino podes fazer:
swithc(serial.read={
case 'w':
andar em frente
break;
case 's':
andar para trás
break;
etc etc etc
}

Penso que entendes a ideia.
Avr fanboy

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #115 em: 18 de Junho de 2011, 12:11 »
Sim, entendo. (: Vou experimentar...
Obrigado

Cumprimentos

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #116 em: 22 de Junho de 2011, 21:43 »
Olá outra vez.

Gostava de saber, se alguem me pode ajudar com o processing que estou a ter muitas dificultades.
O que escrevo no processing, para enviar via bluetooth a letra 'w' ou 's' ou outra, para o arduino?

Cumprimentos

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #117 em: 22 de Junho de 2011, 21:59 »
É que na parte do arduino já está feito... Agora falta é mandar as letras para lá...
Está complicado...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: (Programação)Duvida no arduino
« Responder #118 em: 22 de Junho de 2011, 22:07 »
Fazes serial.prints, porque o bluetooth pode ser visto como uma porta serial, só tens é de fazer um print do serial.list no processing para saber em que sitio está a tua pen bluetooth.
Avr fanboy

Offline AJoao

  • Mini Robot
  • *
  • Mensagens: 126
Re: (Programação)Duvida no arduino
« Responder #119 em: 22 de Junho de 2011, 22:30 »
Mas como é que eu começo? Começo logo assim?

Código: [Seleccione]
void setup () 

Serial.begin (9600)


void loop () 

Serial.print ("W" )



Serial.print ("\ t")


for (x = 0; x <64; x + +)

Serial.print (x) 

delay / 200 milissegundos}

Serial.println ("w");

}