Arduino: Hardware Livre e Robótica




   Marinho Brandão, FLISOL 2010, Goiânia
Quem é o palestrante
Quem é o palestrante

   É pragmático
   Desenvolvedor há 14 anos
   Autônomo, consultor e desenvolvedor
   Co-fundador da comunidade Django brasileira
   Autor do Geraldo Reports
   Programador Python do Ano em 2009
   Estudando Automação Industrial
O que é Arduino?
                   Ator Arduíno Colassanti
O que é Arduino?

   Criado por Massimo Banzi em 2005
   Placa controladora com entradas e saídas e
    processador Atmel ATMega328p
   Licença Creative Commons
   Possui inúmeras variantes
   Utiliza linguagem Wiring (baseado em C++)
   Baixo custo (27 dolares no eBay)
Exemplos de Hardware Livre




                   UzeBox Open Console

     RepRap
Exemplos de Hardware Livre




  BugLabs BUGBase



                      Elphel Camera
Exemplos de Hardware Livre




Open Automation Project   Leaf Project
Exemplos de Hardware Livre




                      Ben NanoNote
   Neo FreeRunner
    (OpenMoko)
Paralelo com mainboard




                    PROCESSADOR
         ENTRADAS




                                  SAíDAS
  AÇÃO                                     REAÇÃO



                    PERIFÉRICOS
Paralelo com mainboard

                 E/S DIGITAIS


                                    LEDS
  PORTA USB
                                    RESET




                  CHIP ATMEGA

  ENTRADA 9V


                5V e GND   E/S ANALÓGICAS
IDE para programação
Hello World com LEDs


                int pLed = 13;

                void setup() {
                  pinMode(pLed, OUTPUT);
                }

                void loop() {
                 digitalWrite(pLed, HIGH);
                 delay(1000); // 2 segundos
                 digitalWrite(pLed, LOW);
                 delay(1000); // 2 segundos
                }
Sensor de luz (LDR)


                  int valor;

                  void setup() {
                    Serial.begin(9600);
                  }

                  void loop() {
                   valor = analogRead(3);
                   Serial.println(valor);
                   delay(1000); // 1 segundo
                  }
Motores de passo (servo e stepper)

                   #include <Servo.h>
                    Servo servo;
                    int pos = 1;
                    int dir = 1;

                   void setup() {
                     servo.attach(10);
                   }

                   void loop() {
                     servo.write(pos);
                     if (pos<=0 || pos>=180){
                       dir = dir * -1;
                     }
                     pos = pos + dir * 19;
                     delay(1000);
                   }
Componentes essenciais

   Arduino e cabo USB
   Fios/jumpers
   Resistores (470Ω, 1kΩ, 2kΩ, 4.7kΩ, 10kΩ)
   Leds 5v
   Transistores PNP e NPN 2v ou 3v
   Diodos Zener 2v ou 3v
   Protoboard
   Alicate de corte
   Estilete
   Multímetro
   Potenciômetro
   Servo 180º e/ou continuous rotation
   Palitos de picolé
   Liguinhas de borracha
   Cola quente de silicone
Componentes adicionais

   LDR (sensor de luz)
   Motor (rotor) DC
   Sonar (sensor ultrassônico)
   Caixinha de acrílico
   Aparelho de solda
   Jacarés
   Furadeira e brocas para acrílico, madeira e alumínio
   Parafusos, porcas e arruelas
   Relés e bornes
   Engrenagens
   Timpot
   Braçadeiras
   Bateria 9v, interruptor e conector de bateria
   Rodinhas
   Sensores em geral
Dicas para iniciantes

   Começar do mais simples
   Não comprar kits, e sim componentes
   Aprender o básico de circuitos elétricos e
    mecânica
   E-bay é um dos melhores sites de compra
   Rodinhas, eixos, engrenagens do 1,99
   Instalar o Fritzing
Referências

   http://en.wikipedia.org/wiki/History_of_computing_hardware
   http://en.wikipedia.org/wiki/Open-source_hardware
   http://arduino.cc/
   http://www.arduinoshow.com/
   http://en.qi-hardware.com/wiki/Main_Page
   http://en.wikipedia.org/wiki/Open-source_robotics
   http://www.allelectronics.com
   http://github.com/marinho/eletronica
   http://del.icio.us/marinho/arduino
