Escolar Documentos
Profissional Documentos
Cultura Documentos
para IoT
Material Teórico
Ferramentas de Programação para Microcontroladores
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Ferramentas de Programação
para Microcontroladores
OBJETIVO DE APRENDIZADO
· Discutir o tema IoT, além do hardware, como Placas, microcontrolado-
res e sensores, também devemos considerar o Software ali residente.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.
Mantenha o foco!
Evite se distrair com
as redes sociais.
Seja original!
Nunca plagie
trabalhos.
Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você
também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Ferramentas de Programação para Microcontroladores
O sistema hexadecimal pode ser utilizado como forma mais eficiente de repre-
sentar endereços, enquanto a Linguagem Binária pode ser um conjunto de bits que
vai diretamente na entrada de dados do MCU.
8
c. Montador ou Assembler: o terceiro e importante dentre as Ferramentas
de desenvolvimento de software para Sistemas Embarcados é um montador.
A função de um Montador é converter um Código escrito em Linguagem de
Montagem em Linguagem de Máquina. Todos os mnemônicos e dados são
convertidos em Códigos Operacionais e bits pelo Montador. É trivial saber
que todo computador entende binário e funciona em 0 ou 1; por isso é impor-
tante converter o Código em Linguagem de Máquina; a mesma coisa ocorre
com os microcontroladores;
d. Depurador de Programa: como o nome sugere, um Depurador é uma
ferramenta usada para depurar seu Código. É importante testar se o Código
escrito está livre de erros ou não. Então, um Depurador é usado para esse
teste. O Depurador percorre todo o Código e testa erros e bugs. Ele testa o
Código para diferentes tipos de erros, por exemplo, um erro de tempo de exe-
cução ou um erro de sintaxe, notificando-o onde quer que ocorra. O número
da linha ou a localização do erro é mostrado pelo Depurador para que se possa
ir em frente e corrigi-lo. Assim, a partir da função, pode-se ver a importância
da Ferramenta que um Depurador está na lista de Ferramentas de Desenvolvi-
mento de software para Sistemas Embarcados;
e. Linker: o próximo em Ferramentas básicas de Desenvolvimento de softwa-
re de Sistemas Embarcados é um linker, uma espécie de vinculador do Có-
digo. Um linker é um Programa de Computador que combina um ou mais
arquivos de Código de objeto e arquivos de Biblioteca no Programa executá-
vel. É uma prática muito comum escrever Programas maiores em pequenas
partes e módulos para facilitar o trabalho e usar Bibliotecas no Programa.
Fica mais fácil, mais rápido e mais eficiente. Todas essas partes devem ser
combinadas num único arquivo para execução; portanto, essa função requer
vincular algo que já esteja pronto na Biblioteca fazendo apenas a chamada
no Programa de forma correta.
As Bibliotecas
Uma Biblioteca é um Programa pré-escrito que está pronto para uso e fornece
funcionalidade específica. Para Ferramentas de Desenvolvimento de software de
Sistemas Embarcados, as Bibliotecas são muito importantes e convenientes.
9
9
UNIDADE Ferramentas de Programação para Microcontroladores
Os Simuladores
Entre todas as Ferramentas de software embarcadas, a Simulação de software
também é necessária. Um Simulador ajuda a ver como o Código funcionará em
tempo real. Pode-se ver como os sensores estão interagindo, alterar os valores
de entrada dos sensores, ver como os componentes estão funcionando e como a
alteração de determinados valores pode alterar os parâmetros.
A aplicação com microcontroladores nas soluções IoT vai exigir algum conhe-
cimento de hardware, e principalmente, as especificações técnicas das entradas e
saídas do microcontrolador e da Placa.
Mas também existem IDEs para desenvolver a parte dos PCBs, as Placas em que
os microcontroladores serão soldados; e há IDEs que simulam o funcionamento do
microcontrolador como se estivesse já soldado na Placa com todos os periféricos;
e há IDEs que integram, além de todas essas funcionalidades, medição por meio
de gráficos dinâmicos, testando todo o funcionamento, como se fosse um projeto
real. Serão apresentados exemplos de IDEs para cada funcionalidade descrita nesta
abordagem inicial.
10
Para criar software para o Sistema Embarcado, é necessário que ele contenha
todas as características citadas anteriormente, como Editor de Programa, Compilador
etc. Por isso, é muito útil ter um software que possa fornecer todas as Ferramentas
necessárias, desde a gravação, até o teste do Código, num único pacote.
As IDES bem específicas, que são exemplificadas abaixo, mas serão apre-
sentadas algumas.
Keil Uvison
O Keil Uvison é um software livre que resolve muitos dos pontos problemáticos
do desenvolvedor de Sistemas Embarcados específicos das famílias de microcontro-
ladores da ARM (Figura 1).
Ethernet Driver
USB Host File System
SPI Driver CMSIS-DSP
...
USB Driver USB Device Graphics
CMSIS-RTOS
11
11
UNIDADE Ferramentas de Programação para Microcontroladores
Além do desenvolvimento bem específico, com esta IDE da ARM, podem ser
simuladas as condições de funcionamento pré-programadas. A Figura 3 mostra o
Gráfico de saída de uma onda triangular, efeito da simulação do resultado desejado
após a gravação do Programa compilado e simulado.
12
MPLAB IDE
O MPLAB é um Ambiente de Desenvolvimento Integrado (IDE) que é um con-
junto de ferramentas gratuitas e integradas para o desenvolvimento de aplicações
embarcadas, que utilizam microcontroladores PIC® e dsPIC® da Microchip.
O MPLAB IDE também serve como uma interface gráfica de usuário e unificada
para ferramentas adicionais de desenvolvimento de software e hardware da
Microchip e de terceiros.
13
13
UNIDADE Ferramentas de Programação para Microcontroladores
A última edição do MPLAB é MPLAB X. É possível baixar esta IDE pela Porta
de Microchip de forma free; o software é livre.
Arduino IDE
O software para Arduino é usado se estiver trabalhando com o microcontro-
lador Arduino. É também um software de Código aberto, como o MPLAB, que
roda no Computador Pessoal. O software Arduino ajuda a criar Programas para o
microcontrolador Arduino, fornecendo todas as Ferramentas de software embar-
cadas necessárias.
A IDE do Arduino possibilita a ideação de projetos IoT para depois serem de-
senvolvidos de maneira mais profissional.
14
Figura 5 – IDE Arduino em ambiente Cloud
texto de internet das coisas. Não deve ser usado em produção ou em aplicações profissionais.
Existem soluções para as finalidades profissionais. Arduino é e continuará sendo a melhor
solução para prototipagem e educação.
Com o Arduino, é possível usar várias Bibliotecas diferentes para suas funções
e periféricos.
Algumas são:
• Cristal líquido;
• Wi-Fi;
• Áudio;
• RTC;
• LedControl;
• Robô;
• Matriz;
• Sensor capacitivo.
A IDE Arduino será abordada em vários momentos do Curso, pois a maior comuni-
dade de prototipagem de microcontroladores do mundo, com um Mercado previsto para
6 trilhões, em 2021, de Projetos IoT, dos quais o Arduino tem a maior contribuição.
15
15
UNIDADE Ferramentas de Programação para Microcontroladores
IDE MATLAB
O Matlab (Figura 6) é uma das ferramentas mais importantes para desenvolvedores
de software. Ele fornece um ambiente no qual se pode resolver todos os problemas
computacionais. Pode-se trabalhar com Matrizes, Gráficos, Vetores, Funções, Ma-
trizes etc.; pode-se criar algoritmos e, além disso, criar interfaces de usuário.
Figura 7– IDE Matlab simulação em tempo real – Exemplo com integração ao Arduino
16
Alguns projetos do MATLAB são livres para usar e os usuários podem fa-
cilmente baixar seus Códigos do respectivo Projeto, mas poucos deles não são
gratuitos, assim como a licença de software não é gratuita, nem para estudantes
ou acadêmicos.
IDE LABVIEW
LabVIEW significa Laboratório de Engenharia de Instrumentos Virtuais, da
National Instruments. Esse software também é usado para visualizar a saí-
da. As principais funções que podem ser realizadas usando o LabVIEW são
aquisição de dados, automação industrial e controle de instrumentos. Esse sof-
tware é basicamente para Linguagem de Programação Visual (Figura 8).
IDE PROTEUS
O Proteus é um tipo de software de Simulação em que se pode criar circuitos, fa-
zer o modelo do Sistema Embarcado, incluindo microcontrolador para ver como fun-
ciona, medir parâmetros de Circuitos, alterar valores de sensores e muito mais; tam-
bém ajuda o design de PCB (Placa de Circuito Impresso) para o Sistema Embarcado.
17
17
UNIDADE Ferramentas de Programação para Microcontroladores
Para rodar em Sistema Operacional Linux, vai ser necessário usar a distribuição
Ubuntu e usar o Emulador Wine. Mas não é recomendável, pois as Bibliotecas po-
dem não compilar, pois o emulador fica impedido de acessar o hardware para Com-
pilação necessária.
IDE EASYEDA
O EasyEDA é uma ferramenta on-line que se pode usar para criar Esquemas,
Projetos de PCBs e SIMULAÇÕES. Como é uma ferramenta on-line que é executa-
da na Web, não é necessário fazer o download e instalá-lo no Computador Pessoal;
em vez disso, pode-se executá-lo diretamente.
18
Figura 10 – IDE EASYEDA – Shield Arduino Motor
IDE ALTIUM
A concepção de PCBs é uma parte muito importante do desenvolvimento de um
Sistema Embarcado; por isso é bom conhecer todos os recursos disponíveis para
o projeto de PCBs.
19
19
UNIDADE Ferramentas de Programação para Microcontroladores
Inscreva-se no Arduino
Crie uma nova conta do Arduino neste link. Preencha o formulário de registro e
aperte o botão Create Account. Você receberá um email com um link para ativar
sua conta.
Selecione o link e uma nova página será aberta com as informações da sua
conta confirmada.
Figura 12 - Arduino
Note que você também pode usar essa conta para escrever posts no Fórum ofi-
cial do Arduino, comprar produtos na loja on-line, adicionar comentários no blog,
bem como criar tutoriais no Arduino Project Hub.
20
Faça o login no Arduino Web Editor
Depois de se registrar com sucesso uma conta do Arduino, vá para create.arduino.
cc/editor. Depois de aceitar o termo e condições, você deve receber um e-mail com
um link para o Fórum, no qual você pode relatar qualquer bug que possa encontrar e
compartilhar seus comentários.
Por favor, abra uma discussão nesta página do Fórum. Vamos tentar resolver o
seu problema e colocá-lo em prática!
21
21
UNIDADE Ferramentas de Programação para Microcontroladores
22
• A terceira coluna, a área do Código, é a que você mais usará. Aqui, você pode
escrever o Código, verificá-lo e enviá-lo para suas pastas, salvar seus esboços na
nuvem e compartilhá-los com quem quiser.
Figura 15
Para fazer o upload para sua Placa, pressione o Upload botão “” (seta para a
direita), perto da lista suspensa. Um BUSY rótulo « « substitui os botões durante a
verificação e o upload do Código. Se o upload for bem sucedido, a mensagem “
Success: Done uploading ” aparecerá na área de saída inferior.
23
23
UNIDADE Ferramentas de Programação para Microcontroladores
Quando o upload estiver concluído, você deverá ver na sua Placa o LED amarelo
com um L próximo a ele começando a piscar. Se esse for o caso, parabéns!
Você programou com sucesso sua Placa para piscar seu LED na Placa!
Figura 16
Parabéns!
Nesta janela pop-up, você também tem a liberdade de selecionar qualquer Placa,
se quiser verificar se o seu Código funciona para um produto específico, mas não
o tem em mãos. Se a Placa que você conectou não é reconhecida, você também
pode selecioná-la manualmente aqui; não esqueça de também selecionar a porta.
24
Figura 17 e 18
25
25
UNIDADE Ferramentas de Programação para Microcontroladores
Monitor Serial
No Editor da Web do Arduino, o Monitor Serial está disponível na barra lateral
e quando você clica nele, um painel será exibido.
Figura 19
Figura 20
26
Se você quiser imprimir algo e se familiarizar com o Monitor Serial, você pode
tentar Exemplos> 03.Analog> AnalogInOutSerial. Pressione e veja os valores
impressos no painel.Upload.
Figura 21
Figura 22
27
27
UNIDADE Ferramentas de Programação para Microcontroladores
Se nenhuma Placa estiver conectada nesse momento, o Monitor Serial ficará cinza
e indisponível.
Figura 23
Se você estiver usando outros Programas que se comuniquem através dessa por-
ta (por exemplo, Processing ou Desktop IDE), uma mensagem informando que a
porta é usada por outro software será exibida.
Se você deseja usar a porta com outro software ou apenas deseja interromper o
fluxo de valores de saída, pressione o botão Desconectar no painel.
Figura 24
28
Figura 25
Quando estiver trabalhando em seus próprios Projetos, você pode adicionar suas
próprias imagens de documentação, clicando na última guia da área de Código, e
escolhendo “Import File into Sketch”.
Figura 26
29
29
UNIDADE Ferramentas de Programação para Microcontroladores
Figura 27
Se você der o URL a alguém, ele poderá ver seu Código, adicionar uma cópia dele
ao Sketchbook na nuvem ou baixá-lo. Se você escrever um Tutorial no Project Hub
e adicionar o link na seção Software, seu Código será incorporado e permanecerá
sempre atualizado.
Figura 28
Nós imaginamos o Arduino Sketch como a Unidade que inclui tudo o que você
precisa para dar vida a uma ideia. Quando alguém compartilha um esboço com
você, você terá acesso ao Código, ao layout dos componentes eletrônicos e ao
tutorial completo (quando disponível). Isso fornecerá todas as informações neces-
sárias para você construir sobre o Projeto original, tornando-o seu.
30
Você pode até incorporar seu esboço a uma página da Web, copiando o Código
fornecido na janela Compartilhar.
Você pode navegar por todos eles no Gerenciador de Bibliotecas e escolher aque-
les que você mais gosta. Todas as Bibliotecas disponíveis no Gerenciador de Bibliote-
cas são detectadas automaticamente; portanto, você nunca precisará instalá-las para
que seu Código seja compilado.
Figura 29
Uma vez que todas as Bibliotecas que contribuíram estão acima, em nossos servi-
dores, se você usá-las e, em seguida, compartilhar o seu esboço com alguém, ele só
poderá adicionar uma cópia do seu Código para o seu Caderno de Esboços e será
capaz de compilá-lo sem ter de fazer qualquer outra coisa.
31
31
UNIDADE Ferramentas de Programação para Microcontroladores
Figura 30
A partir daí, você pode selecionar uma versão específica e incluí-la no seu esboço.
Estamos adicionando um metadado ao esboço sobre o número da versão, para que
possamos dizer ao Construtor de Arduino para escolher o que você realmente quer.
Se você preferir uma Biblioteca, também poderá ver seus exemplos relacionados,
obter mais informações e um link para o repositório do GitHub e fazer o download.
Mas, e se você quiser usar sua própria Biblioteca personalizada na IDE da Web?
32
Figura 31
33
33
UNIDADE Ferramentas de Programação para Microcontroladores
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
What is Arduino Create?
https://goo.gl/HhvOsX
Arduino Project Hub
https://goo.gl/HK27Bv
Microsoft Excel com Arduino - Primeiros Passos
https://goo.gl/AUuDX9
Vídeos
Aquisição de dados para o Excel utilizando Arduino em 5 minutos!
https://youtu.be/BmYAGVmqguo
34
Referências
ALMEIDA, Rodrigo Maximiano Antunes de; MORAES, Carlos Henrique Valério
de; SERAPHIM, Thatyana de Faria Piola. Programação de sistemas embarca-
dos: desenvolvendo software para microcontroladores em Linguagem C. Rio de
Janeiro: Elsevier, 2016. 467p.
________. Projetos com Arduino e Android: use seu smartphone ou tablet para
controlar o Arduino. Porto Alegre: Bookman, 2013.
Sites visitados
O BÁSICO sobre os Microcontroladores – Parte 2 (MIC140). Disponível em
<http://newtoncbraga.com.br/index.php/eletronica/52-artigos-diversos/13264-
o-basico-sobre-os-microcontroladores-parte-2-mic140>.
35
35