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
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.
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.
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/
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
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:
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