OBJETIVOS


●   Apresentar conceitos básicos sobre
    Computação Física, Sistemas Embarcados e
    Microcontroladores;


●   Apresentar a plataforma de prototipação
    Arduino;


●   Apresentar API básica de
    desenvolvimento.
INTRODUÇÃO




COMPUTAÇÃO FÍSICA
INTRODUÇÃO – Computação Física

●   O que é Computação Física ?

    ●   “Physical computing is about creating a conversation
        between the physical world and the virtual world of the
        computer.” - Igoe



●   Utilização de sensores, atuadores e microcontroladores;



●   Interligar o mundo físico com o mundo virtual.
INTRODUÇÃO – Computação Física

●   Perceber e responder a eventos no mundo
    físico através de sensores;



●   Comportamento implementado por software;



●   Objetivo de alterar a forma de interação
    entre humanos e computadores.
INTRODUÇÃO – Computação Física




Como os computadores nos veem ?
INTRODUÇÃO – Computação Física

                         Saída: interação com
                         teclado e mouse;


                         Entrada: interação
                         com o monitor;


                         Entrada: interação
                         com caixas de som.


        “To change how the computer reacts to us,
        we have to change how it sees us.” - Igoe
INTRODUÇÃO




SISTEMAS EMBARCADOS
INTRODUÇÃO – SISTEMAS EMBARCADOS


●   Definição do termo Sistemas Embarcados não é
    universal;


●   “Hardware programável, com poder de
    processamento, para realizar uma tarefa
    específica.” - Vahid;


●   Executam repetidamente apenas um programa.
INTRODUÇÃO – SISTEMAS EMBARCADOS
INTRODUÇÃO – SISTEMAS EMBARCADOS



●   Mais limitados em funcionalidades de
    hardware e/ou software do que os PCs;



●   “Some devices that are called embedded
    systems, such as PDAs or web pads, are
    not really embedded systems.”- Noergaard
INTRODUÇÃO – SISTEMAS EMBARCADOS
INTRODUÇÃO




MICROCONTROLADORES
INTRODUÇÃO - MICROCONTROLADORES

●   Componentes que formam um microcomputador
    agrupados em um único chip de silício.


●   Dos 9 bilhões de processadores fabricados em 2005,
    menos de 2% foram para PCs. Os outros 8,8 bilhões
    foram para sistemas embarcados;


●   “Microcontroladores são o coração e a alma de
    muitos eletrodomésticos do dia a dia.” - Grade;
INTRODUÇÃO - MICROCONTROLADORES


●   Formam a ponte entre hardware e software;



●   Dispositivos discretos que podem interagir com os
    diversos componentes de um circuito;



●   Podem variar em 8-bit, 16-bit ou 32-bit, o que se
    refere ao tamanho dos registradores internos e do
    acumulador.
INTRODUÇÃO - MICROCONTROLADORES
INTRODUÇÃO - MICROCONTROLADORES




  Atmega 8
                  Atmega 328




Attiny 45                      NXP LPC176x


             OMAP 3530
INTRODUÇÃO




PLATAFORMA ARDUINO
PLATAFORMA ARDUINO - INTRODUÇÃO


●   O que é o Arduino ?
    ●   “Projeto opensource que consiste em hardware e
        software.” - Schimidt;


●   Inicialmente criado para designers e artistas
    como plataforma de prototipação para os cursos
    de design de interação;


●   Atualmente utilizada como plataforma de
    prototipação por amadores e especialistas em
    todo o mundo.
PLATAFORMA ARDUINO - INTRODUÇÃO


●   Concebida para ser fácil de usar por iniciantes
    que possuem pouca experiência com software e
    eletrônica;


●   A combinação do hardware e do software permite
    desenvolver projetos que podem ser utilizados
    para controlar o mundo físico;


●   Hardware de baixo custo se comparado com outras
    soluções podendo ser desenvolvido, projetos de
    hardware também são opensource.
