Upload
rafael-sakurai
View
3.593
Download
0
Embed Size (px)
DESCRIPTION
Apresentação realizada na SESTINFO 2013 da Universidade Metodista de São Paulo.
Citation preview
Introdução ao Arduino
LEONARDO MUNIZ RAFAEL SAKURAI @rafaelsakurai
O que é “Arduino” � Plataforma de prototipagem eletrônica de “código aberto”.
� Placa de microcontrolador que usa eletrônica para projetos multidiciplinares.
� Possui um processador de 8-bit Atmel AVR, novos modelos sendo produzidos em 32-bit Atmel ARM.
� Vendido em modelos pré-montados ou peças soltas para montar.
� Em 2011 foram aproximadamente 300.000 Arduinos vendidos em todo o mundo.
� Fontes: � www.arduino.cc � www.arduino.com.br
Arduino
Arduino – A origem � Em 2005, Massimo Banzi e Daniel Cuartielles em
Turim na Itália. � Objetivo era criar um microcontrolador interativo mais
barato que os demais microcontroladores de mercado. � Chamaram este projeto de “Arduin of Ivrea”, e iniciaram
a produção em uma pequena fábrica na região noroeste da Itália.
� A codificação é uma variante da linguagem C++, porém mais simples.
� Fabricado na Europa pela Smart Projects, mas nos EUA é produzida pela Sparkfun Eletronics
Arduino – A evolução � Em 2006 (Setembro), foi anunciado o Arduino Mini.
� Em 2008, o Arduino Duemilanove foi disponibilizado com processador ATmega168 e logo em seguida com ATmega328.
� Em 2009, o Arduino Mega foi lançado com o processador ATmega1280.
� Em 2011, foi contabilizado pela fabricante o total de 300 mil Arduinos produzidos.
� Em 2012, o Arduino Leonardo foi apresentado baseado no processador ATMega32u4.
� No mesmo ano, surgiu o Arduino Due e Arduino Micro.
� Já existem diversas versões do Arduino.
Arduino – O funcionamento � O Arduino consiste de:
� Uma placa com um processador integrado; � Portas seriais que permitem conectar periféricos; � Programar o hardware para funcionar em paralelo.
� Ao invés de ficar conectando diversos fios por meio de “Protoboards”, o Arduino: � Permite adicionar módulos adicionais (“Shields”).
� A maioria das placas funcionam com 5 volts.
� Possui uma memória flash com um “boot loader” que armazenam códigos recém compilados.
Arduino – O funcionamento � Possui um conector USB que permite a transferência
de códigos fontes: � Também funciona como fonte de energia.
� Disponibiliza até 14 pinos digitais (I/O), dentre estes 6 são analógicos, 2 são digitais, 2 para tratar interrupções, AREF para entrada de tensão e GND é o terra.
� É possível conectar: � placas de bluetooth; � sensor de luminosidade; � sensor de temperatura; � sensor de presença; � buzinas; � servo-motores.
Arduino – Exemplos
Arduino Diecimila Arduino Duemilanove Arduino UNO
Arduino Leonardo Arduino Mega
Arduino Nano Arduino Due
LilyPad Arduino
Arduino – Nacionais
RLRduino http://www.rlrobotics.ind.br/
Tatuino http://tato.ind.br/
Program-me v2.0 http://eletronlivre.com.br/
Software - IDE � O arduino possui uma IDE (Integrated Development
Environment) que permite a criação e publicação dos códigos-fonte no Microprocessador.
� É uma variação da linguagem C++, com facilidades. Necessita apenas declarar 2 funções (setup e loop), destacam por cores as palavras reservadas e possui um Auto-identador de código.
� É compilado e feito o “Upload” para o processador com um único clique.
Ex.: void setup(){ pinMode (13, OUTPUT); } // acessa o LED numero 13 e o acende e apaga a cada 1 segundo void loop() {
digitalWrite (13, HIGH) Delay(1000); digitalWrite (13, LOW) Delay(1000);
}
Exemplo “Ligar LED via bluetooth”
Componentes necessários � Diodo Emissor de Luz (LED) : Perna maior – “Positivo” (+), Perna menor “Negativo” (-)
� Resistor de 330R (Ohms): Usado para diminuir a tensão, para não queimar o LED
� BreadBoard / Protoboard : Placa usada para estender conexões
� Placa Bluetooth (JY-MCU): Placa com 4 conectores (VCC, GND, RXD e TXD)
� Fios diversos, para juntar os componentes
� E o principal: Arduino UNO
Exemplo montado
Código Arduino: https://github.com/rafaelsakurai/arduino-acender-led-via-bluetooth
Ligando os componentes � Pegar o Breadboard/Protoboard, escolher uma trilha (na vertical). � Pegar o resistor, e conectar suas pontas em 2 trilhas diferentes. � Ligar os LEDs pela perna maior – Positivo (+) na trilha da ponta esquerda do
resistor � A ponta direita do Resistor, ligue-a com um fio na Porta 13 do Arduino. � Nos LEDS a perna menor – Negativa (-) ficaram numa terceira trilha, ligue um
fio na porta GND (Ground /Terra) do Arduino. � Conecte a Placa Bluetooth no Protoboard de modo que fique usando 4 trilhas. � Com o uso de fios, conecte um em cada trilhe e ligue conforme a associação
abaixo: VCC do Bluetooth-> na porta 3,3v do Arduino TXD do Bluetooth -> na porta RX – 0 do Arduino RXD do Bluetooth -> na porta TX – 1 do Arduino GND do Bluetooth -> na mesma trilha do LED que foi conectada no GND do Arduino
� Criar um programa pela IDE do Arduino que leia o Bluetooth, e envie para a porta 13 do Arduino: HIGH para ligar os LEDS ou LOW para apagá-los.
Codificando seu Arduino
Sheilds � O Arduino permite a utilização de placas pré-
configuradas que são chamadas de “Shields”.
� São expansões suportadas onde apenas conectá-los ao Arduino permitem acessá-los facilmente através de codificação.
� Os Shields podem ser: � Pacas com GPS; � Placas Ethernet; � Display LCD; � Entre outros.
Sheilds - Exemplos
Projetos de robôs Arduino
Exemplo “Carro robo controlado via
bluetooth”
21
Arduino Sensor Shield v5.0
L298N Stepper Motor Driver Controller Board
DC Geared Motor
L298N Stepper Motor Driver + DC Geared Motor int ENA=5;!int IN1=2; // Gira as rodas da direita para traz!int IN2=3; // Gira as rodas da direita para frente!int ENB=6;!int IN3=4; // Gira as rodas da esquerda para traz!int IN4=7; // Gira as rodas da esquerda para frente!!void setup() {! pinMode(ENA, OUTPUT);! pinMode(ENB, OUTPUT);! pinMode(IN1, OUTPUT);! pinMode(IN2, OUTPUT);! pinMode(IN3, OUTPUT);! pinMode(IN4, OUTPUT);! digitalWrite(ENA, HIGH);! digitalWrite(ENB, HIGH);!}!
void loop() {! // para frente! digitalWrite(IN1, LOW);! digitalWrite(IN2, HIGH);! digitalWrite(IN3, LOW);! digitalWrite(IN4, HIGH);! delay(1000);!}!
L298N Stepper Motor Driver + DC Geared Motor
void paraEsquerda() {! digitalWrite(IN1, LOW);! digitalWrite(IN2, HIGH);! digitalWrite(IN3, HIGH);! digitalWrite(IN4, LOW);! delay(1000);!}!!void paraTraz() {! digitalWrite(IN1, HIGH);! digitalWrite(IN2, LOW);! digitalWrite(IN3, HIGH);! digitalWrite(IN4, LOW);! delay(1000);!}!
void paraDireita() {! digitalWrite(IN1, HIGH);! digitalWrite(IN2, LOW);! digitalWrite(IN3, LOW);! digitalWrite(IN4, HIGH);! delay(1000);!}!!void parar() {! digitalWrite(IN1, LOW);! digitalWrite(IN2, LOW);! digitalWrite(IN3, LOW);! digitalWrite(IN4, LOW);!}
Servo motor
Servo motor #include <Servo.h>!#define servoPin 9!!Servo cabeca;!!void setup() {! pinMode(servoPin, OUTPUT);! cabeca.attach(servoPin);!}!!void loop() {! cabeca.write(0); //Direita! delay(1000);! cabeca.write(90); //Frente! delay(1000);! cabeca.write(180); //Esquerda! delay(1000);!}!
Sensor ultra sônico
Sensor ultra sônico #define trigPin 13!#define echoPin 12!!void setup() {! pinMode(trigPin, OUTPUT);! pinMode(echoPin, INPUT);!}!!void loop() {! int duracao = 0, distancia = 0;! digitalWrite(trigPin, HIGH);! delayMicroseconds(1000);! digitalWrite(trigPin, LOW);! duracao = pulseIn(echoPin, HIGH);! distancia = (duracao / 2) / 29.1;! Serial.print(distancia);! Serial.println("cm de distancia.");!}!
Line hunting sensor
Modulo receptor de infravermelho
Demonstração do carro robo controlado via
bluetooth
Código Arduino: https://github.com/rafaelsakurai/arduino-carro-robo-bluetooth
Demonstração do carro robo que desvia de
obstaculos
Código Arduino: https://github.com/rafaelsakurai/arduino-carro-robo-anda-sozinho
Obrigado!!!
LEONARDO MUNIZ RAFAEL SAKURAI @rafaelsakurai
Exemplos: https://github.com/rafaelsakurai Apresentação: http://www.slideshare.net/rafaelsakurai/