LED RGB, PWM, Comunicação Serial, Acelerômetro

Documentos relacionados
PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Temporizadores e Interrupção, AD/DA, Display, Integração com MatLab

Projeto Final de Microcontroladores 2 Alarme de Temperatura

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

O aspecto do módulo de desenvolvimento Arduino Uno é mostrado na Figura 1 abaixo.

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

GUIA BÁSICO DE UTILIZAÇÃO E INSTALAÇÃO DO LINUX OUT OF THE BOX KIT MERCURIOIV

Introdução à Plataforma ARDUINO

Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:

TCI 120 Conversor de interface USB RS232

GUIA BÁSICO DE UTILIZAÇÃO E INSTALAÇÃO DO LINUX OUT OF THE BOX KIT MERCURIOIV

MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRATICO PARA PROGRAMAÇÃO

Introdução a Engenharia Elétrica

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Kit de desenvolvimento ACEPIC PRO V3.0

Terminal de Operação Cimrex 90

ezap 900 Controlador Lógico Programável ezap900/901 Diagrama esquemático Apresentação Módulo ZMB900 - Características Gerais Dados Técnicos

Arduino. Gilmar Aquino

Introdução. O que é o Arduino?

DK105 GROVE. Sonar. Radiuino

SICILIANO TECNOLOGIA

Cerne Tecnologia e Treinamento

SISTEMA PARA ESTUDO E TREINAMENTO NO ACIONAMENTO DE MÁQUINAS ELÉTRICAS COM INVERSOR DE FREQUÊNCIA E AQUISIÇÃO DE DADOS

KIT DIDÁTICO PIC-2377

Leitor MaxProx-PC. O leitor de cartões de proximidade MaxProx-PC é destinado aos Integradores de Controle de Acesso.

Missão: Arduino. 3 de Março. Organização

LINGUAGEM C PARA O 8051

ETAPAS PARA A CONSTRUÇÃO DA SONDA

Microcontroladores PIC16 - XM 116 -

O jeito fácil de aprender!

Microcontroladores PIC18 - XM 118 -

Manual DETECTOR NH (11) (62) (11) (62)

Arduino. Prof. Maurício Dias

SWEDA IF ST120 IF ST200 28/05/2007 GUIA DE INSTALAÇÃO PARA DRIVER DE COMUNICAÇÃO USB

TCI 7300-U. Cabo de programação MPI-PC p/ interface USB. Manual de Instalação

Laboratório de Programação com Games. Conteúdo: Professor: - Conceitos de programação com Python. Instituto de Computação - UFF

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos alexvbh@gmail.com

Introdução à linguagem C++

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Gradual Tecnologia Ltda

Manual de Armazenamento de dados - Windows 7

INFORMAÇÕES GERAIS DO TRABALHO

Manual Técnico Arduino Supervisório RTC (Real Time Clock)

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Instituto Superior de Engenharia de Lisboa

Oficina de Programação utilizando a plataforma Arduino

Manual Técnico Protuino FTDi

ELETRÔNICA DIGITAL. Prof. Arnaldo I. I. C. A. & I. T. Tech. Consultant

DGA21 SISTEMA FIXO COM SUPERVISÓRIO PARA DETECÇÃO DE GASES NOCIVOS E AMÔNIA IP 65. Manual

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Estruturas de Decisão

Linguagem C (estruturas condicionais)

SOFTWARES PARA CONTROLE DE ROBÔ CÂMERA

Sistema de Aquisição de Dados

Manual do usuário CLP LINCE

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

AGST. Atualização de Firmware MP5000. Guia Rápido. Linha MP5000

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

Professor Marcelo Josué Telles Porta LPT, programação, componentes eletrônicos, sistema binário...

Programação Básica em Arduino Aula 2

SMC-B-STD GUIA DE UTILIZAÇÃO GUIA DE UTILIZAÇÃO DO DRIVER PARA MOTOR DE PASSO BIPOLAR SMC-B-STD VER 1.00 PÁGINA 1

Versão mar/ Copyright, ROGERCOM

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

MANUAL DE TESTE DO SMS SENSOR UMRR-0Axxxx-1Exxxx (type 30) RADAR W/ TRAFFIC MODULE

Introdução DrumShield A Bateria Eletrônica Montagem Lista de Materiais Exemplo de Montagem... 10

LINGUAGEM C. Comandos de Controle do Vídeo, Teclado e especiais. Lógica de Programação

Volnys Bernal 1. Trabalho Chat UDP. PSI 2653 Meios Eletrônicos Interativos I

