collapse

* Posts Recentes

Que métodos utilizam para limpar as vossas placas após soldadura? por KammutierSpule
[21 de Agosto de 2019, 22:42]


Contas para saber a duração das baterias. por vasco
[21 de Agosto de 2019, 11:10]


Fabricantes de PCB e Assemblage (produção em massa) por Kristey
[21 de Agosto de 2019, 08:51]


Livros opensource de electrónica, transístores e OpAmps. por Kristey
[21 de Agosto de 2019, 08:37]


Máquina de soldar a fio sem gás LIDL por Hugu
[16 de Agosto de 2019, 18:28]


Hugu por jm_araujo
[14 de Agosto de 2019, 00:50]


Microfone Canon por almamater
[10 de Agosto de 2019, 07:56]


Chave de Impacto Manual por jm_araujo
[08 de Agosto de 2019, 23:45]


Compra Colectiva Mouser N3-2018 (limite ~28 Julho 2019) [update] por Hugu
[08 de Agosto de 2019, 15:32]


Ajuda num componente certo por dennis_boy
[02 de Agosto de 2019, 21:46]

Autor Tópico: Controlar um robot entre dois computadores em rede  (Lida 10868 vezes)

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

Offline msr

  • Mini Robot
  • *
  • Mensagens: 796
Re: Controlar um robot entre dois computadores em rede
« Responder #15 em: 19 de Setembro de 2010, 22:43 »
Citar
já tive cadeiras de java e não vejo vantagens sobre o c
:o Really?! Então e o conceito de OOP? E o garbage collector? São duas linguagens bastante diferentes que competem em campeonatos completamente diferentes. Ambas têm vantagens e desvantagens, depende do tipo de aplicação.

Acho Processing uma ferramenta brutal. As comparações que aqui fizeram até ao momento não me parecem válidas. Processing não é uma linguagem portanto não faz sentido comparar a outras. Processing não foi feito com o objectivo de tornar fácil a concepção de "GUIs clássicos" tal como faz o Visual Studio.

Há muitas coisas que em Processing se fazem em 2 ou 3 linhas e que noutro tipo de aplicação envolveria muito mais código e conhecimento. É isso que está em causa. Basta ver os exemplos que o Processing traz. Não me apetece aprender OpenGL só para desenhar meia duzia de quadrados, por exemplo. Se o Processing permite coisas fantásticas com poucas linhas de código, porque não usa-lo?

Já testaram Processing com "olhos de ver", ou estão só a mandar bitaites para o ar do que vos parece ser?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.612
  • Helpdesk do sitio
Re: Controlar um robot entre dois computadores em rede
« Responder #16 em: 19 de Setembro de 2010, 22:59 »
Já brinquei um bocadinho com ele, e não só para mandar bitaites.
É assim, para o que eu faço e para o que uso, para mim venha o c inves do java.
Mesmo a história do multi-plataforma não é assim, no nosso caso em que queremos usar por exemplo uma porta serial, no windows é uma com e em linux é um/dev/tty* logo só nisso apesar de o código correr nos dois lados serial nunca funciona.
Nunca tirei partido dos objectos nem nunca percebi realmente o conceito de objecto, sim as cadeiras exploram assim tanto o potencial do java, o java é usado como ferramenta de introdução á programação e como tal não é explorado a fundo, no primeiro semestre usamos Java doctor e a sua linha de comandos para interagir com os programas que pouco passam de manipular umas strings e diferenças na eficiencia de algoritmos de ordenação, no segundo semestre passamos para ubuntu e usar a consola e é um semestre inteiro a martelar em sistemas de ficheiros e métodos de armazenamento, arvores binárias e companhia, hash tables, coisas assim meio random lol.
Sim, usar o moussePressed numa zona da janela dá-te um botão, mas eu gosto de ter o visual bonito dos botões feitos por exemplo em visual c.
Avr fanboy

Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: Controlar um robot entre dois computadores em rede
« Responder #17 em: 20 de Setembro de 2010, 00:33 »
Os conceitos de OOP tens em c++, e quanto ao garbage collector o único contacto que tive foi em C# e aquilo simplesmente dá jeito mas como fui ensinado em C eu tou sempre a pensar em libertar a memória que aloco, e por isso o garbage collector não me tira grande peso da consciência  :P

