De mudança para um novo blog

Após alguns meses sem postar, resolvi retomar o blog em um novo endereço. A partir de hoje acompanhe meus posts no meu novo blog: www.aliodoro.com

Publicado em Agilidade | Comentários Desligados

The Developers Conference 2011

The Developers Conference 2011, um evento organizado pela Globalcode

Mais um evento imperdível!

De 6 a 10 de Julho, teremos em São Paulo, o que considero um dos melhores eventos para desenvolvedores no Brasil. O The Developers Conference.

Organizado pela GlobalCode, este evento possui formato bastante interessante, pois reune diversos assuntos da área de TI num único espaço, paralelamente. Organizadas em trilhas as palestras são bem voltadas ao publico desenvolvedor, porém com participação geral de profissionais de TI. Isso permite uma interação entre desenvolvedores de diversas culturas jamais vista nos eventos desse porte.  A possibilidade de ver num mesmo evento trilhas sobre Testes, .NET, Python, Java, noSQL e Arduino é fantástica. Possibilita a troca de informações, networking e mesmo o contato com tecnologias que no dia-dia não temos possibilidade de nos aprofundar.

Estive no TDC2010 e sem sombra de dúvida valeu muito a pena. Aqui tem o meu post sobre o TDC2010. Foi até complicado escolher qual trilha assistir, pois tinha muita coisa legal rolando ao mesmo tempo.

Esse ano o pessoal da GlobalCode se superou. 28 trilhas em 5 dias  de evento. Fora a trilha stadium, onde as palestras são diversificadas, uma idéia muito legal principalmente pra quem não quer ficar num assunto só. Dêem só uma olhada no que teremo no TDC2011:

Para participar é só entrar no site do TDC2011 e ficar de olho. Em breve abrem as inscrições, e é melhor correr porque as vagas devem acabar rapidinho. Eu estarei lá com certeza!!

Abaixo dois links dos videos de palestras que eu curti muito em 2010:

http://www.thedevelopersconference.com.br/tdc/2010/sp/videos/aprendendo-a-fabricar-placas

http://www.thedevelopersconference.com.br/tdc/2010/sp/videos/o-manifesto-2-0

E isso ai…


Publicado em Agilidade, Arduino, Arquitetura, C#, Eventos | Tags , , | Comentários Desligados

Controle de motor DC com Netduino e LMD18200

Para continuar a brincadeira com o Netduino, resolvi testar o PWM controlando um motor DC.
Umas das forma para controlar a velocidade e direção da rotação de um motor DC é utilizando uma Ponte H. Podemos construir uma com transistores, ou utilizar algum circuito integrado com a ponte já montada. No meu teste, utilizei o LMD18200 da National Semiconductor, que é uma ponte H com controle de direção e controle de velocidade com PWM. O CI também possui saídas para controle de temperatura e corrente. Além de muito fácil de utilizar, o LMD18200 é muito robusto. Pode controlar motores de ate 3A com tensão de ate 55V. No site da National é possível obter mais informações e até baixar o datasheet do componente.

O funcionamento é bem simples. Configuramos os pino D5 do Netduino como PWM. A frequência padrão do PWM é 10KHz. O duty-cicle inicialmente é configurado para 100%.
Configuramos também o pino D8 para definir a direção da rotação do motor e o botão da placa como entrada.
A cada vez que o botão é pressionado, um contador vai incrementando o duty-cicle, e quando chega a 100% ele inverte o sentido do motor, e começa a decrementar o duty-cicle, ate chegar em 0%, invertendo novamente o sentido e começando novamente a incrementar o duty-cicle, e assim sucessivamente.

Abaixo temos o código do netduino e um vídeo som o motor em funcionamento:

const uint maxDutyCyle = 100;
static bool statusBotao;
static int dutyCycle;
static int incremento;

static InterruptPort botaoControle;
static PWM sinalPWM;
static OutputPort direcao;

public static void Main()
{
dutyCycle = 0;
incremento = 1;
statusBotao = false;

sinalPWM = new PWM(Pins.GPIO_PIN_D5);
direcao = new OutputPort(Pins.GPIO_PIN_D8,true);

botaoControle = new InterruptPort(
Pins.ONBOARD_SW1,
false,
Port.ResistorMode.Disabled,
Port.InterruptMode.InterruptEdgeBoth);

botaoControle.OnInterrupt += new NativeEventHandler(BotaotHandler);

Timer pwmTimer = new Timer(
new TimerCallback(timerBotao),
null,
periodo,
periodo);

Thread.Sleep(Timeout.Infinite);
}

public static void timerBotao(Object obj)
{

if (true == statusBotao)
{
dutyCycle += incremento;
sinalPWM.SetDutyCycle((uint)dutyCycle);
Debug.Print(dutyCycle.ToString());
if ((maxDutyCyle == dutyCycle) || (0 == dutyCycle))
{
incremento = -incremento;
direcao.Write(!direcao.Read());
}
}
}

