SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Hands-On Workshop:
ARM®-mbed
on LPCXpresso
Lab 1 - LED, PWM e JoyPad
André Curvello
Felipe Neves
Lab 1 - Preparando o Ambiente
»Abra sua workspace em:
»https://developer.mbed.org/compiler/
»Ao abrir o workspace clique em Import;
»Na caixa de pesquisa busque por:
»ftf_mbed_lab1
»Importe o projeto, compile, grave e rode o código.
2
Lab 1 - Considerações
»Exploraremos algumas API para acesso ao hardware da placa;
»Observe o display, um menu será a apresentado;
»Navegue com as teclas cima e baixo utilizando o JoyPad;
»Selecione o LED desejado pressionando o botão central do JoyPad;
»Com o potenciômetro, selecione a intensidade de cada LED
»Observe as diversas cores formadas;
»Monitore os valores de cor para cada canal.
3
Lab 1 - Exercícios
»Adicione uma opção no menu que possua valores de cor pré-definidos.
»Utilize o botão central do JoyPad para entrar no menu e as teclas cima e
baixo para seleção.
»Quando encontrar a cor desejada a mesma só será inserida nos LEDs com o
pressionamento do botão central, saindo do menu.
»Adicione a opção de piscar o LED com a cor corrente, o tempo de pisca e o
número de repetições fica a cargo do usuário;
»**DICA: utilize a classe Timeout para anexar um callback ao término da execução do pisca.
»Adicione um fator de escala de modo a controlar a intensidade da cor
corrente do LED.
4
Lab 1 - Resultado 5
Hands-On Workshop:
ARM®-mbed
on LPCXpresso
Lab 2 - Prompt de comandos utilizando a
UART
André Curvello
Felipe Neves
Lab 2 - Preparando o Ambiente
»Abra sua workspace em:
»https://developer.mbed.org/compiler/
»Ao abrir o workspace clique em Import
»Na caixa de pesquisa busque por:
»ftf_mbed_lab2
»Importe o projeto, compile, grave e rode o código.
7
Lab 2 – Considerações – O Prompt e o Controle
»Ferramente muito desejada durante o desenvolvimento  Um prompt de
commandos!
»Alguns comandos disponíveis controlam alguns atuadores ou dão informações
sobre a placa.
»Não esqueça de conectar a placa ao TeraTerm  Setup: 8-N-1 115200bps.
»Para verificar a lista de comandos do prompt, pressione Enter.
»Digite os comandos conforme as instruções do terminal.
»Observe o que ocorre na placa.
»Digite comandos incorretos e verifique que podem ser corrigidos usando
backspace.
8
Lab 2 - Exercícios
»A função shell_parser() contém um trecho localizado na linha 204
responsável por identificar o comando digitado.
»Sabendo disso, adicione um comando nessa lista para controlar um atuador
de sua preferência na placa!
»DICA: importe a API de PWM do lab anterior e crie um comando para gerar cores nos LEDS.
»Adicione um comando para ler os valores do acelerômetro da placa.
»Lembre – se de utilizar a API I2C() para se comunicar com ele:
-Slave address: 0x68 << 1
-Valor de configuração em 0x40: 0x28;
-Valor de sw reset em 0x7E: 0xB6 **DICA: aguarde um tempo após executar esse comando
-Registrador base dos dados: 0x12 **DICA: [0x12] ->X_msb, [0x13] -> X_lsb, [0x14]->Y_msb,…
**DICA os pinos SDA e SCL são respectivamente: P2_3, P2_4
9
Lab 2 - Resultado 10
Hands-On Workshop:
ARM®-mbed
on LPCXpresso
Lab 3 - Mbed OS, controlando Threads
André Curvello
Felipe Neves
Lab 3 - Preparando o Ambiente
Abra sua workspace em:
»https://developer.mbed.org/compiler/
Ao abrir o workspace clique em Import
Na caixa de pesquisa busque por:
»ftf_mbed_lab3
»Importe o projeto, compile, grave e rode o código.
12
Lab 3 – Considerações – Tarefas com Threads
»Conectar a placa ao Tera Term configurado em 8-N-1 115200bps
»Verificar a lista de comandos pressione Enter;
»Nesse lab, exploraremos o tipo de objeto mais primitivo de todo RTOS, as threads;
»Através do prompt de comandos é possível suspender ou executar uma determinada
thread.
»Para isso utilize o comando thread e acompanhe a execução no LCD;
»Threading do Mbed OS possui duas políticas: Preemptiva e Cooperativa (com round-
robin);
-Preemptivo: execute a thread app1, em seguida execute a thread app2, observer o LCD
em seguida suspenda app2. Observe novamente o LCD;
-Cooperativo: execute a thread app1 e em seguida a thread app3, observe no LCD, o que
mudou?
13
Lab 3 - Exercícios
»A função shell_thread_execute_command() localizada na linha 97 é responsável por
receber as opções do comando ”thread”.
»Analise e adicione uma opção que permita mudar a prioridade das threads existentes
sem ter que recompilar o código;
»Modifique o código de cada thread de modo que cada thread controle um LED da
placa, em seguida adicione na função shell_parser() um comando para controlar a taxa
de pisca de cada LED;
»Reescreva as threads de modo que todas tenham a mesma prioridade, e faça com que
cada thread consiga executar na seguinte ordem: app1,app2, app3, app1,app2,app3…
-DICA: verifique o método yield() dentro da classe Thread;
-Registre a execução de cada thread no prompt de comando.
14
Lab 3 - Resultado 15
Hands-On Workshop:
ARM®-mbed
on LPCXpresso
Lab 4 - Mbed OS, sincronizando com
semáforos
André Curvello
Felipe Neves
Lab 4 - Preparando o Ambiente
»Abra sua workspace em:
»https://developer.mbed.org/compiler/
»Ao abrir o workspace clique em Import;
»Na caixa de pesquisa busque por:
»ftf_mbed_lab4.
»Importe o projeto, compile, grave e rode o código.
17
Lab 4 - Considerações
»Conectar a placa ao Tera Term configurado em 8-N-1 115200bps  Inicialmente… SEM terminal;
»Os semáforos são utilizados para sincronizar a execução de duas threads de baixa prioridade com
eventos ocorridos em uma thread de alta prioridade;
»O acelerômetro funciona como uma thread periódica (não pode sofrer atrasos), então sua prioridade é a
mais alta do Sistema.
»As threads de LCD e evento por sua vez precisam ser executadas uma vez a cada nova leitura tomada
pelo acelerômetro garantindo o processamento dos eventos em tempo real;
»Observe no código a utilização dos semáforos acc_sema e align_event_sema;
»Movimente a placa e observe o LCD, alinhe a placa em algum eixo cartesiano primitivo, observe os
LEDS;
-Analise: Cada thread executa uma vez por ciclo?
-Se não houvesse o semáforo aconteceria a mesma coisa?
18
Lab 4 - Exercícios
»O shell não foi utilizado nesse laboratório, porém ele possui o inconveniente de
rodar de forma assíncrona (a cada 50ms) exigindo que sua thread possua
prioridade alta e que execute muitas vezes sem necessidade (sem caractere
novo no buffer).
»Sabendo disso, modifique o código da shell_task para que ela somente
execute quando um novo caractere chegar pela serial.
-DICA: Veja o método attach na classe Serial.
-DICA: Utilize um semáforo para aguardar na task, e o mesmo para sinalizar na callback chamada pelo
método attach.
»Adicione o comando ”thread” do Lab 3 para suspender e resumir as tarefas,
utilize o semáforo para controlar o sinal de execução e suspensão.
19
Lab 4 - Resultado 20
Hands-On Workshop:
ARM®-mbed
on LPCXpresso
Lab 5 - Mbed OS, mensagens entre
threads com Mail Queue
André Curvello
Felipe Neves
Lab 5 - Preparando o Ambiente
»Abra sua workspace em:
»https://developer.mbed.org/compiler/
»Ao abrir o workspace clique em Import;
»Na caixa de pesquisa busque por:
»ftf_mbed_lab5
»Importe o projeto, compile, grave e rode o código.
22
Lab 5 - Considerações
»Não esqueça de conectar a placa ao Tera Term configurado em 8-N-1 115200bps;
»Pressione Enter para ver a lista de comandos!
»Lab muito parecido com o Lab 2 e combinado com o Lab 3, os comandos controlam as
threads, e a thread do prompt consegue enviar mensagens dizendo o que cada thread
deve fazer;
»Observe que o sistema de Mail Queue do mbed OS funciona por referência.
»O usuário é responsável por alocar a memória que será anexada a Mail para transmitir a
mensagem;
»Observe que com isso podemos criar comandos mais complexos (Ex. leds).
23
Lab 5 - Exercícios
»Utilizando a Mail Queue, adicione uma thread para comunicação com o
acelerômetro.
»Com isso crie um descritor de comando I2C e opere os registradores do
acelerômetro pelo prompt de comandos (não esqueça de adicionar um
comando função shell_parser()), dados:
-Slave address: 0x68 << 1
-Valor de configuração em 0x40: 0x28;
-Valor de sw reset em 0x7E: 0xB6 **DICA: aguarde um tempo após executar esse comando
-Registrador base dos dados: 0x12 **DICA: [0x12] ->X_msb, [0x13] -> X_lsb, [0x14]->Y_msb,…
-DICA os pinos SDA e SCL são respectivamente: P2_3, P2_4
24
Lab 5 - Resultado 25
Dúvidas?
É só chamar ;-)
Links úteis logo adiante!
26Obrigado!
Links Úteis - 1
-Placa de Desenvolvimento LPCXpresso4337:
https://www.embarcados.com.br/lpcxpresso4337/
-LPCXpresso4337 no mbed:
https://www.embarcados.com.br/lpcxpresso4337-no-mbed/
-Usando o display gráfico na LPCXpress4337 com mbed:
https://www.embarcados.com.br/display-grafico-na-lpcxpresso4337-
no-mbed/
-Usando Leds e Joystick no mbed:
https://www.embarcados.com.br/usando-os-leds-e-joystick-na-
lpcxpresso4337-no-mbed/
27
Links Úteis - 2
-Shield OM13082 para placas LPCXpresso:
https://www.embarcados.com.br/shield-para-as-placas-lpcxpresso/
-mbed OS: Primeiros passos:
https://www.embarcados.com.br/mbed-os/
-Como utilizar as Threads no mbed OS:
https://www.embarcados.com.br/threads-no-mbed-os/
28
Links Úteis - 3
-Semáforos no mbed OS: https://www.embarcados.com.br/semaforos-
no-mbed-os-sincronizacao/
-Semáforos para Compartilhar recursos no mbed OS:
https://www.embarcados.com.br/semaforos-mbed-os-recurso-
compartilhado/
-Entrada analógica e comunicação Serial com a LPCXpresso4337:
https://www.embarcados.com.br/entrada-analogica-e-comunicacao-
serial-na-lpcxpresso4337-no-mbed/
29
Agradecimentos
Agradecimentos

