SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Curso mbed e
FRDM KL46Z da NXP
Por Fábio Souza
www.embarcados.com.br
MÍDIA KIT
2017
FÁBIO SOUZA
INSTRUTOR
● Engenheiro, Professor, maker...
● Experiência em desenvolvimento de
projetos
● Diretor de operações do Embarcados
COMPARTILHAR O
CONHECIMENTO É
APRENDER TODOS
OS DIAS
O EMBARCADOS
O Embarcados é uma plataforma que contribui
para o desenvolvimento tecnológico no Brasil, a
partir do compartilhamento de informações na
área de sistemas eletrônicos.
 
Do estudante ao profissional, dos makers aos
curiosos, acreditamos que todos devem ter
acesso a informações de qualidade – que
auxiliam em projetos eletrônicos e servem para
atualização do conhecimento.
CONTEÚDO, CONCURSOS E AÇÕES
O PORTAL A ATUALIZAÇÃO DO PORTAL É CONSTANTE,
BEM COMO O SEU ENVOLVIMENTO!
Todos os dias, publicamos artigos com conteúdos bem diversificados
na área de sistemas embarcados, que contêm informações relativas a:
Artigos
Sobre sistemas embarcados
Reviews
De placas, processadores e
CIs
Dicas e truques
Que auxiliam em projetos e em
partes específicas de projetos
Projetos
Hardware e firmware/software
Estudos
Sobre Estado da Arte, história e teoria da eletrônica,
além de Sistemas Digitais (FPGA, Verilog e VHDL)
Notícias
Notícias atuais sobre a
área de sistemas
embarcados
Fórum
A grande comunidade que ensina e
aprende através de sistemas
embarcados!
www.embarcados.com.br
contato@embarcados.com.br
twitter.com/embarcados
facebook.com/osembarcado
slinkedin.com/company/emba
rcados
plus.google.com/+EmbarcadosBrasil
Embarcados TV
Sobre esse Treinamento
Esse treinamento foi desenvolvido para que pessoas possam aprender a utilizar a placa
NXP FRDM KL46Z com a plataforma online mbed. Possui um formato self-paced onde
apresenta um material introdutório com os conceitos básicos para você dar os
primeiros passos com essas ferramentas de forma prática.
Ao final desse treinamento você será capaz de criar um projeto no mbed para uso da
placa FRDM KL46Z da NXP, usando os periféricos presentes na placa.
Esse treinamento foi elaborado por: Fábio Souza
Materiais
Para ter um melhor aproveitamento desse material, é necessário ter
os seguintes itens:
• Computador com acesso a Internet, e porta USB disponível
• Placa FRDM KL46Z
• Cabo USB
Instruções
• Seguir os slides na sequência apresentada.
• A placa deve estar com o firmware atualizado para uso do mbed.
• Caso precise de mais informações, acessar a seção de referências.
• Boa diversão!
O que é um sistema Embarcado?
Um sistema Embarcado, ou Embedded System
é um sistema eletrônico, composto de
hardware e software desenvolvido para uma
aplicação específica, ou seja, executam uma
sequência de tarefas pré-definidas para
atender a um requisito específico.
Geralmente é composto por um circuito
integrado (microcontrolador) que possui toda
a arquitetura computacional necessária para
controle do sistema.
FRDM KL46Z
A placa FRDM-KL46Z é uma plataforma de baixo
custo para avaliação dos microcontroladores da série
Kinetis L - KL4x, que são microcontroladores ARM
Cortex-M0+. O microcontrolador presente nesta
placa é o MKL46Z256VLL4, que possui 256 KB de
memória flash, 32 KB de memória SRAM, USB OTG
(FS), controlador para display LCD de segmentos, e
pode operar a até 48 MHz.
Recursos presentes na placa:
● Slider touch capacitivo;
● Acelerômetro de 3 eixos MMA8451Q
● Magnetômetro - MAG3110
● LEDs;
● LCD de 4x8 segmentos - LCD-S401M16KR
● Sensor de luz ALS-PT19-315C/L177/TR8
● Diversas opções de alimentação:
○ USB, bateria, Fonte externa;
● Pontos de acesso para medição;
● Facilidade de acesso aos pinos I/O
● Pinagem compatível com Arduino ™ R3;
● Interface de programação e debug OpenSDA.
FRDM KL46Z
Possibilidades de alimentação
Há diversas possibilidades de
alimentação para a placa KL46Z.
OpenSDA para programação/depuração
Para programação/depuração
está disponível na placa a
interface OpenSDA, que é um
padrão aberto muito utilizado
para esse fim.
Diagrama de pinos
Microcontrolador MKL46Z256VLL4
Características:
● Núcleo ARM® Cortex™-M0+ de alta
performance
● @48MHz, 32KB RAM, 256KB FLASH
● USB (Host/Device)
● SPI (2)
● I2C (2)
● I2S (1)
● UART (3)
● PWM (6)
● ADC (6)
● DAC (1x 6bit, 1x 12bit)
● Touch Sensor
● GPIO (84)
● LCD Controller
mbed
mbed
O mbed é uma plataforma de desenvolvimento completa da ARM, agora focada
em IoT e sistemas embarcados de baixo consumo, que disponibiliza uma IDE online
para programação, compilador utilizando o próprio Browser, que possibilita
acelerar, e muito, a criação de protótipos utilizando microcontroladores
comerciais.
Mbed - Plataformas
Uma série de plataformas e placas suportam o mbed. Escolhemos a plataforma
NXP Kinetis para esse treinamento.
mbed
mbed
Com mbed tudo fica simples!
● Escolha uma placa suportada pelo mbed
● Use a IDE online para clonar e/ou desenvolver seu código
● Compile e faça o download do binário para sua placa
● Se preferir, baixe o código e compile usando a sua ferramenta de
desenvolvimento atual.
mbed - Login
Para criar um usuário e fazer login, acesse
https://developer.mbed.org/account/login/
mbed - Login
mbed - Login
mbed - Login
Preencha seus dados e depois
acesse o seu e-mail
mbed - Login
Seu perfil
Acesse o Compilador
mbed - Adicione a KL46Z ao compilador
Selecione a placa
eletrônica
FRDM-KL46Z
mbed - Adicione a KL46Z ao compilador
mbed - Adicione a KL46Z ao compilador
mbed - Adicione a KL46Z ao compilador
Adicione a placa ao compilador
mbed - Importe os exemplos
Para facilitar o desenvolvimento desse treinamento vamos utilizar
projetos exemplos. Em cada tópico será disponibilizado o link do
projeto. É só importar para o compilador:
Exemplo 1 - Blink
O primeiro exemplo irá piscar o led verde(LED1) em intervalos de 0,5 s.
Abra o projeto KL46Z_EX1:
mbed - Compilando o projeto
Para compilar o projeto, pressione Compile ou as teclas Ctrl+D
mbed - compilando....
Será iniciado o processo de
compilação. Aguarde alguns
instantes...
mbed - Salve o arquivo gerado
Após a compilação, será
iniciado o download do binário
gerado. Você pode salvar em
uma pasta para uso posterior,
ou salvar diretamente no
unidade MBED, criada quando
é inserida a placa no
computador.
mbed - Upload
Um arquivo após a compilação foi gerado
e feito o download para seu computador.
Conecte a placa na interface USB (SDA)
indicada na imagem.
mbed - Resumo
Arraste esse arquivo de seu computador para o drive que foi montado com o nome
MBED. O led Verde( próximo a USB) irá piscar. Espere alguns segundos e pressione
RESET. O led verde(LED1) irá piscar, 0,5 segundos aceso e 0,5 segundos apagado.
mbed - Desafio
No exemplo anterior vimos como piscar o LED verde, definido como
LED1 no mbed. Sabendo que o LED vermelho é definido como LED2,
altere o exemplo 1 para que acenda os leds de forma complementar,
como uma sinalizador de garagem.
Exemplo 2 - Botões
Este exemplo exibe como ler os botões presentes na placa. Vamos desenvolver
uma aplicação que quando pressionamos um botão ele acenda um led e quando
solta o botão o led apaga.
Exemplo 2 - Botões
Os botões estão ligados da seguinte forma na placa:
Exemplo 2 - Botões
Abra o exemplo KL46Z_EX2:
Exemplo 2 - Botões
Conforme vimos no esquema de ligação dos botões, quando um dos
botões é pressionado é levado o estado do pino para 0. Dessa forma,
precisamos detectar quando o pino está em nível zero através de um
if:
if(sw1 == 0){ //se botão pressionado
led_red = 0; //liga o led
}else{ //se não
led_red = 1; //apaga o led
}
Exemplo 2 - Botões
Compile o programa e faça o upload para a placa(conforme instruções
anteriores).
Ao pressionar os botões você verá que o led irá acender e quando
soltar ele irá apagar.
Desafios
1 - aproveitando o exemplo feito com o botão sw1 e led verde, inclua no
programa a leitura da tecla sw3 que deve controlar o led vermelho.
2 - Altere o exemplo para que o led verde só acenda quando botão SW1
‘E’ o botão SW2 estiverem pressionados.
3 - Altere o exemplo para que o led ver troque de estado ao pressionar
sw1 o botão e permaneça até o botão sw1 ser pressionado novamente.
4 - Inclua o botão sw3 e led vermelho no exercício anterior
Exemplo 3 - Sensor de toque (Slider)
Nesse exemplos vamos usar o sensor de toque capacitivo presente na
KL46Z. Vamos criar uma aplicação para alterar a intensidade do LED
verde conforme a posição do toque na placa. Esse é o sensor de
toque:
Exemplo 3 - Sensor de toque (Slider)
Esse sensor é feito na própria PCB e está ligado da seguinte forma:
Exemplo 3 - Sensor de toque (Slider)
Abra o programa KL46Z_EX3.
Note que para esse projeto
foi utilizada a biblioteca
tsi_sensor:
Exemplo 3 - Sensor de toque (Slider)
Compile o programa e faça o upload para a placa(conforme instruções
anteriores).
Ao tocar no sensor na placa você verá que o LED verde altera a intensidade
conforme a posição no slider. Faça movimento de um lado para outro para
perceber isso.
Desafio
Altere o exemplo para que o LED vermelho acenda de forma complementar ao
LED verde, ou seja, quando o LED VERDE estiver em 100 % o LED vermelho deve
ficar em 0%, e vise-versa.
Exemplo 4 - Display LCD
Nesse exemplo vamos explorar o display LCD de segmentos presente na placa.
Será feita uma aplicação que exibirá a contagem de 0 a 100 no display e
reiniciará no final.
Exemplo 4 - Display LCD
O display LCD de segmentos está ligado da seguinte forma na placa:
Exemplo 4 - Display LCD
Abra o programa KL46Z_EX4.
Note que para esse exemplo foi
utilizada a biblioteca SLCD:
Exemplo 4 - Display LCD
Compile o programa e faça o upload para a placa(conforme instruções
anteriores).
Será apresentada a contagem em intervalos de 0.2 s e o LED vermelho pisca a
cada incremento.
Desafio
Faça um contador decrescente de 10 a 0. A final da contagem o LED vermelho
deverá piscar 5 vezes e em seguida a contagem reinicia.
Exemplo 5 - Acelerômetro
Nesse exemplo vamos explorar o acelerômetro presente na KL46Z, o
MMA8451Q. Serão lidos os 3 eixos e exibido o valor de um eixo no LCD e os
outros eixos irão atuar na intensidade dos leds conforme posição da placa.
Exemplo 5 - Acelerômetro
O MMA8451 está ligado da seguinte
forma na placa:
Exemplo 5 - Acelerômetro
Abra o programa KL46Z_EX5.
Note que para esse exemplo foi utilizada
a biblioteca MMA8451Q
Exemplo 5 - Acelerômetro
Compile o programa e faça o upload para a placa(conforme instruções
anteriores).
Será apresentado o valor do eixo X no display que é alterado conforme posição
da placa. Os leds também alteram a intensidade conforme posição da placa.
Desafio 5
Faça um programa para exibir no display os valores dos eixos. O eixo a ser
exibido deve ser selecionado pela tecla sw1 e para indicar qual eixo está sendo
exibido usar o algarismo mais significativo do display onde:
0 - eixo x
1 - eixo y
2 - eixo z
Referências
Conheça a FRDM KL46Z da NXP
Atualização do firmware da KL46Z para uso do mbed
Página da KL46Z no mbed
Documentação da KL46Z
Obrigado
e-mail: fabio.souza@embarcados.com.br
Linkedin: https://br.linkedin.com/in/engfabiosouza
Facebook: https://www.facebook.com/fabio.souza.77398
Instagram: https://www.instagram.com/fabio.souza.embarcados/
Twitter: http://twitter.com/FBSeletronica
Curso mbed e FRDM KL46Z da NXP

