Curso de Arduino – Aula 3 – O Ambiente de Desenvolvimento Integrado

Quando tratamos de software na plataforma do Arduino, podemos referir-nos a dois assuntos: Ao ambiente de desenvolvimento integrado do Arduino e ao software desenvolvido por nós para enviar para a nossa placa.

Nesta aula vamos aprender como usar o Ambiente de Desenvolvimento do Arduino, como baixar, instalar e configurar o ambiente, como compilar nosso código e como enviá-lo para a nossa placa.

Abordaremos o software para a placa (nosso firmware) em uma próxima aula.

 

Download e Instalação

A plataforma Arduino é Open Source, ou seja, todos tem acesso à todo trabalho e pode utilizá-lo sem precisar pagar qualquer tipo de taxa ou royalties.

Todo software necessário para trabalhar com placas Arduino é disponibilizado “de grátis” pelos dsenvolvedores.

O site oficial do Arduino é www.arduino.cc e nele podemos baixar todo material que necessitaremos para trabalhar.

Página de download do Arduino. Em destaque os links de download.

Página de download do Arduino. Em destaque os links de download.

Vamos estudar o Arduino usando um sistema operativo Windows 7 Professional 64 bits. Quem optar por usar linux ou MAC OS poderá acompanhar o curso também, pois faremos as observações necessárias a esses sistemas quando necessário.

Aliás, O MAC OS é um unix, derivado do mesmo pai e compatível com o linux, então o MAC OS X vai representar “a classe unix” de agora em diante no nosso curso.

No MAC, o download é realizado e o procedimento é quase o mesmo. É só clicar sobre o app para iniciar a IDE.

arduino_folder_mac

Já temos tudo que necessitamos por enquanto. Vamos iniciar o uso da ferramenta.

 

O Ambiente de Desenvolvimento Integrado (IDE)

Ambiente de Desenvolvimento Integrado Arduino 1.0 comentado

Ambiente de Desenvolvimento Integrado Arduino 1.0 comentado

Ao executar o aplicativo, a tela acima é apresentada. Vamos adotar a abreviação IDE para tratar o aplicativo. Comentamos as funcionalidades abaixo:

  • Menu Principal – Nele estão todas as funções da IDE, como o gerenciamento de arquivos, funções de configuração entre outras.
  • Barra de botões – São os botões de atalho que ficam em baixo do menu principal. Facilitam a vida do desenvolvedor.
  • Área de programação – Neste espaço em branco o programa a ser enviado para a placa é escrito.
  • Console do compilador – Neste espaço é apresentada todas as mensagem do compilador, que são tanto mensagens de informação ou aviso sobre erros no programa.
  • Barra de estado – basicamente informa qual placa arduino foi configurada para uso no momento. Note na figura acima, gerada em um windows, a barra de estado apresenta a seleção de uma placa do tipo X-DUINO ATMega168 conectada na porta COM3.

Configurando a IDE.

Toda ferramenta precisa ser configurada antes do uso e a IDE do Arduino não e diferente. São necessários poucos ajustes. Primeiramente vamos selecionar a placa que vamos conectar no PC. Aponte para o menu “Tools > Board”.

Lista de placas suportadas pela IDE

Lista de placas suportadas pela IDE

Observem que existem três placas no final da lista marcadas por um retângulo. Essas placas foram incluídas pelo autor deste artigo através da alteração de um arquivo texto especial. São as placas que projetamos, compatíveis com a plataforma. Em uma futura aula mostraremos como incluir placas adicionais na lista, por enquanto selecionaremos uma placa: a X-DUINO ATMega168.

Dependendo da placa escolhida, é necessário informar a porta de comunicação. Informe a porta no menu “Tools > Serial Port”. Nossa placa X-DUINO não precisa de porta serial para funcionar, porém essa porta serial é a mesma que pode ser utilizada para receber dados para serem apresentados no monitor serial (falaremos dele adiante), portanto vamos selecionar uma porta serial.

Lista de portas seriais disponíveis (arduino windows)

Lista de portas seriais disponíveis (arduino windows)

No MAC e no Linux, a lista de portas é um pouquinho diferente.

Lista de portas seriais disponíveis (arduino MAC)

Lista de portas seriais disponíveis (arduino MAC)

A diferença na lista de portas entre MAC e Windows é devido à forma como cada SO trata o esquema de comunicação. O mais importante é selecionar a porta correta, onde sua placa efetivamente está conectada.