Más contenido relacionado

La actualidad más candente

Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Cleber Ramos
 
Processors
ProcessorsProcessors
Processorssagres
 
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018Tchelinux
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
Gerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIGerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIHelder da Rocha
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - novaPaulo Fonseca
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalhoRafael Cruz
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentiumEMSNEWS
 
Gerência de Memória em Java - Parte I (2005)
Gerência de Memória em Java - Parte I (2005)Gerência de Memória em Java - Parte I (2005)
Gerência de Memória em Java - Parte I (2005)Helder da Rocha
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicialTiago
 

La actualidad más candente (20)

Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
 
F oc aula_04
F oc aula_04F oc aula_04
F oc aula_04
 
Processors
ProcessorsProcessors
Processors
 
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
Introdução ao SystemTap - João Avelino Bellomo Filho - Tchelinux Caxias 2018
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Gerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIGerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte II
 
Resumo x86
Resumo x86Resumo x86
Resumo x86
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
Assembly
AssemblyAssembly
Assembly
 
Gerência de Memória em Java - Parte I (2005)
Gerência de Memória em Java - Parte I (2005)Gerência de Memória em Java - Parte I (2005)
Gerência de Memória em Java - Parte I (2005)
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicial
 

Destacado

Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoAndré Curvello
 
Internet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorInternet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorAndré Curvello
 
