Alexandre Liodoro

Tecnologia .NET, Agilidade, hardware e mais…

.NET MicroFramework na Globalcode

Com um certo(grande) atraso mas enfim antes tarde do que nunca. Dia 28 de julho, tivemos um encontro de entusiastas de open source hardware(OSHW) na Globalcode em São Paulo. O Vínicius Senger(@vsenger) organizou o encontro que contou com a participação de diversos desenvolvedores, alguns já experientes em arduino e outras plataformas, e outros com conhecimento em desenvolvimento .net. Estive presente e a convite to Vinícius, fiz um breve apresentação sobre .NET Micro Framework e algumas placas de prototipagem que estão utilizando essa fantástica plataforma de desenvolvimento. A noite foi muito legal, e no final ainda tivemos o unpacking de uma placa FEZ Domino que também utiliza .NetMF. Abaixo, os slides da minha apresentação:

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…


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();
}

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/

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á

DNAD 2011

Voltando a escrever aqui, após alguns meses de inatividade..

Após um bom tempo sem ler meus feeds e nem entrar nas minhas listas, resolvi voltar a ativa. E nada melhor pra criar mais motivação do que participar de eventos. Resolvi me inscrever no DNAD, que é uma evento já conhecido e que gostei muito das edições anteriores. Nesse ano o DNAD será realizado no Hotel Braston São Paulo, nos dias 3 e 4 de Junho.

A maior novidade desse ano é que o evento terá dois dias, ou seja, mais oportunidades para interagir com a comunidade de arquitetos e desenvolvedores mais ativa que eu conheço.

A programação desse ano está sensacional, com palestras bem interessantes e variadas. Os palestrantes, alguns já bem conhecidos na comunidade .NetArchitects, estão trazendo para evento temas bastante recorrentes nas discussões da comunidade , como design emergente, cloud, SOA, etc. Além das palestras, teremos também os lightning Talks e os Open Spaces, o que torna o evento ainda mais interativo.

As inscrições já estão abertas e com desconto para quem confirmar com antecedência a participação no evento. Eu já fiz a minha com desconto de 50%!!!

Para mais informações a pagina do evento é: http://dnad.dotnetarchitects.net/dnad/2011 , o Twitter oficial da comunidade .netArchitects : @netarchitects. E na hashtag #dnad11 é possivel acompanhar a movimentação e novidades sobre a edição desse ano.

Gosto muito desse evento pois as palestras são muito técnicas e ministradas por gente que realmente entendo do assunto. Sempre saio do evento bastante satisfeito e motivado para aplicar os conceitos e tecnicas de arquitetura.

Quem quiser participar tem que correr pois as vagas são limitadas e acabam rápido! Eu já to dentro…até lá..

Qcon São Paulo

Voltando a escrever depois de alguns dias de correria!

Nos dia 11 e 12 de setembro rolou o QCon em São Paulo. E evento organizado pela InfoQ e Caelum, contou com a presença de diversos palestrantes de alto nível, entre eles Nick Kallen (engenheiro de sistemas do Twitter), Randy Shoup (engenheiro chefe do eBay), Douglas Crockford (arquiteto sênior do Yahoo!), Scott Ambler (gerente de metodologias ágeis da IBM Rational), Charles Nutter (criador do JRuby) e Guilherme Silveira (criador do Restfulie e líder técnico daCaelum).

No periodo da manhã palestras internacionais, sobre cases e assuntos diversos. Na parte da tarde 3 trilhas com temas muito interessantes, como Agilidade, .Net, Java, Ruby e Arquitetura.

Estive presente no sábado na trilha de Agilidade, que tinha como título: “Construindo sua mentalidade Agile”.O título tinha tudo a ver com a proposta da trilha, pois todas a apresentações tinha como objetivo não apenas falar de agilidade, mas fazer as pessoas pensarem sobre a forma como querem praticar os valores e princípios ágeis em suas empresas.

Rodrigo Yoshima, Agile Coach da Aspercom, apresentou a palestra “A guerra dos métodos versão 2.0” onde falou um pouco sobre o momento e que vivemos atualmente no mundo ágil, onde há uma verdadeira guerra entre as metodolias ágeis, cada uma tentando provar que é “mais ágil” que a outra. Pessoas defendendo uma metodologia em detrimento da outra em alguns casos com interesses comerciais envolvidos.  Falou também sobre a importancia de estudarmos as metodologias ágeis com o foco nos princípios e valores ágeis, já que todas as metodologias nascem e deveriam nos guiar para que estejamos sempre no caminho da melhoria contínua.