Dica: Desconecte sua placa Arduino do PC e verifique a lista de portas. Depois conecte a sua placa e verifique a lista de portas novamente. Se aparecer uma porta a mais, esta é a correta.

Vamos na próxima página abrir um programa, compilá-lo e gravá-lo na placa.

Curso de Arduino – Aula 2 – Arquitetura do Hardware de uma placa

Arquitetura de hardware do Arduino

Arquitetura de hardware do Arduino

O hardware do arduino é muito simples, porém muito eficiente. Vamos analisar a partir deste momento, o hardware do Arduino UNO. Esse hardware é composto dos seguintes blocos, explicados abaixo:

  • Fonte de Alimentação – Recebe energia externa, filtra e converte a entrada em duas tensões reguladas e filtradas;
  • Núcleo CPU – Um computador minúculo mas poderoso responsável por dar vida à placa.
  • Entradas e Saídas – A CPU vem completa com diversos “dispositivos” embutidos dentro do chip.
  • Pinos com Funções Especiais – Alguns pinos possuem hardware embutido para funções especiais.
  • Firmware – Programa que carregamos dentro da CPU com nossas instruções de funcionamento da placa.

blocosArduino

A Fonte de Alimentação

Esse bloco de eletrônica é responsável por receber a energia de alimentação externa, que pode ter uma tensão de no mínimo 7 Volts e no máximo 35 Volts e uma corrente mínima de 300mA. A fonte filtra e depois regula a tensão de entrada para duas saídas: 5 Volts e 3,3 Volts.

Note que tanto os limites de tensão mínimas e máximas quanto a corrente mínima, dependem de como o bloco da alimentação é construído. O requisito deste bloco é entregar as tensões de 5 e 3,3 Volts para que a CPU e os demais circuitos funcionem.

O Núcleo, um micro controlador poderoso

O núcleo de processamento de uma placa Arduino é um micro controlador, uma CPU, um computador completo, com memória RAM, memória de programa (ROM), uma unidade de processamento de aritmética e os dispositivos de entrada e saída. Tudo em um chip só. E é esse chip que possui todo hardware para obter dados externos, processar esses dados e devolver para o mundo externo.

 

Arduino UNO - o núcleo esta marcado em vermelho.

Arduino UNO – o núcleo esta marcado em vermelho.

Os desenvolvedores do Arduino optaram em usar a linha de micro controladores da empresa ATMEL. Particularmente gosto esses micros por muitos motivos e acredito que foi uma ótima escolha.

A linha utilizada é a ATMega. existem placas Arduino oficiais com diversos modelos desta linha, mas os mais comuns são as placas com os chips ATMega8, ATMega162 e ATMega328p. Esses modelos diferem na quantidade de memória de programa (ROM) e na configuração dos módulos de entrada e saída disponíveis.

Além dos modelos acima destacados, que usam encapsulamento DIP de 28 pinos, existem placas Arduino com outros modelos de núcleo, como a placa Arduino ADK que usa o chip ATmega2560 (quadrado no meio da placa abaixo).

Placa Arduino Mega

Placa Arduino Mega

Uma lista de todas as placas oficiais Arduino estão neste link http://arduino.cc/en/Main/Boards

Na página 2 abordaremos os blocos de entrada e saída embutidos dentro do micro controlador e que compõem o hardware do Arduino

Curso de Arduino – Aula 1 – Entenda o que é Arduino

Bem vindo à todos. Durante esse mini-curso vamos aprender tudo sobre o Arduino! Espero que todos gostem e possam aproveitar mais desta incrível plataforma.

A programação deste mini-curso é a seguinte:

Aula 1 – O que é Arduino? – Neste tópico mostraremos o que é Arduino, para que serve e qual é o seu propósito

Aula 2 – O Hardware – Demonstraremos o hardware do Arduino, seus recursos, suas variações e seus usos.

Aula 3 – O Ambiente de Desenvolvimento Integrado – Neste tópico abordaremos o software do Arduino, sua interface de desenvolvimento e suas configurações.

Aula 4 – Construindo uma placa compatível com Arduino – Neste tópico ensinaremos a construir a sua própria placa de arduino, um X-Duino, clone de arduino que foi projetado para facilitar sua construção.

Vamos nessa!!

 

O que afinal é Arduino?