Contenu connexe

Similaire à Curso mbed e FRDM KL46Z da NXP

Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
Gabriel Lima
 

Similaire à Curso mbed e FRDM KL46Z da NXP (20)

Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Oficina Arduino
Oficina ArduinoOficina Arduino
Oficina Arduino
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdk
 
Clic 02-manual
Clic 02-manualClic 02-manual
Clic 02-manual
 
Energia - MSP430
Energia - MSP430Energia - MSP430
Energia - MSP430
 
Programação em C para Arduino
Programação em C para ArduinoProgramação em C para Arduino
Programação em C para Arduino
 
Aula 06
Aula 06Aula 06
Aula 06
 
Cpld top dos tops
Cpld top dos topsCpld top dos tops
Cpld top dos tops
 
18. arduino
18. arduino18. arduino
18. arduino
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 
Artigousbparte1
Artigousbparte1Artigousbparte1
Artigousbparte1
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
Introdução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support packageIntrodução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support package
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
 
Apresentação pós tic
Apresentação   pós ticApresentação   pós tic
Apresentação pós tic
 
Rs logix 5000
Rs logix 5000Rs logix 5000
Rs logix 5000
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
kerneldriver01
kerneldriver01kerneldriver01
kerneldriver01
 
Oficina de IoT CPBS3
Oficina de IoT CPBS3Oficina de IoT CPBS3
Oficina de IoT CPBS3
 

