Arduino é uma plataforma de prototipagem eletrônica de código aberto que permite a criação de dispositivos eletrônicos interativos.
Características
Ele é composto por uma placa de circuito impresso que contém um microcontrolador, juntamente com componentes adicionais, como entradas e saídas digitais e analógicas, que podem ser facilmente programados usando uma linguagem de programação baseada em C/C++.
O Arduino é projetado para ser uma ferramenta acessível e fácil de usar para criadores, estudantes e profissionais de todas as habilidades e níveis de experiência. Ele permite que os usuários criem projetos que interagem com o mundo físico ao seu redor, como sensores, luzes, motores, telas e outros dispositivos, tornando possível construir tudo, desde robôs a instalações artísticas interativas.
Como uma plataforma de código aberto, o Arduino também é altamente personalizável e flexível, permitindo que os usuários adaptem o hardware e o software para atender às suas necessidades específicas. Isso significa que é possível criar projetos personalizados, compartilhar suas criações com outros usuários e contribuir para a comunidade de desenvolvedores de Arduino em todo o mundo.
Histórico
O Arduino tem uma história de evolução contínua desde o seu lançamento em 2005. Aqui está uma visão geral das principais versões do Arduino e seus recursos:
- Arduino 2005: Foi a primeira versão do Arduino, desenvolvida por Massimo Banzi e David Cuartielles em 2005. Essa versão inicial era baseada no microcontrolador ATmega8 e possuía uma interface serial para programação.
- Arduino NG 2005: Em 2005, a equipe do Arduino lançou o Arduino NG (Next Generation), que incluía uma nova porta USB para programação e uma interface de alimentação simplificada.
- Arduino Diecimila 2007: Em 2007, foi lançada a placa Arduino Diecimila, que apresentava um novo regulador de tensão e um LED de status.
- Arduino Duemilanove 2009: Em 2009, foi lançada a placa Arduino Duemilanove, que apresentava um novo regulador de tensão e um botão de reset.
- Arduino Uno 2010: Em 2010, foi lançada a placa Arduino Uno, que apresentava um novo microcontrolador ATmega328P, um novo circuito de reset e uma porta USB mais robusta.
- Arduino Leonardo 2012: Em 2012, foi lançada a placa Arduino Leonardo, que apresentava um microcontrolador ATmega32U4 com suporte a USB nativo, tornando possível a comunicação com o computador sem a necessidade de um chip USB externo.
- Arduino Due 2012: Em 2012, foi lançada a placa Arduino Due, que apresentava um microcontrolador ARM Cortex-M3 de 32 bits com maior poder de processamento e recursos de memória.
- Arduino Zero 2014: Em 2014, foi lançada a placa Arduino Zero, que apresentava um microcontrolador ARM Cortex-M0+ de 32 bits, com recursos de memória e velocidade de clock aprimorados.
- Arduino MKR1000 2016: Em 2016, foi lançada a placa Arduino MKR1000, que apresentava conectividade Wi-Fi integrada e recursos avançados de segurança.
- Arduino Nano 2018: Em 2018, foi lançada a placa Arduino Nano, que apresentava um formato menor e mais compacto, tornando-a ideal para projetos com espaço limitado.
Linha do tempo do Arduino, fonte arduino.cc
Essas são apenas algumas das principais versões do Arduino ao longo dos anos. Desde o seu lançamento, o Arduino tem evoluído constantemente, com novos recursos e funcionalidades sendo adicionados regularmente, o que o torna uma plataforma de prototipagem eletrônica altamente versátil e flexível.
Funcionalidades
Uma das grandes vantagens do Arduino é a sua capacidade de expansão e flexibilidade. É possível conectar uma grande variedade de sensores, módulos e shields à placa principal, permitindo que os usuários adicionem novas funcionalidades ao seu projeto sem precisar trocar a placa.
Os shields, por exemplo, são placas de expansão que se encaixam diretamente na placa principal do Arduino e adicionam novas funcionalidades, como conectividade Wi-Fi, Ethernet, Bluetooth, GPS, entre outras. Além disso, o Arduino também suporta a comunicação com outros dispositivos e sistemas, permitindo que ele se integre facilmente com outros dispositivos eletrônicos e softwares.
Uma vez programado, o Arduino pode ser utilizado sem a necessidade de um computador, tornando-o uma solução autônoma para muitas aplicações. Tudo o que é necessário é uma fonte de alimentação adequada para a placa, e ela pode executar o programa instalado em loop sem parar. Isso torna o Arduino uma opção muito versátil para uma ampla gama de projetos eletrônicos e de automação.
Open source
O Arduino foi desenvolvido com base no conceito open-source, que permite que o projeto da placa e o firmware sejam utilizados livremente por outros desenvolvedores e fabricantes. Isso significa que qualquer pessoa pode usar e modificar o projeto do Arduino, contribuir com novos recursos e funcionalidades, e até mesmo criar variações e versões personalizadas da placa.
Essa filosofia de código aberto é fundamental para o movimento maker, que valoriza a criatividade, a experimentação e a colaboração. Com o Arduino, os makers podem facilmente criar projetos eletrônicos personalizados, compartilhar suas ideias com a comunidade e se inspirar em outros projetos existentes. Isso incentiva a inovação e promove a criação de soluções criativas para os mais diversos problemas e necessidades.
Além disso, o modelo de desenvolvimento de código aberto também tem tido um impacto significativo na indústria como um todo. Empresas e fabricantes agora têm a oportunidade de colaborar e criar soluções inovadoras juntas, e muitos produtos e tecnologias são desenvolvidos com base em projetos e tecnologias de código aberto. Isso está levando a uma nova era de inovação e progresso tecnológico, que é impulsionada pela comunidade maker e pelo conceito de código aberto.
Componentes
Anatomia do Arduino, fonte arduino.cc
O Arduino é uma placa eletrônica que contém vários componentes para permitir que ele funcione como uma plataforma de prototipagem eletrônica. Aqui estão alguns dos principais componentes do Arduino:
- Microcontrolador: O componente principal do Arduino é o microcontrolador, que é responsável por executar o programa carregado na placa. Os modelos mais comuns de Arduino utilizam microcontroladores da família AVR da Atmel, como o ATmega328P.
- Oscilador: O oscilador é um componente que fornece um sinal de clock estável para o microcontrolador, permitindo que ele execute as instruções do programa em um ritmo constante.
- Portas de entrada/saída (E/S ou I/O): As portas de entrada e saída são usadas para conectar dispositivos externos ao Arduino, como sensores, LEDs, motores, entre outros. A maioria das placas Arduino possui várias portas de E/S digitais, que podem ser configuradas como entrada ou saída, bem como algumas portas de E/S analógicas.
- Conectores: O Arduino possui vários conectores para permitir que ele seja conectado a outros dispositivos. Isso inclui um conector USB para programação e alimentação, conectores de alimentação para entrada de energia, conectores para portas de entrada/saída, entre outros.
- Regulador de tensão: O regulador de tensão é um componente que permite que o Arduino seja alimentado por uma variedade de fontes de energia, como baterias ou adaptadores AC/DC. Ele é responsável por regular a tensão de entrada para uma tensão constante que o microcontrolador possa usar.
- Botão de reset: O botão de reset permite que o programa seja reiniciado manualmente, o que pode ser útil para testar o código em situações específicas.
- LEDs: O Arduino possui alguns LEDs incorporados para indicar o status da placa. Por exemplo, a maioria das placas possui um LED indicador de energia e um LED indicador de atividade do programa.
- Capacitores: Os capacitores são usados para estabilizar a tensão no circuito e proteger o microcontrolador contra ruído elétrico.
Esses são apenas alguns dos principais componentes do Arduino. Dependendo do modelo da placa, outros componentes, como resistores, cristais, transistores, entre outros, podem estar presentes para permitir que o Arduino seja usado em uma ampla variedade de projetos eletrônicos.
Microcontrolador
O microcontrolador é o componente principal do Arduino e é o responsável por executar o programa que foi carregado na placa.
- Ele é responsável por interpretar os comandos contidos no código do programa e por controlar as portas de entrada e saída, que são chamadas de E/S (Entrada/Saída) ou I/O (Input/Output).
- As portas de entrada permitem que o microcontrolador receba sinais de sensores, botões ou outros dispositivos, enquanto as portas de saída permitem que o microcontrolador envie sinais para ativar ou desativar dispositivos externos, como LEDs, motores, relés, entre outros.
- O microcontrolador é programável, o que significa que podemos escrever e carregar diferentes programas na placa para realizar diferentes tarefas, permitindo que o Arduino seja usado em uma variedade de projetos eletrônicos.
Portas de entrada e saída
As placas Arduino têm vários tipos de portas de entrada/saída (E/S ou I/O), cada uma com sua própria finalidade. A seguir estão os principais tipos de portas e suas utilizações:
- Portas digitais: As portas digitais podem ser usadas para enviar ou receber sinais digitais, que têm apenas dois estados (ligado ou desligado). Cada porta digital pode ser configurada como entrada ou saída. Elas são utilizadas principalmente para controlar dispositivos digitais, como LEDs, relés, motores, botões e sensores.
- Portas analógicas: As portas analógicas permitem que o Arduino leia sinais analógicos, que podem ter um número infinito de valores entre zero e o máximo permitido. Isso é útil para medir coisas como temperatura, luz ou som. As placas Arduino mais simples têm apenas algumas portas analógicas, enquanto as mais avançadas podem ter várias.
- Portas PWM (Modulação por Largura de Pulso): As portas PWM são uma forma de simular uma saída analógica usando uma saída digital. Elas permitem que o Arduino controle a intensidade de um sinal digital pulsando rapidamente a saída. Isso é útil para controlar a velocidade de um motor, por exemplo, ou para criar efeitos de luz com LEDs.
- Portas de comunicação serial: As portas de comunicação serial permitem que o Arduino se comunique com outros dispositivos usando um protocolo de comunicação serial. Elas são usadas principalmente para se comunicar com o computador ou outros microcontroladores.
- Porta I2C: A porta I2C é uma forma de comunicação serial que permite que o Arduino se comunique com vários dispositivos diferentes usando apenas duas portas. Isso é útil para conectar vários sensores ou dispositivos ao Arduino sem precisar de muitas portas.
- Porta SPI: A porta SPI é outra forma de comunicação serial que é usada principalmente para se comunicar com dispositivos como displays LCD ou cartões de memória SD. Ela usa quatro portas para se comunicar com o dispositivo externo.
Memória
O Arduino “padrão” normalmente possui duas memórias: SRAM e memória Flash:
- A SRAM (Static Random-Access Memory) é usada para, por exemplo, armazenar o valor de uma variável (como o estado de um booleano). Quando desligada, essa memória é redefinida.
- A memória Flash é usada principalmente para armazenar o programa principal ou as instruções para o microcontrolador. Esta memória não é apagada ao desligar, de forma que as instruções para o microcontrolador sejam executadas assim que a placa for energizada.
- Quanta memória está disponível em um Arduino varia de placa para placa. Por exemplo, o Arduino UNO possui um flash de 32kB / 2kB SRAM, enquanto um Nano 33 IoT possui um flash de 256kB / 32kB SRAM. Você encontrará essas informações em cada uma das páginas de documentação do produto, que estão disponíveis em Arduino Hardware Documentation.
- Além da SRAM e memória Flash, muitas placas Arduino também possuem uma memória EEPROM (Electrically-Erasable Programmable Read-Only Memory), que pode ser usada para armazenar dados persistentes que precisam ser mantidos mesmo quando a placa é desligada, como configurações de calibração ou configurações de usuário. A quantidade de memória EEPROM também varia de placa para placa. Por exemplo, o Arduino UNO tem 1kB de memória EEPROM, enquanto o Arduino Mega tem 4kB.
Usando o simulador
Existem várias opções de simuladores de Arduino disponíveis online, como o Tinkercad, o ArduinoSim e o Virtual Breadboard. Esses simuladores permitem que os usuários criem e testem projetos de Arduino sem a necessidade de possuir um hardware físico.
Para usar o Tinkercad, por exemplo, siga estes passos:
- Acesse o site do Tinkercad e crie uma conta gratuita.
- Clique em “Circuits” na parte superior da tela e selecione “Create New Circuit”.
- Selecione “Arduino Uno” na lista de componentes disponíveis e arraste-o para a área de trabalho.
- Adicione outros componentes ao seu projeto, como LEDs, botões e sensores, arrastando-os da biblioteca para a área de trabalho.
- Conecte os componentes ao Arduino arrastando os fios da biblioteca e soltando-os nos pinos correspondentes.
- Programe o seu circuito clicando no ícone “Code” na parte superior da tela e digitando o código ou arrastando blocos de código da biblioteca de blocos disponíveis.
- Salve o seu projeto e clique no botão “Simulate” para testar o seu circuito.
Com o simulador, você pode testar o seu código e ver como o seu circuito funciona sem precisar construir um protótipo físico. Isso pode economizar tempo e dinheiro na fase de prototipagem.
Como programar
Para programar o Arduino, você precisa seguir os seguintes passos:
- Baixe o software Arduino IDE em https://www.arduino.cc/en/software
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o software Arduino IDE e selecione o tipo de placa e porta serial na aba Ferramentas.
- Escreva o código que deseja programar na área de trabalho do Arduino IDE. Exemplos de código estão disponíveis na aba Arquivo > Exemplos.
- Verifique o código para garantir que ele não contenha erros de sintaxe.
- Carregue o código na placa Arduino pressionando o botão “Carregar” ou “Upload” no software Arduino IDE.
- Após o processo de carregamento, o código será gravado na memória flash do microcontrolador da placa Arduino e será executado assim que a placa for ligada ou resetada.
É importante lembrar que o código deve ser escrito em linguagem C/C++, com algumas funções e bibliotecas específicas do Arduino para acesso às portas de entrada/saída e outros recursos da placa. A documentação completa do software e hardware do Arduino pode ser encontrada em https://www.arduino.cc/en/Reference .
Programando em blocos no simulador
Para programar o Arduino usando o PictoBlox no Tinkercad, siga as etapas abaixo:
- Abra o Tinkercad em seu navegador e crie um novo projeto.
- Adicione o Arduino ao seu projeto e conecte-o a um computador usando o cabo USB.
- Clique no botão “Code” (Código) na parte superior do menu.
- Selecione a opção “PictoBlox” na lista suspensa.
- O PictoBlox será aberto em uma nova guia. Clique em “Conectar” na parte superior da página para conectar o PictoBlox ao Tinkercad.
- Agora você pode começar a programar o Arduino usando blocos gráficos no PictoBlox. Arraste e solte os blocos na área de trabalho para criar seu código.
- Quando estiver satisfeito com o seu código, clique no botão “Carregar para Arduino” na parte superior do menu.
- O código será compilado e carregado no Arduino. Você pode verificar se o código está funcionando corretamente observando o comportamento do Arduino em seu projeto no Tinkercad.
Lembre-se de que o PictoBlox é uma ferramenta poderosa para programar o Arduino usando blocos gráficos. Com ela, você pode criar projetos incríveis e aprender muito sobre programação e eletrônica.
Programando com blocos na placa
O Arduino IDE também suporta a programação visual com blocos, através da ferramenta “Blockly para Arduino”. Com ela, é possível criar programas para a placa Arduino sem a necessidade de escrever código em linguagem C/C++.
Para programar com blocos no Arduino, siga os seguintes passos:
- Baixe e instale o software Arduino IDE em https://www.arduino.cc/en/software
- Abra o Arduino IDE e selecione o menu Arquivo > Preferências. Na caixa de diálogo “Preferências”, cole o seguinte endereço na seção “URLs adicionais para Gerenciador de Placas”: https://arduino.github.io/arduino-board-index/package_esp8266com_index.json
- Abra a janela Gerenciador de Placas através do menu Ferramentas > Placa > Gerenciador de Placas. Procure por “ESP8266” e instale o pacote “ESP8266 Community”.
- Reinicie o Arduino IDE.
- Na janela principal do Arduino IDE, selecione o menu Arquivo > Exemplos > Blockly > ESP8266 > Blink. O código de exemplo será carregado na área de trabalho.
- Selecione o botão “Modo de Programação de Blocos” na parte inferior da janela para mudar para o modo de programação visual com blocos.
- Arraste e solte os blocos necessários para criar o programa desejado. Os blocos são organizados em categorias como “Lógica”, “Matemática”, “Portas” e “Variáveis”.
- Verifique se o programa está correto e carregue-o na placa Arduino pressionando o botão “Carregar” ou “Upload” no software Arduino IDE.
É importante lembrar que a programação visual com blocos pode ter limitações em relação à programação em linguagem C/C++. Além disso, nem todas as placas Arduino são compatíveis com a ferramenta “Blockly para Arduino”. Verifique a documentação do produto para obter mais informações.
Experiências práticas
Existem muitas experiências práticas populares que podem ser feitas com o Arduino, desde projetos simples até projetos mais complexos e avançados. Algumas das experiências práticas mais populares feitas com o Arduino são:
- Controlar um LED: Essa é uma experiência simples que envolve conectar um LED a uma porta de saída digital do Arduino e usar o código para controlar o LED. É uma ótima maneira de começar a aprender sobre como o Arduino funciona.
- Sensor de temperatura: Usando um sensor de temperatura, é possível medir a temperatura ambiente e exibir os resultados em um display LCD ou por meio de LEDs.
- Controle de servo motor: Usando um servo motor, é possível construir um braço robótico simples ou outro dispositivo controlado por movimentos. Isso pode ser feito usando uma porta PWM do Arduino para controlar a posição do servo.
- Sistema de segurança doméstica: Usando sensores de movimento, um alarme e uma placa de relé, é possível construir um sistema de segurança doméstica que alerta os proprietários quando alguém entra em sua casa.
- Estação meteorológica: Usando sensores de temperatura, umidade e pressão atmosférica, é possível construir uma estação meteorológica que mede e exibe as condições climáticas.
- Sistema de irrigação automático: Usando sensores de umidade do solo e válvulas solenoides, é possível construir um sistema de irrigação automático para plantas.
- Sistema de monitoramento remoto: Usando sensores e um módulo de comunicação sem fio, é possível construir um sistema de monitoramento remoto que permite aos usuários monitorar e controlar dispositivos de qualquer lugar.
Essas são apenas algumas das muitas experiências práticas que podem ser feitas com o Arduino. O limite é a sua imaginação e criatividade!