Académique Documents
Professionnel Documents
Culture Documents
– Lucas Fragomeni
– Uaná Tecnologia
Agenda Padrão
• Introdução a Arduino
• Controlando tomadas pela Internet
• Controle de motores com Arduino
• Programando Robôs
• Criação de placas e shields
Introdução ao Arduino
• Robôs
• Roupas eletrônicas
• Máquinas de corte e modelagem 3D de baixo custo;
• Segway open-source
• Desenvolvimento de celulares customizados
• Instrumentos musicais
• Paredes interativas
• Instrumentação humana
• Circuit bending
Vários tipos, vários fabricantes...
• Mega
• Lilypad
• Nano
• Uno
• Pro
• Arduino BT
• Freeduino
• Severino
• Program-ME
Atmega168 / Atmega328: coração
• 6 canais PWM
• 6 conversores analógico/digital de 10 bits
• 1 serial programável (USART)
• 1 interface SPI (Serial Peripheral Interface)
• 1 interface serial a 2 fios (I2C)
• 1 watch dog timer programável
• 1 comparador analógico no chip
• Interrupção ou wake-up na alteração de estado dos pinos
Resumo das conexões da placa
FT232RL
Conversor
USB-‐Serial
Conector USB
Regular
7085:
Recebe
até
12
volts
e
regula
para
5
volts
Alimentação
externa:
Até
12
volts
Botão
de
reset
ICSP
Para
gravar
bootloader
ou
programas/firmware
AtMega328
/168/8
AREF
Portas
digitais
0
a
13
Referência
analógica
GND
0
RX
1
TX
=
usada
durante
Padrão
5
volts
transferência
de
sketch
e
comunicação
serial
com
placa
2,4,7,8,12,13
=
portas
digitais
convêncionais
void setup() {
}
void loop() {
}
void setup() {
pinMode(13, OUTPUT); //porta 13 em output
}
void loop() {
digitalWrite(13, HIGH); //HIGH = 1 = TRUE
delay(500);
digitalWrite(13, LOW); //LOW = 0 = FALSE
delay(500);
}
Exemplo “pisca led” com Arduino
void setup() {
//Inicializando conexão com PC via FT232 - cabo
Serial.begin(9600);
}
void loop() {
int luz = analogRead(5); //LDR ligado na 5
//envia informações para o PC
Serial.println(luz);
delay(500);
}
LDR no Arduino sem protoboard
DEMO
Jumper
Seleção
Externo
ou
USB
Lab 1: primeiro contato com Program-ME / Arduino
void setup() {
pinMode(13, OUTPUT); //porta 13 em output
}
void loop() {
digitalWrite(13, HIGH); //HIGH = 1 = TRUE
delay(500);
digitalWrite(13, LOW); //LOW = 0 = FALSE
delay(500);
}
O que precisamos para controlar uma tomada via
Web
• Microcontrolador
• Relê, transistor, diodo e resistor
• PC ou um shield Ethernet, WiFi ou ZigBee para seu
microcontrolador
• Arduino UNO
• Placa Tomad@
• PC e shield XBee para Arduino
Porque é necessário utilizar relés ?
Relê 1 e Relê 2
Bornes para encaixe dos fios de acionamento da saída do
void
loop()
{
digitalWrite(3,
LOW);
digitalWrite(2,
HIGH);
delay(1000);
digitalWrite(2,
LOW);
digitalWrite(3,
HIGH);
delay(1000);
}
1.
Computador
conectado
na
Web
com
servidor
Java
recebe
request
HTTP
com
solicitação
para
acionar
a
tomada
void
loop()
{
if(Serial.available()
>0)
{
int
incoming=Serial.read();
Serial.println("Recebendo
dados");
Serial.println(incoming,
DEC);
acionarRele(incoming);//
seu
protocolo
}
}
void
acionarRele(int
codigo)
{
if(codigo=65)
{
Serial.println("HIGH
no
rele
1");
digitalWrite(3,
HIGH);
}
else
if(codigo=66)
{
Serial.println("LOW
no
rele
1");
digitalWrite(3,
LOW);
}
else
if(codigo=67)
{
Serial.println("HIGH
no
rele
2");
digitalWrite(2,
HIGH);
}
else
if(codigo=68)
{
Serial.println("LOW
no
rele
2");
digitalWrite(2,
LOW);
}
}
Hacking
Class
Código
Servlet
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
byte[] dados = new byte[1];
dados[0] =
Byte.parseByte(request.getParameter("rele"));
try {
Arduino.enviar(dados);
...
outputStream = serialPort.getOutputStream();
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.notifyOnOutputEmpty(true);
outputStream.write(bytes);
serialPort.close();
Vamos praticar?
Torque:
33,3
oz-‐in
(2,4
kg/cm)
@
4.8V
42
oz-‐in
(3,0
kg/cm)
@
6V
Tempo
de
trânsito:
Peso: 44g
•
Enquanto
os
servos
analógicos
são
atualizados
30
vezes
por
segundo
(30Hz)
os
digitais
são
atualizados
300
vezes
por
segundo
(300
Hz).
•
O
torque
pode
chegar
a
ser
3
vezes
maior
que
o
do
servo
analógico.
•
Os
servos
digitais
também
podem
ser
programados
em
relação
ao
posicionamento,
definindo
limites
e
posições
para
o
caso
de
falhas.
Conexão
e
Esquema
Elétrico
Padrões
de
conexão
dos
Servos
Outra
diferença
está
na
conexão
mecânica
do
eixo
do
servo,
que
no
Hitec
tem
24
dentes
e
no
Futaba
25.
1. Laboratório
(laboratório
de Servomotores
assisZdo,
instrutor
guia
alunos)
Obje`vo:
PraZcar.
Tabela
de
a`vidades: