• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

droidman

Informações sobre projecto

12 posts in this topic

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.

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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... :)

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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:

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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

Quero meia dúzia :D

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now