oficina de arduino

36
Oficina: Prototipação com Arduino http://pc.void.cc - UDESC Physical Computing

Upload: alan-fachini

Post on 13-May-2015

6.977 views

Category:

Self Improvement


3 download

DESCRIPTION

Oficina de Arduino.

TRANSCRIPT

Page 1: Oficina de Arduino

Oficina: Prototipação com Arduinohttp://pc.void.cc - UDESC Physical Computing

Page 2: Oficina de Arduino

Placas de Circuito Impresso DIY

Material:● Glossy Paper● Impressora Laser● Ferro de passar roupa● Vasilia com água e detergente

Modo de Fazer:

● Imprima o circuito no papel Glossy● Coloque o papel impresso em cima da placa e

passe com o ferro por cerca de 10 minutos● Deixe a placa descançar na vasilia por uns 15

minutos● Retire o excesso de papel com o dedo

Page 3: Oficina de Arduino

Ferramentas

Page 4: Oficina de Arduino

Ferramentas

Multímetro

Alicates

Fios (jumpers)

Protoboard

Estanho

Ferro de Solda

Componentes

Sugador

Mãos extras

Page 5: Oficina de Arduino

Protoboard

Page 6: Oficina de Arduino

...

...

Protoboard

Page 7: Oficina de Arduino

Physical Computing

● Computação Ubiqua● Computação Pervasiva● Ambiente Inteligente● Objetos inteligentes● Interação

Page 8: Oficina de Arduino

Arduino

● Plataforma Open Source Physical Computing

Page 9: Oficina de Arduino

Arduino

● Hardware Livre

● Plataforma Open Source Physical Computing

Page 10: Oficina de Arduino

Arduino

● Hardware Livre

● Comunidade

● Plataforma Open Source Physical Computing

Page 11: Oficina de Arduino

Arduino

● Hardware Livre

● IDE

● Comunidade

● Plataforma Open Source Physical Computing

Page 12: Oficina de Arduino

Origens do Arduino

● Baseado no AVR-GCC, avr-libc, AVRlib e no Processing, filho do Wiring

● Usa o microcontrolador AVR Atmega168● Possui um bootloader padronizado

Page 13: Oficina de Arduino

Características Atmega8

● 8 Kbyte - memória flash● 1 Kbyte - RAM● 512 byte – EEPROM● 13 digital I/O● 5 analog input● 6 analog output● 16 Mhz (Apple II: 1 MHz / Intel 286: 12.5 MHz /Intel Core 2: 3 GHz)

Page 14: Oficina de Arduino

● Digital Pins 2-13 (verde)

● Digital Pins (RX,TX) 0,1 (verde)

● Reset (azul)

● In-circuit Serial Programer (azul)

● Analog in Pins (azul)

● Power 5v e 9v (laranja)

● Terra (verde e laranja)

● Alimentação externa 9v – 12v (rosa)

● USB (amarelo)

● Jumper para mudar a alimentação do Diecimila (roxo)

Pinagem

Page 15: Oficina de Arduino

● Digital: On/Off, 1/0, 5v/0v● Analógico: 0 até ∞ (muitos valores● Computadores não entendem valores analógicos, esses valores são convertidos em pulsos digitais

Digital e Analógico

Page 16: Oficina de Arduino

PWM (analog output)

● Oscilando rapidamente a saída Digital, tem-se a impressão de que a quantidade de energia enviada para o circuito é variável;

Pulse Width Modulation

● ● No Arduino, as portas 9, 10, 11 podem ser usadas como PWM;●

● Essa técnica pode ser utilizada para variar a intensidade luminosa de um led, a velocidade de um motor, etc;

● No Arduino, as portas 9, 10, 11 podem ser usadas como PWM;

● Usa-se a função analogWrite(x, y) para controlar essa saída. Por exemplo: analogWrite(9,128), seta o pino 9 como PWM, usando 50% da sua tensão total. O valor máximo possível é 255;

Page 17: Oficina de Arduino

Mão na massaMontar projetos ao invés de falar sobre eles, a filosofia do Arduino.

Page 18: Oficina de Arduino

Digital OutputBlink: http://www.arduino.cc/en/Tutorial/Blink

Page 19: Oficina de Arduino

Digital OutputBlink: http://www.arduino.cc/en/Tutorial/Blink

int ledPin = 13;

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

void loop(){ digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000);}