Arduino é uma plataforma de prototipagem eletrônica, criado por Massimo Banzi e David Cuartielles em 2005 com objetivo de permitir o desenvolvimento de controle de sistemas interativos, de baixo custo e acessível a todos.

O projeto foi criado pensando em artistas e amadores, ou seja, não é necessário ter conhecimentos prévios em eletrônica ou programação para iniciar-se no mundo Arduino.

Com o Arduino é possível também enviar e receber informações de praticamente qualquer outro sistema eletrônico. Desta forma é possível contruir por exemplo, um sistema de captação de dados de sensores, como temperatura, iluminação, processar e enviar esses dados para um sistema remoto por exemplo.

Outra característica importante é que todo material (software, bibliotecas, hardware) é open-source, ou seja, pode ser reproduzido e usado por todos sem a necessidade de pagamento de royalties ou direitos autorais.

A plataforma é composta essencialmente de duas partes: O Hardware e o Software.

 

O Hardware

Placa Arduino Uno

Placa Arduino Uno

Vamos abordar com detalhes o hardware do Arduino posteriormente. Resumidamente o hardware é uma placa eletrônica que:

  • Possui todos componentes necessários para a maioria dos projetos;
  • Contém uma eletrônica que permite usar a placa com diversas fontes de energia, baterias e fontes de alimentação;
  • Permite o acoplamento de circuitos externos através de pinos de conexão em posições padronizadas;
  • A eletrônica é baseada em componentes de fácil obtenção, inclusive no mercado brasileiro;
  • O esquema da placa é livre, e pode ser facilmente modificado ou adaptado.
  • A placa é programada, ou seja, escrevemos um software que ficará embutido no chip controlador (firmware)

 


O Software

O Arduino é um compilador gcc (C e C++) baseado em Wiring e que usa uma interface gráfica contruída em Java baseado no projeto Processing. Tudo isso resume-se a um programa IDE (ambiente de desenvolvimento integrado) muito simples de usar e de estender com bibliotecas que podem ser facilmente encontradas na internet (aos montes).

Ambiente de desenvolvimento do Arduino

Ambiente de desenvolvimento do Arduino

Depois de criar o programa e compilar usando a IDE, o código gerado é enviado para a placa onde é gravado dentro do chip controlador. Esse software que roda na placa chama-se FIRMWARE.

As funções da IDE do Arduino são basicamente duas: Permitir o desenvolvimento de um software e enviá-lo à placa para que possa ser executado.


Construindo um protótipo

O processo de construção de um circuito de controle básico resume-se à:

  • Escrever um programa usando a interface de desenvolvimento do Arduino;
  • Conectar a placa do Arduino no computador através de um cabo (USB é o mais comum)
  • Compilar o programa escrito
  • Enviar o programa compilado para a placa e observar o funcionamento

 

Exemplo de aplicação: controle de servo motores (fonte: Fritzing)

Exemplo de aplicação: controle de servo motores (fonte: Fritzing)

Em resumo, a plataforma arduino permite criar coisas que possuem funções eletrônicas e mecânicas de forma fácil e sem precisar ser engenheiro.

Abaixo segue um exemplo de um brinquedo que fiz em 2011 usando a placa que aprenderemos fazer neste curso. Um amigo estava jogando um jogo que consistia em colocar uma bolinha no centro de um labirinto. Esta foi a idéia que eu precisava e o resultado do brinquedo vocês conferem abaixo.

Continuem acompanhando nosso curso! Em breve teremos a próxima aula. Até lá!!

Interatividade e diversão com Arduino

Este shield transforma qualquer objeto condutor de eletricidade em uma peça de interação com computadores.

A idéia foi adaptada de um projeto livre chamado MaKey MaKey, desenhado por dois gênios do Instituto de Tecnologia de Massachuset (MIT). Confira aqui quem são os loucos!

O shield que desenvolvemos implementa 16 divisores de tensão, onde um dos resistores tem um alto valor (1.000.000 ohms) e o outro resistor é composto pelo objeto a ser tocado + uma pessoa.

Veja no esquema que montamos:

divisor_maqueMaqueO programa na placa Arduino realiza a leitura do pino digital, e caso uma resistência menor que 1 Mega Ohm esteja conectada nos pontos indicados, a leitura é nivel baixo. Então o programa realiza as leituras, aplica um filtro contra ruídos e disponibiliza a informação através de variáveis que podem ser enviadas pela porta serial para o computador.

