Arduino – Estudo pessoal

Neste estudo, o foco está voltado às placas-mãe dos modelos NANO, UNO e MEGA. Existam outros modelos mais recentes como o ESP8266 e ESP32, bem mais potentes e com mais recursos – a exemplo de conter conexão WIFI na própria placa -, o que dispensa o emprego de Shield desta função.

Shield ? Calma. Já iremos falar sobre este e outros jargões.

Afinal, o que é Arduino ?

Arduino é uma plataforma eletrônica integrada de prototipagem e desenvolvimento composta por duas partes:

  • hardware – parte física – módulo dotado de microcontrolador de baixo custo montado na placa. A placa contém conectores do tipo fêmea – o que facilita a ligação dos terminais (em inglês main board) ou placa principal. Também conta com uma eletrônica de apoio, responsável por gerar a tensão de 3,3 volts e alguns poucos componentes que fazem o chaveamento da tensão por seleção de maior valor. Em hipótese alguma exceda a tensão de 12 volts no conector de entrada de tensão direta, sob risco de queima instantânea de sua placa! O ideal, para a alimentação por este conector, é que a tensão esteja entre 7,5 a 12 volts.
  • software –  parte lógica – interface completa de programação para criação de programas – denominada SDK (acrônimo em inglês, Software development kit) ou Kit para desenvolvimento de software .

A este conjunto físico e lógico conjugados em um único lugar damos o nome de IDE (acrônimo em inglês, Integrated Development Environment) ou Ambiente de Desenvolvimento Integrado.

Bem-vindo ao meu estudo pessoal sobre Arduino e suas possibilidades.

A maior vantagem em trabalhar com uma placa eletrônica pronta é a economia de tempo na montagem, testes e validação. Logo, o desenvolvimento irá consumir 10% do tempo em Eletrônica e 90% em programação da Sketch.

Sketch ? Sim, mais um jargão, cuja explicação vem logo a seguir.

Características do Arduino

  1. Código aberto (Open source)
  2. Muitas comunidades, fóruns e colaboradores
  3. Curva de aprendizagem pequena
  4. Barato
  5. Fácil de encontrar
  6. Aceita trabalhar com bibliotecas de terceiros

Computadores x Sistemas Embarcados

Antigamente, o programa criado nos computadores continha três etapas :

  1. geração do código-fonte através de um editor de texto;
  2. geração do código-objeto pela compilação;
  3. criação do programa executável pelo linker. E tudo isso era feito separadamente!

A evolução trouxe o conceito das SDK, facilitando enormemente todo o trabalho dos desenvolvedores de software – tudo junto, no mesmo lugar.

Com o surgimento de sistemas embarcados – que dispensam sistema operacional e outros recursos computacionais e físicos -, apenas um programa é carregado para a memória do microcontrolador, que executa uma tarefa específica. Este é o caso do Arduino.

Ao usar a SDK do IDE, você estrutura todo o programa, sem se preocupar com etapas de edição, compilação e linker, porque o SDK “esconde” essas etapas, e automatiza o processo de geração do executável. O sketch é o programa pronto e executável, que você transfere (em inglês, upload) pela própria IDE.

Conexão entre PC e Arduino

Conexão entre PC e Arduino

Aplicações

O nascimento da plataforma adveio juntamente ao conceito de IoT (em inglês, Internet of Things) ou Internet das coisas, assunto que pode ser abordado aqui.

“O conceito é, em certa medida, fruto do trabalho desenvolvido pelo Laboratório de Auto-ID do Instituto de Tecnologia de Massachusetts (MIT), sobre o uso da identificação por radiofrequência (RFID) e da rede de sensores sem fio (RSSF). O objetivo do trabalho era, desde o início, criar um sistema global de registro de bens usando um sistema de numeração único, o código eletrônico de produto.” Fonte : Wikipedia : IoT

Outras aplicações seriam:  Sistemas supervisórios (SCADA), Interfaceamento, Robótica, Domótica, Automação, Controle, Instrumentação, Sensoriamento Remoto, Telemetria, CNC, loggers e até jogos. Ficou curioso(a) com estas aplicações ? Dê um Google nas sentenças.

Placas-mãe – Hardware em estudo

Arduino Nano

Arduino Nano – Clique sobre a ilustração para visualizar melhor

Arduino UNO

Arduino UNO – Clique sobre a ilustração para visualizar melhor

Arduino MEGA

Arduino MEGA – Clique sobre a ilustração para visualizar melhor

Como a placa acima contém muita informação, a debaixo é mais simples.

Arduino MEGA

Arduino MEGA – Clique sobre a ilustração para visualizar melhor

Você pode comparar cada uma das placas em questão neste link.

Há uma entrada em todas as placas do Arduino denominada Vin, que serve para aplicar diretamente a alimentação à placa através desta entrada e o Gnd.

Placas complementares – Shields

São placas prontas e que encaixam-se perfeitamente sobre a placa-mãe, o que dispensa conexões extras. Alguns modelos são:

GSM / GPRS

GSM / GPRS

GPS

GPS