PLATAFORMA ARDUINO - HARDWARE




ADK                        MEGA
                LilyPad


                                        Mini




Nano

                Severino
                                  UNO
PLATAFORMA ARDUINO - HARDWARE




     IBM PC/XT 5160           Arduino UNO

●   Clock   - 4.7 Mhz   ●   Clock   - 16 Mhz
●   RAM     - 128 KB    ●   SRAM    - 2 KB
●   Flash   - 370 KB    ●   Flash   - 32 KB
PLATAFORMA ARDUINO – HARDWARE
                           SHIELDS




                           Motor Shield
 GPS Shield                                           Joystik Shield
                Ethernet
                                          XBee (Wireless)
USB Host
PLATAFORMA ARDUINO – HARDWARE
        PLACA ARDUINO UNO
PLATAFORMA ARDUINO - HARDWARE
Arduino SHIELDS
PLATAFORMA ARDUINO – SOFTWARE
          ARDUINO IDE
PLATAFORMA ARDUINO – SOFTWARE
                BLOCOS SKETCHES


                   int LED_PIN=13;
escopo global      int DELAY=1000;




                   void setup() {
  setup()            // initialize the digital pin as an output.
                     // Pin 13 has an LED connected on most Arduino boards:
                     pinMode(LED_PIN, OUTPUT);
                   }



                   void loop() {
                     digitalWrite(LED_PIN, HIGH); // set the LED on
   loop()            delay(DELAY);         // wait for a second
                     digitalWrite(LED_PIN, LOW); // set the LED off
                     delay(DELAY);         // wait for a second
                   }
PLATAFORMA ARDUINO – SOFTWARE
                  ENTRADA/SAÍDA DIGITAL


pinMode( PIN, MODE );
  –   Configurar um pino para um modo específico.
       ●   pinMode(13, OUTPUT);


digitalRead( PIN );
  –   Ler o valor/estado(HIGH, LOW) de um pino.
       ●   valor = digitalRead(13);


digitalWrite( PIN, VALOR );
  –   Atribuir um nível de tensão a um pino (HIGH =
      5v, LOW = 0v)
       ●   digitalWrite(13, HIGH);
PLATAFORMA ARDUINO – SOFTWARE
               COMUNICAÇÃO SERIAL - RS232


Serial.begin( BAUDRATE );
  –   Configurar a porta serial para uma velocidade
      específica.
       ●   Serial.begin(9600);


Serial.read( );
  –   Ler dados da porta serial.
       ●   byte = Serial.read( );


Serial.print( STRING );
  –   Escrever uma string na porta serial.
       ●   Serial.print(“V ENSOLn”);
PLATAFORMA ARDUINO – SOFTWARE
                     ENTRADA/SAÍDA ANALÓGICA


analogReference( TYPE );
  –   Configurar a tensão de referência para entrada
      analógica.
       ●   analogReference( DEFAULT );


analogRead( PIN );
  –   Ler o valor(0-1023 = .0049V resolução) de um pino
      analógico.
       ●   valor = analogRead(3);


analogWrite( PIN, VALOR );
  –   Atribuir um valor(0-255) analógico(PWM) em um pino.
       ●   analogWrite(3, 10);
PLATAFORMA ARDUINO – SOFTWARE
                           INTERRUPÇÕES



interrupts( );
  –   Habilitar interrupções externas.
       ●   Interrupts();


attachInterrupt( ID, FUNCAO, MODO );
  –   Especificar uma função a ser chamada quando a
      interrupção externa ocorrer.
       ●   attachInterrupt( 0, funcao, CHANGE );


detachInterrupt( ID );
  –   Desabilitar uma interrupção.
       ●   detachInterrupt( 0 );
REFERENCIAS

Arduino; www.arduino.cc

Hackaday; www.hackaday.com

Makezine; blog.makezine.com

Physical Computing: Sensing and Controlling the Physical World with Computers.
Igoe; Thomson; (2004).