Caso você possua uma placa Arduíno Leonardo, você pode subir o programa original da placa MaKey MaKey, onde você pode configurar cada pino com uma ação de um dispositivo USB, como teclado e mouse.

Para o caso de uso de uma Arduíno Uno, ou outra que não seja a Leonardo, portamos o código original e apontamos nos comentários como utilizar os dados através da porta serial

Esse shield é resultado direto da residência de 3 meses de pesquisa no hackspace do SESC Sorocaba. Agradecemos o Fabrício Masutti e o Maurício Perez pelas dicas e orientação do trabalho.

Confira abaixo os materiais que disponibilizamos para que todos possam construir o seu shield MaQue MaQue!!

Diagrama de uso:

DiagramaUso

Baixe abaixo o Material para construção do shield:

Lista de componentes

Software MaKey MaKey adaptado para Arduíno UNO

Desenhos do esquema e do leiaute da placa de circuito impresso

Arquivos CAD formato Eagle PCB

Slides da montagem MakeyMakey em propoboard

 

Robô Escova

Conhecendo a robótica BEAM

Certa vez estava pesquisando na internet sobre assuntos variados e acabei por acaso conhecendo a robótica B.E.A.M. Interessei-me imediatamente pelo assunto.

A robótica B.E.A.M. é um conceito sobre construção de pequenos robôs que tenta copiar a estética e o comportamento de organismos naturais usando poucos componentes, geralmente analógicos, que atribuem ao robô um comportamento baseado em flutuações do caos, com resultado incrivelmente “vivo”.

Existem muitos tipos de BEAMs, classificados por tipos, ou por classe de comportamento. Existem muito material na internet sobre esse assunto, é só pesquisar por “BEAM robotics” ou “Robótica BEAM” para saber mais.

Neste artigo vamos aprender a construir um B.E.A.M clássico que chamaremos de Robô-Escova. Ele faz parte da classe de BEAMbots chamados de Squirmers, robôs que fazem alguma coisa interessante.


Sustentabilidade

Outro aspecto interessante da robótica BEAM é que devido à simplicidade dos desenhos os robôs podem ser fabricados com diversos tipos de sucata, o que confere a este tipo de trabalho um caráter sustentável, pois os praticantes da robótica BEAM têm a oportunidade de reutilizar materiais que de outra forma seriam descartados no meio ambiente.


Como funciona o robô-escova?!

O robô-escova opera um conceito muito simples. O seu corpo é feito da cabeça de uma escova de dente. O motor do seu movimento é um vibrador de celular e a sua fonte de energia é uma pilha comum.

Cabeça da escova

Cabeça da escova

Motor de vibrador de celular

Motor de vibrador de celular

Robô escova montado, note o peso na ponta do eixo rotor.

Robô escova montado, note o peso na ponta do eixo rotor.

O funcionamento é bastante simples: O motorzinho é acionado pela pilha e possui um peso acoplado ao eixo motor chamado de “volante”.

Normalmente os volantes devem ser balanceados para evitar vibrações. O truque que faz esse motor vibrar é o volante composto por um peso desbalanceado propositalmente, criando um eixo excêntrico.

Em mecânica, excêntrico é uma peça cujo eixo de rotação não ocupa o centro, transformando um movimento de rotação contínuo, em movimento de natureza diferente.

Essa “natureza diferente” pode causar um problema no mecanismo, introduzindo vibrações indesejadas. Por exemplo, uma roda de automóvel desbalanceada causa barulhos, desgastes e vibrações indesejadas que danificam o carro.

No caso do nosso robô, a excentricidade é desejada, é destinada a transformar um movimento de rotação contínuo, em vibração pura.

Com a rotação, o conjunto motor/eixo/peso é jogado de um lado para outro pois o peso está distribuído de maneira desigual então surge um vetor de força radial que varia com o tempo, devido à excentricidade de massa, e a coisa toda vibra. Quanto mais rápido o motor gira o eixo, maior é a força da vibração.

O elemento de vibração dos celulares aproveita essa vibração, e nosso robô-escova também, transferindo-as para as cerdas da escova, que ao vibrar fazem com que o nosso robozinho “flutue” em cima da mesa. Veja que interessante o movimento semi-aleatório do brinquedo.

Na próxima página você poderá acompanhar nosso tutorial de construção do robô escova.

Laminadora de Placas de Circuito Impresso

