Arduino

O Arduino foi criado em 2005 por um grupo de 5 pesquisadores : Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. O objetivo era elaborar um dispositivo que fosse ao mesmo tempo barato, funcional e fácil de programar, sendo dessa forma acessível a estudantes e projetistas amadores. Além disso, foi adotado o conceito de hardware livre, o que significa que qualquer um pode montar, modificar, melhorar e personalizar o Arduino, partindo do mesmo hardware básico.

Bootloader Arduino

O bootloader funciona dessa forma: ele verifica se a porta serial recebe uma determinada sequencia de bits que sinaliza a gravação de um novo programa na memória do arduino, caso não receba essa mensagem ele receba essa mensagem ele continua com seu processo de inicialização com o que ja esta salvo na memória.

Adquação a pinagem com o bootloader

O Arduino é um micro-controlador com varios modelos e caracteriscas proprias em cada qual, as suas adquações de hardware são realizadas de acordo com as portas seriais (UARTS), onde acontecerá a seleção em código. O hardware será selecionado de acordo com a sua UARTS, como o atmega128 tem 2 portas seriais(UARTS), dois pinos sao usados para entrar no bootloaders e selecionar a UART, ou o atmega1280 tem 4 portas seriais mas apenas usa a RXD0 para receber o codigo BL0 = UART0, BL1 = UART1.

A UART: O que é e como funciona?

O controlador UART (Universal Asynchronous Receiver / Transmitter) é o componente chave do subsistema de comunicação serial de um computador. O UART pega bytes de dados e transmite os bits individuais de forma seqüencial. No destino, um segundo UART reúne os bits em bytes completos. Existem duas formas primárias de transmissão serial: Síncrona e Assíncrona. Dependendo dos modos suportados pelo hardware, o nome do subsistema de comunicação geralmente incluirá um A se ele suportar comunicações assíncronas, e um S se ele suportar Comunicações síncronas. Ambas as formas são descritas abaixo. Sua siglas comuns UART Universal Asynchronous Receiver/Transmitter, USART Universal Synchronous-Asynchronous Receiver/Transmitter, (Receptor / Transmissor Assíncrono Universal UART), (Receptor / Transmissor Síncrono-Assíncrono Universal USART).

Saiba mais

Codigos

Apos a intalação do arduino seu codigo fonte do arduino pode ser encontrado em sua pasta de instalação em (~/Arduino/build/linux/work/hardware/arduino/avr/bootloaders/atmega$) e seu main (~/Arduino/build/linux/work/hardware/arduino/avr/cores/arduino$ less main.cpp), ou clicando nos links abaixos.

ATmegaBOOT_168

Main

Explicação

Para uma explicação sucinta, o codigo fonte do arduino pode ser chamado de "adaptativo", onde ele identifica seu modelo de hardware, seleciona sua pinagem e após isso e inicializado carregando codigos ou compilando os que estão em sua memoria. Saiba mais das arquiteturas de hardware.

A metodologia da pesquisa foi desenvolvida em conjunto com o professor orientador. Assim iniciando uma busca bibliografica sobre o assunto, entendendo amplos aspectos do software do arduino. A busca bibliografica começou no Livro Arudino Internals - Dale Wheat, entendendo suas premissas básicas, após isso foi possivel desmembrar o código fonte do arduino atmega128. Observando o código fonte, é possivel concluir que para diferentes arquiteturas o codigo irá se adaptar primeiramente, após isso continuará com o seu fluxo de código.

O que é o REA?

Um repositorio Educacional Aberto, onde temas abordados foram estudados e publicados para uma divulgação do conhecimento aberta e consciente.

Entrar em contato


Nicollas de Albuquerque, academico de Enganharia de computação.

Dierone César Foltran Júnior, orientador e supervisor do trabalho refenciado.

Pagina oficial do Arduino.