Páginas

Arduino







Texto retirado do meu TCC.

MCRoberts(2011, p.20) cita que desde que o projeto do Arduino teve inicio em 2005, mais de 150.000 placas Arduino foram vendidas em todo mundo. Somando com as placas-clones não oficiais o numero supera 500.000 placas Arduino e suas variantes vendidas em todo o mundo, pois se trata de um projeto de fonte aberta.


De acordo com MCRoberts(2011, p.22-23) em termos práticos o Arduino é um mini computador que podemos programar para processar entradas e saídas  entre os dispositivos e os componentes externos conectados a ele (Figura 1, p.12) , é o que chamamos de plataforma de computação física ou embarcada, ou seja, um sistema que pode interagir com seu ambiente por meio de hardware e software.

Com ele podemos desenvolver objetos interativos e independentes, ou podemos conecta-lo a um computador, a uma rede, ou até mesmo a internet para recuperar e enviar dados do Arduino e atuar sobre eles. Em outras palavras, ele pode enviar um conjunto de dados recebidos de alguns sensores para um site, podendo ser exibidos em forma de gráficos em tempo real.

Em busca de conhecimento sobre Arduino encontrei na internet um software chamado S4A, (Scratch for Arduino), onde instalamos um firmware no Arduino e através de um cabo USB o software interage com a placa Arduino e um computador. Montei um jogo simples que lê a temperatura e a luminosidade através de dois sensores conectados à placa Arduino. O sensor de luminosidade é o acelerador do “Arduininho” (Figura 2). No ambiente do jogo conforme a luminosidade aumenta ou diminui a velocidade do personagem varia em direção ao ponteiro do mouse, e mostra a temperatura em um balão, foi colocado também um botão conectado ao Arduino que mostra um óculos no cacto quando pressionado e imite um som através de um autofalante conectado também ao Arduino.  Para baixar o software onde foi feito o jogo entre no site http://s4a.cat/.

Acho de grande valia ter citado este software, pois é de fácil utilização e interação com o Arduino, conduzindo as pessoas para o mundo da logica de programação. Podendo até ser utilizado como ferramenta de aprendizado.

Figura 2 - Jogo Arduininho

Continuando o assunto, segundo MCRoberts(2011, p.23) o Arduino pode ser conectado vários tipos de dispositivos: LEDS, botões , motores sensores de temperatura, pressão, distancia, receptores GPS, módulos ethernet, bluetooth e uma infinidade de dispositivos que emita dados e possa ser controlado.

O que fez do Arduino um sucesso é a sua facilidade de uso em conjunto com seus Shields, que são placas de circuito impressas normalmente fixadas no topo do aparelho através de uma conexão alimentada por pinos-conectores. São expansões que disponibilizam várias funções específicas, desde a manipulação de motores até sistemas de rede sem fio.

Para utilização destes Shields, além de conectarmos ao Arduino temos que incluir a biblioteca do modulo no sketch na IDE do Arduino. Veja abaixo alguns Shields e o um modulo Bluetooth e suas funções retirados do site especializado em computação embarcada Arduino, www.robocore.net:



Figura 3 - Ethernet Shield
Figura 4 - LCD + Botões RC Shield

Figura 5 - Módulo Bluetooth

O Arduino Ethernet Shield (Figura 3) permite que uma placa Arduino conecte-se a internet. É baseado no chip ethernet da Wiznet W5100, fornecendo um IP utilizando os protocolos de rede TCP e UDP. Este shield suporta até quatro comunicações de socket simultâneas. Use a biblioteca Ethernet para escrever sketches que se conectarão a internet usando este shield.

Vemos também o shield LCD (Figura 4) muito popular para Arduino e semelhantes. Ele pode ser ligado diretamente à placa Arduino, sem necessidade de soldas ou fios. No shield se encontra um display de LCD 16x2 HD44780 Branco no Azul. Juntamente a isto existem 5 botões ligados às entradas analógicas e 1 botão de reset.

Temos uma variedade imensa de shilds oficiais ou não para os mais variados projetos utilizando o Arduino, para saber mais basta pesquisar na internet. Vamos finalizar o assunto sobre Shields, pois só este assunto seria suficiente para um novo TCC.

Outro dispositivo que podemos utilizar em conjunto com o Arduino são os módulos, será descrito o modulo que será utilizado neste projeto para a comunicação entre o Arduino e o Smartfone Android. Este módulo (Figura 5) com conexão wireless Bluetooth trabalha com comunicação serial Rx/Tx. Qualquer comunicação com taxa entre 2400 e 115200bps pode ser usada para enviar dados de um dispositivo a outro.
A placa pode ser alimentada de 3,3V a 6V, o que torna fácil utilizar qualquer tipo de bateria ou pilha, ou mesmo um Arduino.


