Manual de configuração do AtmelStudio 6 para o seu uso como ambiente de desenvolvimento do Arduimo
Baseado na vídeo-aula Tutorial Arduino + Atmel Studio 6 por Fernando Nunes José Leitão e nos Tutoriais disponibilizados no site http://www.jayconsystems.com/
Jonatas
Augusto de Freitas
1. Introdução
O Arduino é um projeto que tem como objetivo o desenvolvimento de uma plataforma opensource voltada à prototipação rápida, tendo como base os microcontroladores pertencentes à família Atmel da AVR.
O
projeto Arduino é mais conhecido por seu hardware, porém também envolve o
desenvolvimento de um software de programação construído em Java e que permite
a programação do microcontrolador em uma linguagem derivada do C++. Tanto o
hardware como o software de programação são chamados de “Arduino.” A combinação
destas ferramentas permite criar sistemas utilizando sensores e atuadores para
controle do mundo físico. Além disso, há uma comunidade ativa relacionada ao
projeto Arduino fornecendo apoio acessível em todo o mundo através de fóruns
(MARGOLIS, 2011).
No
site oficial do Arduino é possível efetuar o download do ambiente de
desenvolvimento (IDE) oficial do projeto para desenvolver os sofwares de
controle (também conhecidos como sketches) para placa. Essa IDE possui um
design intuitivo e de fácil uso, sendo mais adequada para os iniciantes quando comparada
com as IDEs tradicionais no desenvolvimento de sistemas embarcados.
Figura 1 - IDE Arduino
|
Porém, para usuários mais avançados a IDE oficial do Arduino
se torna restritiva devido a sua simplicidade, especialmente por não possuir
uma função de Debug. Uma das soluções para desenvolvedores mais experientes é a
utilização de outras IDEs como por exemplo o Netbeans, o Eclipse e o
AtmelStudio. Entre estes, o AtmelStudio se destaca por ser a IDE oficial da
família de microcontroladores AVR, os mesmos utilizados no Arduino.
Entre
outras vantagens do uso do AtmelStudio podemos citar:
-
Bibliotecas: compatibilidade com as bibliotecas opensource
disponíveis na comunidade em torno do Arduino;
-
Terminal: utilizado para comunicação Serial, podendo alterar o tipo de dado (entre
ASCII, Hex, Dec, Bin), não ficando restrito apenas ao modo ASCII da IDE
oficial;
-
Autocompletar: função que prevê os comandos enquanto estes
estão sendo digitados, agilizando a programação e evitando erros de sintaxe;
-
Debug: função que permite rodar passo a passo o programa, com o objetivo de
visualizar o comportamento do mesmo na manipulação de variáveis, flags do
processador, status das I/Os e da EEPROM; e
-
Disassembly: Acesso do código em Assembler, permitindo otimização.
Este tutorial é baseado na vídeo-aula Tutorial Arduino + Atmel Studio 6 por Fernando Nunes José Leitão e
nos Tutoriais disponibilizados no site http://www.jayconsystems.com/
2.
Requisitos
Antes de iniciar a configuração do AtmelStudio é necessário que o mesmo já esteja instalado no computador, assim como a IDE oficial do Arduino. Ambos podem ser descarregados através dos links abaixo:
Observação: Para utilização
do ArduinoMega, a versão do ArduinoSoftware deve ser anterior a 1.0.
Após efetuar o download dos programas, os mesmos devem ser instalados seguindo
os procedimentos padrão de instalação, que
também podem ser encontrados nas respectivas página de download.
3.
Instalando a ferramenta Terminal Window (Serial)
A ferramenta Terminal Window permite enviar e receber dados através das portas
seriais do computador. Diferente do Monitor Serial da IDE oficial do Arduino,
que se comunica com o microcontrolador apenas no formato de caracteres ASCII, a
Terminal Window permite também a comunicação de dados no formato Hex, Dec e
Bin.
Passo-a-Passo
- Na aba Tools, selecione a opção Extension Manager;
- Seleciona no menu vertical à esquerda a opção Avaliable Downloads;
- Selecione o componente Terminal Window;
- Após a instalação o mesmo aparecerá na aba View.
4.
Configurando o compilador ARVDude
O AVRDUDE é uma aplicação de código aberto para gravar programas na
Flash de processadores AVR (como os utilizados na plataforma Arduino).
Passo-a-Passo
- Na aba Tools, selecione a opção External Tools;
- Na janela External Tools (Figura 2) será possível configurar os compiladores do Arduino:
Figura 2 - Janela External Tools |
- No campo Title digite o nome que deseja dar à ferramenta (exemplo: Upload Arduino);
- No campo Command deve ser inserido o caminho para o aplicativo avrdude.exe, localizado dentro da pasta da IDE do Arduino no seguinte endereço /hardware/tools/avr/bin/avrdude.exe
- O campo Arguments fornece ao compilador o tipo de microcontrolador e a porta de comunicação (COM) de cada Arduino, podendo variar mesmo entre Arduinos idênticos. Os parâmetros podem ser obtidos através da IDE oficial. Para isto:
- Execute a IDE oficial do Arduino;
- Conecte o seu Arduino ao computador;
c. Configure o modelo da placa e a porta COM na
aba Tools (ferramentas);
- Abra um programa exemplo (ex.: Blink);
- No menu File (Arquivo) > Preferences, marque a caixa de seleção upload (carregar) e em seguida no botão OK;
- Clique no
botão Upload e
aguarde o fim da gravação.
Figura 3 – Parâmetros do ARVDUDE - Na área de retorno da IDE (parte com fundo preto) serão apresentadas as operações do AVRDURE, sendo a primeira a localização do mesmo, compatível com o endereço visto no passo anterior. A instrução seguinte são os parâmetros (Figura 3).
Desta instrução será copiado o texto entre –C e
–Uflash:w:
h.
O trecho final do parâmetro está relacionado
ao endereço do arquivo .hex do projeto, criado pelo compilador. Para permitir
que este caminho seja genérico você deve digitar após o w: o comando (incluindo as aspas)
"$(ProjectDir)Debug\$(ItemFileName).hex":i
Ficando o parâmetro desde exemplo assim:
-CD:\Documentos\Engenharia\Microcontroladores_e_Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf
-v -v -v -v -patmega168p -carduino -P\\.\COM28 -b57600 -D
-Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
- Marque a opção Use Output window para ter um retorno da gravação e clique em Apply e em seguida em OK.
Está pronta a configuração
do AVRDUDE no AtmelStudio6 e a ferramenta de compilação estará disponível na
aba Tools.
É através da importação da biblioteca arduino.h que se torna possível a utilização da linguagem do
arduino dentro do AtmelStudio, abstraindo operações como a definição de
registradores e flags. Os passos a seguir devem ser executados logo após a
configuração do AVRDUDE.
Passo-a-Passo
- Execute a IDE oficial do Arduino;
- Conecte o seu Arduino ao computador;
- Configure o modelo da placa e a porta COM na aba Tools (ferramentas);
- Abra um programa exemplo (ex.: Blink);
- No menu File (Arquivo) > Preferences, marque a caixa de seleção Compilation (Compilação) e em seguida no botão OK;
- Clique no botão Verify (verificar) e aguarde o fim da compilação;
- Na área de retorno da IDE (área de fundo preto) serão exibidos os parâmetros da compilação. Entre estes parâmetros está o endereço do arquivo core.a criado no modo temporário a cada complicação (ao fechar a IDE este arquivo é excluído). Das linhas iniciando com Using previously compiled: copie o endereço até o .tmp , como na Figura 4;
- Cole este endereço na barra de endereço do Windows Explorer para ter acesso aos arquivos da pasta;
- Abre uma nova janela do Windows Explorer e crie uma pasta denominada ArduinoCore dentro da pasta Atmel Studio, localizada na pasta do sistema Documentos (Meus Documentos no WindowsXP);
- Copie o arquivo core.a localizado na pasta visualizada no Passo 8 e renomeie-a para libcore.a;
Figura 4 – Localização da Core.a |
- A partir pasta da IDE do Arduino acesse as subpastas hardware/arduino/cores/arduino e copie todos os arquivos para a pasta ArduinoCore criada no passo 9;
12.
Na pasta ArduinoCore exclua todos os arquivos
com extensão .c e .cpp. Para facilitar esta operação selecione a opção de “Organizar Pastas
por Tipo”;
13.
O próximo
passo é a localização do arquivo que possui a configuração de pinos do Arduino.
Na pasta da IDE do Arduino acesse arduino/hardware/arduino/variants/
e copie a variant (versão) do seu Arduino. Caso não saiba qual a versão da sua variant você pode verificar no arquivo boards.txt dentro da pasta arduino/hardware/arduino/. A versão da
Variant pode ser encontrada na linha
uno.build.variant. Uma vez identificada a versão da variant, copie o
arquivo pins_arduino.h presente na
subpasta da versão correspondente para a pasta ArduinoCore criada no passo 9;
Com esses passos está concluída a etapa de
configuração do AtmelStudio, permitindo agora a programação do Arduino.
6. Criando um projeto
Passo-a-Passo
1.
Na tela
principal do AtmelStudio, clique no menu File>New>Project
(tecla de atalho: Ctrl+Shift+N);
2.
Selecione
a opção GCC C++ Executable Project;
|
3.
No campo Name digite o nome do seu projeto (lembre
de não usar caracteres especiais ou deixar espaços). Se desejar altere a
localização do seu projeto e o nome da solução. Clique em OK;
4.
Na janela
seguinte (Device Selection), escolha
o microcontrolador do seu Arduino e clique em OK e aguarde a criação do projeto;
5.
Após a
criação do projeto clique na aba Project>Properties
para importar as bibliotecas do
Arduino para o seu projeto;
6.
Na aba da
esquerda escolha a opção Toolchain;
7.
Na arvore
de configurações escolha inicialmente a opção AVR/GNU C Complier>Directories e clique no botão Add Item .
a.
Desmarque
a opção Relative Path (*importante desmarcar a opção antes de tentar
localizar a pasta ou o AtmelStudio irá travar)
b.
Clique no
botão [...] e localize a pasta ArduinoCore
que foi criada nos passos anteriores;
8.
Na arvore
de configurações escolha a opção AVR/GNU
C Complier>Optimization. No campo Optimization
Level selecione Optimize for size.
Marque também a caixa Prepare Functiond
for garbage collection;
a.
Desmarque
a opção Relative Path (*importante desmarcar a opção antes de tentar localizar a
pasta ou o AtmelStudio irá travar);
b.
Clique no
botão [...] e localize a pasta ArduinoCore
que foi criada nos passos anteriores;
10.
Na arvore
de configurações escolha a opção AVR/GNU
C++ Complier>Optimization. No campo Optimization
Level selecione Optimize for size.
Marque também a caixa Prepare Functiond
for garbage collection;
11.
Para
adicionar a função de core no
projeto selecione a opção AVR/GNU
Linker>Libraries.
b.
Em seguida
indique o caminho de biblioteca libcore.a;
c.
Desmarque
a opção Relative Path (*importante desmarcar a opção antes de tentar localizar a
pasta ou o AtmelStudio irá travar);
d.
Clique no
botão [...] e localize a pasta ArduinoCore
que foi criada nos passos anteriores;
12.
Para
adicionar a função de core no
projeto selecione a opção AVR/GNU
Linker> Optimization. Marque a caixa Prepare Functiond for garbage collection;
13.
Clique em
salvar e feche esta tela;
14.
Apague
todos os comandos no arquivo .cpp e
adicione o seguinte cabeçalho:
#define F_CPU 16000000 //clock do processador
#define ARDUINO 101 //versão da biblioteca
#include “Arduino.h” //biblioteca
base do Arduino
|
Ao fim destes passos você já tem o AtmelStudio
configurado e um projeto criado, pronto para receber todos os comando da
biblioteca base do Arduino, como estivesse programando na IDE original do
projeto.
7.
Código de Exemplo Blink – Testando a configuração
Para verificar se o procedimento foi executado com sucesso podemos programar um programa simples que tem como função piscar o led onboard conectado ao pino de I/O digital 13. Abaixo o código fonte:
#define F_CPU 16000000 //clock do processador
#define ARDUINO 101 //versão da biblioteca
#include “Arduino.h” //biblioteca base do Arduino
/*
Blink
Turns on an LED on for one
second, then off for one second, repeatedly.
This example code is in the
public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital
pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led,
HIGH); // turn the LED on (HIGH is
the voltage level)
delay(1000); // wait for a second
digitalWrite(led,
LOW); // turn the LED off by making
the voltage LOW
delay(1000); // wait for a second
}
|
Para compilar o projeto clique no botão Build Solution (tecla de atalho F7).
Após a compilação, na aba Tools execute
a ferramenta de upload criada nos passos anteriores. Lembrando que para cada
placa diferente (outro microcontrolador e/ou porta COM diferente) que você
conectar deverá ser criado uma “ferramenta externa” especifica.
8.
Adicionando outras bibliotecas
Adicionando as bibliotecas da IDE do Arduino ao seu projeto
Passo-a-passo
- Copie a pasta da biblioteca (na subpasta Libraries da IDE).
- Na pasta Documentos/Atmel Studio crie uma nova pasta (ex.: bibliotecasArduino) e copie as bibliotecas para dentro dela;
- Na tela principal do AtmelStudio clique na aba Project>... Properties;
- Na aba da esquerda escolha a opção Toolchain;
- Na arvore de configurações escolha inicialmente a opção AVR/GNU C Complier>Directories e clique no botão Add Item .
a.
Desmarque
a opção Relative Path (*importante desmarcar a opção antes de tentar
localizar a pasta ou o AtmelStudio irá travar)
b.
Clique no
botão [...] e localize a pasta principal da biblioteca que deseja usar;
a.
Desmarque
a opção Relative Path (*importante desmarcar a opção antes de tentar localizar a
pasta ou o AtmelStudio irá travar);
b.
Clique no
botão [...] e localize a pasta principal da biblioteca que deseja usar;
- Salve as alterações (botão salvar); e
- Insira o comando de Inclusão da biblioteca no cabeçalho do seu programa. Exemplo:
#define F_CPU 16000000 //clock do processador
#define ARDUINO 101 //versão da biblioteca
#include “Arduino.h” //biblioteca base do Arduino
#include “Servo.h” //biblioteca para controle de ServoMotores
|
9. Créditos
Este tutorial é baseado na vídeo-aula Tutorial Arduino + Atmel Studio 6 por Fernando Nunes José Leitão.
Fernando Nunes José Leitão é estudante do último ano do curso de Engenharia
Mecatrônica na Fundação Santo André (SP) e Garagista do Laboratório de Garagem.
Perfil do Fernando no LdG
---
---
MARGOLIS,
Michael. Arduino Cookbook. O’Reilly Media, Inc. 2011.
LEITÃO, Fernando N.J. Tutorial
Arduino + Atmel Studio 6. Disponível em
Nenhum comentário:
Postar um comentário