Arduino para Programadores
           .NET


        Igor Kondrasovas
      igor@duinolabs.com
Igor Kondrasovas




                   www.duinolabs.com
Agenda
•   O .NET Micro Framework
•   Produtos Disponíveis
•   Exemplo de Código
•   Como começar?
•   Projetos de Exemplo




                             www.duinolabs.com
Perguntas?




             www.duinolabs.com
A Internet das Coisas




                    www.duinolabs.com
Dificuldades Encontradas
• Áreas de aplicação são diversas e exigem
  habilidades de programação em hardware
  específicas;
  – Não estigmatizar os erros!
• Ferramentas diversas, falta de modelos de
  programação;
• Poucos protocolos de comunicação e suporte;
• Código de difícil portabilidade;

                                    www.duinolabs.com
O .NET Micro Framework




                   www.duinolabs.com
O .NET Micro Framework
“Módulo inicializável de tempo de execução que
  traz os benefícios da plataforma .NET para
       dispositivos com poucos recursos”




                                    www.duinolabs.com
O .NET Micro Framework
        Origem no SPOT (2004)
 (Smart Personal Object Technology)
 Utilizava o serviço MSN Direct (FM)
   2009 – open source (Apache 2.0)




                                  www.duinolabs.com
.NET Micro Framework




                  www.duinolabs.com
O .NET Micro Framewok
• Footprint < 300 KB
• Classes especificas para aplicações embedded
  (incluindo GUI em WPF)
• CLR “on the metal”
• Suporte a Flash, GPIOs, I2C, RS232, SPI, etc.
• Modelo de drivers de dispositivos
• Integração completa com Visual Studio (debug)
• Emulador

                                      www.duinolabs.com
www.duinolabs.com
Portabilidade
          Arquiteturas:
ARM, ADI Blackfin, and Renesas SH2

       ARM7, ARM9, Cortex




                             www.duinolabs.com
www.duinolabs.com
Piscando um LED




                  www.duinolabs.com
Botões




         www.duinolabs.com
Eventos e Interrupções




                    www.duinolabs.com
Detalhes
•   70 classes e 420 métodos
•   Reflection
•   Serialization
•   Threading e Sincronização
•   Timers
•   Exceções
•   Garbage Collection
•   Persistência
•   Recursos
•   Segurança e Criptografia
•   Atualização


                                   www.duinolabs.com
Quem pode Utilizar?
Cenário                 Uso
Desenvolvedores         Coloque seu software na próxima
                        geração de dispositivos inteligentes
Integradores            Construa extensões e hardware
                        específico
Acadêmicos              Base de conhecimento para estudantes e
                        professores
Hobistas                Realizar sonhos




                                               www.duinolabs.com
.NET Gadgeteer




                 www.duinolabs.com
Netduino (Secret Labs)




                    www.duinolabs.com
Arduino e Netduino




                     www.duinolabs.com
Compatibilidade




                  www.duinolabs.com
Reguladores                              Pinos Digitais 0-13 Pins                                        LED Onboard
  de Tensão
  Recebem um tensão de
                                                 Netduino
                                         Pinos Digitais que podem ser configurados como
                                      entradas (ler um sinal digital) ou como saídas (levados a
                                                         níveis alto e baixo)
                                                                                                          Pode ser utilizado nos seus
                                                                                                            programas livremente
entrada variável e fornecem
 5V e 3,3V que o Netduino
         necessita.


  Conector
    USB                                                                                                     Botão Reset
                                                                                                            Reinicia o programa em
     Conecta o seu
                                                                                                                    execução
   computador para
     programação,
      depuração e
 alimentação elétrica.
      (micro USB)
                                                                                                              Entradas
                                                                                                             Analógicas
                                                                                                           odem ser utilizadas para ler
                                                                                                          tensões entre 0 e 3,3V. Uteis
                                                                                                              para ligar sensores e
                                                                                                                potenciômetros.



Adaptador                                                                                         Pinos de
   DC                         Processamento
Aceita entre 7,5v e           O micro controlador onde seu                                        Energia
 12v. (conector de               programa roda (Atmel                                        Expõe pinos para fornecer 5v
  2,1mm centro                  AT91SAM, 32 bit 48 MHz)                                      e 3,3v, além do gnd e pino de
     positivo)                                                                                           Reset
Netduino Plus




                www.duinolabs.com
O que é Netduino?




                    www.duinolabs.com
Kits de Desenvolvimento




http://www.microsoft.com/en-us/netmf/hardware/default.aspx
                                                 www.duinolabs.com
Como começar?




                www.duinolabs.com
www.duinolabs.com




                www.duinolabs.com
Quem é Netduino?




           14000+ participantes na comunidade
                                      Seis continents



Actual community member avatars (CC-BY-SA). Sample representation, not endorsement.

                                    http://forums.netduino.com
                                                                              www.duinolabs.com
Quem é Netduino?
Kevin D. Wolf




                  Quadricóptero
          http://new.efficientcoder.net/2012/08/nivek-go-
                 qc1-makes-its-debut-at-tampa.html
                                                            www.duinolabs.com
Quem é Netduino?
Andreas Schneider




        iPhone + Coffee Machine
         http://www.youtube.com/watch?v=kpFqRwrbtLQ
                                                      www.duinolabs.com
Quem é Netduino?
West Coast Customs and Microsoft
@ch9




                     Project Detroit
       (lighting + motor control for back glass window)

          http://channel9.msdn.com/coding4fun/detroit
                                                          www.duinolabs.com