Em seguida Alexandre Magno, da AdaptWorks, Apresentou sua palestra: “Detalhes Importantes do Scrum”, onde falou sobre diversos problemas enfrentados e a soluções aplicadas em diversos cases de implantação de scrum no qual sua empresa participou.

Também tivemos o pessoal da Globo.com com uma apresentação muito boa sobre testes unitários e TDD em javascript, utilizando diversas ferramentas e com demos muito legais. Palestra bem tecnica mas com uma mensagem muito importante, mostrando que é sim possível aplicar testes na vida real, e que depois de alguma intimidade com as tecnicas, fica muto fácil tornar seu código melhor e mais confiável sem perda de produtividade.

Giovanni Bassi, também esteve por lá falando sobre BDD, um assunto em alta no momento, mas que na verdade não é novo. É apenas um modo de desenvolvimento baseado em comportamento, facilitando a testabilidade, melhorando a arquitetura e manutenabilidade das aplicações.

Tivemos ainda a palestra do Paulo Caroli, da ThoughtWorks, falando sobre fluxo continuo de desenvolvimento utilizando um Agile Card Wall, demonstrando como essa ferramenta simples porém muito eficiente de acompanhamento pode ser muito útil na otimização de processos.

A trilha ágil realmente foi muito interessante valeu demais o investimento e certamente estarei presente nos próximos eventos da InfoQ. Acho que as metodologias ágeis estão alcançando um nível de maturidade e penetração jamais alcançado por outras metodologias. Apesar de ainda existir muita resistência por parte dos gestores da empresas, dá pra ver que o movimento ágil ja vem se espalhando e ganhando espaço. Principalmente por ter um apelo muito forte nas boas praticas e auto-gerenciamento, o que atrai muitos adeptos que acabam implantando agilidade via bottom-up.

Cê Tá Loko!

Acabei de ler o livro Você Está Louco!, de Ricardo Semler.

Pra quem não conhece, Ricardo Semler é o um empresário de muito sucesso, e conhecido mundialmente. Apesar de ser pouco conhecido aqui(numa busca do google, apenas 1% dos resultados sobre ele são de sites em português), a sua empresa, a SEMCO é um modelo de gestão participativa estudado até hoje por diversas universidades pelo mundo afora.

Ricardo herdou a Semco do seu pai aos 21 anos, e transformou uma pequena empresa de equipamentos para industria naval, com apenas 100 funcionários, em um grande grupo de empresas que hoje emprega mais de 3000 pessoas, e cresce em média 27% ao ano.

O livro é um relato das situações vividas por Semler desde sua adolescencia pré Semco, até os dias de hoje. Não é um biografia, e sim um relato de experiências profissionais e pessoais que deram origem aos seus métodos polêmicos e inovadores de gestão participativa.

Para o executivo, as regras rígidas ditadas pelas empresas servem apenas para minar a motivação e a produtividade dos funcionários. Semler prega o equilíbrio sustentável e a participação ativa da equipe nas decisões do grupo. Na Semco, os funcionários podem escolher o que, quando, como e onde trabalhar.

Programas como o “Aposente-se um pouco”, onde o funcionário pode escolher um dia da semana para “se aposentar” e ter mais tempo livre para investir onde quiser, além de “Namore a Semco” – Pessoas interessadas na empresa podem ir conhece-la antes de se candidatarem as vagas –  e outros programas implementados, foram surgindo dessa gestão participativa, onde nenhuma decisão é tomada sem que as pessoas mais afetadas por ela não tenham opinado e decidido. Das cores que decoram as paredes da fábrica ao novo gerente da empresa, tudo passa pela decisão dos funcionários. Ninguém se transforma em chefe sem conquistar a aprovação dos subordinados.

Semler refez a rota de Marco Polo, escalou a 3ª maior pico do mundo, atravessou o Saara de camelo e viajou pelo mundo dando palestras para platéias com mais de 8000 pessoas.  Criou a Fundação Semco, a escola Lumiar e o Instituto DNA Brasil.

Esse livro: Você está louco!, é o segundo dele. O primeiro: Virando a própria mesa, é o maior bestseller brasileiro de não-ficção de todo os tempo, ficando dezenas de semanas no topo dos mais vendidos em diversos países.

Esse cara é realmente um motivo de orgulho para nós brasileiros.  Esse livro fascinante mudou bastante os meus conceitos de gestão  e mesmo quanto a maneira de administrar a carreira e a vida pessoal.

