Pesquisar no Programero

segunda-feira, 18 de julho de 2011

Netduino + LCD Nokia 5110

Em meu post anterior falei um pouco sobre o Netduino, fizemos nosso primeiro “Hello World” com a luz da própria placa piscando e agora vamos escrever em uma tela de LCD.
O LCD que eu escolhi foi o Nokia 5110, ele é bem simples, tem baixo consumo de energia e possui um único chip para todas as suas funções, tem 84 colunas por 48 linhas e originalmente foi desenvolvido para celulares. Eu o escolhi por ser diferente dos tantos LCDs menores (16 colunas por 2 linhas) que eu vi em vários tutoriais, como encontrei no próprio fórum um post dedicado a ele me empolguei e decidi que ele seria minha escolha (para quem estiver interessado eu comprei aqui).
lcd_nokia_5100
Quando abri a caixinha vermelha da sparkfun e peguei o LCD a primeira coisa que me vaio a cabeça foi “e agora como eu ligo esse cara no Netduino”, como eu não tinha ideia entrei no fórum e perguntei e prontamente me ajudaram, em menos de dois dias meu amigo Stefan (moderador do fórum) documentou como fazer essa conexão (para mais detalhes).
image
Na verdade foi tudo bem simples, tive apenas que soldar pinos no LCD para mantê-lo fixado na breadboard e depois conectar os cabos de acordo com a imagem, para mostrar texto na tela bastou usar o driver já implementado. O legal mesmo foi a conversão que existe para imagem, é possível transformar uma imagem em bytes para mostrar no LCD (a foto acima esta fazendo isso).
Dessa vez não colocarei código, no fórum esta tudo bem documentado e funcionando bem, então até a próxima.

quinta-feira, 7 de julho de 2011

Netduino

Recentemente o adquiri para um projeto da especialização, mas o que ele é e porque foi minha escolha?

Bom primeiramente como era necessário o uso de .net para esse projeto comecei a procurar algo diferente e então encontrei o netduino, que é uma plataforma eletrônica open source que usa o .net micro framework. Maravilha não? Com isso poderei usar c# para controlar um hardware!

netduino2

Infelizmente não o encontrei no Brasil, tive que importar, acabei escolhendo a Proto Advantage para fazer a compra e como meu primeiro pedido acabou no buraco negro dos correios o pessoal de lá acabou me mandando outro sem custo algum, tive apenas que arcar com metade do frete (fica ai a dica para os interessados, o atendimento dessa empresa é ótimo).

Já existe uma comunidade relativamente ativa, no fórum do site oficial existem vários projetos já em andamento com drivers para lcds, rfids, rede, sensores entre outros, tudo bem explicado, com os esquemas eletrônicos e exemplo dos códigos (sem contar a boa vontade do pessoal, sempre respondendo de pronto as novas postagens).

Um passo a passo já existe no site mas deixo aqui um resumo do que é preciso e também um código do que seria nosso primeiro hello world !

O que preciso instalar?

  1. Microsoft Visual  C# Express 2010
  2. Microsoft .Net Micro Framework v4.1 SDK
  3. Netduino SDK v4.1 32bits ou Netduino SDK v4.1 64bits

Tudo instalado e agora?

Ao conectar o netduino ao pc pelo cabo usb os drivers devem ser instalados automaticamente, feito isso abra o Visual Studio e crie um novo projeto (New Project => Visual C# => Micro Framework => Netduino Application), o que teremos será uma aplicação nos moldes de um console application.

Vamos ao código

Em nosso primeiro exemplo faremos com que o LED programável da própria placa pisque, basicamente iremos criar um OutPutPort para controlar a voltagem desse LED, em seguida, dentro de um loop, faremos com que esse LED ascenda e apague dentro de um intervalo, segue o código:

  1: using System.Threading;
  2: using Microsoft.SPOT.Hardware;
  3: using SecretLabs.NETMF.Hardware.Netduino;
  4: 
  5: namespace NetduinoApplication1
  6: {
  7:     public class Program
  8:     {
  9:         public static void Main()
 10:         {            
 11:             int i = 0;
 12:             OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
 13:             while (i < 20)
 14:             {
 15:                 led.Write(true);   // liga o LED
 16:                 Thread.Sleep(250); // aguarda 250ms
 17:                 led.Write(false);  // desliga o LED
 18:                 Thread.Sleep(250); // aguarda 250ms
 19:                 i++;
 20:             }
 21:         }
 22: 
 23:     }
 24: }
 25: 

 


Bom é isso, nos próximos meses terei muito a fazer com esse cara, sobrando um tempo eu postarei aqui meu progresso.