Veja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueVeja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueAndré Curvello
 
Aplicações de embarcados - IoT
Aplicações de embarcados - IoTAplicações de embarcados - IoT
Aplicações de embarcados - IoTAndré Curvello
 
Segurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasSegurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasAndré Curvello
 
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...André Curvello
 
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...André Curvello
 
Arduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémArduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémAndré Curvello
 
Programação Android Avançada - Acesso Web em Aplicações Android
Programação Android Avançada - Acesso Web em Aplicações AndroidProgramação Android Avançada - Acesso Web em Aplicações Android
Programação Android Avançada - Acesso Web em Aplicações AndroidAndré Curvello
 
Co 1-2014-edital concurso 01-2014
Co 1-2014-edital concurso 01-2014Co 1-2014-edital concurso 01-2014
Co 1-2014-edital concurso 01-2014Rafael Jorge
 
Todas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberTodas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberLuiz Borba
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Tim Barker
 
Dias do futuro presente da programação
Dias do futuro presente da programaçãoDias do futuro presente da programação
Dias do futuro presente da programaçãoLuiz Borba
 
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Luiz Borba
 
Por que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisPor que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisLuiz Borba
 
Coisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderCoisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderLuiz Borba
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTMarco Antonio Maciel
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Javalucascsoliveira
 