No entanto concordo com msr num ponto, o Processing é óptimo para quem quer fazer coisas semi complicadas sem saber nada do que se passa por baixo. No entanto, desvalorizo um pouco, porque chega a um ponto em que estaremos a fazer coisas tipo:

robot_autonomo(start);

E sem saber nada de nada do que lá anda por baixo!

Offline msr

  • Mini Robot
  • *
  • Mensagens: 796
Re: Controlar um robot entre dois computadores em rede
« Responder #18 em: 20 de Setembro de 2010, 21:55 »
Bem eu continuo a achar que ainda não tiveram foi oportunidade de dar bom uso ao Processing ;D

Na minha opinião, não é uma questão de "fazer sem saber o que está por baixo". Isso é verdade, mas o que interessa, pelo menos a mim, são os resultados. E o Processing é uma ferramenta extremamente util nesse sentido. Em todas as vezes que o usei foi para fazer interfaces "não clássicas". Dois exemplos: desenhar uma breadboard virtual 3D que se move consoante uma breadboard real com um acelerómetro a ela ligado; dar aspecto visual a um projecto que fiz sobre programação evolutiva. Nestes dois exemplos, o que menos me interressou foi perceber como o OpenGL funciona ao pormenor, ou como o Processing funciona "por trás", até porque não era esse o objectivo de nenhum dos trabalhos.

Quanto ao não precisar de Garbage Collector. Isso é muito bonito de se dizer mas, se para sistemas com poucos recursos é verdade (e mesmo assim...), não é tanto para aplicações para computadores modernos. Uma aplicação "decente" feita em C++ em geral tem dezenas de milhares de linhas de código, e como o ser humano não é imune a falhas, por mais bom que sejas, elas aparecem. O garbage collector é uma vantagem porque trata disso automaticamente, e consequentemente, dá-te mais produtividade enquanto programador. Dá-te mais espaço para te preocupares apenas com o essencial. É milhões de vezes mais fácil arranjares "memory leaks" em C++ do que em Java.

Resumindo: acho que não é justo dizer que qualquer uma destas ferramentas "não vale a pena"; seja o Processing ou qualquer uma destas linguagens, a meu ver, são todas excelentes; dependendo do uso e aplicação que se lhe dá.
« Última modificação: 20 de Setembro de 2010, 21:59 por msr »

Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: Controlar um robot entre dois computadores em rede
« Responder #19 em: 21 de Setembro de 2010, 07:37 »
Em milhares de linhas de código é tão normal tratares de leaks de memória como de outro problema qualquer. Existem debuggers para leaks de memória que facilitam muito o projecto (valgrind por exemplo).

No entanto aceito que para a parte gráfica o Processing poderá ter as suas vantagens.

Offline msr

  • Mini Robot
  • *
  • Mensagens: 796
Re: Controlar um robot entre dois computadores em rede
« Responder #20 em: 21 de Setembro de 2010, 11:25 »
Em milhares de linhas de código é tão normal tratares de leaks de memória como de outro problema qualquer.

Se assim fosse, porque teriam inventado o garbage collector?
Eu consigo-te perceber, até porque vimos do mesmo sitio (MEEC-IST), onde as "fundações" são todas em C (e bem, a meu ver).
Mas na verdade, para aplicações complexas e críticas, e em que não seja tão importante a rapidez do código, Java ou linguagens com garbage collector são mais seguras.




Offline Tayeb

  • Mini Robot
  • *
  • Mensagens: 710
Re: Controlar um robot entre dois computadores em rede
« Responder #21 em: 21 de Setembro de 2010, 11:40 »
Citar
já tive cadeiras de java e não vejo vantagens sobre o c
:o Really?! Então e o conceito de OOP? E o garbage collector? São duas linguagens bastante diferentes que competem em campeonatos completamente diferentes. Ambas têm vantagens e desvantagens, depende do tipo de aplicação.