Inversor Trifásico 1CV e 2CV

Introdução ao Desenvolvimento de Aplicativos Android

Open Hardware & Arduino

Discentes: Weverton Lima e Juliete Souza Disciplina: Sistemas Embarcados Professor Orientador: Ilton Barbacena

ZAP 900. Controlador Lógico Programável ZAP900/901. Diagrama esquemático. Apresentação. Módulo ZMB900 - Características Gerais. Dados Técnicos.

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes

Manual do usuário - Kit DLS v4.0. Kit DLS v4.0 Display LCD serial Manual do usuário. Copyright VW Soluções

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

KIT NXP FREEDOM FRDM KL25Z

DK105 GROVE. Temperatura e Umidade. Radiuino

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Introdução... 3 Características... 3 Fios e conectores... 4 Diagramas de Instalação... 6 Controlador + Trava magnética... 6

APRESENTAÇÃO DO KIT CPLD_EE01

Curso introdutório de microcontroladores - Plataforma Arduino

Perguntas e Respostas de parametrização de Inversores de Frequência MS10

Sintaxe Básica de Java Parte 2

Sistemas Embarcados:

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

*Este tutorial foi feito para o Windows 7, mas pode ser usado em qualquer outro Windows, basta seguir o mesmo raciocínio.

Legibilidade do código fonte

NONUS - KIT SLOT READER

Microcontroladores: Programação em C

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Manual de Instalação MC-1T 3G. Manual MC-1T 3G

Programação em linguagem C para microcontroladores ARM Cortex-M3

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO

Sistemas Operacionais de Tempo Real Displays de 7 segmentos

Usando 123D: Led e Protoboard

Linguagem C. Prof.ª Márcia Jani Cícero

DB6630. Amplificador Modular de Potência de Micropasso. Manual do usuário

Transcrição:

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores LED RGB, PWM, Comunicação Serial, Acelerômetro Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Segundo Semestre de 2015

2 Sumário 1. LED RGB. 2. Módulo PWM. 3. Comunicação serial. 4. Acelerômetro.

3 LED RGB O LED RGB na placa (componente D3), é constituído internamente pela ligação de 3 LEDs, um vermelho, um verde e um azul. Ligação ANODO COMUM com os pinos do mcontrolador. Ligados a entradas digitais com suporte a sinal PWM (para regular brilho). LED1 LED2 LED3 Podem ser ligados em conjunto para formar outras cores.

LED RGB 4

5 LED RGB Hello World!. Simples programa para a plataforma FRDM KL25Z Piscar LED: #include "mbed.h" DigitalOut myled(led1); int main() { while(1) { myled = 1; wait(0.2); myled = 0; wait(0.2);

6 Sumário 1. LED RGB. 2. Módulo PWM. 3. Comunicação serial. 4. Acelerômetro.

7 Módulo PWM PWM significa Modulação por Largura de Pulso (Pulse Width Modulation); Sinal frequência constante e largura de pulso (ciclo ativo ou duty cycle) variável. Tensão Média: onde T é o período do sinal. Sinal PWM: onde tp e Vp são a duração e a tensão do pulso em nível alto.

8 Módulo PWM Assim: t p /T é o duty cycle O pulso da onda PWM apresenta tensão fixa, porém o valor médio da tensão varia em função do duty cycle. A tensão média (V M ) é diretamente proporcional ao ciclo ativo e, como este varia entre 0 e 1, a tensão média pode variar entre 0 e V pulso.

9 Módulo PWM Para obter um conversor D/A a partir do de uma saída PWM, basta adicionar à saída um filtro passa-baixas com frequência de corte menor que a frequência do PWM. mcontrolador PWM R c

Módulo PWM 10

11 Módulo PWM #include "mbed.h" PwmOut r(led_red); //Pino PT18 (LED RED) como saída PWM PwmOut g(led_green); //Pino PT18 (LED RED) como saída PWM int main() { int aux = 0; r.period(0.001); //Define o periodo do PWM da saída ligada ao LED RED g.period(0.001); //Define o periodo do PWM da saída ligada ao LED GREEN while (true) { for (float i = 0; i < 1.0 ; i+= 0.1) { if (aux ==0){//muda intensidade do LED RED g = 1; r = i; else{ //muda intensidade do LED GREEN r = 1; g = i; wait (0.1); aux =!aux;

12 Sumário 1. LED RGB. 2. Módulo PWM. 3. Comunicação serial. 4. Acelerômetro.