public static void BotaotHandler(UInt32 data1, UInt32 data2, DateTime time)
{
botaoControle.DisableInterrupt();
statusBotao = (0 == data2);
botaoControle.EnableInterrupt();
}

Publicado em .Net Micro Framework, Netduíno | Tags , , , | Comentários Desligados

LCD com Netduino

Hoje estou postando uma pequena aplicação do do Netduino acionando um display LCD. Pensei em fazer uma biblioteca para fazer acesso ao LCD, mas pesquisando na comunidade do próprio Netduino, encontrei aqui uma classe prontinha para essa aplicação e como não quero ficar reinventando a roda usei a mesma para o teste.

A classe Lcd implementada no exemplo, possui diversos métodos que podem ser usados para controle do LCD e é baseada no padrão de display mais comum(HD44780). Uma das classes mais importante é o mapeamento da pinagem do LCD x Pinos saída do Netduino que está descrita abaixo:

private static class LcdPins
{
public const Cpu.Pin DB0 = Pins.GPIO_NONE;
public const Cpu.Pin DB1 = Pins.GPIO_NONE;
public const Cpu.Pin DB2 = Pins.GPIO_NONE;
public const Cpu.Pin DB3 = Pins.GPIO_NONE;
public const Cpu.Pin DB4 = Pins.GPIO_PIN_D3;
public const Cpu.Pin DB5 = Pins.GPIO_PIN_D4;
public const Cpu.Pin DB6 = Pins.GPIO_PIN_D5;
public const Cpu.Pin DB7 = Pins.GPIO_PIN_D6;

public const Cpu.Pin E = Pins.GPIO_PIN_D2;
public const Cpu.Pin RW = Pins.GPIO_PIN_D1;
public const Cpu.Pin RS = Pins.GPIO_PIN_D0;
}

Com essas definições já sabemos como ficará a montagem do circuito, utilizando as saídas digitais D0 a D2 para controle e D3 a D6 para dados. Ainda fica faltando ligar alguns pinos do LCD, que são o pino 1 –> GND, pino 2 –> VCC, pino 3 –>VO(potenciômetro de 10K),  e pinos 15 e 16(Backlight).

O código para escrever no display ficou dessa forma:

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using NETDUINO.LCD;

namespace LCDNetduino
{
public class Program
{
private static Lcd lcd;
public static void Main()
{
lcd = new Lcd(false) { IsCursorBlinkOn = false, ShowCursor = false, IsDisplayOn = false };
lcd.WriteString(“TESTE NETDUINO COM LCD.”);
lcd.IsDisplayOn = true;
while (true)
{
lock (lcd)
{
lcd.ShiftDisplay();
}
Thread.Sleep(500);
}
}
}
}

Utilizei também o exemplo do blog citado onde o push botton do netduino serve como “clear”. O resultado segue abaixo:

Seguem abaixo alguns links que pesquisei pra fazer o exemplo:
http://netmf-source.blogspot.com/2011/02/hello-and-character-lcd.ht…
http://en.wikipedia.org/wiki/HD44780_Character_LCD
http://arduino.cc/en/Tutorial/LiquidCrystalDisplay
http://forums.netduino.com/

Publicado em .Net Micro Framework, C#, Eletronica, Netduíno | Tags , , , , | Comentários Desligados

Netduino

A algum tempo venho fuçando nas minhas tralhas de eletrônica abandonadas após a faculdade, mas que sempre gostei de brincar.  Depois de organizar tudo, e adquirir alguns componentes novos, comecei a me animar a montar alguns projetinhos e desenferrujar meus conhecimentos de eletrônica e automação.

Quando estudei microprocessadores na faculdade ja existiam alguns kits de desenvolvimento que eram basicamente usados para montagens experimentais. Mas hoje em dia esses kits já se popularizam e com o custo mais acessível, surgiram também na onda do open source, alguns módulos que estão sendo amplamente usados por hobistas e entusiastas de eletronica, um deles or sinal o mais famoso é Arduino.

Do Arduino surgiram diversas versões, como o pinguino(lixux), protuino(montado em protoboard), o picuíno(baseado em pic) e mais recentemente surgiram alguns kits baseados na plataforma .NET, utilizando o Microsoft Microframework.  O Netduino é um deles e o que mais interessou, pela sua total compatibilidade com os acessórios do arduino, e também pela possibilidade de programar um microcontrolador em C#, a minha linguagem preferida.

O Netduino da foto está no modo Hello World, o que pra essa tecnologia significa piscar um led. O código para efetuar essa tarefa é:

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
namespace firstapp
{
public class Program
{
public static void Main()
{
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
while (true)
{
led.Write(true);
Thread.Sleep(1000);
led.Write(false);
Thread.Sleep(250);
}
}
}
}

A partir desse post, pretendo postar aqui sobre os meus projetos e códigos para o netduino e outros assuntos da eletrônica.

Até lá

Publicado em Arduino, Eletronica, Neduino | Tags | Comentários Desligados