Destacado (20)

Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento Assimétrico
 
Internet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorInternet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redor
 
Veja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino DueVeja como hackear seu carro usando Rede CAN com Arduino Due
Veja como hackear seu carro usando Rede CAN com Arduino Due
 
Aplicações de embarcados - IoT
Aplicações de embarcados - IoTAplicações de embarcados - IoT
Aplicações de embarcados - IoT
 
Segurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das CoisasSegurança em Foco no IoT - Protegendo as Informações das Coisas
Segurança em Foco no IoT - Protegendo as Informações das Coisas
 
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
 
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
CPqD - Detecção Inteligente de Eventos por Imagem - Um Desafio para Internet ...
 
Arduino Yún - À nuvem e além
Arduino Yún - À nuvem e alémArduino Yún - À nuvem e além
Arduino Yún - À nuvem e além
 
Programação Android Avançada - Acesso Web em Aplicações Android
Programação Android Avançada - Acesso Web em Aplicações AndroidProgramação Android Avançada - Acesso Web em Aplicações Android
Programação Android Avançada - Acesso Web em Aplicações Android
 
Co 1-2014-edital concurso 01-2014
Co 1-2014-edital concurso 01-2014Co 1-2014-edital concurso 01-2014
Co 1-2014-edital concurso 01-2014
 
Todas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberTodas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saber
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11
 
Dias do futuro presente da programação
Dias do futuro presente da programaçãoDias do futuro presente da programação
Dias do futuro presente da programação
 
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
 
Por que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisPor que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionais
 
Coisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderCoisas que levei um tempo para aprender
Coisas que levei um tempo para aprender
 
Voce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu CodigoVoce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu Codigo
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoT
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
 

Similar a Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016

Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduinoRui Alves
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPFabio Souza
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Aula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfAula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfEMERSONMUNIZDECARVAL
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascalTácito Graça
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Fernando Passold
 