Embedded System Design: A Unified Hardware/Software Approach. Vahid; (1999).

Embedded Systems Architecture: A Comprehensive Guide for Engineers and
Programmers. Noergaard; (2005).

tinyAVR Microcontroller Projects for the Evil Genius. Gadre; (2011).
PERGUNTAS ???
OBRIGADO !!!!
  hugo@entrebits.com.br

Introdução à plataforma Arduino

  • 2.
    OBJETIVOS ● Apresentar conceitos básicos sobre Computação Física, Sistemas Embarcados e Microcontroladores; ● Apresentar a plataforma de prototipação Arduino; ● Apresentar API básica de desenvolvimento.
  • 3.
  • 4.
    INTRODUÇÃO – ComputaçãoFísica ● O que é Computação Física ? ● “Physical computing is about creating a conversation between the physical world and the virtual world of the computer.” - Igoe ● Utilização de sensores, atuadores e microcontroladores; ● Interligar o mundo físico com o mundo virtual.
  • 5.
    INTRODUÇÃO – ComputaçãoFísica ● Perceber e responder a eventos no mundo físico através de sensores; ● Comportamento implementado por software; ● Objetivo de alterar a forma de interação entre humanos e computadores.
  • 6.
    INTRODUÇÃO – ComputaçãoFísica Como os computadores nos veem ?
  • 7.
    INTRODUÇÃO – ComputaçãoFísica Saída: interação com teclado e mouse; Entrada: interação com o monitor; Entrada: interação com caixas de som. “To change how the computer reacts to us, we have to change how it sees us.” - Igoe
  • 8.
  • 9.
    INTRODUÇÃO – SISTEMASEMBARCADOS ● Definição do termo Sistemas Embarcados não é universal; ● “Hardware programável, com poder de processamento, para realizar uma tarefa específica.” - Vahid; ● Executam repetidamente apenas um programa.
  • 10.
  • 11.
    INTRODUÇÃO – SISTEMASEMBARCADOS ● Mais limitados em funcionalidades de hardware e/ou software do que os PCs; ● “Some devices that are called embedded systems, such as PDAs or web pads, are not really embedded systems.”- Noergaard
  • 12.
  • 13.
  • 14.
    INTRODUÇÃO - MICROCONTROLADORES ● Componentes que formam um microcomputador agrupados em um único chip de silício. ● Dos 9 bilhões de processadores fabricados em 2005, menos de 2% foram para PCs. Os outros 8,8 bilhões foram para sistemas embarcados; ● “Microcontroladores são o coração e a alma de muitos eletrodomésticos do dia a dia.” - Grade;
  • 15.
    INTRODUÇÃO - MICROCONTROLADORES ● Formam a ponte entre hardware e software; ● Dispositivos discretos que podem interagir com os diversos componentes de um circuito; ● Podem variar em 8-bit, 16-bit ou 32-bit, o que se refere ao tamanho dos registradores internos e do acumulador.
  • 16.
  • 17.
    INTRODUÇÃO - MICROCONTROLADORES Atmega 8 Atmega 328 Attiny 45 NXP LPC176x OMAP 3530
  • 18.
  • 19.
    PLATAFORMA ARDUINO -INTRODUÇÃO ● O que é o Arduino ? ● “Projeto opensource que consiste em hardware e software.” - Schimidt; ● Inicialmente criado para designers e artistas como plataforma de prototipação para os cursos de design de interação; ● Atualmente utilizada como plataforma de prototipação por amadores e especialistas em todo o mundo.
  • 20.
    PLATAFORMA ARDUINO -INTRODUÇÃO ● Concebida para ser fácil de usar por iniciantes que possuem pouca experiência com software e eletrônica; ● A combinação do hardware e do software permite desenvolver projetos que podem ser utilizados para controlar o mundo físico; ● Hardware de baixo custo se comparado com outras soluções podendo ser desenvolvido, projetos de hardware também são opensource.
  • 21.
    PLATAFORMA ARDUINO -HARDWARE ADK MEGA LilyPad Mini Nano Severino UNO
  • 22.
    PLATAFORMA ARDUINO -HARDWARE IBM PC/XT 5160 Arduino UNO ● Clock - 4.7 Mhz ● Clock - 16 Mhz ● RAM - 128 KB ● SRAM - 2 KB ● Flash - 370 KB ● Flash - 32 KB
  • 23.
    PLATAFORMA ARDUINO –HARDWARE SHIELDS Motor Shield GPS Shield Joystik Shield Ethernet XBee (Wireless) USB Host
  • 24.
    PLATAFORMA ARDUINO –HARDWARE PLACA ARDUINO UNO
  • 25.
    PLATAFORMA ARDUINO -HARDWARE Arduino SHIELDS
  • 26.
    PLATAFORMA ARDUINO –SOFTWARE ARDUINO IDE
  • 27.
    PLATAFORMA ARDUINO –SOFTWARE BLOCOS SKETCHES int LED_PIN=13; escopo global int DELAY=1000; void setup() { setup() // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(LED_PIN, OUTPUT); } void loop() { digitalWrite(LED_PIN, HIGH); // set the LED on loop() delay(DELAY); // wait for a second digitalWrite(LED_PIN, LOW); // set the LED off delay(DELAY); // wait for a second }
  • 28.
    PLATAFORMA ARDUINO –SOFTWARE ENTRADA/SAÍDA DIGITAL pinMode( PIN, MODE ); – Configurar um pino para um modo específico. ● pinMode(13, OUTPUT); digitalRead( PIN ); – Ler o valor/estado(HIGH, LOW) de um pino. ● valor = digitalRead(13); digitalWrite( PIN, VALOR ); – Atribuir um nível de tensão a um pino (HIGH = 5v, LOW = 0v) ● digitalWrite(13, HIGH);
  • 29.
    PLATAFORMA ARDUINO –SOFTWARE COMUNICAÇÃO SERIAL - RS232 Serial.begin( BAUDRATE ); – Configurar a porta serial para uma velocidade específica. ● Serial.begin(9600); Serial.read( ); – Ler dados da porta serial. ● byte = Serial.read( ); Serial.print( STRING ); – Escrever uma string na porta serial. ● Serial.print(“V ENSOLn”);
  • 30.
    PLATAFORMA ARDUINO –SOFTWARE ENTRADA/SAÍDA ANALÓGICA analogReference( TYPE ); – Configurar a tensão de referência para entrada analógica. ● analogReference( DEFAULT ); analogRead( PIN ); – Ler o valor(0-1023 = .0049V resolução) de um pino analógico. ● valor = analogRead(3); analogWrite( PIN, VALOR ); – Atribuir um valor(0-255) analógico(PWM) em um pino. ● analogWrite(3, 10);
  • 31.
    PLATAFORMA ARDUINO –SOFTWARE INTERRUPÇÕES interrupts( ); – Habilitar interrupções externas. ● Interrupts(); attachInterrupt( ID, FUNCAO, MODO ); – Especificar uma função a ser chamada quando a interrupção externa ocorrer. ● attachInterrupt( 0, funcao, CHANGE ); detachInterrupt( ID ); – Desabilitar uma interrupção. ● detachInterrupt( 0 );
  • 32.
    REFERENCIAS Arduino; www.arduino.cc Hackaday; www.hackaday.com Makezine;blog.makezine.com Physical Computing: Sensing and Controlling the Physical World with Computers. Igoe; Thomson; (2004). Embedded System Design: A Unified Hardware/Software Approach. Vahid; (1999). Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers. Noergaard; (2005). tinyAVR Microcontroller Projects for the Evil Genius. Gadre; (2011).
  • 33.
  • 34.
    OBRIGADO !!!! hugo@entrebits.com.br