13 Comunicação Serial Comunicação com um PC host através de um "USB Virtual Serial Port" através do mesmo cabo USB que é usado para a programação. Isso permite que você: Imprima mensagens para um terminal host PC (útil para depuração!) Leia a entrada do teclado do PC host Comunique-se com aplicativos e linguagens de programação em execução no PC host que podem se comunicar com uma porta serial, por exemplo, Perl, Python, Java, Matlab, etc. Pode auxiliar no debug de variáveis do programa.

14 Comunicação Serial No mbed: Serial name(usbtx, USBRX): define a comunicação serial com TX e RX via USB SDA. Define o label name. name.baud(9600):define a taxa (baud rate) em 9600. Aceita outros valores (19200, 38400, etc). name.printf: imprime string KL25Z PC; name.putc: envia um caractere KL25Z PC; name.getc: recebe um caractere PC KL25Z.

15 Comunicação Serial Ao conectar o cabo USB, aparece enumerada no computador uma porta OpenSDA CDC.

16 Comunicação Serial Caso não apareça no sistema windos, é necessário instalar o driver. Busque por Download the mbed Windows serial port driver no Dashboard do mbed. Para o curso, vamos utilizar um aplicativo terminal denominado Tera Term (http://ttssh2.sourceforge.jp/index.html.en). OBS: tais arquivos de instalação estão postados no Moodle do minicurso.

17 Comunicação Serial Escolher a opção serial e a porta enumerada.

18 Comunicação Serial Hello World! #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx int main() { pc.printf("hello World!\n"); Echo back characters you type #include "mbed.h" Serial pc(usbtx, USBRX); int main() { pc.printf("echoes back to the screen anything you type\n"); while(1) { pc.putc(pc.getc());

19 Comunicação Serial Controla brilho do LED ( u p/ UP e d p/ DOWN). #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx PwmOut led(led1); float brightness = 1.0; int main() { pc.printf("press 'u' para aumentar brilho e 'd' para diminuir \n\r"); while(1) { char c = pc.getc(); if((c == 'u') && (brightness > 0.0)) { brightness -= 0.1; led = brightness; if((c == 'd') && (brightness < 1.0)) { brightness += 0.1; led = brightness; pc.printf("brilho = %2.0f %% \r", (1.0-led)*100);

20 Comunicação Serial Muda cor do led RGB ( r p/ RED, g p/ GREEN, b p/ BLUE. Qualquer outra tecla apaga tudo). #include "mbed.h" Serial pc(usbtx, USBRX); // tx, rx PwmOut r(led1); PwmOut g(led2); PwmOut b(led3); int main() { r=1; g=1; b=1; pc.printf("pressione a inicial da cor desejada (r ou g ou b)"); while(1) { char c = pc.getc(); switch(c){ case 'r': r=0; g=1; b=1; break; case 'g': r=1; g=0; b=1; break; case 'b': r=1; g=1; b=0; break; default: r=1; g=1; b=1; break;

21 Sumário 1. LED RGB. 2. Módulo PWM. 3. Comunicação serial. 4. Acelerômetro.

22 Acelerômetro Dispositivo para medição de aceleração própria. O kit FRDM KL25Z possui um acelerômetro triaxial, do tipo capacitivo, modelo MMA8451Q. O MMA8451Q é conectado ao KL25Z via interface de comunicação serial I2C, com a seguinte pinagem: SCL = PTE24 SDA = PTE25

Acelerômetro 23

24 Acelerômetro #include "mbed.h" #include "MMA8451Q.h" //biblioteca do Acelerometro // Definição dos pinos de acordo com o modelo do KIT #define SDA PTE25 #define SCL PTE24 #define MMA8451_I2C_ADDRESS (0x1d<<1) int main(void) { //ativa o periférico e aloca os pinos da com. I2C MMA8451Q acc(sda, SCL, MMA8451_I2C_ADDRESS); PwmOut rled(led1); PwmOut gled(led2); PwmOut bled(led3); printf("mma8451 ID: %d\n", acc.getwhoami()); while (true) { float x, y, z; x = acc.getaccx(); //valor de acordo com a posição do eixo x y = acc.getaccy(); //valor de acordo com a posição do eixo y z = acc.getaccz(); //valor de acordo com a posição do eixo z rled = 1.0 - abs(x); //intensidade da componente x na cor vermelha gled = 1.0 - abs(y); //intensidade da componente y na cor verde bled = 1.0 - abs(z); //intensidade da componente z na cor azul wait(0.2); printf("x: %1.2f, Y: %1.2f, Z: %1.2f\r", x, y, z);