MCO018703 2021 1 AULA10

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Bibliotecas e Shields

Assim como a IDE, que já vem com diversas funções pré-definidas, o Arduino possui outras bibliotecas para controle de servomotores, displays LCD, geração de áudio, recepção de sinais de sensores e outros dispositivos (como teclado PS/2), dentre muitas outras funções.

E quem pensa que essa extensibilidade toda se restringe ao software está muito enganado: o Arduino possui o que chamamos de shields, que são placas que se acoplam à placa original, agregando funcionalidades à mesma.

Existem shields dos mais variados tipos, para as mais diversas funções: Lista oficial.

Alguns servem como entrada, outros como saída, e ainda outros como entrada e saída.

Com os shields conseguimos, por exemplo, fazer o Arduino se comunicar numa rede Ethernet, ou ainda transmitir dados para qualquer dispositivo via Bluetooth, Wi-Fi ou Zigbee.

Existem shields com circuitos integrados prontos para controlarmos motores, sem que precisemos nos preocupar com complicações eletrônicas envolvidas, outros possuem leitor de cartão SD, acelerômetro, GPS e diversos outros sensores que podem gerar dados importantes para o software que está rodando no microcontrolador.


Fig007 MCO18703.jpg

Figura 1 - Arduíno com Shield acoplada.


Existem também outros shields mais elaborados, que são sistemas completos.

Fig008 MCO18703.png

Figura 2 - Shields são placas para acoplar ao Arduíno visando expandir suas funcionalidades.

Fig010 MCO18703.png

Figura 3 - Várias Shields permitem a sobreposição de outros Shiels.


Um deles, por exemplo, cria uma plataforma para desenvolvimento de jogos no Arduino: o Video Game Shield10, que possui uma saída RCA e duas entradas para controles Numchuck do Nintendo Wii.

Além do hardware, existe uma biblioteca para ser utilizada em conjunto, que já possui várias funções pré-programadas para fazermos desenhos na televisão e capturar os dados dos movimentos nos controles.

Bibliotecas

Uma biblioteca é um trecho de software que fornece funcionalidade específica a um programa, como por exemplo a capacidade de escrever em um display de LCD ou de controlar a posição de um servomotor. O uso de uma biblioteca simplifica o desenvolvimento de aplicações, pois o código da biblioteca já está pronto, e só precisa ser incorporado ao programa em desenvolvimento para que suas funções possam ser acessadas e utilizadas pelo desenvolvedor. Assim, podemos estender o uso do Arduino incorporando bibliotecas específicas durante o desenvolvimento de um sketch.

Na plataforma Arduino existem três tipos diferentes de bibliotecas de software disponíveis:

  • Core (biblioteca essencial);
  • Padrão;
  • Adicionais (de terceiros);

Algumas das bibliotecas necessitam de um hardware especial para serem utilizadas, muitas vezes na forma de 'Shields.

Biblioteca Core

A biblioteca essencial vem instalada na IDE do Arduino e é imprescindível para o desenvolvimento de programas, desde os mais simples (como piscar um LED) até projetos complexos, como realizar automação de uma residência (em conjunto com outras bibliotecas). Desta forma, a programação do Arduino fica muito simplificada, pois o programador não tem a necessidade de entender como o código da biblioteca funciona internamente, basta saber como usá-la.

Algumas funções comuns fornecidas pela biblioteca core são as funções digitalRead, digitalWrite, Serial.begin e analogRead, entre outras.

Bibliotecas Padrão

Note que o nome da biblioteca deve estar envolvido entre os caracteres < e >, finaliza com a extensão .h e você não deve usar o ponto-e-vírgula no final desta linha. Após a inclusão da biblioteca, você pode usar as funções que ela codifica em seu programa. Para saber quais são essas funções e como utilizá-las, você deve consultar a documentação específica da biblioteca.

As bibliotecas padrão do Arduino são
  • EEPROM – Usada para ler e gravar dados em uma memória EEPROM no Arduino. No Uno a EEPROM tem o tamanho de 1024 bytes e no Mega, de 4096 bytes.
  • Ethernet – Permite conectar o Arduino à Internet ou à rede local usando um shield Ethernet.
  • Firmata – Esta biblioteca permite a comunicação entre o Arduino e aplicações em um computador via protocolo de comunicação serial
  • GSM – Conectar a uma rede GSM/GPRS usando um shield GSM.
  • LiquidCrystal – Com essa biblioteca podemos controlar displays de cristal líquido (LCD).
  • SD – Biblioteca muito importante, usada para que seja possível esvrever e ler dados em cartões de memória SD/SDHC.
  • Servo – Controlar motores servo
  • SPI – Comunicação com dispositivos usando o barramento SPI (Serial Peripheral Interface)
  • SoftwareSerial – Permite a comunicação serial usando os pinos digitais da placa.
  • Stepper – Controlar motores de passo
  • TFT – Permite desenhar imagens e formas e escrever texto em uma tela TFT
  • WiFi – Permite conexão à rede local e Internet por meio de um shield WiFi.
  • Wire – Biblioteca que permite enviar e receber dados por meio de uma interface TWI/I2C (interface a dois fios) em uma rede de dispositivos ou sensores.


Bibliotecas de Terceiros (adicionais)

Algumas bibliotecas são disponibilizadas por desenvolvedores diversos que contribuem voluntariamente com software para a plataforma, e não são distribuídas por padrão com o IDE do Arduino. Para usá-las, você precisa baixá-las e então efetuar sua instalação por meio do IDE. Elas oferecem funções adicionais a bibliotecas existentes ou novas funcionalidades não presentes em nenhuma biblioteca padrão, permitindo estender o uso do Arduino de forma praticamente ilimitada. [1]

