Bom dia.
Alguem chegou a controlar um robo usando comunicação RF 433MHz?
Gostaria de saber se é suficiente, ou se devo adquirir outra forma de comunicação sem fio. Se sim, qual vcs indicam?
O robo em questao seriam um quadricopteor.
Obrigado
Tags:
Prezado Rogerio,
desenvolvi um projeto utilizando RF com acelerômetro conforme link abaixo.
Utilizei p RF via serial isso dá infinitas possibilidades de comandos, voce define o seu protocolo.
Se lhe interessar passo os fontes do projeto.
( Comentário: também penso em desenvolver um quadricoptero )
Abraços
E vc conseguio transmitir quanto de informação simultaneamente. Tipo, quantos bits?
Se vc se disponibilizar a me passar os fontes, ficaria mto grato.
Quadricoptero é um projeto bem interressante, já adquiri os motores e modulo rf433, porem estou empacado, pq so tenho um arduino, e nao estou conseguindo usar o microcontrolador diretamente na protoboard, ele nao controla a saida do servo direito, tipo, fica sem referencia.
Obrigado pela ajuda
Ok, neste feriado vou tirar um tempo pra postar os esquemas.
Na verdade eu estou fazendo com um Duemillenove, apenas para testar, mas eu comprei os microcontroladores separado e pretendo fazer uma "placa impresa" usando uma de fenolite, assim posso usar o arduino para outros projetos.
Encomendei os motores, e nao chegaram ainda, so tenho um deles no caso. Amanha baterei umas fotos e postarei.
Desde ja, grato pelo interresse
Boa tarde
Rogerio, estou fazendo um projeto parecido com o seu é um aeromodelo e pretendo usar um modulo rf 433 e 2 arduino um no emissor e outro no receptor, ja consegui comunicação entre ambos, consigo ler as entradas analogicas do emissor na serial do receptor. Mas quando coloquei um servo no receptor para ser controlado pela entrada analogica do emissor não obtive sucesso. Se você consegue esse controle me passa a programação p ver se tem algo errado na minha, e se eu puder te ajudar em alguma coisa, trocamos umas idéias.
Abraço
Boa tarde,
Também tive problemas em integrar modulo rf 433 com servo. Parece que as bibliotecas VirtualWire e Servo tem um conflito quando são usadas no mesmo Arduino. Acho que é um conflito de interrupção (as duas usam a mesma interrupção). Ai passei a usar CIs de encoder/decoder (HT12E e HT12D) entre o emissor e receptor para substituir a biblioteca VirtualWire na função de filtro de ruido e resolveu o problema. Agora terei que escrever a parte de buffer, pois estes CIs transmitem apenas 4bits de cada vez.
Bom dia Wagner Bastos
Também acho que pode ser algo assim, já estou comprando o encoder e decoder. Mas como fazer, o encoder e decoder apenas mandam pulsos e nessa aplicação precisamos trabalhar com analogico, pois terei potenciômetro no emissor e servo no receptor. Tem que continuar usando um arduino no emissor e outro no receptor? Não entendi bem, se puder contribuir com suas idéia agradeço.
Abraço
Bom dia Adilson,
Acabo de construir o circuito de transmissão: JoyStick Shield + Arduino + HT12E + RF433 TX, e de recepção: RF433 RX + HT12D + Arduino + Servo.
Estou usando os botões do JoyStick Shield para controlar o servo à distância pra frente e pra trás, mas dá pra substituir o joystick shield por um potenciômetro. Como os CIs HT12 enviam e recebem 4bits de cada vez, eu posso transmitir e receber valores de 0 a 15. É pouco para representar de 0 a 179 graus do servo, então eu estou considerando que cada unidade transmitida corresponde a 12 graus (15x12=180). Ao pressionar o botão "avançar" do joystick o servo avança 12 graus e pressionando o botão "voltar" o servo volta 12 graus. O código abaixo é do circuito receptor. Agora vou implementar um buffer que recebe 2 "pacotes" de 4 bits e, assim, terei um "range" de 0 a 255. Será suficiente para mover o servo com sua resolução máxima.
Obs.: Do lado do transmissor você terá que converter a resolução do potenciômetro que é de 0 a 1023 para a de transmissão que é de 0 a 15. Use a função map() para tal.
Abraço
#include <Servo.h>
Servo myservo;
int b1,b2,b3,b4,val;
void setup()
{
// o servo liga ao pino 6 do arduino
myservo.attach(6);
// inicializa as portas do Arduino como entrada para os pinos do HT12D
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
void loop()
{
// leitura das portas do Arduino onde o HT12D mandará os 4bits transmitidos
b1 = digitalRead(2);
b2 = digitalRead(3);
b3 = digitalRead(4);
b4 = digitalRead(5);
// converte o valor recebido em binário (4bits) para decimal (0 a 15)
val = (1*b4) + (2*b3) + (4*b2) + (8*b1);
// Converte o valor decimal recebido em valor angular (precisão de 12 graus)
val = val * 12;
// muda a posição em que se encontra o servo de acordo com o valor escalado
myservo.write(val);
// intervalo de 5 milisegundos
delay(5);
}
Boa tarde, Wagner.
Você fez o que estou tentando fazer. Já implementou o buffer que recebe os dois pacotes de 4bits? Pode me passar o esquema que usou para o código acima, e caso já tenha implementado o buffer, me passar o código e o esquema?
Desculpe a quantidade de pedidos, mas sou novo em arduino, apesar de desenvolvedor experiente, sou iniciante em eletrônica.
Obrigado e abraço!
PODERIA PASSAR PARA MIM O ESQUEMA
email - quadrosneto2015@gmail.com
kra, utilizei esse RF num tanque da tamyia, mais da muito problema de ruido qnd ligam os motores, demora um tempao para o receptor reconhecer os comandos... ainda nao arrumei uma solucao...
Flavio, usou os modulos RF com arduino?
isso, sendo q utilizei 2(dois) attiny85 (controle remoto e veiculo) ao inves do atmega328...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por