Ir para conteúdo


Revista PROGRAMAR - Edição 44 (Fevereiro 2014): Download já disponível!

- - - - -

Informações sobre projecto


  • Por favor inicie sessão para responder
11 respostas a este tópico

#1 droidman

droidman

    null

  • Novo Membro
  • Pip
  • 8 mensagens

Publicado 19 de Dezembro de 2011 - 19:02

Boa tarde a todos, procurava alguma informação a ver se me podem ajudar.
Faço a gestão de vários servidores linux, e sei programar em .Net, estava a pensar em criar uma brincadeira. Algum tipo de ferramenta fisica com butões que me permita executar comandos nos servidores, por exemplo utilizando netduino, por exemplo clicando no botão A ele imprime num LCD o numero de e-mails em queue no servidor.
Gostaria de saber se este projecto é viavel para a plataforma netduino, e de que tipo de peças necessito.
Tambem gostava de saber se é possível ele correr com recurso a baterias ou pilhas e que tenha wifi ou se o ideal é começar simples e com cabos etc.

#2 Flinger

Flinger

    CRLF

  • Membro
  • PipPipPipPipPip
  • 815 mensagens

Publicado 20 de Dezembro de 2011 - 10:40

Não percebo muito de electrónica, mas posso tentar ajudar-te em algumas coisas, visto que programo sistemas embebidos.

Não me parece que o netduino seja a melhor plataforma para o que queres fazer. :

● Atmel 32-bit microcontroller
  ● Speed: 48MHz, ARM7
  ● Code Storage: 128 KB
  ● RAM: 60 KB

A nível de hardware, não tens nem Flash nem Ram para correres um SO na board, log a implementação de uma stack para Ethernet/Wifi é, para não dizer impossível, uma tarefa hercúlea. Além do mais terias de modificar a board para incorporar conectores para as interfaces.

Talvez conseguisses ligar um cabo Usb, e enviar comandos simples, receber respostas dos servidores. Assim, talvez seja execuível, embora tenhas de desenvolver também um driver para o lado dos servidores.

Se quiseres fazer um periférico, o netduino parece-me dar perfeitamente, se, por outro lado,  a ideia é fazeres um mini terminal portátil, então aconselho-te a veres a beagle board, ou algo do género.

#3 droidman

droidman

    null

  • Novo Membro
  • Pip
  • 8 mensagens

Publicado 20 de Dezembro de 2011 - 12:39

Essa board parece-me muito melhor, porem o preço tambem dispara. E não consegui encontrar a linguagem de programação necessária.
em relaçao à comunicaçâo com servidores há muitas maneiras de simplificar a coisa, utilizar ssh seria o ideal, não podendo, um script em php com as devidas permissões poderia executar todos esses comandos, a board necessitaria apenas de lhe enviar e ler comandos para um endereço com uma chave de segurança.
é obvio que este tipo de ideia é mais pela piada da coisa, porque posso fazer uma aplicaçao para tablet ou android e resolvia a questão, mas não sei porquê apetecia-me fazer algo mais fisico e palpavel.
A tua experiência já me fez poupar algumas dores de cabeça e provavelmente dinheiro mal gasto. Obrigado.

#4 bubulindo

bubulindo

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2078 mensagens

Publicado 20 de Dezembro de 2011 - 15:43

Eu tenho ideia que já fizeram algo semelhante com um Arduino...

http://hackaday.com/2011/09/17/stoplight-indicator-system-signals-when-your-servers-are-in-distress/

Utilizar um ARM para isso é overkill uma vez que velocidade não é algo assim tão importante para esta tarefa. Provavelmente dará mais chatices devido às tensões reduzidas e consequentes ligações ao LCD (é caso de procurar um LCD que corra a 3,3V).
A vantagem de usar uma plataforma como o Arduino é que tens já bibliotecas feitas para tudo o que pretendes executar com isto. Não faço ideia como será com o netDuino, mas Microsoft e sistemas embebidos ainda não me convence.
O Arduino é programado numa espécie de C++, o que se fosses a usar o netDuino, seria C# logo não é assim tão diferente.

Quanto a utilizares TCP/IP ou USB, tendo em conta que é um servidor eu não arriscaria colocar um interface série USB lá pendurado. Podes arranjar um shield Ethernet e ficando ligado à LAN dos servidores com um IP estático, pode perguntar por telnet o que quiseres. Claro que vais precisar de programar algo nos servidores (a não ser que já exista), para fornecer esse serviço. Algo que o Arduino não consegue é lidar com encriptações, logo tem de ser algo sem grande controlo de acessos.

Quanto à stack de IP referida pelo Flinger, podes evitá-la por completo usando chips de interface Ethernet da Wiznet. A maioria dos shields Ethernet para Arduino usam chips dessa família (o W5100). Se quiseres seguir por outro caminho, podes procurar um módulo chamado Wiz820io. Mas aí provavelmente terás de começar do início com bibliotecas, etc.