Page 20: Oficina de Arduino

Digital InputButton: http://arduino.cc/en/Tutorial/Button

Page 21: Oficina de Arduino
Page 22: Oficina de Arduino

int ledPin = 13;int inputPin = 2;int val = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT);}

void loop(){ val = digitalRead(inputPin); if (val == HIGH) { digitalWrite(ledPin, LOW); } else { digitalWrite(ledPin, HIGH); }}

Digital InputButton: http://arduino.cc/en/Tutorial/Button

Page 23: Oficina de Arduino

PWM OutputFading: http://arduino.cc/en/Tutorial/Fading

Page 24: Oficina de Arduino

int value = 0;int ledpin = 9;

void setup(){pinMode(ledpin, OUTPUT);

}

void loop() { for(value = 0; value <= 255; value+=5) { analogWrite(ledpin, value); delay(30); } for(value = 255; value >=0; value-=5) { analogWrite(ledpin, value); delay(30); } }

PWM OutputFading: http://arduino.cc/en/Tutorial/Fading

Page 25: Oficina de Arduino

Potentiometer InputAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 26: Oficina de Arduino

int ledPin = 9;int potPin = 0int value = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(potPin, INPUT); }

void loop(){ value = analogRead(potPin); delay(100); analogWrite(ledpin, value); }

Potentiometer InputAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 27: Oficina de Arduino

Variable Resistor InputAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 28: Oficina de Arduino
Page 29: Oficina de Arduino

int ledPin = 9;int ldrPin = 0int value = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(ldrPin, INPUT); }

void loop(){ value = analogRead(ldrPin); delay(100); analogWrite(ledpin, value); }

Variable Resistor InputAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 30: Oficina de Arduino

ProcessingComunicando entre o Arduino e seu computador: http://www.processing.org

Page 31: Oficina de Arduino

Firmatahttp://www.arduino.cc/playground/Interfacing/Firmata

File>Sketchbook>Exemples>Library-Firmata>StandardFirmata

Arduino Library: http://www.arduino.cc/playground/Interfacing/Processing

Page 32: Oficina de Arduino

Digital OutputBlink: http://www.arduino.cc/en/Tutorial/Blink

Page 33: Oficina de Arduino

Digital Output (Processing)

import processing.serial.*;import cc.arduino.*; Arduino arduino;int ledPin = 13; void setup(){ arduino = new Arduino(this, Arduino.list()[0]); arduino.pinMode(ledPin, Arduino.OUTPUT);} void draw(){ arduino.digitalWrite(ledPin, Arduino.HIGH); delay(1000); arduino.digitalWrite(ledPin, Arduino.LOW); delay(1000);}

Page 34: Oficina de Arduino

Variable Resistor InputAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 35: Oficina de Arduino

Variable Resistor Input (Processing)

import processing.serial.*;import cc.arduino.*; Arduino arduino;int pino_sensor_ldr = 0;int valor_capturado_ldr = 0; void setup(){ println(Arduino.list()); arduino = new Arduino(this, Arduino.list()[0]); arduino.pinMode(pino_sensor_ldr, Arduino.INPUT);} void draw(){ valor_capturado_ldr = arduino.analogRead(pino_sensor_ldr); println(valor_capturado_ldr);}

Page 36: Oficina de Arduino

Você pode encontrar tudo isso e muito mais em:

● Arduino Notebook: http://www.lulu.com/content/1108699● Arduino Booklet:http://www.alfakini.com.br/blog/wp-content/uploads/2009/02/arduino_booklet02.pdf● Arduino Lecture: http://www.slideshare.net/eoinbrazil/imediaarduino08 ●