*      ARDUINO

               Arlindo Santos
               acsantos@ipb.pt


Arlindo Santos - IPB             1   18-01-2012
ARDUINO

            * Dar a conhecer novas abordagens no
               desenvolvimento de aplicações informáticas
            * Suscitar curiosidade por parte dos alunos
               (alguns, não todos)
            * Mostrar o que o IPB e os seus alunos fazem
            * E também para eu aprender com o feedback de
               todos!




                                                *
 Arlindo Santos - IPB                  2                    18-01-2012
ARDUINO


            *Vamos esquecer o rato e o
               teclado
            *Mix entre a informática
               (programação) e a eletrónica




 Arlindo Santos - IPB         3               18-01-2012
ARDUINO




                            *
 Arlindo Santos - IPB   4       18-01-2012
ARDUINO




                             Hoje, pequenos dispositivos eletrónicos,
                             como o Arduino, podem facilmente
                             comunicar com computador, e oferecer ao
                             utilizador formas de interação ilimitadas
                             que criam emoções no utilizador.

Mais informação: Documentário http://vimeo.com/31389230       *
      Arlindo Santos - IPB                                5              18-01-2012
ARDUINO

            * Baixo custo ~20 euros.
            * Modularidade.
            * Facilidade de uso.
            * Facilidade de
              programação.
            * Curto tempo de
              aprendizado.
            * Curto tempo de retorno
              de implementação.
            * Facilidade de troca de
              informações.


            *Implementa
               a filosofia
               DiY!
                                *
 Arlindo Santos - IPB                  6   18-01-2012
ARDUINO

            * Possui compatibilidade com
              as linguagens de programação
              C e C++.
            * Apresenta ambiente de
              desenvolvimento integrado
              (IDE).
            * Utiliza filosofia de projeto
              open-source.
            * Existência de módulos de
              expansão - shields.
            * Comunidade de utilizadores,
              programadores e autores.




                                   *
 Arlindo Santos - IPB                        7   18-01-2012
ARDUINO




Ver mais em : http://arduino.cc/en/Main/ArduinoBoardDiecimila




                               *
      Arlindo Santos - IPB                                      8   18-01-2012
ARDUINO

Microcontrolador                  ATmega328
Tensão de operação                5V
Tensão de entrada (recomendada)   7-12 V

Tensão de entrada (limites)       6-20 V

Pinos E/S digitais                14

Pinos de entrada analógicos       6

Corrente CC por pino E/S          40 mA
Corrente CC por pino 3.3 V        50 mA

Memória Flash                     32 KB, sendo 2 KB utilizados pelo bootloader

SRAM                              2 KB
EEPROM                            1 KB
Velocidade de Clock               16 MHz


                                                     *
 Arlindo Santos - IPB                      9                              18-01-2012
ARDUINO




Arduino Mega- 126k (Flash Memory)        LilyPad Arduino
54 Pinos de I/O




                        *
 Arlindo Santos - IPB               10                     18-01-2012
ARDUINO




Arduino BT (Bluetooth)                                 Arduino Pro


Ver mais em: http://arduino.cc/en/Main/Hardware




                            *
  Arlindo Santos - IPB                            11                 18-01-2012
ARDUINO




                                                    led’s
                      temperatura
acelerómetro
                                    humidade                LCD’s



                                                    laser
     vibração




    Arlindo Santos - IPB                       12                   18-01-2012
ARDUINO




            *Mãos à obra!



 Arlindo Santos - IPB   13   18-01-2012
ARDUINO

            * É necessário que o arduino faça o que queremos!

            * Então é necessário:
               1. Descarregar o IDE
                    http://arduino.cc/en/Main/Software
                 2. Ideia
                 3. Programar (aprender a linguagem)
                        http://arduino.cc/en/Reference/HomePage
                 4. Carregar o programa para a memória do Arduino
                 5. Testar!




                                                           *
 Arlindo Santos - IPB                            14                 18-01-2012
ARDUINO


           Ideia?
           - Pisca-pisca

           Colocar um led em modo
           intermitente.



                        *
 Arlindo Santos - IPB       15      18-01-2012
