Manual de configuração do AtmelStudio 6 para o seu uso como ambiente de desenvolvimento do Arduimo
Jonatas Augusto de Freitas
jaf@univali.br , jonatas.engcomp@gmail.com
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/
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:
- AtmelStudio 6: http://www.atmel.com/microsite/atmel_studio6/
- Arduino Software: http://arduino.cc/en/Main/Software
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.
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
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
c. Configure o modelo da placa e a porta COM na aba Tools (ferramentas);
Figura 3 – Parâmetros do ARVDUDE |
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
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
Figura 4 – Localização da Core.a |
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.
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.
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.
Adicionando as bibliotecas da IDE do Arduino ao seu projeto
Passo-a-passo
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;
#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 |
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
a href="http://youtu.be/qEcWR5EUNdk">http://youtu.be/qEcWR5EUNdk> e a href="http://youtu.be/F74khQnh9pM">http://youtu.be/F74khQnh9pM>
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)