Quem é Netduino?
Dan Thyer
@LogicalDan




       Self Destructing QR Code
        http://www.youtube.com/watch?v=kLBITYi72gg
                                                     www.duinolabs.com
Arduino para Programadores
           .NET


        Igor Kondrasovas
      igor@duinolabs.com

Arduino para Programadores .NET

  • 1.
    Arduino para Programadores .NET Igor Kondrasovas igor@duinolabs.com
  • 2.
    Igor Kondrasovas www.duinolabs.com
  • 3.
    Agenda • O .NET Micro Framework • Produtos Disponíveis • Exemplo de Código • Como começar? • Projetos de Exemplo www.duinolabs.com
  • 4.
    Perguntas? www.duinolabs.com
  • 5.
    A Internet dasCoisas www.duinolabs.com
  • 6.
    Dificuldades Encontradas • Áreasde aplicação são diversas e exigem habilidades de programação em hardware específicas; – Não estigmatizar os erros! • Ferramentas diversas, falta de modelos de programação; • Poucos protocolos de comunicação e suporte; • Código de difícil portabilidade; www.duinolabs.com
  • 7.
    O .NET MicroFramework www.duinolabs.com
  • 8.
    O .NET MicroFramework “Módulo inicializável de tempo de execução que traz os benefícios da plataforma .NET para dispositivos com poucos recursos” www.duinolabs.com
  • 9.
    O .NET MicroFramework Origem no SPOT (2004) (Smart Personal Object Technology) Utilizava o serviço MSN Direct (FM) 2009 – open source (Apache 2.0) www.duinolabs.com
  • 10.
    .NET Micro Framework www.duinolabs.com
  • 11.
    O .NET MicroFramewok • Footprint < 300 KB • Classes especificas para aplicações embedded (incluindo GUI em WPF) • CLR “on the metal” • Suporte a Flash, GPIOs, I2C, RS232, SPI, etc. • Modelo de drivers de dispositivos • Integração completa com Visual Studio (debug) • Emulador www.duinolabs.com
  • 12.
  • 13.
    Portabilidade Arquiteturas: ARM, ADI Blackfin, and Renesas SH2 ARM7, ARM9, Cortex www.duinolabs.com
  • 14.
  • 15.
    Piscando um LED www.duinolabs.com
  • 16.
    Botões www.duinolabs.com
  • 17.
    Eventos e Interrupções www.duinolabs.com
  • 18.
    Detalhes • 70 classes e 420 métodos • Reflection • Serialization • Threading e Sincronização • Timers • Exceções • Garbage Collection • Persistência • Recursos • Segurança e Criptografia • Atualização www.duinolabs.com
  • 19.
    Quem pode Utilizar? Cenário Uso Desenvolvedores Coloque seu software na próxima geração de dispositivos inteligentes Integradores Construa extensões e hardware específico Acadêmicos Base de conhecimento para estudantes e professores Hobistas Realizar sonhos www.duinolabs.com
  • 20.
    .NET Gadgeteer www.duinolabs.com
  • 21.
    Netduino (Secret Labs) www.duinolabs.com
  • 22.
    Arduino e Netduino www.duinolabs.com
  • 23.
    Compatibilidade www.duinolabs.com
  • 24.
    Reguladores Pinos Digitais 0-13 Pins LED Onboard de Tensão Recebem um tensão de Netduino Pinos Digitais que podem ser configurados como entradas (ler um sinal digital) ou como saídas (levados a níveis alto e baixo) Pode ser utilizado nos seus programas livremente entrada variável e fornecem 5V e 3,3V que o Netduino necessita. Conector USB Botão Reset Reinicia o programa em Conecta o seu execução computador para programação, depuração e alimentação elétrica. (micro USB) Entradas Analógicas odem ser utilizadas para ler tensões entre 0 e 3,3V. Uteis para ligar sensores e potenciômetros. Adaptador Pinos de DC Processamento Aceita entre 7,5v e O micro controlador onde seu Energia 12v. (conector de programa roda (Atmel Expõe pinos para fornecer 5v 2,1mm centro AT91SAM, 32 bit 48 MHz) e 3,3v, além do gnd e pino de positivo) Reset
  • 25.
    Netduino Plus www.duinolabs.com
  • 26.
    O que éNetduino? www.duinolabs.com
  • 27.
  • 28.
    Como começar? www.duinolabs.com
  • 29.
    www.duinolabs.com www.duinolabs.com
  • 30.
    Quem é Netduino? 14000+ participantes na comunidade Seis continents Actual community member avatars (CC-BY-SA). Sample representation, not endorsement. http://forums.netduino.com www.duinolabs.com
  • 31.
    Quem é Netduino? KevinD. Wolf Quadricóptero http://new.efficientcoder.net/2012/08/nivek-go- qc1-makes-its-debut-at-tampa.html www.duinolabs.com
  • 32.
    Quem é Netduino? AndreasSchneider iPhone + Coffee Machine http://www.youtube.com/watch?v=kpFqRwrbtLQ www.duinolabs.com
  • 33.
    Quem é Netduino? WestCoast Customs and Microsoft @ch9 Project Detroit (lighting + motor control for back glass window) http://channel9.msdn.com/coding4fun/detroit www.duinolabs.com
  • 34.
    Quem é Netduino? DanThyer @LogicalDan Self Destructing QR Code http://www.youtube.com/watch?v=kLBITYi72gg www.duinolabs.com
  • 35.
    Arduino para Programadores .NET Igor Kondrasovas igor@duinolabs.com