collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


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


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


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]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: comunicação entre arduinos e PC  (Lida 6175 vezes)

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

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
comunicação entre arduinos e PC
« em: 25 de Abril de 2013, 01:03 »
Boa noite.

Estou para fazer um upgrade a um projecto meu já antigo e o objectivo é adicionar um arduino, porque no  antigo já não tenho mais espaço de memória nem espaço físico.

No segundo arduino terei sensores e motores, disponível com porta série mas sem SPI (queimou porque a ponte H lá ligada entrou em cc), no outro vai ter a porta série ocupada com o PC poderá não levar sensores mas vai comunicar com o segundo arduino.

A minha questão agora era saber qual a melhor forma de comunicação. consigo interligar através de I2C? enviar dados para um porto de modo a que saiam em série? em ultimo caso pulsos, mas nunca mais saia dali :/

PS: a comunicação entre o primeiro arduino e o PC é constante, por isso não dá jeito haver interrupção.

Online dropes

  • Mini Robot
  • *
  • Mensagens: 2.189
Re: comunicação entre arduinos e PC
« Responder #1 em: 25 de Abril de 2013, 16:22 »
O modo de comunicação em I2C é mais para endereçamentos, não sendo o mais indicado; rs232 também não é muito adequado porque não se pode interromper a comunicação a meio e o sincronismo tem de ser preciso, por isso resta o spi, se não tens disponível fisicamente sempre podes fazer por software.

Offline npereira

  • Mini Robot
  • *
  • Mensagens: 95
  • Abstuntis Majoris
    • Site Pessoal
Re: comunicação entre arduinos e PC
« Responder #2 em: 25 de Abril de 2013, 17:26 »
Talvez o mais simples é fazer comunicação serie por software entre os dois arduinos.
Nelson Pereira
Automação, Robótica e Controlo Industrial

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: comunicação entre arduinos e PC
« Responder #3 em: 26 de Abril de 2013, 00:23 »
O modo de comunicação em I2C é mais para endereçamentos, não sendo o mais indicado; rs232 também não é muito adequado porque não se pode interromper a comunicação a meio e o sincronismo tem de ser preciso, por isso resta o spi, se não tens disponível fisicamente sempre podes fazer por software.

A informação que quero receber também é "curta" 4 inteiros de 4 dígitos de cada vez, repete-se é muitas vezes

Talvez o mais simples é fazer comunicação serie por software entre os dois arduinos.

era +- isso que estava a pensar, mas não de forma tão simples, embora no I2C só preciso de 2 fios, função genérica, e consigo por ex partilhar um RTC pelos 2.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #4 em: 26 de Abril de 2013, 00:39 »
Não sei se é muito boa ideia partilhar periféricos, pode ser feito, mas á que ter em atenção ao código, não seria uma solução melhor, usar só um micro maior/com mais pinos?
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: comunicação entre arduinos e PC
« Responder #5 em: 26 de Abril de 2013, 01:08 »
Não sei se é muito boa ideia partilhar periféricos, pode ser feito, mas á que ter em atenção ao código, não seria uma solução melhor, usar só um micro maior/com mais pinos?

não por causa do processamento, enquanto fica a fazer contas passa o tempo para a resposta do PC

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #6 em: 26 de Abril de 2013, 12:31 »
Por falta de processamento?
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: comunicação entre arduinos e PC
« Responder #7 em: 26 de Abril de 2013, 12:54 »
Por falta de processamento?

O PC pede comunicação x em x milissegundos, caso não haja resposta ele reinicia a comunicação, quando o arduino vai a responder, já vai tarde depois de fazer as contas e actuar os motores.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #8 em: 26 de Abril de 2013, 13:08 »
Isso deve é ser código mal pensado, até porque serial é algo lento, o que é que o micro está mesmo a fazer com o que envia/recebe para o pc?
Avr fanboy

StarRider

  • Visitante
Re: comunicação entre arduinos e PC
« Responder #9 em: 27 de Abril de 2013, 02:17 »
Boas,


Eu tenho uma solução para o teu dilema ... mas possivelmente não a vais querer ouvir ;)

Abraços,
PA

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #10 em: 27 de Abril de 2013, 13:36 »
É mandar o IDE do arduino pela janela fora, porque para que está a fazer o atmega deve servir perfeitamente..
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: comunicação entre arduinos e PC
« Responder #11 em: 27 de Abril de 2013, 20:12 »
o arduino está a comunicar com o PC com um programa chamado setellarium. Então o arduino tem que receber a informação converter os dados, ler posição e corrigir/mudar de posição actuando motores.

Esta ultima parte é a mais lenta e que faz desligar a comunicação, podia meter por interrupção mas acho que complica :/

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #12 em: 27 de Abril de 2013, 20:18 »
O serial implementado no Arduino funciona por interrupções, como é que "desliga" a comunicação?
O teu código está mal feito e é bloqueante na parte do movimento, só pode..
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: comunicação entre arduinos e PC
« Responder #13 em: 27 de Abril de 2013, 20:42 »
Se ficar a actuar motores, estando dentro dum ciclo for, não vai poder responder ao PC

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: comunicação entre arduinos e PC
« Responder #14 em: 27 de Abril de 2013, 20:54 »
Não precisa de bloquear para rodar um stepper ou dois, tens de alterar a estrutura do código, olha para o exemplo blinky without delay e entende como ele funciona, podes implementar milhentas coisas diferentes para que funcionem de x em x tempo sem serem bloqueantes, foi precisamente isso que o Njay te disse para fazeres e te deu links(noutro tópico penso eu).
Avr fanboy