Manutenção
ManutençãoManutenção
ManutençãoTiago
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Intel Software Brasil
 
slide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & Sslide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & SDenivalSouza1
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsFernando Mercês
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 

Similar a Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016 (20)

Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Aula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfAula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdf
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
Manutenção
ManutençãoManutenção
Manutenção
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
slide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & Sslide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & S
 
Cool 3 assembly para linux
Cool 3   assembly para linuxCool 3   assembly para linux
Cool 3 assembly para linux
 
Clp completa
Clp completaClp completa
Clp completa
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 

Más de André Curvello

Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19André Curvello
 
Blockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaBlockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaAndré Curvello
 
Arquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureArquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureAndré Curvello
 
Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!André Curvello
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...André Curvello
 
Internet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaInternet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaAndré Curvello
 
Pilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasPilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasAndré Curvello
 
IoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoIoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoAndré Curvello
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaAndré Curvello
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasAndré Curvello
 
Rede CAN em Linux Embarcado para Aplicações Conectadas
Rede CAN em Linux Embarcado para Aplicações ConectadasRede CAN em Linux Embarcado para Aplicações Conectadas
Rede CAN em Linux Embarcado para Aplicações ConectadasAndré Curvello
 
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...André Curvello
 
TDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGATDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGAAndré Curvello
 
TDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeTDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeAndré Curvello
 
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.André Curvello
 
Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?André Curvello
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosAndré Curvello
 
IoT - Além da Telemetria
IoT - Além da TelemetriaIoT - Além da Telemetria
IoT - Além da TelemetriaAndré Curvello
 
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...André Curvello
 
TDC2016 - Conhecendo o Ecossistema LinkIt para Makers
TDC2016 - Conhecendo o Ecossistema LinkIt para MakersTDC2016 - Conhecendo o Ecossistema LinkIt para Makers
TDC2016 - Conhecendo o Ecossistema LinkIt para MakersAndré Curvello
 

Más de André Curvello (20)

Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19Sistemas embarcados e a contribuição para o combate a COVID-19
Sistemas embarcados e a contribuição para o combate a COVID-19
 
Blockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem práticaBlockchain em IoT - Desafios e considerações numa abordagem prática
Blockchain em IoT - Desafios e considerações numa abordagem prática
 
Arquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com AzureArquitetando seu sistema de IoT com Azure
Arquitetando seu sistema de IoT com Azure
 
Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!Drones - Programando sistemas embarcados voadores e... autônomos!
Drones - Programando sistemas embarcados voadores e... autônomos!
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
 
Internet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetriaInternet das Coisas - Na nuvem além da telemetria
Internet das Coisas - Na nuvem além da telemetria
 
Pilares da Computação para Internet das Coisas
Pilares da Computação para Internet das CoisasPilares da Computação para Internet das Coisas
Pilares da Computação para Internet das Coisas
 
IoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoIoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de Computação
 
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de SegurançaIoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
IoE - Internet de Todas as Coisas - Quais os Riscos de Segurança
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das Coisas
 
Rede CAN em Linux Embarcado para Aplicações Conectadas
Rede CAN em Linux Embarcado para Aplicações ConectadasRede CAN em Linux Embarcado para Aplicações Conectadas
Rede CAN em Linux Embarcado para Aplicações Conectadas
 
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
Criando elementos conectados com visão computacional usando Raspberry Pi Zero...
 
TDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGATDC2017 - Sistemas Assimétricos com ARM e FPGA
TDC2017 - Sistemas Assimétricos com ARM e FPGA
 
TDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeTDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device Tree
 
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
Indústria 4.0 - Do chão de fábrica à sua casa por um clique.
 
Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?Internet das Coisas - Do Sensor à Nuvem, e Você?
Internet das Coisas - Do Sensor à Nuvem, e Você?
 
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e ConectadosLinux Embarcado na Construção de Sistemas Inteligentes e Conectados
Linux Embarcado na Construção de Sistemas Inteligentes e Conectados
 