Perguntas?




             Marinho Brandão

             marinho@gmail.com
      http://www.marinhobrandao.com
     http://www.aprendendodjango.com

Arduino - Hardware Livre e Robótica

  • 1.
    Arduino: Hardware Livree Robótica Marinho Brandão, FLISOL 2010, Goiânia
  • 2.
    Quem é opalestrante
  • 3.
    Quem é opalestrante  É pragmático  Desenvolvedor há 14 anos  Autônomo, consultor e desenvolvedor  Co-fundador da comunidade Django brasileira  Autor do Geraldo Reports  Programador Python do Ano em 2009  Estudando Automação Industrial
  • 4.
    O que éArduino? Ator Arduíno Colassanti
  • 5.
    O que éArduino?  Criado por Massimo Banzi em 2005  Placa controladora com entradas e saídas e processador Atmel ATMega328p  Licença Creative Commons  Possui inúmeras variantes  Utiliza linguagem Wiring (baseado em C++)  Baixo custo (27 dolares no eBay)
  • 6.
    Exemplos de HardwareLivre UzeBox Open Console RepRap
  • 7.
    Exemplos de HardwareLivre BugLabs BUGBase Elphel Camera
  • 8.
    Exemplos de HardwareLivre Open Automation Project Leaf Project
  • 9.
    Exemplos de HardwareLivre Ben NanoNote Neo FreeRunner (OpenMoko)
  • 10.
    Paralelo com mainboard PROCESSADOR ENTRADAS SAíDAS AÇÃO REAÇÃO PERIFÉRICOS
  • 11.
    Paralelo com mainboard E/S DIGITAIS LEDS PORTA USB RESET CHIP ATMEGA ENTRADA 9V 5V e GND E/S ANALÓGICAS
  • 12.
  • 13.
    Hello World comLEDs int pLed = 13; void setup() { pinMode(pLed, OUTPUT); } void loop() { digitalWrite(pLed, HIGH); delay(1000); // 2 segundos digitalWrite(pLed, LOW); delay(1000); // 2 segundos }
  • 14.
    Sensor de luz(LDR) int valor; void setup() { Serial.begin(9600); } void loop() { valor = analogRead(3); Serial.println(valor); delay(1000); // 1 segundo }
  • 15.
    Motores de passo(servo e stepper) #include <Servo.h> Servo servo; int pos = 1; int dir = 1; void setup() { servo.attach(10); } void loop() { servo.write(pos); if (pos<=0 || pos>=180){ dir = dir * -1; } pos = pos + dir * 19; delay(1000); }
  • 16.
    Componentes essenciais  Arduino e cabo USB  Fios/jumpers  Resistores (470Ω, 1kΩ, 2kΩ, 4.7kΩ, 10kΩ)  Leds 5v  Transistores PNP e NPN 2v ou 3v  Diodos Zener 2v ou 3v  Protoboard  Alicate de corte  Estilete  Multímetro  Potenciômetro  Servo 180º e/ou continuous rotation  Palitos de picolé  Liguinhas de borracha  Cola quente de silicone
  • 17.
    Componentes adicionais  LDR (sensor de luz)  Motor (rotor) DC  Sonar (sensor ultrassônico)  Caixinha de acrílico  Aparelho de solda  Jacarés  Furadeira e brocas para acrílico, madeira e alumínio  Parafusos, porcas e arruelas  Relés e bornes  Engrenagens  Timpot  Braçadeiras  Bateria 9v, interruptor e conector de bateria  Rodinhas  Sensores em geral
  • 18.
    Dicas para iniciantes  Começar do mais simples  Não comprar kits, e sim componentes  Aprender o básico de circuitos elétricos e mecânica  E-bay é um dos melhores sites de compra  Rodinhas, eixos, engrenagens do 1,99  Instalar o Fritzing
  • 19.
    Referências  http://en.wikipedia.org/wiki/History_of_computing_hardware  http://en.wikipedia.org/wiki/Open-source_hardware  http://arduino.cc/  http://www.arduinoshow.com/  http://en.qi-hardware.com/wiki/Main_Page  http://en.wikipedia.org/wiki/Open-source_robotics  http://www.allelectronics.com  http://github.com/marinho/eletronica  http://del.icio.us/marinho/arduino
  • 20.
    Perguntas? Marinho Brandão marinho@gmail.com http://www.marinhobrandao.com http://www.aprendendodjango.com