ArduinoUno_R3_Front_450px

Continuando as postagens sobre Arduino, neste post eu descreverei um pouco mais o seu software e algumas funções básicas. Lembrando que existem vários tutoriais pela internet explicando as funções, utilidades e aplicações, aqui apenas vou fazer um apanhado de informações para quem não conhece o equipamento. Utilizarei como referência, o Arduíno Uno.

Recomendo ler a minha primeira postagem, onde eu comentei sobre o que é o Arduino, tipos/modelos, onde comprar e passei links de alguns projetos.

1.Software

A interface de programação do Arduino pode ser baixada diretamente no próprio site: http://arduino.cc/en/Main/Software

A versão estável mais recente (28/03/14) é a 1.0.5. Sempre que houver atualização eu recomendo baixar e instalar, já que frequentemente são adicionadas bibliotecas e melhorada a compatibilidade com sistemas operacionais mais atuais (o software é compatível com Linux, Mac e Windows)

Ao instalar o software, os drivers são disponibilizados automaticamente, sendo necessário apenas conectar a sua placa ao computador através da porta USB.

Executando o programa, temos uma interface parecida com um editor de texto, onde podemos inserir comandos que serão executados pela placa. O nome deste arquivo é chamado de Sketch e é salvo com terminação .ino.

Antes de gerar qualquer código, é necessário escolher o modelo da placa no menu e selecionar a porta COM que ela está no computador (se não souber, no Windows é só olhar no Gerenciador de Dispositivos no painel de controle)

tool_ferramentas

– Selecionando Modelos de Placas

Após essas configurações básicas, é possível ir para o segundo passo, a programação.

2. Programando o Arduino

A melhor maneira de começar a programar o Arduino é lendo e entendendo o exemplos que acompanham o software. É necessário ter pelo menos uma pequena noção de como programar.

skreetch

– Selecionando um Exemplo

Após selecionar um exemplo e/ou criar seu próprio código, é necessário compilar e gravar o mesmo na placa. O processo de gravação é simples e feito através da própria interface (e por USB, neste caso). O botão de compilar é o primeiro na barra verde escura e o de gravar é o segundo. Ambos também podem ser encontrados no menu “Sketch”.

exemplo

– Compilando um código.

Em geral, logo após gravar o código na placa, a mesma gera um auto-reset e já começa a executar o código. É possível fazer exemplos simples envolvendo LED utilizando apenas a energia da porta USB, e portanto, é a mais indicada para quem está iniciando e irá testar exaustivamente os comandos/gravação.

O que eu mais gosto do Arduino é o suporte que dão para quem está começando. Para vocês terem ideia, cada um desses exemplos que estão no software, possui uma página específica em http://arduino.cc/en/Tutorial/HomePage que explica as ligações físicas e as dúvidas frequentes. Ainda, você também pode procurar na página principal os comandos e funções, para saber o que cada uma faz, sendo necessário apenas o conhecimento de inglês (lembrando que existem diversas páginas e tutoriais em português pela internet).

3. Pinos e Funcionalidades

Temos duas categorias principais de pinos: os de entrada/saída digitais e os de entrada/saída analógicos. Descreverei um pouco sobre ambos em detalhes abaixo, mas para conhecimento, os Unos também possuem pinos de I2C, PWM, ICSP e dentre outros, alguns adicionais de 5V e GND (terra) para periféricos.

ArduinoUno_R3_Pinouts

 

– Distribuição dos pinos no Uno

3.1 Pinos Digitais

Os pinos digitais funcionam como Input/Output (entrada e saída) e sua lógica é de High/Low (1 e 0) ou seja, cada vez que o um pino for configurado como Output e tiver valor alto (High), a tensão no pino será de 5V (com capacidade de 40mA) e no caso de Low, será de 0V. Ou seja, é possível ligar e desligar pequenos dispositivos através de cada pino, com limitação de 40 mA.

Nos casos em que são necessários mais de 40mA, é possível que o pino ligue/desligue uma segunda “chave” que deixa passar ou não uma tensão/corrente maior em outros dois terminais (exemplo: relés e opto-acopladores).

Para leitura de valores digitais (configurado como Input), é considerado valor lógico baixo (Low) quando está aproximadamente abaixo de 2,5V e valor alto, acima de 2,5V. Ou seja, posso ter um sensor que fornece 5V quando detecta um obstáculo (com nível lógico 1 ou  High) e que fornece 0V quando não detecta nada (com nível lógico 0 ou Low).

3.2 Pinos Analógicos

Os pinos analógicos conseguem ler/escrever valor entre 0V e 5V com resolução de 1024 unidades (10 bits), ou seja, consigo perceber/alterar o pino em passos de 4,9mV. Os pinos analógicos são amplamente utilizados para sensoriamento, onde a distância ou informação medida, é representada em valores de tensão e “traduzida” pelo Arduino na informação.

4. Shields

Uma parte importante de ser mencionada sobre o Arduino que deixei de fora da primeira parte são os Shields. Os Shields funcionam como upgrades para sua placa básica que encaixam perfeitamente em cima dos slots dos pinos, podendo serem acrescentados um acima do outro. Creio que é mais fácil mostrar algumas imagens.

bluetoothGSM Playground - stackable

– Shields Uno de Bluetooth (esquerda) e de GSM (direita).

stack-4nano_1r1

 

– ShieldsArduino Nano

O suporte dos Shields funcionam de forma similar a placa original, sempre há bibliotecas, tutoriais e exemplos para facilmente instalar e operar os upgrades. A maioria dos sites fornecem junto os arquivos no ato da compra, mas é possível encontrar também neste aqui: http://shieldlist.org/. Não é necessário programar em outro ambiente ou em dois lugares. Ao utilizar as bibliotecas, você programa as novas funções no próprio Arduino, da mesma forma como expliquei nos itens iniciais.

Dentre os shields mais úteis, posso citar o Protoshield (para prototipagem), Sensor Shield (facilita a instalação de muitos sensores), Motor Shield (para manipulação de motores),  Ethernet Shield (possibilita comunicação via Ethernet), dentre outros.

5. Exemplo

Como comentei, os exemplos são bem fáceis e existem diversos tutoriais na Internet. Deixo este vídeo abaixo que mostra como fazer um LED piscar.

6. Conclusões

Na primeira parte comentei sobre algumas informações básicas que espero ter complementado nesta segunda parte. Mas são apenas noções sobre a real capacidade do Arduino e também de suas limitações.

Para quem está começando,  sugiro que leiam bastante e sigam tutoriais que vão explicando função a função (ou exemplo a exemplo). Existem diversas vídeo-aulas e livros sobre o assunto.

books