É realmente imperdível!

TDC 2010

No ultimo fim de semana rolou em São Paulo o The Developers Conference 2010.

O evento veio com uma proposta muto interessante e logo que eu vi o site, ja me  inscrevi.  A idéia era ter varios eventos juntos, sobre diversos assuntos.  E deu muito certo! Incrivelmente certo! Eu escolhi 4 assuntos que me interessavam no início, mas só assisti por completo as palestras da trilha de Testes. No sabádo e domingo fiquei navegando pelas diversas trilhas, já que varias palestras foram realizadas no auditório central onde qualquer um podia ficar.

Também aproveitei muito o lado B do evento, que foram alguns workshops realizados em paralelo às palestras. Oportunidade fantástica de fazer networking e ter um contato mais estreito com palestrantes e outro participantes. Participei de workshops sobre Empreendedorismo, e sobre o Arduino.

Aliás, a grande novidade do evento na minha opinião, foi  trazer para um mesmo local,uma diversidade enorme de assuntos. O Arduino foi um grata surpresa.   As palestras foram bastante praticas e divertidas. Alias não há um nerd que não se empolgue com os robozinhos e engenhocas que saem da  cabeça de quem trabalha com Arduino ou outros projetos similares. Eu mesmo me empolguei e reativei alguns pequenos projetinhos com pic, engavetados por falta de tempo.

Outros assuntos  bastante comentados no evento foram Ruby, .Net, Python e Agile. Estive na trilha de agile, como não poderia ser diferente, e pude conhecer pessoalmente algumas pessoas que só conhecia dos grupos e blogs.  O conteudo das palestras foi muito rico.Tanto nessa como nas outras trilhas tb.

Sai do evento no domingo, bastante motivado e renovado, com um caminhão de novas ideias e motivação de sobra para buscar mais conhecimento sobre as novidades no mundo do desenvolvimento de software/hardware.

Que venha o próximo!

Eventos para todos

Nos próximos meses, teremos em São Paulo alguns eventos muito legais, confiram:

14/08/2010 DevInSampa:

Encontro de desenvolvedores de software em São Paulo, onde serão ministrada 14 palestras, dividas em temas como desenvolvimento, boas práticas, novas tecnologias e arquitetura de software.

Site: http://www.devinsampa.com.br

20,21,22 de agosto –  The Developer’s Conference 2010:  EU VOU!!

Esta é a 4a edição do The Developer’s Conference, e a Globalcode reuniu toda sua rede de parceiros e profissionais para criar o evento mais completo do ano, sem perder a profundidade necessária para abordar cada tema.

Cada trilha é praticamente um evento independente, e está sendo organizado por um parceiro especialista com o apoio da Globalcode que tem expertise na realização de eventos e educação.

Site: http://www.thedevelopersconference.com.br/

Pensando Lean

01,02,03 de Setembro – Pensando Lean:

O “Pensando Lean: Fórum OnCast para Corporações Enxutas” é um evento organizado pela OnCast Technologies que irá tratar do tema Lean Software Development, contando com a presença no Brasil de Mary e Tom Poppendieck, os autores da metodologia.

QCon 2010

11 e 12 de Setembro – QCon São Paulo 2010 EU VOU!!

O principal evento de arquitetos e desenvolvedores chega a América Latina. O QCon SP traz, dias 11 e 12 de setembro, ícones internacionais e nacionais de diversas áreas, com apresentações de alto nível técnico. Com sistemas cada vez mais complexos, o QCon aborda não apenas uma única tecnologia ou aspecto: passa de Java, .NET e Rails até Arquitetura, Design, Cloud, Escalabilidade, Replicação, Cache e casos de sucesso.

Site: http://www.qconsp.com/



13, 14, e 15 de Setembro – Tech-ed Brasil 2010:

O maior evento técnico brasileiro voltado para profissionais de TI e Desenvolvedores que utilizam a tecnologia Microsoft em seu dia a dia, este ano vem repleto de novidades.

No Tech·Ed 2010 você será apresentado ao que há de mais novo em termos de produtos e serviços com a tecnologia Microsoft e terá acesso a mais de 193 sessões técnicas.

Site: http://www.teched.com.br/2010/Default.aspx

Estarei em 2 dos eventos acima: The Developers Conference e QCon. Espero trazer muitas novidades e motivação para buscar novas práticas, aprender e me aperfeiçoar cada vez mais.

E você? em qual deles vai?