Existem já umas placas com o Ethernet embebido, chamam-se Etherten, mas tens de encomendar de fora e como vêm da Austrália devem ser carotas, mas ainda assim são mais baratas que o Arduino e um shield Ethernet.

Assim de repente, tendo o hardware pronto, creio que levaria alguns minutos a programar o que pretendes no Arduino usando as bibliotecas standard. A questão aqui é, até onde queres descer em termos de programar as coisinhas mais pequenas de interface ao hardware.

Que sistemas embebidos é que programas Flinger?

Quanto a controlo de acesso, podes também garantir que o teu script apenas responde a um IP e MAC Address concreto (o do teu dispositivo em questão). A ideia do PHP não é de todo descabida e é até usada para fazer o interface desses Arduinos ao Twitter. Algo que se calhar teria o seu interesse, era fazer o log desses dados utilizando algo como a pachube.com. Claro que o servidor te dá muito mais informação, mas como pretendes algo físico... :)

#5 Flinger

Flinger

    CRLF

  • Membro
  • PipPipPipPipPip
  • 815 mensagens

Publicado 21 de Dezembro de 2011 - 10:50

Como tinha dito anteriormente, não sou entendido em electrónica, nem estou muito por dentro das soluções que por aí andam.

Falei da beagle (sim é bastante mais cara), porque, para ser sincero, 128k de flash, parece-me extremamente pouco para lidar com a Stack IP. O cliente ssh que uso ocupa quase o dobro :).

De qualquer forma, se o arduino com os módulos resolve o problema, óptimo. Dá uma espreitadela a essa solução. A beagle, e como tinha dito, é mais apontada para outro segmento, para um mini-tablet, ou PDA. Corre um SO (normalmente linux, mas creio que já devem ter alguma versão de android a correr em cima daquilo), pelo que para programares deves ter várias escolhas, e não apenas uma.

Tinha-a sugerido, caso quisesses fazer daquilo um terminal com mais capacidade do que apenas executar comandos.


Talvez dizer que programo sistemas embebidos seja pouco correcto. Eu programo num imx-25, neste momento, e no meu entender já são mais mini-PC's do que sistemas embebidos, principalmente à beira do arduino e netduino. Afinal programar para distro de Linux que lá corre é praticamente igual a programar para o PC, tirando algumas bibliotecas :D Se não fosse ter de andar twekar o u-boot, praticamente não havia diferença.

EDIT: Lá fui pesquisar, por curiosidade, o que já havia para a beagleboard. Usa a mesma distro de Linux que eu uso (angstrom), e têm uma IDE própria: http://www.angstrom-distribution.org/demo/beagleboard/
Básicamente podes programar em (quase) tudo o que programas em Linux para PC. É só encontrar as toolchains correctas. Eu programo em c/c++, já vi javascript, QT, perl, ruby, python, java, etc...

E também há suporte directo do fabricante do chip para android :) http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_4_DevKit_2_1/index_FDS.html

#6 droidman

droidman

    null

  • Novo Membro
  • Pip
  • 8 mensagens

Publicado 21 de Dezembro de 2011 - 12:22

bem, antes de mais obrigado.
uma coisa já vi, parece que vou ter de aprender C#, embora eu faça gestão de servidores, sei .net e php, nunca peguei em C a sério só olhei muito por alto daí eu andar a tentar evitar o arduino mas parece que é mesmo a placa a usar. devo começar com isto lá para janeiro, este mês as finanças não me permitem esticar muito os cordões à bolsa e pelo que vi preciso do arduino e de mais alguns modulos como o ecrã lcd e caso haja modulos de memória tambem etc.
tambem tenho andado a fazer para android uma pequena app que faz o que eu queria fazer com o hardware e com um script em php, é mais simples obviamente e anda no bolso, mas a ideia era mesmo eu construir algo.

#7 bubulindo

bubulindo

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2078 mensagens

Publicado 22 de Dezembro de 2011 - 03:27

Tenho ideia que já vi uma Beagle a correr ubuntu. :\ Mas agora não posso confirmar.

Ainda no segmento da Beagle, se procurares, existe uma empresa espanhola que utiliza o mesmo hardware da Beagle, mas já tem módulos LCD (táctil, creio) e bateria específicos para a placa deles. É possível fazer o mesmo com a Beagle, mas não fica tão bonito.

Se quiseres, podes procurar por Raspberry Pi. É um computador a sério e custa cerca de 25 dólares. Talvez seja possível adaptar uma ligação de hardware para o LCD?

Quanto ao módulo LCD, se quiseres um daqueles alfanuméricos, é preferível comprar só o módulo até porque não creio que haja um shield com esses. Existem shields, mas são para usar com os LCDs da Nokia.