Ethernet

Ethernet

Shield GSM montado sobre Arduino

Shield GSM montado sobre Arduino

Não há como exemplificar todos os modelos de shields disponíveis no mercado. O que pode ser feito é pesquisá-los desta forma.

Placas complementares – Modules

Também são placas prontas, que só encaixam-se à placa-mãe mediante conexões extras. Alguns modelos são:

nRF24L01 - Transceptor

nRF24L01 – Transceptor – Arquivo pessoal

nRF24L01 - Transceptor - ligação

nRF24L01 – Transceptor – ligação – Arquivo pessoal

nRF24L01 - Transceptor - Esquema

nRF24L01 – Transceptor – Esquema

Sensor de fumaça

Sensor de fumaça

Coleção de sensores

Coleção de sensores

Coleção de sensores II

Coleção de sensores II

No entanto, nada impede que uma placa seja idealizada para a conexão dos modules, com características de uma shield.

Há vários modules disponíveis no mercado, e conhecer todos é uma tarefa difícil. O que pode ser feito é pesquisá-los desta forma.

Placa universal

Nesta modalidade, o desenvolvedor precisa ter conhecimentos mínimos de componentes eletrônicos e soldagem desses componentes, que são do tipo through-hole. A ideia é que o projetista desenvolva seu próprio hardware. Aqui neste site, há uma página com técnicas básicas para soldagem, fruto de outras páginas que foram garimpadas e organizadas, cujo acesso está disponível neste link.

Placa universal

Placa universal

Placa montada

Placa Montada - arquivo pessoal

Placa Montada – arquivo pessoal

Esquemático - arquivo pessoal

Esquemático – arquivo pessoal

Placa - arquivo pessoal

Placa – arquivo pessoal

A título de informação, a placa acima foi desenvolvida usando a plataforma EAGLE, disponível neste link. Em última instância, o leitor pode baixar a versão gratuita 7.5 – meu uso – neste link.

Protoboards

Este é o último processo pelo qual devemos optar, pois temos um inimigo invisível: o mal contato, embora seja muito útil para a prova rápida de conceito e montagens com poucos componentes. Para quem não sabe o que é uma montagem em protoboard, neste link há um vídeo autoexplicativo.

Semáforo

Semáforo – Fonte FelipeFlop

Assista neste link uma montagem mais complexa empregando um Arduino Nano – Arquivo pessoal.

O Hardware da placa-mãe de um Arduino Uno R3

Se você gosta de escovar bit de forma detalhada, como eu, este link irá aprofundá-lo. Você também pode acessar o datasheet da placa original neste link.

Processing – Uma linguagem de programação para você chamar de sua

Processing é uma linguagem de programação gratuita e de código aberto construída para artes eletrônicas e projetos visuais. Tem como principal objetivo ensinar noções básicas de programação de computador em um contexto visual. O projeto foi iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computação do MIT Media Lab.

O IDE da Processing inclui um sketchbook, uma alternativa para organizar projetos sem adotar o padrão utilizado na maioria das IDEs. Os sketches (programas) criados são uma subclasse do Java Papplet, classe que implementa a maioria das funcionalidades da Processing. Ao compilar todo o código do sketch é traduzido para Java.

A Internet está recheada de informação relativa a linguagem de programação Processing e meu objetivo aqui é disseminar a sua existência, sem entretanto aprofundar. A definição que coloquei acima veio deste link; consequentemente, todo o crédito vai para os autores dos slides.

Desenvolvimento – codificação e programação

Esta é a chave para colocar o Arduino para trabalhar, porque o microcontrolador embarcado na placa-mãe não sabe o que fazer. Neste link está a base do que você precisará saber.

Fritzing – Simulador

Imagine uma IDE, a ponto da própria placa-mãe, shields, modules e componentes estarem disponíveis para as etapas de um projeto ou validação de conceito. Esta é a finalidade do Fritzing, um ambiente totalmente virtual, aonde o projetista cria seu sketch; compila e realiza o upload para uma placa-mãe virtual, podendo ainda ligar periféricos nos pinos de acesso.

Claro que há outros tão bons quanto; mas, minha preferência recai sobre o Fritzing, disponível neste link.

Exercícios de programação à fixação dos conceitos

Daqui em diante, há vários exemplos prontos para praticar, indo por este link.

Projetos de Eletrônica Especializada

Várias montagens neste link.

Para saber mais …

Acesse este link.

Jargões vistos até agora e suas definições :

Linker – Etapa final da programação em que o desenvolvedor adicionava as bibliotecas através do último autoexecutável.

Shield – placas prontas que encaixam-se perfeitamente sobre a placa-mãe

Sketch – programa pronto e executável, que você transfere (em inglês, upload) pela própria IDE

Sketchbook – O mesmo que sketch, diferenciado apenas porque é criado no Processing

SDKSoftware development kit – Kit para desenvolvimento de software

IDEIntegrated Development Environment – Ambiente de Desenvolvimento Integrado

IoTInternet of Things ou Internet das coisas

<Voltar à página inicial>

Comentários encerrados.