Plus de Fabio Souza

Plus de Fabio Souza (20)

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design Challenge
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso país
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundo
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundo
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardware
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatível
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
 
Construindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoConstruindo sua placa baseada em Arduino
Construindo sua placa baseada em Arduino
 
Embarcados - Ao arduino e além
Embarcados - Ao arduino e alémEmbarcados - Ao arduino e além
Embarcados - Ao arduino e além
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 

Dernier (6)

70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
 
planejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.pptplanejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.ppt
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdfSistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdf
 
Eletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químicoEletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químico
 
Tanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitosTanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitos
 

Curso mbed e FRDM KL46Z da NXP

  • 1. Curso mbed e FRDM KL46Z da NXP Por Fábio Souza www.embarcados.com.br
  • 3. FÁBIO SOUZA INSTRUTOR ● Engenheiro, Professor, maker... ● Experiência em desenvolvimento de projetos ● Diretor de operações do Embarcados
  • 4. COMPARTILHAR O CONHECIMENTO É APRENDER TODOS OS DIAS O EMBARCADOS O Embarcados é uma plataforma que contribui para o desenvolvimento tecnológico no Brasil, a partir do compartilhamento de informações na área de sistemas eletrônicos.   Do estudante ao profissional, dos makers aos curiosos, acreditamos que todos devem ter acesso a informações de qualidade – que auxiliam em projetos eletrônicos e servem para atualização do conhecimento.
  • 5. CONTEÚDO, CONCURSOS E AÇÕES O PORTAL A ATUALIZAÇÃO DO PORTAL É CONSTANTE, BEM COMO O SEU ENVOLVIMENTO! Todos os dias, publicamos artigos com conteúdos bem diversificados na área de sistemas embarcados, que contêm informações relativas a: Artigos Sobre sistemas embarcados Reviews De placas, processadores e CIs Dicas e truques Que auxiliam em projetos e em partes específicas de projetos Projetos Hardware e firmware/software Estudos Sobre Estado da Arte, história e teoria da eletrônica, além de Sistemas Digitais (FPGA, Verilog e VHDL) Notícias Notícias atuais sobre a área de sistemas embarcados Fórum A grande comunidade que ensina e aprende através de sistemas embarcados!
  • 7. Sobre esse Treinamento Esse treinamento foi desenvolvido para que pessoas possam aprender a utilizar a placa NXP FRDM KL46Z com a plataforma online mbed. Possui um formato self-paced onde apresenta um material introdutório com os conceitos básicos para você dar os primeiros passos com essas ferramentas de forma prática. Ao final desse treinamento você será capaz de criar um projeto no mbed para uso da placa FRDM KL46Z da NXP, usando os periféricos presentes na placa. Esse treinamento foi elaborado por: Fábio Souza
  • 8. Materiais Para ter um melhor aproveitamento desse material, é necessário ter os seguintes itens: • Computador com acesso a Internet, e porta USB disponível • Placa FRDM KL46Z • Cabo USB
  • 9. Instruções • Seguir os slides na sequência apresentada. • A placa deve estar com o firmware atualizado para uso do mbed. • Caso precise de mais informações, acessar a seção de referências. • Boa diversão!
  • 10. O que é um sistema Embarcado? Um sistema Embarcado, ou Embedded System é um sistema eletrônico, composto de hardware e software desenvolvido para uma aplicação específica, ou seja, executam uma sequência de tarefas pré-definidas para atender a um requisito específico. Geralmente é composto por um circuito integrado (microcontrolador) que possui toda a arquitetura computacional necessária para controle do sistema.
  • 11. FRDM KL46Z A placa FRDM-KL46Z é uma plataforma de baixo custo para avaliação dos microcontroladores da série Kinetis L - KL4x, que são microcontroladores ARM Cortex-M0+. O microcontrolador presente nesta placa é o MKL46Z256VLL4, que possui 256 KB de memória flash, 32 KB de memória SRAM, USB OTG (FS), controlador para display LCD de segmentos, e pode operar a até 48 MHz.
  • 12. Recursos presentes na placa: ● Slider touch capacitivo; ● Acelerômetro de 3 eixos MMA8451Q ● Magnetômetro - MAG3110 ● LEDs; ● LCD de 4x8 segmentos - LCD-S401M16KR ● Sensor de luz ALS-PT19-315C/L177/TR8 ● Diversas opções de alimentação: ○ USB, bateria, Fonte externa; ● Pontos de acesso para medição; ● Facilidade de acesso aos pinos I/O ● Pinagem compatível com Arduino ™ R3; ● Interface de programação e debug OpenSDA. FRDM KL46Z
  • 13. Possibilidades de alimentação Há diversas possibilidades de alimentação para a placa KL46Z.
  • 14. OpenSDA para programação/depuração Para programação/depuração está disponível na placa a interface OpenSDA, que é um padrão aberto muito utilizado para esse fim.
  • 16. Microcontrolador MKL46Z256VLL4 Características: ● Núcleo ARM® Cortex™-M0+ de alta performance ● @48MHz, 32KB RAM, 256KB FLASH ● USB (Host/Device) ● SPI (2) ● I2C (2) ● I2S (1) ● UART (3) ● PWM (6) ● ADC (6) ● DAC (1x 6bit, 1x 12bit) ● Touch Sensor ● GPIO (84) ● LCD Controller
  • 17. mbed
  • 18. mbed O mbed é uma plataforma de desenvolvimento completa da ARM, agora focada em IoT e sistemas embarcados de baixo consumo, que disponibiliza uma IDE online para programação, compilador utilizando o próprio Browser, que possibilita acelerar, e muito, a criação de protótipos utilizando microcontroladores comerciais.
  • 19. Mbed - Plataformas Uma série de plataformas e placas suportam o mbed. Escolhemos a plataforma NXP Kinetis para esse treinamento.
  • 20. mbed
  • 21. mbed
  • 22. Com mbed tudo fica simples! ● Escolha uma placa suportada pelo mbed ● Use a IDE online para clonar e/ou desenvolver seu código ● Compile e faça o download do binário para sua placa ● Se preferir, baixe o código e compile usando a sua ferramenta de desenvolvimento atual.
  • 23. mbed - Login Para criar um usuário e fazer login, acesse https://developer.mbed.org/account/login/
  • 26. mbed - Login Preencha seus dados e depois acesse o seu e-mail
  • 29. mbed - Adicione a KL46Z ao compilador Selecione a placa eletrônica FRDM-KL46Z
  • 30. mbed - Adicione a KL46Z ao compilador
  • 31. mbed - Adicione a KL46Z ao compilador
  • 32. mbed - Adicione a KL46Z ao compilador Adicione a placa ao compilador
  • 33. mbed - Importe os exemplos Para facilitar o desenvolvimento desse treinamento vamos utilizar projetos exemplos. Em cada tópico será disponibilizado o link do projeto. É só importar para o compilador:
  • 34. Exemplo 1 - Blink O primeiro exemplo irá piscar o led verde(LED1) em intervalos de 0,5 s. Abra o projeto KL46Z_EX1:
  • 35. mbed - Compilando o projeto Para compilar o projeto, pressione Compile ou as teclas Ctrl+D
  • 36. mbed - compilando.... Será iniciado o processo de compilação. Aguarde alguns instantes...
  • 37. mbed - Salve o arquivo gerado Após a compilação, será iniciado o download do binário gerado. Você pode salvar em uma pasta para uso posterior, ou salvar diretamente no unidade MBED, criada quando é inserida a placa no computador.
  • 38. mbed - Upload Um arquivo após a compilação foi gerado e feito o download para seu computador. Conecte a placa na interface USB (SDA) indicada na imagem.
  • 39. mbed - Resumo Arraste esse arquivo de seu computador para o drive que foi montado com o nome MBED. O led Verde( próximo a USB) irá piscar. Espere alguns segundos e pressione RESET. O led verde(LED1) irá piscar, 0,5 segundos aceso e 0,5 segundos apagado.
  • 40. mbed - Desafio No exemplo anterior vimos como piscar o LED verde, definido como LED1 no mbed. Sabendo que o LED vermelho é definido como LED2, altere o exemplo 1 para que acenda os leds de forma complementar, como uma sinalizador de garagem.
  • 41. Exemplo 2 - Botões Este exemplo exibe como ler os botões presentes na placa. Vamos desenvolver uma aplicação que quando pressionamos um botão ele acenda um led e quando solta o botão o led apaga.
  • 42. Exemplo 2 - Botões Os botões estão ligados da seguinte forma na placa:
  • 43. Exemplo 2 - Botões Abra o exemplo KL46Z_EX2:
  • 44. Exemplo 2 - Botões Conforme vimos no esquema de ligação dos botões, quando um dos botões é pressionado é levado o estado do pino para 0. Dessa forma, precisamos detectar quando o pino está em nível zero através de um if: if(sw1 == 0){ //se botão pressionado led_red = 0; //liga o led }else{ //se não led_red = 1; //apaga o led }
  • 45. Exemplo 2 - Botões Compile o programa e faça o upload para a placa(conforme instruções anteriores). Ao pressionar os botões você verá que o led irá acender e quando soltar ele irá apagar.
  • 46. Desafios 1 - aproveitando o exemplo feito com o botão sw1 e led verde, inclua no programa a leitura da tecla sw3 que deve controlar o led vermelho. 2 - Altere o exemplo para que o led verde só acenda quando botão SW1 ‘E’ o botão SW2 estiverem pressionados. 3 - Altere o exemplo para que o led ver troque de estado ao pressionar sw1 o botão e permaneça até o botão sw1 ser pressionado novamente. 4 - Inclua o botão sw3 e led vermelho no exercício anterior
  • 47. Exemplo 3 - Sensor de toque (Slider) Nesse exemplos vamos usar o sensor de toque capacitivo presente na KL46Z. Vamos criar uma aplicação para alterar a intensidade do LED verde conforme a posição do toque na placa. Esse é o sensor de toque:
  • 48. Exemplo 3 - Sensor de toque (Slider) Esse sensor é feito na própria PCB e está ligado da seguinte forma:
  • 49. Exemplo 3 - Sensor de toque (Slider) Abra o programa KL46Z_EX3. Note que para esse projeto foi utilizada a biblioteca tsi_sensor:
  • 50. Exemplo 3 - Sensor de toque (Slider) Compile o programa e faça o upload para a placa(conforme instruções anteriores). Ao tocar no sensor na placa você verá que o LED verde altera a intensidade conforme a posição no slider. Faça movimento de um lado para outro para perceber isso.
  • 51. Desafio Altere o exemplo para que o LED vermelho acenda de forma complementar ao LED verde, ou seja, quando o LED VERDE estiver em 100 % o LED vermelho deve ficar em 0%, e vise-versa.
  • 52. Exemplo 4 - Display LCD Nesse exemplo vamos explorar o display LCD de segmentos presente na placa. Será feita uma aplicação que exibirá a contagem de 0 a 100 no display e reiniciará no final.
  • 53. Exemplo 4 - Display LCD O display LCD de segmentos está ligado da seguinte forma na placa:
  • 54. Exemplo 4 - Display LCD Abra o programa KL46Z_EX4. Note que para esse exemplo foi utilizada a biblioteca SLCD:
  • 55. Exemplo 4 - Display LCD Compile o programa e faça o upload para a placa(conforme instruções anteriores). Será apresentada a contagem em intervalos de 0.2 s e o LED vermelho pisca a cada incremento.
  • 56. Desafio Faça um contador decrescente de 10 a 0. A final da contagem o LED vermelho deverá piscar 5 vezes e em seguida a contagem reinicia.
  • 57. Exemplo 5 - Acelerômetro Nesse exemplo vamos explorar o acelerômetro presente na KL46Z, o MMA8451Q. Serão lidos os 3 eixos e exibido o valor de um eixo no LCD e os outros eixos irão atuar na intensidade dos leds conforme posição da placa.
  • 58. Exemplo 5 - Acelerômetro O MMA8451 está ligado da seguinte forma na placa:
  • 59. Exemplo 5 - Acelerômetro Abra o programa KL46Z_EX5. Note que para esse exemplo foi utilizada a biblioteca MMA8451Q
  • 60. Exemplo 5 - Acelerômetro Compile o programa e faça o upload para a placa(conforme instruções anteriores). Será apresentado o valor do eixo X no display que é alterado conforme posição da placa. Os leds também alteram a intensidade conforme posição da placa.
  • 61. Desafio 5 Faça um programa para exibir no display os valores dos eixos. O eixo a ser exibido deve ser selecionado pela tecla sw1 e para indicar qual eixo está sendo exibido usar o algarismo mais significativo do display onde: 0 - eixo x 1 - eixo y 2 - eixo z
  • 62. Referências Conheça a FRDM KL46Z da NXP Atualização do firmware da KL46Z para uso do mbed Página da KL46Z no mbed Documentação da KL46Z
  • 63. Obrigado e-mail: fabio.souza@embarcados.com.br Linkedin: https://br.linkedin.com/in/engfabiosouza Facebook: https://www.facebook.com/fabio.souza.77398 Instagram: https://www.instagram.com/fabio.souza.embarcados/ Twitter: http://twitter.com/FBSeletronica