ARDUINO

           /*
           Programa: Blink, * The basic Arduino example. * http://www.arduino.cc/en/Tutorial/Blink
           */


           int ledPin = 12;           // Usar o Pino de número 13 do Arduino e ele será chamado "ledPin"
           e                                        // será uma variável inteira.
           /*
           Função chamada automaticamente na primeira vez que o código é lido.
           Devemos dizer como o Pino deve se comportar.
           */
           void setup()
           {
           /* PinMode(Nome do pino, ENTRADA ou SAÍDA).
              Temos OUTPUT=Saída e INPUT=Entrada.
              O nome do pino é LedPIN.
           */
               pinMode(ledPin, OUTPUT);
           }




                                             *
 Arlindo Santos - IPB                                         16                                           18-01-2012
ARDUINO

           /* Função onde tudo acontece. Chama-se Loop porque é
           executada infinitas vezes.
           */
           void loop()
           {
               digitalWrite(ledPin, HIGH);
           /*
           Temos HIGH= LIGADO e LOW=DESLIGADO
           O nome do pino é LedPIN, que é o mesmo Pino 13
           */
               delay(1000);                  // Atraso de 1 segundo
               digitalWrite(ledPin, LOW);    // Temos LOW=DESLIGADO
               delay(1000);                  // Atraso de 1 segundo


                                    *
           }



 Arlindo Santos - IPB                          17                     18-01-2012
ARDUINO

            * Instalar drivers
                        * Pasta driversFTDI USB
                         Drivers
                        * Verificar o nome da
                         porta COM




                                           *
 Arlindo Santos - IPB                              18   18-01-2012
ARDUINO

            * Compilar
            * Salvar
            * Upload
                 * Selecionar o board e a
                    porta




                                     *
 Arlindo Santos - IPB                       19   18-01-2012
ARDUINO


           Ideia?
           - Botão

           O utilizador pressiona um
           botão.



                        *
 Arlindo Santos - IPB       20         18-01-2012
ARDUINO


            int Pin = 13;

            void setup()
            {
              Serial.begin(9600);
              pinMode(Pin, INPUT);
            }

            void loop()
            {
              int value = digitalRead(Pin);
              Serial.println(value, DEC);
              delay(1000);
            }




                                              *
 Arlindo Santos - IPB                             21   18-01-2012
ARDUINO


           Ideia?
           - liga e desliga
           manualmente

           O utilizador liga e desliga o
           Led.



                        *
 Arlindo Santos - IPB         22           18-01-2012
ARDUINO

            int PinBotao = 13;
            int PinLed = 12;


            void setup()
            {
                pinMode(PinLed, OUTPUT);
                pinMode(PinBotao, INPUT);
            }


            void loop()
            {
                int value = digitalRead(PinBotao);
                if(value == 1)
                 digitalWrite(PinLed, HIGH);
                else
                 digitalWrite(PinLed, LOW);



                                              *
                delay(1000);
            }



 Arlindo Santos - IPB                                23   18-01-2012
ARDUINO


           Ideia?
           - Comunicar com o
           computador

           O utilizador inicia a animação e
           quando esta finaliza o led
           acende.



                         *
 Arlindo Santos - IPB        24               18-01-2012
ARDUINO

            int PinBotao = 13;                    void loop()
            int PinLed = 12;                      {
            int recebido = 0;                         int value = digitalRead(PinBotao);
            int state = 0;                            digitalWrite(PinLed, LOW);
                                                      if(value == 1 && state == 0)
            void setup()                              {
            {                                             Serial.println(value, DEC);
                pinMode(PinLed, OUTPUT);                  state = 1;
                pinMode(PinBotao, INPUT);             }
                Serial.begin(9600);                   if (Serial.available() > 0)
                digitalWrite(PinLed, LOW);            {
            }                                             digitalWrite(PinLed, HIGH);
                                                          recebido = Serial.read();
                                                          Serial.println(recebido, DEC);
                                                          state = 0;
                                                          delay(5000);
                                                      }
                                                      delay(100);
                                                  }


                                             *
 Arlindo Santos - IPB                            25                                        18-01-2012