Acho Processing uma ferramenta brutal. As comparações que aqui fizeram até ao momento não me parecem válidas. Processing não é uma linguagem portanto não faz sentido comparar a outras. Processing não foi feito com o objectivo de tornar fácil a concepção de "GUIs clássicos" tal como faz o Visual Studio.

Há muitas coisas que em Processing se fazem em 2 ou 3 linhas e que noutro tipo de aplicação envolveria muito mais código e conhecimento. É isso que está em causa. Basta ver os exemplos que o Processing traz. Não me apetece aprender OpenGL só para desenhar meia duzia de quadrados, por exemplo. Se o Processing permite coisas fantásticas com poucas linhas de código, porque não usa-lo?

Já testaram Processing com "olhos de ver", ou estão só a mandar bitaites para o ar do que vos parece ser?

Quero só aqui apoiar msr sobre a questão do uso de Processing.

Recentemente publiquei informação de dois  projectos que seriam muito mais trabalhosos se não fossem Processing e Mobile Processing (o segundo derivado do primeiro). Como termo de comparação pareceu-me imenso puzzle, de como é que de repente a câmara Webcam na minha aplicação de Picaxe na Internet começou a funcionar em ambiente Java. Ontem com JMF parecia que a câmara não ia arrancar. Hoje com a cabeça fresca arrancou. Só quero dizer que se temos ferramentas que nos possam poupar tempo, essas devem ser utilizadas e devemos concentrar-nos no que importa. Sempre podemos regressar ao básico noutras oportunidades.
« Última modificação: 21 de Setembro de 2010, 11:42 por Tayeb »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Controlar um robot entre dois computadores em rede
« Responder #22 em: 21 de Setembro de 2010, 12:39 »
msr, poderias criar um topico sobre o projecto da criação da breadboard em 3d e o seu controlo através de um acelerometro externo na breadboard real?

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Controlar um robot entre dois computadores em rede
« Responder #23 em: 21 de Setembro de 2010, 14:35 »
O processing até pode ser "fraquinho", mas para alguém como eu que nunca teve programação na sua vida é muito útil. É fácil de aprender e de utilizar e tem montes de bibliotecas contribuídas disponíveis.
Para desenvolver as duas aplicações do meu tutorial que o AcidDagger aqui traduziu não tive problemas nenhuns, apenas tive de juntar e adaptar uns quantos exemplos.
Aliás, quantos aos GUI, o primeiro projecto que fiz assim que recebi o meu arduino foi este http://lusorobotica.com/index.php?topic=2703.msg27022#msg27022 que embora não tenha o aspecto tradicional de um programa, para o ter bastava pôr umas imagenzitas bonitas no fundo e por cima dos botões.
Portanto, como até agora não tenho razões de queixa do processing e como por agora não me interessa saber o que esta por detrás, até porque muito provavelmente não o entenderia, para mim, desde que dê resultados o processing serve perfeitamente.  ::)

Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: Controlar um robot entre dois computadores em rede
« Responder #24 em: 21 de Setembro de 2010, 15:26 »
Em milhares de linhas de código é tão normal tratares de leaks de memória como de outro problema qualquer.

Se assim fosse, porque teriam inventado o garbage collector?
Eu consigo-te perceber, até porque vimos do mesmo sitio (MEEC-IST), onde as "fundações" são todas em C (e bem, a meu ver).
Mas na verdade, para aplicações complexas e críticas, e em que não seja tão importante a rapidez do código, Java ou linguagens com garbage collector são mais seguras.

Bom, a razão pela qual foi inventado é óbvia: para teres menos trabalho. No entanto não quer dizer que não usar este recurso seja errado ou um desperdício.

Mas a questão principal sobre o Processing prende-se com o objectivo que cada um tem com estes projectos que fazemos por aqui. Há quem queira um produto final, que funcione, e há quem queira aprender como funciona. Claro que não preciso exagerar e ir construir um computador só porque quero programar (mas há quem o faça: link) mas pessoalmente dá-me gosto saber que o que faço, sei como funciona...

Claro que as duas formas de encarar a questão são válidas na medida em que um hobby é um hobby e cada um tira prazer disto como quer!

