Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pt:examples:setup:kontrollerlab [2015/12/08 22:48] – Criação deste novo documento. articapt:examples:setup:kontrollerlab [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== KontrollerLab para Linux ======
 +
 +O seguinte guia descreve a instalação e uso do AVR toolkit para o sistema operativo Ubuntu.
 +
 +===== Instalação do Software =====
 +
 +Instale o seguinte software:
 +
 +**1. Pacotes de software de Linux**
 +
 +  * gcc-avr – Compilador GNU de linguagem C para AVR
 +  * avrdude – Programa para carregaento de ficheiros hexadecimais para o controlador
 +  * avr-libc – Bibliotecas em linguagem C para escrever código para a plataforma AVR
 +
 +Para instalar os pacotes use a linha de comandos:
 +
 +  sudo apt-get install gcc-avr avrdude avr-libc
 +
 +ou software de instalação gráfica (como sendo o Ubuntu software center ou Synaptic packet manager).
 +
 +**2. Biblioteca HomeLab**
 +
 +A biblioteca simplifica a escrita de código, dado que as funções de baixo nivel já se encontram fitas. Visite a página web do HomeLab e descarregue o ficheiro chamado //Homelab library vX.X.run//, onde XX representa o número da versão. Execute o seguinte comando para instalar a biblioteca:
 +
 +  sudo sh homelab_library_vX.X.run
 +
 +Confirme que a instalação da biblioteca foi bem sucedida.
 +
 +**3. KontrollerLab**
 +
 +KontrollerLab é um IDE (//integrated development environment//) para escrita, compilação, carregamento e depuração de software AVR. Descarregue o software KontrollerLab e guarde-o numa directoria (por exemplo, //~/Documents/AVR/KontrollerLab//). Execute o seguinte comando nessa directoria:
 +
 +  sudo dpkg -i kontrollerlab*.deb
 +
 +Se tiver problemas com dependências de pacotes, execute o comando para instalar os pacotes em falta:
 +
 +  apt-get install –f
 +
 +{{  :kit:001_kontrollerlab_installer.png?500  |}}
 +
 +===== Ligação ao programador =====
 +
 +Ligue o programador ao computador para verificar se o computador o reconhece. Escreva o comando "lsusb" no terminal de linha de comandos, este comando deverá mostrar a lista de dispositivos connectados por USB. O nome do programador é "Future Technology Devices International, Ltd FT 232 USB-Serial (UART) IC".
 +
 +{{  :kit:002_lsbusb.png?500  |}}
 +
 +Para obter a porta à qual o programador está conectado, verifique a directoria //dev// utilizando os comandos //cd /dev// (define ///dev// como a directoria actual) e //dir// (lista o conteudo da directoria). Como o programadore uma interface de série USB, o seu nome será algo do tipo "ttyUSBx" onde "x" é o indice do interface. Se não houver mais nenhum interface connectado este indice será 0.
 +
 +{{  :kit:003_ttyusb0.png?500  |}}
 +
 +===== Criar um novo projecto =====
 +
 +Para escrever um progama AVR, um projecto tem de ser criado que contem todos os ficheiros necessários: código fonte, ficheiros de cabeçalhos, programas compilados, etc. Para separar mais claramente os projectos, é sugerido ser criada uma directoria para cada projecto (esta opção é sugerida no assistente de criação de projecto).
 +
 +Para criar um projecto sigam os passos:
 +
 +**1.** Abrir KontrollerLab (//Applications -> Programming -> KontrollerLab//) e iniciar um novo projecto no menu //File -> New -> New project//. Uma janela abre onde a localização do projecto necessita ser localizada. Neste exemplo seria //../Homelab/blinkingLED///.
 +
 +{{  :kit:004_new_project_kontrollerlab.png?500  |}}
 +
 +**2.** O projecto tem de ter pelo menos um ficheiro C onde se escreve o código fonte. Ficheiros podem ser adicionados ao projecto através do menu //File -> New -> New//. Na janela que abre selecionar //C source// como tipo de ficheiro e especificar o nome.
 +
 +{{  :kit:005_new_file_kontrollerlab.png?500  |}}
 +
 +**3.** Em seguida, o projeto deve ser configurado para o kit HomeLab. A partir do menu //Project -> Configure Project// abra a janela de configurações e selecione //Common//. O tipo de CPU deverá ser ATmega128 e o relógio deverá ser 14745600,0 Hz. Também devem ser especificados os nomes dos ficheiros HEX e MAP. Pressionando o butão //Set as default// faz com que essas configurações sejam salvas como o valor por defeito para novos projetos. Isso é razoável quando se trabalha apenas com microcontrolador AVR do HomeLab. Como os arquivos HEX e mapa também são armazenados por defeito, recomenda-se usar algum nome geral para eles, por exemplo "out.hex".
 +
 +NB! Como a biblioteca HomeLab não pode ser adicioada no tab de configuração //Linker//, o comando "-lhomelab" tem de ser adicionado a seguir ao nome do ficheiro MAP.
 +
 +{{  :kit:006_project_conf_common.png?500  |}}
 +
 +Aplique as configurações no tab //Compiler// tal como indicado no seguinte screenshot. Antes de premir //OK// guarde também as configurações do compilador como os valores por defeito.
 +
 +{{  :kit:007_project_conf_compiler.png?500  |}}
 +
 +**4.** Configure o programador abrindo a janela de configurações através do menu //Project -> Configure Programmer//. Selecione "AVRDUDE" como o programador. Na tab "AVRDUDE" defina o tipo de programador como sendo //jtagmkI// e a porta de ligação ///dev/ttyUSBx// (onde "x" é o indice da porta). Defina estas configurações também como os valores por defeito.
 +
 +{{  :kit:008_programmer_conf.png?500  |}}
 +
 +**5.** Por fim, coloque as janelas no KontrollerLab como achar mais conveniente e prepare-se para escrever o seu primeiro programa.
 +
 +{{  :kit:010_kontrollerlab.png?500  |}}
 +
 +===== Escrever e testar um programa =====
 +
 +Depois dos passos de configuração estarem concluídos, chega a altura de programar.
 +
 +**1.** Ligue ao programado usando o módulo do controlado. Verifique que o programador está correctamente connectado com o socket JTAG. O cabo deverá estar orientado para sair da placa (veja na imagem). Ligue agora o power e verifique que o LED verde acende na placa controladora.
 +
 +{{  :kit:kit_test.jpg?500  |}}
 +
 +**2.** Escreva o seguinte programa no editor de ficheiros do Kontrollerlab e compile:
 +
 +<code c>
 +#include <avr/io.h>
 +#include <homelab/delay.h>
 + 
 +int main(void)
 +{
 + // Set pin PB7 as an output
 + DDRB = 0x80;
 + 
 + // Lõputu tsükkel
 + while (true)
 + {
 + // Inverting pin PB7
 + PORTB ^= 0x80;
 + hw_delay_ms(500);
 + }
 +}
 +</code>
 +
 +[{{  :kit:011_compile_ignite.png?408  |Toolbar}}]
 +
 +Verifique que a janela de output indica a mensagem "File compiled successfully". Se a mensagem "Error(s) occurred: " aparecer verifique o programa para remover os erros.
 +
 +**3.** PAra descarregar o program para o controlador prima o butão //Ignite//. Após o carregamento sucedido, a mensagem "Project built and uploaded successfully" deverá aparecer.
 +
 +Se tudo estiver bem o LED vermelho da placa controlador deverá pisca periodicamente, com um segundo de intervalo.
 +
 +===== Utilizando números de vírgula fluctuante =====
 +
 +às vezes é necessário utilizar números de írgula fluctuante num programa. Para os utilizar em cálculos ou usá-los em funções do tipo//printf// são necessárias algumas modificações à configuração do projecto:
 +
 +**1.** Abra a janela //Project Configurations// e o tab //Linker//. Verifique a primeira linha na lista de //Linker flags// (veja na imagem)).
 +
 +{{  :kit:012_linker_fprintf.png?500  |}}
 +
 +**2.** Prima //OK// e feche a janela.
  
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0