IoT - Além da Telemetria
IoT - Além da TelemetriaIoT - Além da Telemetria
IoT - Além da Telemetria
 
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
Plataformas de Hardware para o seu Projeto - Quais seus diferenciais? Uma vis...
 
TDC2016 - Conhecendo o Ecossistema LinkIt para Makers
TDC2016 - Conhecendo o Ecossistema LinkIt para MakersTDC2016 - Conhecendo o Ecossistema LinkIt para Makers
TDC2016 - Conhecendo o Ecossistema LinkIt para Makers
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016

  • 1. Hands-On Workshop: ARM®-mbed on LPCXpresso Lab 1 - LED, PWM e JoyPad André Curvello Felipe Neves
  • 2. Lab 1 - Preparando o Ambiente »Abra sua workspace em: »https://developer.mbed.org/compiler/ »Ao abrir o workspace clique em Import; »Na caixa de pesquisa busque por: »ftf_mbed_lab1 »Importe o projeto, compile, grave e rode o código. 2
  • 3. Lab 1 - Considerações »Exploraremos algumas API para acesso ao hardware da placa; »Observe o display, um menu será a apresentado; »Navegue com as teclas cima e baixo utilizando o JoyPad; »Selecione o LED desejado pressionando o botão central do JoyPad; »Com o potenciômetro, selecione a intensidade de cada LED »Observe as diversas cores formadas; »Monitore os valores de cor para cada canal. 3
  • 4. Lab 1 - Exercícios »Adicione uma opção no menu que possua valores de cor pré-definidos. »Utilize o botão central do JoyPad para entrar no menu e as teclas cima e baixo para seleção. »Quando encontrar a cor desejada a mesma só será inserida nos LEDs com o pressionamento do botão central, saindo do menu. »Adicione a opção de piscar o LED com a cor corrente, o tempo de pisca e o número de repetições fica a cargo do usuário; »**DICA: utilize a classe Timeout para anexar um callback ao término da execução do pisca. »Adicione um fator de escala de modo a controlar a intensidade da cor corrente do LED. 4
  • 5. Lab 1 - Resultado 5
  • 6. Hands-On Workshop: ARM®-mbed on LPCXpresso Lab 2 - Prompt de comandos utilizando a UART André Curvello Felipe Neves
  • 7. Lab 2 - Preparando o Ambiente »Abra sua workspace em: »https://developer.mbed.org/compiler/ »Ao abrir o workspace clique em Import »Na caixa de pesquisa busque por: »ftf_mbed_lab2 »Importe o projeto, compile, grave e rode o código. 7
  • 8. Lab 2 – Considerações – O Prompt e o Controle »Ferramente muito desejada durante o desenvolvimento  Um prompt de commandos! »Alguns comandos disponíveis controlam alguns atuadores ou dão informações sobre a placa. »Não esqueça de conectar a placa ao TeraTerm  Setup: 8-N-1 115200bps. »Para verificar a lista de comandos do prompt, pressione Enter. »Digite os comandos conforme as instruções do terminal. »Observe o que ocorre na placa. »Digite comandos incorretos e verifique que podem ser corrigidos usando backspace. 8
  • 9. Lab 2 - Exercícios »A função shell_parser() contém um trecho localizado na linha 204 responsável por identificar o comando digitado. »Sabendo disso, adicione um comando nessa lista para controlar um atuador de sua preferência na placa! »DICA: importe a API de PWM do lab anterior e crie um comando para gerar cores nos LEDS. »Adicione um comando para ler os valores do acelerômetro da placa. »Lembre – se de utilizar a API I2C() para se comunicar com ele: -Slave address: 0x68 << 1 -Valor de configuração em 0x40: 0x28; -Valor de sw reset em 0x7E: 0xB6 **DICA: aguarde um tempo após executar esse comando -Registrador base dos dados: 0x12 **DICA: [0x12] ->X_msb, [0x13] -> X_lsb, [0x14]->Y_msb,… **DICA os pinos SDA e SCL são respectivamente: P2_3, P2_4 9
  • 10. Lab 2 - Resultado 10
  • 11. Hands-On Workshop: ARM®-mbed on LPCXpresso Lab 3 - Mbed OS, controlando Threads André Curvello Felipe Neves
  • 12. Lab 3 - Preparando o Ambiente Abra sua workspace em: »https://developer.mbed.org/compiler/ Ao abrir o workspace clique em Import Na caixa de pesquisa busque por: »ftf_mbed_lab3 »Importe o projeto, compile, grave e rode o código. 12
  • 13. Lab 3 – Considerações – Tarefas com Threads »Conectar a placa ao Tera Term configurado em 8-N-1 115200bps »Verificar a lista de comandos pressione Enter; »Nesse lab, exploraremos o tipo de objeto mais primitivo de todo RTOS, as threads; »Através do prompt de comandos é possível suspender ou executar uma determinada thread. »Para isso utilize o comando thread e acompanhe a execução no LCD; »Threading do Mbed OS possui duas políticas: Preemptiva e Cooperativa (com round- robin); -Preemptivo: execute a thread app1, em seguida execute a thread app2, observer o LCD em seguida suspenda app2. Observe novamente o LCD; -Cooperativo: execute a thread app1 e em seguida a thread app3, observe no LCD, o que mudou? 13
  • 14. Lab 3 - Exercícios »A função shell_thread_execute_command() localizada na linha 97 é responsável por receber as opções do comando ”thread”. »Analise e adicione uma opção que permita mudar a prioridade das threads existentes sem ter que recompilar o código; »Modifique o código de cada thread de modo que cada thread controle um LED da placa, em seguida adicione na função shell_parser() um comando para controlar a taxa de pisca de cada LED; »Reescreva as threads de modo que todas tenham a mesma prioridade, e faça com que cada thread consiga executar na seguinte ordem: app1,app2, app3, app1,app2,app3… -DICA: verifique o método yield() dentro da classe Thread; -Registre a execução de cada thread no prompt de comando. 14
  • 15. Lab 3 - Resultado 15
  • 16. Hands-On Workshop: ARM®-mbed on LPCXpresso Lab 4 - Mbed OS, sincronizando com semáforos André Curvello Felipe Neves
  • 17. Lab 4 - Preparando o Ambiente »Abra sua workspace em: »https://developer.mbed.org/compiler/ »Ao abrir o workspace clique em Import; »Na caixa de pesquisa busque por: »ftf_mbed_lab4. »Importe o projeto, compile, grave e rode o código. 17
  • 18. Lab 4 - Considerações »Conectar a placa ao Tera Term configurado em 8-N-1 115200bps  Inicialmente… SEM terminal; »Os semáforos são utilizados para sincronizar a execução de duas threads de baixa prioridade com eventos ocorridos em uma thread de alta prioridade; »O acelerômetro funciona como uma thread periódica (não pode sofrer atrasos), então sua prioridade é a mais alta do Sistema. »As threads de LCD e evento por sua vez precisam ser executadas uma vez a cada nova leitura tomada pelo acelerômetro garantindo o processamento dos eventos em tempo real; »Observe no código a utilização dos semáforos acc_sema e align_event_sema; »Movimente a placa e observe o LCD, alinhe a placa em algum eixo cartesiano primitivo, observe os LEDS; -Analise: Cada thread executa uma vez por ciclo? -Se não houvesse o semáforo aconteceria a mesma coisa? 18
  • 19. Lab 4 - Exercícios »O shell não foi utilizado nesse laboratório, porém ele possui o inconveniente de rodar de forma assíncrona (a cada 50ms) exigindo que sua thread possua prioridade alta e que execute muitas vezes sem necessidade (sem caractere novo no buffer). »Sabendo disso, modifique o código da shell_task para que ela somente execute quando um novo caractere chegar pela serial. -DICA: Veja o método attach na classe Serial. -DICA: Utilize um semáforo para aguardar na task, e o mesmo para sinalizar na callback chamada pelo método attach. »Adicione o comando ”thread” do Lab 3 para suspender e resumir as tarefas, utilize o semáforo para controlar o sinal de execução e suspensão. 19
  • 20. Lab 4 - Resultado 20
  • 21. Hands-On Workshop: ARM®-mbed on LPCXpresso Lab 5 - Mbed OS, mensagens entre threads com Mail Queue André Curvello Felipe Neves
  • 22. Lab 5 - Preparando o Ambiente »Abra sua workspace em: »https://developer.mbed.org/compiler/ »Ao abrir o workspace clique em Import; »Na caixa de pesquisa busque por: »ftf_mbed_lab5 »Importe o projeto, compile, grave e rode o código. 22
  • 23. Lab 5 - Considerações »Não esqueça de conectar a placa ao Tera Term configurado em 8-N-1 115200bps; »Pressione Enter para ver a lista de comandos! »Lab muito parecido com o Lab 2 e combinado com o Lab 3, os comandos controlam as threads, e a thread do prompt consegue enviar mensagens dizendo o que cada thread deve fazer; »Observe que o sistema de Mail Queue do mbed OS funciona por referência. »O usuário é responsável por alocar a memória que será anexada a Mail para transmitir a mensagem; »Observe que com isso podemos criar comandos mais complexos (Ex. leds). 23
  • 24. Lab 5 - Exercícios »Utilizando a Mail Queue, adicione uma thread para comunicação com o acelerômetro. »Com isso crie um descritor de comando I2C e opere os registradores do acelerômetro pelo prompt de comandos (não esqueça de adicionar um comando função shell_parser()), dados: -Slave address: 0x68 << 1 -Valor de configuração em 0x40: 0x28; -Valor de sw reset em 0x7E: 0xB6 **DICA: aguarde um tempo após executar esse comando -Registrador base dos dados: 0x12 **DICA: [0x12] ->X_msb, [0x13] -> X_lsb, [0x14]->Y_msb,… -DICA os pinos SDA e SCL são respectivamente: P2_3, P2_4 24
  • 25. Lab 5 - Resultado 25
  • 26. Dúvidas? É só chamar ;-) Links úteis logo adiante! 26Obrigado!
  • 27. Links Úteis - 1 -Placa de Desenvolvimento LPCXpresso4337: https://www.embarcados.com.br/lpcxpresso4337/ -LPCXpresso4337 no mbed: https://www.embarcados.com.br/lpcxpresso4337-no-mbed/ -Usando o display gráfico na LPCXpress4337 com mbed: https://www.embarcados.com.br/display-grafico-na-lpcxpresso4337- no-mbed/ -Usando Leds e Joystick no mbed: https://www.embarcados.com.br/usando-os-leds-e-joystick-na- lpcxpresso4337-no-mbed/ 27
  • 28. Links Úteis - 2 -Shield OM13082 para placas LPCXpresso: https://www.embarcados.com.br/shield-para-as-placas-lpcxpresso/ -mbed OS: Primeiros passos: https://www.embarcados.com.br/mbed-os/ -Como utilizar as Threads no mbed OS: https://www.embarcados.com.br/threads-no-mbed-os/ 28
  • 29. Links Úteis - 3 -Semáforos no mbed OS: https://www.embarcados.com.br/semaforos- no-mbed-os-sincronizacao/ -Semáforos para Compartilhar recursos no mbed OS: https://www.embarcados.com.br/semaforos-mbed-os-recurso- compartilhado/ -Entrada analógica e comunicação Serial com a LPCXpresso4337: https://www.embarcados.com.br/entrada-analogica-e-comunicacao- serial-na-lpcxpresso4337-no-mbed/ 29