SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
Fee Kosta
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
Carlos Melo
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
Evandro Júnior
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
Elaine Cecília Gatto
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
Cleber Ramos
 
F oc aula_04
F oc aula_04F oc aula_04
Processors
ProcessorsProcessors
Processors
sagres
 
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
Tchelinux
 
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
Lincoln Lamas
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
profwtelles
 
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
Helder da Rocha
 
Resumo x86
Resumo x86Resumo x86
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
Paulo Fonseca
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
Rafael Cruz
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
EMSNEWS
 
Assembly
AssemblyAssembly
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 ATmega8
elliando dias
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
PotiLivre Sobrenome
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicial
Tiago
 

Mais procurados (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
 

Destaque

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
André 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 redor
André 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 Due
André Curvello
 
Aplicações de embarcados - IoT
Aplicações de embarcados - IoTAplicações de embarcados - IoT
Aplicações de embarcados - IoT
André 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 Coisas
André 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ém
André 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 Android
André 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-2014
Rafael 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 saber
Luiz Borba
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11
Tim 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ção
Luiz 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 funcionais
Luiz 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 aprender
Luiz Borba
 
Voce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu CodigoVoce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu Codigo
Victor Hugo Germano
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoT
Marco Antonio Maciel
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
Ricardo Rufino
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
lucascsoliveira
 

Destaque (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
 

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

Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
JOEL FARIA HAUK
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
engelrfs
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
Rui Alves
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
ssuser56423c1
 
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
Fabio 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 FIBRE
FIBRE Testbed
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
Samuel Bié
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
MarcusHenriqueTeixeira
 
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
RogerMasters
 
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
EMERSONMUNIZDECARVAL
 
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
Tá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ção
Tiago
 
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 & S
DenivalSouza1
 
Cool 3 assembly para linux
Cool 3   assembly para linuxCool 3   assembly para linux
Cool 3 assembly para linux
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Clp completa
Clp completaClp completa
Clp completa
panelada
 
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
Fernando 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 leopardo
elliando dias
 

Semelhante 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
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao 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
 

Mais 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-19
André 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ática
André 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 Azure
André 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 telemetria
André 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 Coisas
André Curvello
 
IoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de ComputaçãoIoT Aplicada à Engenharia de Computação
IoT Aplicada à Engenharia de Computação
André 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ça
André 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 Coisas
André 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 Conectadas
André 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 FPGA
André Curvello
 
TDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device TreeTDC2017 - Desvendando a Linux Device Tree
TDC2017 - Desvendando a Linux Device Tree
André 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 Conectados
André Curvello
 
IoT - Além da Telemetria
IoT - Além da TelemetriaIoT - Além da Telemetria
IoT - Além da Telemetria
André 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 Makers
André Curvello
 

Mais 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

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (8)

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

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