Offline Tayeb

  • Mini Robot
  • *
  • Mensagens: 710
Re: Controlar um robot entre dois computadores em rede
« Responder #25 em: 21 de Setembro de 2010, 16:50 »
Caro Vasco,

Há muito a aprender em criar bibliotecas para o Processing. E pode ligar Prcoessing com Eclipse e outras plataformas de desenvolvimento em JAVA, e mais.

Leu o tópico que coloquei aqui sobre o Conhecimento? Aqui está o link:

http://lusorobotica.com/index.php?topic=2813.0

Tayeb


Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: Controlar um robot entre dois computadores em rede
« Responder #26 em: 21 de Setembro de 2010, 19:27 »
Tayeb, penso que o que se discute aqui é a utilização do Processing como meio para programar sem saber de onde aparecem as funções. Dizer que há muito a aprender em criar bibliotecas tem a sua validade mas para o utilizador comum de que falo, que vai aos exemplos, copia código e quanto muito retalha umas coisinhas é um pouco rebuscado.

Quanto à filosofia, já tive a minha dose, mas obrigado pelo sentimento  :P

Offline Tayeb

  • Mini Robot
  • *
  • Mensagens: 710
Re: Controlar um robot entre dois computadores em rede
« Responder #27 em: 21 de Setembro de 2010, 20:20 »
Concordo plenamente consigo. Mas como dizem os chineses a jornada de mil milhas começa com o primeiro passo.

Sei lá! Piscar LEDs, a seguir um pouco de controle com botões de pressão, depois porque não sensores, etc.

Cedo estamos a mexer com coisas que não funcionam, ou como queremos que funcionem e aí em diante.

O conhecimento é assim mesmo, vamos investigando, aprendendo e fazendo coisas novas.

Uns são guiados e aprendem por meios científicos, outros bate, bate, tenta, tenta e lá conseguem. É assim! Cada um com sua história!

Hoje em dia ninguém pode dizer que não sabe porque não aprendeu. Quer aprender? Tem aí, mil e uma maneiras de aprender!

Offline msr

  • Mini Robot
  • *
  • Mensagens: 796
Re: Controlar um robot entre dois computadores em rede
« Responder #28 em: 21 de Setembro de 2010, 23:55 »
Citar
penso que o que se discute aqui é a utilização do Processing como meio para programar sem saber de onde aparecem as funções

Se não for indiscrição, estás a pensar fazer POO? Acho que ias achar interessante.

Processing é uma ferramenta! Se queres aprender a programar, aprendes uma linguagem. O Processing usa Java. Basta programares em Java (puro) para não saberes o que está por baixo. Chama-se a isso abstracção, e é uma vantagem em muitas situações. A propria programação orientada a objectos baseia-se nisso: não precisas saber ao pormenor como funcionam os objectos, precisas apenas de conhecer os métodos que tem disponíveis.

Se quiseres levar o "não saber de onde aparecem as funções" ao extremo, vais parar ao assembly, o que, em grandes aplicações não deve ser nada agradável, nem muito legível. O próprio C ou C++ têm "standard libraries" que creio que não te passará pela cabeça analisar a "pente fino" para perceber em concreto o que é feito.




Offline VascoP

  • Mini Robot
  • *
  • Mensagens: 66
Re: Controlar um robot entre dois computadores em rede
« Responder #29 em: 22 de Setembro de 2010, 07:23 »
Não, não estou a pensar fazer POO simplesmente porque já trabalhei com classes, e não me parece que valha a pena "gastar" uma disciplina com isso, quando há montes de outras mais interessantes, em que o conteúdo é mais difícil de aprender sozinho...

E msr, eu não estou a dizer que a abstracção não é óptima, o que estou a dizer é que, e dando um exemplo concreto, acho importante se ter uma noção de sockets, quando se faz um servidor TCP para comunicar entre dois PC's, ao invés de "create_server()". Óbvio que é excelente poder fazer "create_server()" se não tivermos paciência ou mesmo tempo para ir aprender, mas pronto, é uma implicação minha.

Já nem digo mais nada que parece que o pessoal está a ficar ofendido  :(