Palestra sobre Arduino e Raspberry Pi (Totvs)
-
Upload
walter-coan -
Category
Technology
-
view
3.591 -
download
4
description
Transcript of Palestra sobre Arduino e Raspberry Pi (Totvs)
Prof. Walter Silvestre Coan, Ms.
Departamento de Informática
Universidade da Região de Joinville - UNIVILLE
O que é o arduino?◦ Instalação
◦ Projetos
◦ Internet das coisas...
◦ Robótica
O que é o Netduino?◦ Projetos
Raspberry Pi◦ Instalação e configuração
◦ Desenvolvimento de jogos
Claudio Montenegro
Glauco Vinicius Scheffel
Arduino é uma plataforma aberta e livre que simplifica a prototipação de dispositivos eletrônicos capazes de medir aspectos físicos (sensores), realizar ações (atuadores) ou se comunicar com outros dispositivos.
Plataforma do Arduino◦ Placa◦ Linguagem de Programação◦ Plataforma de Desenvolvimento
Idealizador: Massimo Banzi
2005
Interaction Design Institute Ivrea – Milano
David Cuartielles, Gianluca Martino, Tom Igoe, David Mellis e Massimo Banzi
Aberto, Livre e expansível◦ Linguagem de Programação Similar ao C/C++, permite construção de bibliotecas em
C++
Hardware◦ Microcontrolador Atmel ATMEGA
“Barato”
Cross-Plataform
Ambiente simples de programação
ATmega 328Memória Flash: 32 Kb
CPU: 8-bit AVREEPROM: 1024 BytesTensão: 1.8v to 5.5v
Duemilanove
Qual a diferença de um Microcontrolador para um Microprocessador?
Microcontrolador ATMEGA 328
MEGA
http://arduino.cc http://blog.arduino.cc
Palestra Massimo Banzi no TED
http://www.youtube.com/watch?v=UoBUXOOdLXY
Arduino UNO Arduino Leonardo
Arduino MEGA
Arduino LilyPad
Arduino MiniPro
Netduino
Arduino DUE
Arduino ESPLORA
Linux◦ sudo apt-get install arduino
Windows◦ É necessário instalar o driver para a interface FTDI USB que
permite a comunicação direta entre o computador e o arduino.
◦ Windows 7 não 64bits O driver encontra-se na pasta driver da IDE de programação do
arduino
◦ Windows 7 64bits É necessário fazer o download da ultima versão do driver.
http://www.ftdichip.com/Drivers/VCP.htm
Passos◦ Conectar o arduino ao computador utilizando o cabo USB.◦ Aguarde o sistema operacional encontrar o novo hardware.◦ Apontar o caminho onde o driver foi baixado.
Configuração do Software Arduino◦ Windows
Acessar o gerenciador de dispositivos, verifique em que porta COM o driver FTDI foi instalado.
Informar no Software Arduino a versão do seu Arduinoe a porta de comunicação.
Configuração do Software Arduino◦ Linux
Comando para listar os dispositvos USB: lsusb
Comando para encontrar a porta de comunicação no linux: ls /dev/ttyUSB*
Porta USB: para alimentação de energia e comunicação com o computador.External DC:alimentação de energia externa, somente necessário quando o campo USB não esta conectadoReset Switch: reinicia o microcontroladoPower LED: indica que o Arduino esta em funcionamento.
Serial LEDS: indicam a troca de informações entre o computador e o Arduinoou atividade das portas digitais 0 (RX) e 1 (TX).Pin 13 LED: indica atividade na porta digital 13.
Light Emitting Diode (LED)
Cor Tensão Corrente
Infravermelho < 1.9v 20mA
Vermelho 1.63v ≈ 2.03v 20mA
Amarelo 2.10v ≈ 2.18v 20mA
Verde 1.9v ≈ 4.0v 20mA
Azul 2,48v ≈ 3.7 20mA
Branco 3.5v 20mA
LEDs:-São Polarizados, se você inverter o Catodo e o Anodo ele não funciona.-Um dos terminais sempre tem o tamanho maior indicando que é o catodo.-Adoram corrente, quanto mais voce passar para ele, mais ele irá tentar absorver até que ele superaqueça e queime.
Primeiro teste: Blink◦ Entrar no Software Arduino
◦ Selecionar: File -> Examples -> Basics -> Blink
Primeiro teste: Blink
Anodo(PIN13)Catodo (Grd)
Primeiro teste: Blink◦ Realizar a montagem do esquema elétrico
◦ Conectar o arduino na porta USB
◦ Carregar o programa para o Arduino
Porta Digitais e Analógicas:utilizadas para a conexão decomponentes eletrônicos queserão controlados pelomicrocontrolador.Portas Digitais 0 a 13: portrabalhar no sistema digitalelas suportam os valores HIGH(1) e LOW (0) que representamligado e desligado. Cada portaproveuma corrente de 5v,exceto a porta 13 que já possuium resistor e um LEDconectado de forma serial,reduzindo a tensão para 1.7v.Essas portas podem serutilizadas tanto no modoENTRADA como SAIDA.
ENTRADA: mede se existe ou não uma corrente.SAIDA: prove ou retira correnteDICA: Sempre utilize resistores nas portas digitais diferentes de 13
Porta Digitais utilizadas para saída:-No bloco de SETUP do programa arduino utilizar o comando pinMode(<numPorta>, OUTPUT);-No bloco de LOOP utilizar o comando digitalWrite(<numPorta>,<LOW/HIGH>); para habilitar ou desabilitar o sinal na porta.
Porta Digitais utilizadas para Entrada:-No bloco de SETUP do programa arduino utilizar o comando pinMode(<numPorta>, INPUT);-No bloco de LOOP utilizar o comando digitalRead(<numPorta>); verificar o status da porta igual a LOW ou HIGH.
Passo1
Passo2◦ Python
Instalar os módulos
Serial
Oauth2
Passo 3◦ Twitter
É nécessário acessar https://dev.twitter.com
Criar um aplicativo para obter as chaves de acesso
Passo 3◦ Twitter
Chaves de acesso
API Twitter: suporta 350 consultas por
hora
Passo 4◦ Código Python
import serial
import twitter
import time
ser = serial.Serial(port = 'COM23', baudrate=9600, timeout = None)
#Conexao sem autenticaçao api = twitter.Api()
api = twitter.Api(consumer_key='AAA',consumer_secret='BBB',
access_token_key='CCC', access_token_secret='DDD')
while True:
pass
message = api.GetUserTimeline("@waltercoan")[0]
if message.text.find("arduino") == -1:
message = api.GetMentions()[0]
print "Mension >>> "
else:
print "Message >>> "
if message.text.find("arduino") != -1:
if message.text.find("on") != -1: ser.write('l'.encode('ascii'))
if message.text.find("off") != -1: ser.write('d'.encode('ascii'))
print message.text
print "Sleep...\n"
time.sleep(5)
https://cosm.com/
const int inPin = 0; // analog pin
void setup()
{
Serial.begin(9600);
}
void loop()
{
int value = analogRead(inPin);
float millivolts = (value / 1024.0) * 5000;
float celsius = millivolts / 10;
// sensor output is 10mV per degree Celsius
int rate = map(celsius,20,30,0,255);
delay(500); // wait for one second
Serial.println(celsius);
delay(500); // wait for one second
}
Passo 1◦ Transistor LM35 (sensor de temperatura linear)
Passo 2◦ Configurar uma chave de acesso no COSM
Passo 3◦ Fonte de dados
Passo 3◦ Fonte de dados
Importante anotar o ID do Feed
Passo 4◦ Programa Python
Bibliotecas: txCosm, zope.interface, pyOpenSSL
from twisted.internet import defer, reactor
import txcosm
from txcosm.HTTPClient import HTTPClient
import sys
import serial
import time
ser = serial.Serial(port = 'COM23', baudrate=9600, timeout = None)
# Paste your Pachube API key here
API_KEY = "AAAA"
# Paste you feed identifier here
FEED_ID = "BBB"
feed_data = """<?xml version="1.0" encoding="UTF-8"?>
<eeml xmlns="http://www.eeml.org/xsd/0.5.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="0.5.1" xsi:schemaLocation="http://www.eeml.org/xsd/0.5.1
http://www.eeml.org/xsd/0.5.1/0.5.1.xsd">
Continua...
Passo 4◦ Programa Python
Bibliotecas: txCosm, zope.interface, pyOpenSSL
<environment>
<title>ArduinoTemp</title>
<status>live</status>
<description>Temperatura da sala</description>
<tag>arduino</tag>
<tag>Temperatura</tag>
<data id="temp">
<current_value>novatemperatura</current_value>
<max_value>50.0</max_value>
<min_value>-30</min_value>
</data>
</environment>
</eeml>"""
def demo():
client = HTTPClient(api_key=API_KEY, feed_id=FEED_ID)
result = client.update_feed(format=txcosm.DataFormats.XML,
data=feed_data.replace("novatemperatura",ser.readline()))
Só mais um...
Passo 4◦ Programa Python
Bibliotecas: txCosm, zope.interface, pyOpenSSL
if result:
print "Feed updated"
else:
print "Error updating feed"
reactor.callLater(10, demo)
defer.returnValue(True)
reactor.callWhenRunning(demo)
reactor.run()
Porta Analógicas: utilizadas para conectar sensores, possibilitando a conversão do sinal Analógico do componente sensor para valores Digitais (0-1023). Essas portas possuem apenas a opção de ENTRADA de sinal.
Porta Gnd: As portas GROUND são utilizadas para completar os circuitos construídos provendo o aterramento.
Sensores Tem por objetivo medir grandezas físicas que são
transformadas em sinais elétricos.
Sensor de Cor Sensor de Luminosidade Sensor de presença deGás
Atuadores Tem por objetivo modificar o estado de algo, transformando
sinais elétricos em uma grandeza física.
Motor DC Motor de passo Servo Motor
//Código Fonte (Fading):
int ledPin = 9;
void setup() {
// nao faz nada
}
void loop() {
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
}
Componentes:- Arduino
- Transistor BC 548
- Resistor 1K ohms
- Motor DC 3v
- Duas pilhas AA (1,5v)
Ponte H - L293B / L293D
Ponte H - L293B / L293D◦ Gilberto Santos – 3º ano de Sistemas de Informação da
UNIVILLE
GPS Shield XBee Shield Ethernet Shield
Motor Shield Game Shield
Ethernet WIFI
Motor
//http://www.ladyada.net/make/mshield/use.html
#include <AFMotor.h>
int sensorPin = A0;
double sensorVolts = 0;
double distance = 0;
AF_DCMotor motordir(3, MOTOR12_1KHZ);
AF_DCMotor motoresq(4, MOTOR12_1KHZ);
void setup() {
motoresq.setSpeed(255);
motordir.setSpeed(255);
Serial.begin(9600);
}
void loop() {
motoresq.run(FORWARD);
motordir.run(FORWARD);
sensorVolts = analogRead(sensorPin) * 0.0048828125;
distance = 65 * pow(sensorVolts, -1.10);
Serial.println(distance);
if (distance < 25) {
motoresq.run(RELEASE);
delay(3000);
motoresq.run(FORWARD);
}
delay(80);
}
Start
A Group of Apps
Netduino
.NET Micro Framework (Apache License 2.0) ◦ 2009◦ Dispositivos com 256KBytes flash e 64KBytes RAM◦ Netduino Criado pela Secret Labs 32 bits Microcontroller www.netduino.com
Criado por Prof. Eben Christopher Upton –2006 – Universidade de Cambridge
Objetivo:◦ Plataforma de Hardware e Software abertos para
ensinar crianças do reino unido a programar.
Raspberry Pi Foundation – 2012◦ Mais de 1 MILHÃO de unidades vendidas Model A - $25
Model B - $35
◦ Brasil http://www.farnellnewark.com.br
R$ 170,50 + Frete
BBC Micro Computer
Acessórios obrigatórios◦ Cartão de memória SD (8 giga)
◦ Fonte de alimentação USB (Tensão: 5v – Corrente 800 a 1000 mA)
◦ Teclado e Mouse
◦ Cabo HDMI / RCA
Mais informações◦ http://www.raspberrypi.org/
Instalação◦ Passo 1 – Download do Sistema Operacional
Instalação◦ Passo 2 – Gravar a imagem do Sistema Operacional
no cartão SD
Win32 DiskImager
http://sourceforge.net/projects/win32diskimager/
Instalação◦ Passo 3 – piconfig
Aplicativo de configuração do Raspberry Pi
Executado automaticamente na primeira inicialização ou pode ser chamado pelo console
Interface para simplificar e proteger as GPIO do Raspberry Pi◦ Portas digitais e analógicas
◦ Dois Reles
◦ Leds e Pin Buttons
PyGames◦ API para desenvolvimento de jogos
http://www.facebook.com/groups/383294078370453/
http://blog.univille.br/joinuino
Prof. Walter Silvestre Coan, Ms.Departamento de Informática
Universidade da Região de Joinville – UNIVILLEhttp://www.univille.br/deptoinformatica
http://www.facebook.com/BSIUnivillehttp://blog.univille.br/joinuino
e-mail: [email protected] – Twitter: waltercoanhttp://www.faltoupontoevirgula.com.br