ARDUINO

            * Web site oficial : http://www.arduino.cc/
            * Wikipédia:
               http://pt.wikipedia.org/wiki/Arduino
            * Documentário: http://vimeo.com/31389230
            * Loja: http://inmotion.pt
            * Loja:
               http://shop.gtronica.com/index.php?manufact
               urers_id=7




                                            *
 Arlindo Santos - IPB                  26                    18-01-2012

Arduino

  • 1.
    * ARDUINO Arlindo Santos acsantos@ipb.pt Arlindo Santos - IPB 1 18-01-2012
  • 2.
    ARDUINO * Dar a conhecer novas abordagens no desenvolvimento de aplicações informáticas * Suscitar curiosidade por parte dos alunos (alguns, não todos) * Mostrar o que o IPB e os seus alunos fazem * E também para eu aprender com o feedback de todos! * Arlindo Santos - IPB 2 18-01-2012
  • 3.
    ARDUINO *Vamos esquecer o rato e o teclado *Mix entre a informática (programação) e a eletrónica Arlindo Santos - IPB 3 18-01-2012
  • 4.
    ARDUINO * Arlindo Santos - IPB 4 18-01-2012
  • 5.
    ARDUINO Hoje, pequenos dispositivos eletrónicos, como o Arduino, podem facilmente comunicar com computador, e oferecer ao utilizador formas de interação ilimitadas que criam emoções no utilizador. Mais informação: Documentário http://vimeo.com/31389230 * Arlindo Santos - IPB 5 18-01-2012
  • 6.
    ARDUINO * Baixo custo ~20 euros. * Modularidade. * Facilidade de uso. * Facilidade de programação. * Curto tempo de aprendizado. * Curto tempo de retorno de implementação. * Facilidade de troca de informações. *Implementa a filosofia DiY! * Arlindo Santos - IPB 6 18-01-2012
  • 7.
    ARDUINO * Possui compatibilidade com as linguagens de programação C e C++. * Apresenta ambiente de desenvolvimento integrado (IDE). * Utiliza filosofia de projeto open-source. * Existência de módulos de expansão - shields. * Comunidade de utilizadores, programadores e autores. * Arlindo Santos - IPB 7 18-01-2012
  • 8.
    ARDUINO Ver mais em: http://arduino.cc/en/Main/ArduinoBoardDiecimila * Arlindo Santos - IPB 8 18-01-2012
  • 9.
    ARDUINO Microcontrolador ATmega328 Tensão de operação 5V Tensão de entrada (recomendada) 7-12 V Tensão de entrada (limites) 6-20 V Pinos E/S digitais 14 Pinos de entrada analógicos 6 Corrente CC por pino E/S 40 mA Corrente CC por pino 3.3 V 50 mA Memória Flash 32 KB, sendo 2 KB utilizados pelo bootloader SRAM 2 KB EEPROM 1 KB Velocidade de Clock 16 MHz * Arlindo Santos - IPB 9 18-01-2012
  • 10.
    ARDUINO Arduino Mega- 126k(Flash Memory) LilyPad Arduino 54 Pinos de I/O * Arlindo Santos - IPB 10 18-01-2012
  • 11.
    ARDUINO Arduino BT (Bluetooth) Arduino Pro Ver mais em: http://arduino.cc/en/Main/Hardware * Arlindo Santos - IPB 11 18-01-2012
  • 12.
    ARDUINO led’s temperatura acelerómetro humidade LCD’s laser vibração Arlindo Santos - IPB 12 18-01-2012
  • 13.
    ARDUINO *Mãos à obra! Arlindo Santos - IPB 13 18-01-2012
  • 14.
    ARDUINO * É necessário que o arduino faça o que queremos! * Então é necessário: 1. Descarregar o IDE http://arduino.cc/en/Main/Software 2. Ideia 3. Programar (aprender a linguagem) http://arduino.cc/en/Reference/HomePage 4. Carregar o programa para a memória do Arduino 5. Testar! * Arlindo Santos - IPB 14 18-01-2012
  • 15.
    ARDUINO Ideia? - Pisca-pisca Colocar um led em modo intermitente. * Arlindo Santos - IPB 15 18-01-2012
  • 16.
    ARDUINO /* Programa: Blink, * The basic Arduino example. * http://www.arduino.cc/en/Tutorial/Blink */ int ledPin = 12; // Usar o Pino de número 13 do Arduino e ele será chamado "ledPin" e // será uma variável inteira. /* Função chamada automaticamente na primeira vez que o código é lido. Devemos dizer como o Pino deve se comportar. */ void setup() { /* PinMode(Nome do pino, ENTRADA ou SAÍDA). Temos OUTPUT=Saída e INPUT=Entrada. O nome do pino é LedPIN. */ pinMode(ledPin, OUTPUT); } * Arlindo Santos - IPB 16 18-01-2012
  • 17.
    ARDUINO /* Função onde tudo acontece. Chama-se Loop porque é executada infinitas vezes. */ void loop() { digitalWrite(ledPin, HIGH); /* Temos HIGH= LIGADO e LOW=DESLIGADO O nome do pino é LedPIN, que é o mesmo Pino 13 */ delay(1000); // Atraso de 1 segundo digitalWrite(ledPin, LOW); // Temos LOW=DESLIGADO delay(1000); // Atraso de 1 segundo * } Arlindo Santos - IPB 17 18-01-2012
  • 18.
    ARDUINO * Instalar drivers * Pasta driversFTDI USB Drivers * Verificar o nome da porta COM * Arlindo Santos - IPB 18 18-01-2012
  • 19.
    ARDUINO * Compilar * Salvar * Upload * Selecionar o board e a porta * Arlindo Santos - IPB 19 18-01-2012
  • 20.
    ARDUINO Ideia? - Botão O utilizador pressiona um botão. * Arlindo Santos - IPB 20 18-01-2012
  • 21.
    ARDUINO int Pin = 13; void setup() { Serial.begin(9600); pinMode(Pin, INPUT); } void loop() { int value = digitalRead(Pin); Serial.println(value, DEC); delay(1000); } * Arlindo Santos - IPB 21 18-01-2012
  • 22.
    ARDUINO Ideia? - liga e desliga manualmente O utilizador liga e desliga o Led. * Arlindo Santos - IPB 22 18-01-2012
  • 23.
    ARDUINO int PinBotao = 13; int PinLed = 12; void setup() { pinMode(PinLed, OUTPUT); pinMode(PinBotao, INPUT); } void loop() { int value = digitalRead(PinBotao); if(value == 1) digitalWrite(PinLed, HIGH); else digitalWrite(PinLed, LOW); * delay(1000); } Arlindo Santos - IPB 23 18-01-2012
  • 24.
    ARDUINO Ideia? - Comunicar com o computador O utilizador inicia a animação e quando esta finaliza o led acende. * Arlindo Santos - IPB 24 18-01-2012
  • 25.
    ARDUINO int PinBotao = 13; void loop() int PinLed = 12; { int recebido = 0; int value = digitalRead(PinBotao); int state = 0; digitalWrite(PinLed, LOW); if(value == 1 && state == 0) void setup() { { Serial.println(value, DEC); pinMode(PinLed, OUTPUT); state = 1; pinMode(PinBotao, INPUT); } Serial.begin(9600); if (Serial.available() > 0) digitalWrite(PinLed, LOW); { } digitalWrite(PinLed, HIGH); recebido = Serial.read(); Serial.println(recebido, DEC); state = 0; delay(5000); } delay(100); } * Arlindo Santos - IPB 25 18-01-2012
  • 26.
    ARDUINO * Web site oficial : http://www.arduino.cc/ * Wikipédia: http://pt.wikipedia.org/wiki/Arduino * Documentário: http://vimeo.com/31389230 * Loja: http://inmotion.pt * Loja: http://shop.gtronica.com/index.php?manufact urers_id=7 * Arlindo Santos - IPB 26 18-01-2012