Palestra sobre Arduino e Raspberry Pi (Totvs)

4.589 visualizações

Publicada em

Palestra realizada dia 14/02/2013 na empresa Totvs em Joinville/SC sobre Arduino e Raspberry Pi

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.589
No SlideShare
0
A partir de incorporações
0
Número de incorporações
153
Ações
Compartilhamentos
0
Downloads
315
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Palestra sobre Arduino e Raspberry Pi (Totvs)

  1. 1. Prof. Walter Silvestre Coan, Ms. Departamento de InformáticaUniversidade da Região de Joinville - UNIVILLE
  2. 2.  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
  3. 3.  Claudio Montenegro Glauco Vinicius Scheffel
  4. 4.  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
  5. 5.  Idealizador: Massimo Banzi 2005 Interaction Design Institute Ivrea – Milano David Cuartielles, Gianluca Martino, Tom Igoe, David Mellis e Massimo Banzi
  6. 6.  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 328 Memória Flash: 32 Kb CPU: 8-bit AVR EEPROM: 1024 Bytes Tensão: 1.8v to 5.5v Duemilanove
  7. 7.  Qual a diferença de um Microcontrolador para um Microprocessador? Microcontrolador ATMEGA 328 MEGA
  8. 8. http://arduino.cc http://blog.arduino.cc
  9. 9.  Palestra Massimo Banzi no TED http://www.youtube.com/watch?v=UoBUXOOdLXY
  10. 10. Arduino UNO Arduino LilyPad Arduino Leonardo Arduino MiniPro Arduino MEGA Netduino
  11. 11. Arduino DUE Arduino ESPLORA
  12. 12.  Linux ◦ sudo apt-get install arduino
  13. 13.  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.
  14. 14.  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 Arduino e a porta de comunicação.
  15. 15.  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*
  16. 16. 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 conectado Reset 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.
  17. 17.  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.
  18. 18.  Primeiro teste: Blink ◦ Entrar no Software Arduino ◦ Selecionar: File -> Examples -> Basics -> Blink
  19. 19.  Primeiro teste: Blink Catodo (Grd) Anodo(PIN13)
  20. 20.  Primeiro teste: Blink ◦ Realizar a montagem do esquema elétrico ◦ Conectar o arduino na porta USB ◦ Carregar o programa para o Arduino
  21. 21. Porta Digitais e Analógicas: utilizadas para a conexão de componentes eletrônicos que serão controlados pelo microcontrolador. Portas Digitais 0 a 13: por trabalhar no sistema digital elas suportam os valores HIGH (1) e LOW (0) que representam ligado e desligado. Cada porta proveuma corrente de 5v, exceto a porta 13 que já possui um resistor e um LED conectado de forma serial,ENTRADA: mede se existe ou não uma corrente. reduzindo a tensão para 1.7v.SAIDA: prove ou retira corrente Essas portas podem serDICA: Sempre utilize resistores nas portas digitais utilizadas tanto no mododiferentes de 13 ENTRADA como SAIDA.
  22. 22. Porta Digitais utilizadas para saída:-No bloco de SETUP do programa arduino utilizar o comandopinMode(<numPorta>, OUTPUT);-No bloco de LOOP utilizar o comando digitalWrite(<numPorta>,<LOW/HIGH>); parahabilitar ou desabilitar o sinal na porta.
  23. 23. Porta Digitais utilizadas para Entrada:-No bloco de SETUP do programa arduino utilizar o comandopinMode(<numPorta>, INPUT);-No bloco de LOOP utilizar o comando digitalRead(<numPorta>); verificar o status daporta igual a LOW ou HIGH.
  24. 24.  Passo1
  25. 25.  Passo2 ◦ Python  Instalar os módulos  Serial  Twitter  Oauth2
  26. 26.  Passo 3 ◦ Twitter  É nécessário acessar https://dev.twitter.com  Criar um aplicativo para obter as chaves de acesso
  27. 27.  Passo 3 ◦ Twitter  Chaves de acesso API Twitter: suporta 350 consultas por hora
  28. 28.  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)
  29. 29. https://cosm.com/
  30. 30.  Passo 1 ◦ Transistor LM35 (sensor de temperatura linear) 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 }
  31. 31.  Passo 2 ◦ Configurar uma chave de acesso no COSM
  32. 32.  Passo 3 ◦ Fonte de dados
  33. 33.  Passo 3 ◦ Fonte de dados  Importante anotar o ID do Feed
  34. 34.  Passo 4 ◦ Programa Python  Bibliotecas: txCosm, zope.interface, pyOpenSSLfrom twisted.internet import defer, reactorimport txcosmfrom txcosm.HTTPClient import HTTPClientimport sysimport serialimport timeser = serial.Serial(port = COM23, baudrate=9600, timeout = None)# Paste your Pachube API key hereAPI_KEY = "AAAA"# Paste you feed identifier hereFEED_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.1http://www.eeml.org/xsd/0.5.1/0.5.1.xsd"> Continua...
  35. 35.  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...
  36. 36.  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()
  37. 37. 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 circuitosconstruídos provendo o aterramento.
  38. 38.  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 de Gás
  39. 39.  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
  40. 40. Componentes:- Arduino- Transistor BC 548- Resistor 1K ohms- Motor DC 3v- Duas pilhas AA (1,5v) //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); } }
  41. 41.  Ponte H - L293B / L293D
  42. 42.  Ponte H - L293B / L293D ◦ Gilberto Santos – 3º ano de Sistemas de Informação da UNIVILLE
  43. 43. GPS Shield XBee Shield Ethernet Shield Motor Shield Game Shield
  44. 44. Ethernet WIFI Motor
  45. 45. //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);}
  46. 46. StartA Group of Apps Netduino
  47. 47.  .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
  48. 48.  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
  49. 49.  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/
  50. 50.  Instalação ◦ Passo 1 – Download do Sistema Operacional
  51. 51.  Instalação ◦ Passo 2 – Gravar a imagem do Sistema Operacional no cartão SD  Win32 DiskImager  http://sourceforge.net/projects/win32diskimager/
  52. 52.  Instalação ◦ Passo 3 – piconfig  Aplicativo de configuração do Raspberry Pi  Executado automaticamente na primeira inicialização ou pode ser chamado pelo console
  53. 53.  Interface para simplificar e proteger as GPIO do Raspberry Pi ◦ Portas digitais e analógicas ◦ Dois Reles ◦ Leds e Pin Buttons
  54. 54.  PyGames ◦ API para desenvolvimento de jogos
  55. 55.  http://www.facebook.com/groups/383294078370453/
  56. 56.  http://blog.univille.br/joinuino
  57. 57. Prof. Walter Silvestre Coan, Ms. Departamento de Informática Universidade da Região de Joinville – UNIVILLE http://www.univille.br/deptoinformatica http://www.facebook.com/BSIUniville http://blog.univille.br/joinuinoe-mail: walter.s@univille.br – Twitter: waltercoan http://www.faltoupontoevirgula.com.br

×