Mini Curso Sistemas Embarcados
-
Upload
suzana-mota -
Category
Engineering
-
view
197 -
download
11
description
Transcript of Mini Curso Sistemas Embarcados
![Page 1: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/1.jpg)
INTRODUÇÃO AO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS SUZANA VIANA MOTA
VIII Simpósio de Informática – Tecnologia Aplicada ao Desenvolvimento Social
![Page 2: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/2.jpg)
Sistemas Embarcados
![Page 3: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/3.jpg)
Um pouco de história
• Apollo Guidance Computer• Desenvolvido em 1968 no MIT.• Um computador - guia, que
operava em tempo real, e era considerado o item mais arriscado do sistema.
![Page 4: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/4.jpg)
Um pouco de história
• Década de 60 - 70
• O primeiro sistema embarcado de produção em massa foi o computador guia do míssil nuclear LGM -30 Minuteman.
![Page 5: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/5.jpg)
Um pouco de história
• Em meados da década de 80, com evolução da microeletrônica pode-se juntar vários componentes num único chip, o circuito integrado.
![Page 6: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/6.jpg)
Microcontrolador X Microprocessador
Memória ROM
Memória RAM
Portas I/O Periféricos
![Page 7: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/7.jpg)
Microcontrolador
• 40 Pinos• 16 bits• 8 canais para conversor de A/D• 1536 bytes de memória RAM• 40 MHz de Clock
![Page 8: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/8.jpg)
Programando Microcontroladores
EditorEditor
CC
CompiladorCompilador
HexadecimalHexadecimal GravadorGravador
![Page 9: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/9.jpg)
Ambiente de Desenvolvimento
![Page 10: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/10.jpg)
Acende LED
void main()
{
while(TRUE)
{
output_high(PIN_D0);
delay_us(100);
output_low(PIN_D0);
}
}
![Page 11: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/11.jpg)
• Ok, Entendi o programa.
• Mas o que acontece no microcontrolador?
output_high(PIN_D0);
Faz com que o PINO 19, vá para o nível “alto”, ou seja, ele fica com 5v.
![Page 12: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/12.jpg)
output_low(PIN_D0);
Faz com que o PINO 19, vá para o nível “baixo”, ou seja, ele fica com 0v.
![Page 13: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/13.jpg)
Sensores
• São dispositivos capazes de captar ações ou estímulos externos.
![Page 14: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/14.jpg)
Posição, Presença, Proximidade, Toque
Movimento, Velocidade, Deslocamento
Temperatura
Umidade
Acústica, Som, Vibração
Químico, GásFluxoForça, Carga, Esforço, Tensão, Pressão
Vazamentos, Níveis
Elétrico, Magnético
Aceleração
Luz, Visão de Máquina
Sensores
![Page 15: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/15.jpg)
Sensores Digitais
• Do ponto de vista elétrico, comportam-se como se fossem uma chave: liga/desliga.
• Portanto podemos fazer a ligação de modo que o sinal do sensor seja 0v ou 5v.
Sensor Óptico Sensor de Presença Sensor de Toque
![Page 16: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/16.jpg)
Sensores Analógicos
• Pode assumir qualquer valor no seu sinal de saída ao longo do tempo, desde que esteja dentro da sua faixa de operação.
Sensor de Temperatura
Microfone Web Cam
![Page 17: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/17.jpg)
Comunicação Serial
O padrão RS-232 é uma dos mais difundidos no mundo da automação e controle. Hoje em dia muitos equipamentos fazem uso do mesmo.
![Page 18: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/18.jpg)
Comunicação Serial
![Page 19: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/19.jpg)
Comunicação Serial
while(TRUE)
{
int SENSORES = 3;
int v_inicio=[2]
for(int i=0;i<SENSORES;i++)
{
set_adc_channel(i);
delay_us(300);
v_inicio[i] = read_adc();
}
}
![Page 20: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/20.jpg)
Tipo de DadosTipo Tamanho em Bits Faixa de Valores
BOOLEAN 1 0 ou 1
CHAR 8 0 a 255
INT 8 0 a 255
LONG INT 16 0 a 65.535
FLOAT 32 0 a 4.294.967.295
![Page 21: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/21.jpg)
Tabela ASCII
![Page 22: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/22.jpg)
![Page 23: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/23.jpg)
Plataformas Open Hardware
![Page 24: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/24.jpg)
Arduino
• Criado na Itália em 2005• Democratizar o ensino de programação e
eletrônica.
![Page 25: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/25.jpg)
Arduino Uno
• 14 pinos digitais• 6 entradas analógicas• Clock de 16 Mhz• 20.00 € = R$ 60,00
![Page 26: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/26.jpg)
Arduino Uno
![Page 27: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/27.jpg)
Arduino Uno
![Page 28: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/28.jpg)
Arduino Esplora
• Joystick Analógico• Acelerômetro• Clock de 16 Mhz• 39.90 € = R$ 120,00
![Page 29: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/29.jpg)
Arduino Esplora
![Page 30: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/30.jpg)
Arduino Nano
• 14 pinos digitais• 8 entradas analógicas• Clock de 16 Mhz• 33.00 € = R$ 100,00
![Page 31: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/31.jpg)
Arduino Nano
![Page 32: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/32.jpg)
Raspberry Pi
• Criado em 2006 no Reino Unido• Começou a ser comercializado em 2012• Custa em média 35 doláres
![Page 33: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/33.jpg)
Modelo A
CPU: 700 MHz GPU: Dual Core VideoCore
RAM: 256MB 1 Porta USB 2.0Saídas de vídeo: HDMI
Composite RCA (PAL e NTSC)Saídas de áudio: Conector de 3.5 mm, HDMI
35 USD = R$ 77,00
![Page 34: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/34.jpg)
Modelo B CPU: 700 MHz
GPU: Dual Core VideoCore
RAM: 512MB 2 Portas USB 2.0Saídas de vídeo: HDMI
Composite RCA (PAL e NTSC)Saídas de áudio: Conector de 3.5 mm, HDMI
Porta Ethernet
45 USD = R$ 99,00
![Page 35: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/35.jpg)
Modelo B+ CPU: 700 MHz
GPU: Dual Core VideoCore
RAM: 512MB 4 Portas USB 2.0Saídas de vídeo: HDMI
Composite RCA (PAL e NTSC)Saídas de áudio: Conector de 3.5 mm, HDMI
Porta Ethernet45 USD = R$ 99,00
![Page 36: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/36.jpg)
Projetos
![Page 37: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/37.jpg)
XCaracterísticas Arduino Raspberry Pi
Sistema Operacional - Linux - Raspbian
Linguagem de Programação C Python
IDE Arduino IDE, Eclipse OpenEmbedded, Eclipse
Arquitetura 8 bits 32 bits
Processamento 16 Mhz 700 Mhz
RAM 2 KB 256 MB
USB 1 2
Áudio - Stereo
Vídeo - HDMI, NTSC, PAL
![Page 38: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/38.jpg)
Inspirações...
![Page 39: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/39.jpg)
Criando o primeiro projeto
• Acesse: www.123d.circuits.io• Clique em SIGN UP• Preencha os campos necessários para o
cadastro.• Clique em CIRCUITS• Clique em CREATE A NEW CIRCUITS• Preencha o Campo NAME
![Page 40: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/40.jpg)
![Page 41: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/41.jpg)
![Page 42: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/42.jpg)
![Page 43: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/43.jpg)
PISCA LED
• 1 ARDUINO• 1 RESISTOR 1k Ω• 1 LED
![Page 44: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/44.jpg)
PISCA LED
![Page 45: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/45.jpg)
LED//Definindo LEDint led = 7;void setup() { //Inicializando o LED pinMode(led, OUTPUT); }
// the loop routine runs over and over again forever:void loop() { digitalWrite(led, HIGH); // Led em Pino Alto delay(1000); // Aguarda digitalWrite(led, LOW); // Led em Pino Baixo delay(1000); // Aguarda}
![Page 46: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/46.jpg)
PISCA LED ( SOS)//Definindo LEDint led = 7;void setup() { //Inicializando o LED pinMode(led, OUTPUT); }
// the loop routine runs over and over again forever:void loop() { for (int x=0; x<3; x++) {
digitalWrite(ledPin, HIGH);delay(150);digitalWrite(ledPin, LOW);delay(100);}
}
![Page 47: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/47.jpg)
PISCA LED + Botão
• 1 ARDUINO• 2 RESISTORES 1k Ω• 1 LED• 1 BOTÃO
![Page 48: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/48.jpg)
PISCA LED + Botão
![Page 49: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/49.jpg)
Pisca LED + Botãoconst int botao = 13; // identifica o pino onde ligar o botaoconst int led = 7; // identifica o pino onde ligar o ledint estado;
void setup() { pinMode(botao, INPUT); // configura o pino como entrada pinMode(led, OUTPUT); // configura o pino como saída}
void loop() { estado = digitalRead(botao);
if( estado == LOW) { digitalWrite(led, LOW); } else { digitalWrite(led, HIGH); } }
![Page 50: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/50.jpg)
LED + Potenciômetro
• 1 ARDUINO• 1 RESISTOR 390 ohm• 1 LED• 1 POTENCIOMETRO• 1 MULTIMETRO ( OPCIONAL )
![Page 51: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/51.jpg)
LED + Potenciômetro
![Page 52: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/52.jpg)
int ledPin = 7;int val = 0;
void setup() {
pinMode(ledPin, OUTPUT);
}void loop() {
val = analogRead(A0);digitalWrite(ledPin, HIGH);delay(val);digitalWrite(ledPin, LOW);delay(val);
}
LED + Potenciômetro
![Page 53: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/53.jpg)
Servo Motor + Potenciômetro
• 1 ARDUINO• 1 POTENCIOMETRO• 1 SERVO MOTOR
![Page 54: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/54.jpg)
Servo Motor + Potenciômetro
![Page 55: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/55.jpg)
Servo Motor + Potenciômetro#include <Servo.h>
//incluindo biblioteca para controle do servomotor Servo servoMotorObj; //Criando um objeto da classe Servo int const potenciometroPin = 0; //pino analógico onde o potenciômetro está conectadoint const servoMotorPin = 3; //pino digital associado ao controle do servomotorint valPotenciometro; //variável usada para armazenar o valor lido no potenciômetro
void setup() { servoMotorObj.attach(servoMotorPin); //associando o pino digital ao objeto da classe Servo} void loop() {
valPotenciometro = analogRead(potenciometroPin); //lendo o valor do potenciômetro (intervalo entre 0 e 1023) valPotenciometro = map(valPotenciometro, 0, 1023, 0, 180); //mapeando o valor para a escala do servo (entre 0 e 180) servoMotorObj.write(valPotenciometro); //definindo o valor/posição do servomotor delay(15);
}
![Page 56: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/56.jpg)
Pisca LED + Arco-íris de botões
![Page 57: Mini Curso Sistemas Embarcados](https://reader034.fdocumentos.com/reader034/viewer/2022042522/559e5bb81a28abed7f8b4609/html5/thumbnails/57.jpg)
const char botao = 11;char estadoBotao;int atraso = 1000;int i = 0;void setup() { pinMode(botao, INPUT); for ( i = 0; i < 4; i ++ ) {
pinMode(i, OUTPUT); digitalWrite(i, LOW); digitalWrite(0, HIGH); } i =0;
}
LED + Botãovoid loop() { delay(atraso); estadoBotao = digitalRead(botao); if(estadoBotao == LOW){ digitalWrite(i, LOW); i++; if (i == 4) { i = 0;} digitalWrite(i, HIGH); } else { digitalWrite(i, LOW); i--; if (i == -1) { i = 3;} digitalWrite(i, HIGH); } }