Já agora, nota que o Arduino é programado em C/C++ e não C#. Se bem que naquele nível, as diferenças entre ambas devem ser mínimas. Outra coisa que já disse e sublinho, é que o shield the Ethernet e o Arduino não conseguem lidar com SSH. se quiseres fazer algo com encriptação, vais ter de usar um script PHP algures ou então partir para algo mais elevado.

Assim de repente... o que sabes de php deve chegar para fazer um programinha simples a indicar o que pretendes no LCD e que recebes da ligação Ethernet. Mas eu programei em PHP da última vez quando ainda não haviam objectos.

#8 droidman

droidman

    null

  • Novo Membro
  • Pip
  • 8 mensagens

Publicado 22 de Dezembro de 2011 - 13:31

Ver Mensagembubulindo, em 22 de Dezembro de 2011 - 03:27, disse:

Tenho ideia que já vi uma Beagle a correr ubuntu. :\ Mas agora não posso confirmar.

Ainda no segmento da Beagle, se procurares, existe uma empresa espanhola que utiliza o mesmo hardware da Beagle, mas já tem módulos LCD (táctil, creio) e bateria específicos para a placa deles. É possível fazer o mesmo com a Beagle, mas não fica tão bonito.

Se quiseres, podes procurar por Raspberry Pi. É um computador a sério e custa cerca de 25 dólares. Talvez seja possível adaptar uma ligação de hardware para o LCD?

Quanto ao módulo LCD, se quiseres um daqueles alfanuméricos, é preferível comprar só o módulo até porque não creio que haja um shield com esses. Existem shields, mas são para usar com os LCDs da Nokia.

Já agora, nota que o Arduino é programado em C/C++ e não C#. Se bem que naquele nível, as diferenças entre ambas devem ser mínimas. Outra coisa que já disse e sublinho, é que o shield the Ethernet e o Arduino não conseguem lidar com SSH. se quiseres fazer algo com encriptação, vais ter de usar um script PHP algures ou então partir para algo mais elevado.

Assim de repente... o que sabes de php deve chegar para fazer um programinha simples a indicar o que pretendes no LCD e que recebes da ligação Ethernet. Mas eu programei em PHP da última vez quando ainda não haviam objectos.

na loja da Raspberry Pi só aparecem stickers de teclado.
depois encontrei alguns sites que mencionam o preço, specs etc. por acaso o modelo B é mesmo interessante. para já estou mais inclinado para este modelo.
engraçado é que isto já são mini-pc's, as caracteristicas são mesmo boas isto vai dar para fazer coisas mais complexas do que eu estava a pensar.
com um bocado de sorte metia isto a correr uma versão muito leve de linux daquelas para pc's velhos e depois podia correr outras linguagens ou até compilar o software. vou ver isto com calma obrigado pela sugestão, esta raspberry parece mesmo interessante.  :hmm:

#9 bubulindo

bubulindo

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2078 mensagens

Publicado 22 de Dezembro de 2011 - 15:23

Segundo li algures, a raspberry é construída em "fornadas". Então eles tentam garantir as vendas para mandar fazer uma nova fornada. O interessante é que aquilo corre um sistema operativo normal na boa. :D

O que eu não vi é se existe a possibilidade de aceder a periféricos como a Beagle permite. Assim realmente será o melhor de dois mundos. No entanto, lembra-te que a parte de ligar as tensões para o LCD alfanumérico é bem mais complexo que parece ou que seria com uma placa como o Arduino ou netduino.

#10 Flinger

Flinger

    CRLF

  • Membro
  • PipPipPipPipPip
  • 815 mensagens

Publicado 22 de Dezembro de 2011 - 16:51

Bem, se eles venderem aquilo ao preço que estão a falar, eles vão voar das prateleiras...

Quero meia dúzia :D

#11 bubulindo

bubulindo

    Unsigned User

  • Membro
  • PipPipPipPipPipPip
  • 2078 mensagens

Publicado 22 de Dezembro de 2011 - 18:03

Já venderam a primeira edição. O problema é que foi feito como proof of concept e não para fazer negócio.

#12 poliveira1978

poliveira1978

    null

  • Membro
  • Pip
  • 28 mensagens

Publicado 13 de Julho de 2012 - 10:43

Peço desculpa por desenterrar mais este tópico.
O Raspberry corre debian, por exemplo. I
nstalei os pacotes python-dev, python-pip (com o apt-get) e o pyserial (pip install pyserial) e com o arduino ligado na porta usb da rpi fiz um script muito simples que chama um script python a que passo o nº do pino e o que quero fazer, por exemplo: L 13 1 -> L é o termo que o arduino pesquisa na informação que recebe por serial, 13 é o pino e 1 é a acção ligar.