Shields

Shields são placas de circuito que podem ser conectadas ao Arduino, encaixando-se perfeitamente por cima dele, e expandindo suas capacidades. Estas placas podem conter, por exemplo: displays de LCD, sensores, módulos de comunicação ou relês. A capacidade de expansão possibilita uma infinidade de aplicações de maneira simples e rápida. E mesmo com a enorme gama de shields já disponíveis no mercado. A seguir vamos falar de algumas shields.

Arduino Ethernet Shield R3

O Arduino Ethernet Shield foi especificado para conectar o Arduino a uma rede local e é a maneira mais simples e barata de ligar o Arduino à internet. A versão atual do Arduino Ethernet Sheild oficial também contém um leitor de cartões micro-SD.

Fig050 MCO18703.png

Se você está interessado em shields de comunicação, outras alternativas são: o Arduino WiFi Shield que faz o mesmo que o Ethernet Shield mas em redes sem fio; o Arduino GSM Shield que se conecta a rede de telefonia celular; e o Bluetooth Low Energy (BLE) Shield for Arduino 2.0 que adiciona ao Arduino a capacidade de conversar com outros dispositivos Bluetooth como iPhones e iPads.


2.8″ TFT Touch Display Shield V2.0

Alguns shields permitem que o Arduino tenha uma tela, seja ela preto e branca, colorida, LCD ou e-Ink. Neste caso, o TFT Touch Display Shield V2.0 da Seed Studio adiciona uma tela LCD colorida de matriz ativa com resolução de 320×240 pixels que suporta até 65 mil cores. Além d isto este shield também conta com um sensor de toque resistivo, iluminação da tela e um leitor de micro-SD. Se você precisar de uma interface gráfica sensível ao toque, este shield é ideal para seu projeto.


Fig052 MCO18703.png


Mas existem várias outras alternativas para adicionar displays em seu projeto. Algumas mais baratas e outras mais caras. Algumas que considero bem legais são: o Adafruit LCD Shield com Display de Caracteres 16×2 que adicionam um display simples de usar e vários botões a seu Arduino e o Seed Studio E-Ink Display Shield que traz para o Arduino uma tela super econômica (em termos energéticos) igual as dos e-Readers com o Kindle.


Arduino Motor Shield

Embora muitas vezes o que fazemos como Arduino seja conectar sensores e apresentar informações através de displays e outras formas visuais como LEDs, ele também pode ser utilizado para controlar coisas do mundo físico através de motores dos mais diversos tipos. Você pode construir dispositivos que possuem atuadores mecânicos e até mesmo robôs. Para isto você precisa de adicionar ao Arduino a eletrônica necessária para ele poder controlar motores e fornecer a eles a energia necessária para funcionarem. Uma maneira simples de fazer isto é utilizar um shield para motores. Existem muitos shields que fazem isto e um deles é suportado oficialmente pelo projeto. O Arduino Motor Shield possúi a eletrônica necessária para comandar diversos tipos de motores e outros cargas indutivas como solenóides e relês. Ele permite controlar a velocidade e a direção dos motores de maneira independente e ainda medir o quanto de corrente cada um deles está consumindo.


Fig053 MCO18703.png


Alternativas ao motor shield oficial podem ser encontradas em lojas como a Adafruit e a SparkFun. Dois bons examplos são o Adafruit Motor/Stepper/Servo Shield for Arduino V2 e o Adafruit 16-Channel 12-bit PWM/Servo Shield.


Wave Shield for Arduino

Uma das coisas complicadas de se fazer com o Arduino e outros projetos eletrônicos é fazê-los reproduzir som de qualidade. Para isto a Adafruit desenvolveu um shield que permite o Arduino a reproduzir sons a partir de arquivos no fomato .wav (sim, aquele do Windows) com frequências de sampleamento de até 22KHz com 12 bits de resolução. O Adafruit Wave Shield for Arduino contém um conversor DAC (conversor digital-analógico), filtros e amplificadores de áudio de boa qualidade. O shield armazena os arquivos em um cartão SD e se conecta com seus alto-falantes ou fones de ouvido através de uma conexão P2 padrão.


Fig054 MCO18703.png

Arduino Proto Shield

Os Proto Shields, como são mais conhecidos, são os melhores amigos de quem está desenvolvendo sua própria placa de circuito no Arduino. Quem deseja funções específicas ou precisa atender requerimentos especiais tem nestes shields grandes companheiros de projeto.


Fig055 MCO18703.png

Referências

[1] http://www.bosontreinamentos.com.br/eletronica/arduino/arduino-o-que-sao-as-bibliotecas/

[2] http://blog.fazedores.com/conheca-os-shields-e-incremente-seu-arduino-com-eles/

[3] https://produto.mercadolivre.com.br/MLB-834849967-motor-shield-l293d-driver-ponte-h-para-arduino-_JM

[4] https://www.robocore.net/loja/produtos/arduino-shield-prototyping.html?gclid=Cj0KCQjw08XeBRC0ARIsAP_gaQDdH4fUjTx_vmMTRiaMUougeCJVlrCCBlPORkY8z8XTxlXSMlJonzQaAiqFEALw_wcB

[5] https://www.google.com/search?client=firefox-b&biw=933&bih=459&tbm=shop&ei=UB3SW6KfNIOVwgSur7SYAg&q=Arduino+Ethernet+Shield+R3&oq=Arduino+Ethernet+Shield+R3&gs_l=psy-ab.12...3121.3121.0.4339.1.1.0.0.0.0.92.92.1.1.0....0...1c.2.64.psy-ab..0.0.0....0.bYJafsCiLsQ#spd=14017512982586178818




Icone voltar.png Icone menu.png Icone prox.png