Placa de circuito impresso é uma base física para um circuito eletrônico. Através de um desenho de cobre em um dos lados da placa, os componentes do outro lado são conectados eletricamente além de ficarem presos em uma base rigida.

(esquerda) lado cobreado - (direita) Placa montada

Foto2

Este artigo trata-se da construção de uma máquina que nos auxilia no processo de confecção de uma placa de circuito impresso, com técnica CAD, transferência térmica de imagens e remoção quimica do cobre..

Antes de continuar, preciso citar as páginas dos “mestres” que inspiraram a construção na minha versão da Máquina

Laminador do Luciano: http://py2bbs.msxpro.com/laminador.php
Laminador do Xandinho: http://www.tabajara-labs.com.br/eletronica/tts/index.htm

Vamos lá. O processo todo funciona assim:

figura1

1 – O desenho do circuito é elaborado através de um programa de computador. Este programa usa inteligência artificial para “desenhar” as conexões entre os componentes, o que livra o engenheiro de um trabalho enorme. Esse desenho será transferido para a placa de cobre. Abaixo o desenho impresso e uma placa de fenolite virgem (lado cobreado)

DSC02982

2 – O desenho então é impresso em uma impressora LASER pois este tipo de impressão deposita um pó preto no papel, que depois é “fundido” formando a imagem. Esse mesmo pó pode ser transferido para outro material se o esquentarmos a 170 graus Celcius. Abaixo vemos o papel com o desenho virado para a face cobreada. Agora precisamos esquentar a placa para que o desenho saia do papel e passe para o cobre.

DSC02984

3 – Nossa máquina trabalha neste passo, transferindo o desenho do papel para a placa de cobre. A Máquina fornece pressão e calor através de dois rolos por onde a placa e o desenho passam. Desta forma, a tinta depositada no papel pela impressora LASER, é transferido para a placa de cobre.

figura2

Ponte-H 12V 40A

Esse artigo é dedicado à todos cadeirantes. A idéia de escrevê-lo surgiu quando um leitor do nosso site nos enviou um email comentando que possuia uma cadeira de rodas elétrica e que necessitava consertar o controlador dos motores, pois esse havia queimado.

Para quê serve uma Ponte-H?

Um motor elétrico de corrente contínua (DC) é um tipo comum de motor elétrico.

Um motor elétrico DC e os dois terminais elétricos.

Um motor elétrico DC e os dois terminais elétricos.

Sua principal característica é que ele possui dois terminais elétricos, um positivo e um negativo. Se uma corrente elétrica percorre no sentido normal o eixo do motor gira para um lado. Se a corrente elétrica é invertida, o eixo gira para o outro lado.

Portanto, podemos inverter o sentido de rotação do eixo simplesmente invertendo a polaridade dos terminais elétricos, e por consequencia, invertendo a corrente.

Abaixo vemos um exemplo desse funcionamento

Motor girando no sentido normal.

Motor girando no sentido normal.

Motor girando no sentido reverso.

Motor girando no sentido reverso.

 

Controlando a polaridade com transistores

Como vimos no exemplo acima, é fácil controlar o motor usando chaves. Porém, se for necessário acionar os motores através de um painel de controle automatizado, a abordagem das chaves é inadequada.

Podemos subistituir as chaves por transistores, que possuem a vantagem de manipular a corrente elétrica sem partes móveis, portanto não desgastam e não soltam faísca, fator de segurança.

No circuito abaixo os transistores são acionados por botões, mas a corrente que passa por esses botões é muito pequena, portanto os fios para levar esses botões para longe do circuito podem ser finos e longos.

Ponte-H com transistores bipolares.

Ponte-H com transistores bipolares.

No circuito acima, os transistores Q1, Q2, Q3 e Q4 substituem as chaves do exemplo anterior. Notem que Q1 e Q3 são TIP32 (P) e Q2 e Q4 são TIP31 (N)

Vejamos o funcionamento desta ponte-h transistorizada: Ao pressionar o botão S1, Q1 e Q4 são ligados e o motor gira para um lado.

S1 acionada e motor girando para um lado.

S1 acionada e motor girando para um lado.

Ao pressionar S2 os transistores Q2 e Q3 são ligados e o motor gira para o outro lado.

S2 acionada e motor girando para outro lado.

S2 acionada e motor girando para outro lado.

Agora sabemos como funciona uma ponte-h, vamos na próxima página verificar os limites da ponte-h com transistores TIP31 e TIP32, que são transistores bipolares.