Tomando como referencia e aproveitando as ilustrações do site http://robotizando.com.br/curso_arduino_intro_pg1.php, daremos uma explicação sobre o hardware do Arduino, ele é muito simples e eficiente. Acompanhe no esquema abaixo a arquitetura e funcionamento do Arduino UNO.

Figura 6 - Arquitetura de Hardware


 A Fonte de Alimentação Recebe energia externa, filtra e converte a entrada em duas tensões reguladas e filtradas. A função do núcleo CPU, que é um computador minúsculo, mas poderoso responsável por dar vida à placa vem completa, com diversos "dispositivos" embutidos dentro do chip. Contamos também com pinos de entradas e saídas alguns deles possuem hardware embutido, para funções especiais, para o nosso Arduino funcionar, criamos programas e carregamos dentro da CPU com nossas instruções de funcionamento para a placa, estes tipos de software chamamos de Firmware.


Figura 7 – Bloco de Funções da Placa

Vamos detalhar agora a função de cada bloco na Figura 7, tomando como base um manual(http://www.inf.ufes.br/~erus/arquivos/ERUS_minicurso%20arduino.pdf) de Arduino básico da equipe ERUS, Equipe de Robótica da Universidade Federal do Espírito Santo Tetracampeã latino americana de robótica na categoria IEEE SEK nos anos 2008 a 2011, como mostra no site http://www.inf.ufes.br/~erus/conquistas.php, e o confrontando as informações com o site oficial do Arduino http://arduino.cc.

1.1.2        Fonte de Alimentação Arduino UNO

Responsável pela alimentação de energia pode variar a tensão de entrada (segundo o site: http://arduino.cc/en/Main/ArduinoBoardUno) recomendada 7 a 12 Volts e limite de 6 a 20 Volts, onde é filtrada e regulada, gerando tensões de saída de 3,3 e 5 Volts para alimentação da CPU e demais circuitos.

1.1.3        CPU

CPU (Central Processing Unit) ou unidade central de processamento é um micro controlador responsável por processar os dados na placa Arduino. Um computador completo que possui memória RAM, memoria do programa (ROM), ALU (Arithmetic Logic Unit) circuito digital que realiza operações logicas e aritméticas e dispositivos de entrada e saída. Tudo em um chip só fabricados pela empresa ATMEL, os chips utilizados são os da linha ATMEGA, os mais utilizados são: ATMega8, ATMega162 e ATMega328p, eles diferem na quantidade de memoria ROM, e nos módulos de entrada e saídas disponíveis.

Figura 8 - Micro Controlador ATMEGA8

O chip da figura 8 possui 28 pinos, sendo 14 de cada lado é através destes pinos que podemos acessar as funções da CPU, enviar dados e controlar dispositivos externos. Este 28 pinos são divididos da seguinte maneira:
·         14 pinos digitais de entrada ou saída (programáveis)
·         6 pinos de entrada analógica ou entrada/saída digital (programáveis)
·         5 pinos de alimentação (gnd, 5V, ref analógica)
·         1 pino de reset
·         2 pinos para conectar o cristal oscilador
Os dois itens da lista são os pinos que utilizamos na programação, é através destes pinos que o Arduino é acoplado a dispositivos externos. Os dois primeiros pinos 0 e 1 é utilizado pelo modulo de comunicação serial USART, este modulo permite a  comunicação entre o computador e o chip, podemos conectar também um modulo bluetooth por exemplo, que utilizaremos no projeto.

Os pinos são disponibilizados através de conectores femeas, onde encaixamos conectores para construir circuito externo a placa do Arduino, podendo ser utilizados pelo programador como entrada ou saída, digital ou analógico dependendo do pino utilizado. Veja na tabela Abaixo as características de uma placa Arduino UNO.

Microcontrolador
ATmega328P
Voltagem operacional
5V
Voltagem de alimentação (recomendada)
7-12V
Voltagem de alimentação (limites)
6-20V
Pinos I/O digitais
14 (dos quais 6 podem ser saídas PWM)
Pinos de entrada analógica
6
Corrente contínua por pino I/O
40 mA
Corrente contínua para o pino 3.3V
50 mA
Memória flash
32 KB (2KB usados para o bootloader)
SRAM
2 KB
EEPROM
1 KB
Velocidade de clock
16 MHz
Tabela 1 - Características Arduino Uno

1.1.4        Entradas Digitais

No Arduino uno podemos utilizar até 20 pinos como entradas 14, já vêm como digitais e podemos ainda utilizar 6 entradas analógicas como digitais. O pino trabalha apenas em dois estados Alto (5V) ou Baixo (0V), configurado pelo programador como entrada (IMPUT).  Para saber a quantidade de tensão no pino usamos os pinos analógicos.

1.1.5        Entradas Analógicas

Como dito anteriormente, para saber a voltagem de um pino usamos as entradas analógicas, é nestes pinos que conectamos sensores, para obtermos algum tipo de grandeza física, como luminosidade, temperatura, umidade e outros.

1.1.6        Saídas Digitais

Podemos utilizar a mesma quantidade de pinos de saída que utilizamos como entrada a diferença e que enviamos um sinal ao invés de recebê-lo, podemos utilizar então este modo (OUTPUT) para acender um led, ligar um motor ou um relé e muitas outras coisas, podendo através de um pino controlar outro bloco de pinos.

1.1.7        Pinos com Funções especiais

No Arduino temos alguns pinos, que configurados adequadamente pelo programador podemos utiliza-los de maneira especiais. Veja na tabela abaixo quem são eles e para que servem:
Nome
Pinos
Função
Exemplo de utilização
PWM
3,5,6,9,10,11
Gerar tensões controladas pelo programa.
Velocidade de motores.
Porta Serial USART
0 (RX),1 (TX)
Transmitir e receber dados no formato serial assíncrono.
Conectar modulo Bluetooth para receber e enviar dados.
Comparador Analógico
6,7
comparar duas tensões externas
Desligar o carregador de bateria
Interrupção Externa
2,3
avisar o software sobre alguma mudança em seu estado
Acionamento de um led através de um botão.
Porta SPI
Pinos 10 (SS), 11 (MOSI), 12 (MISO) e 13 (SCK).
É um padrão de comunicação serial Síncrono, bem mais rápido que a USART
Conectamos cartões de memória (SD).

1.1.8        Firmware

No caso do Arduino é o software que criamos no IDE e depois fazemos o upload para dentro da memória do micro controlador mais um software que fica que fica gravado memoria ROM (Read Only Memory).

1.1.9        Software

Segundo o site (Arduino.cc) o software do Arduino é criado em uma IDE (Integrated Development Environment) open source, é um ambiente de desenvolvimento integrado feito em Java e um compilador GCC (C e C++), não é necessário dizer que a maquina virtual Java deve estar instalada no seu sistema.

Antes de iniciarmos a programação temos que escolher a placa do Arduino utilizada e a porta serial, exemplo no Windows COM3, se a porta estiver habilitada e placa conectada ao computador na porta USB através de um cabo. Podemos utilizar o botão UpLoad (figura 9) e enviar o software criado na IDE e compilado para a placa Arduino  se quisermos podemos compilar e verificar erros clicando no botão compila e verifica (figura 9).

A programação do Arduino é simples, podemos dividi-la em duas partes a iniciação do programa , que esta dentro do bloco void setup () { conteúdo aqui } e o bloco onde o programa roda em forma de loop como se fosse um comando (while) até ser desligado ou quando apertamos o botão ou acionamos reset da placa. O bloco de loop é escrito assim void loop () {conteúdo aqui}, podemos utilizar funções nativas ou de bibliotecas do Arduino e bibliotecas, para isso basta colocar no inicio do programa, como fazemos em C, a linha #include nomedabiblioteca.extensção. Exemplo #include sd.h, biblioteca para utilização de módulos de cartão de memoria.

 O código que escrevemos na IDE do Arduino é chamado de sketch e segundo o site oficial do Arduino pode ser dividido em três partes: estrutura, valores e funções. Veja na tabela abaixo algumas opções básicas que usamos no código.

Estruturas
Variaveis
Funções
exemplo função
setup()
HIGH | LOW
pinMode()
pinMode(13,OUTPUT)
loop()
IMPUT | OUTPUT
digitalWrite()
digitalWrite(10,HIGH)
if
void()
digitalRead()
int leitor = digitalRead()
if...else
boolean
analogWrite()
analogWrite(pin,valor/4)
for
int
analogRead()
analogRead(analogPin)
switch case
long
tone()
tone(1000) em mili seg
while
float
delay()
delay(300) em mili seg

Para saber mais sobre como criar códigos visite o site oficial http://arduino.cc/en/Reference/HomePage.





Figura 9 - IDE Arduino

Veja um  exemplo de um programa que já vem com a IDE do Arduino, Blink.




Figura 10 - Programa Blink

Nenhum comentário:

Postar um comentário