O que é o Projeto ABaCo

De Wiki DAINF
(Diferença entre revisões)
(O que é)
(Ambiente de programação Arduino)
Linha 26: Linha 26:
 
= Ambiente de programação Arduino =
 
= Ambiente de programação Arduino =
  
O ambiente de programação Arduíno é baseado na IDE do processing e a linguagem de programação do arduino é baseada no Wiring. Para os programadores de C/C++ e java não há diferenças significativas na sintaxe.
+
O ambiente de programação Arduíno é baseado na IDE do processing e a linguagem de programação do arduino é baseada nas linguagens de programação Java e C++. Para os programadores de C/C++ e java não há diferenças significativas na sintaxe.
  
 
= Interfaceamento Processing - Arduino =
 
= Interfaceamento Processing - Arduino =

Edição de 00h01min de 5 de junho de 2009

Tabela de conteúdo

O que é

O projeto é uma bancada computacional que irá auxiliar, a quem interessar, no entendimento e desenvolvimento de projetos utilizando hardware e interface hardware-software mesclando as artes e ensino, utilizando processing. A arquitetura básica da bancada, além do computador, utilizando plataforma GNU/Linux, para coleta e envio de dados ao hardware em desenvolvimento, será composta por tecnologias livres, utilizando na parte de interação com o hardware base o ambiente de programação Arduíno [1], na criação das artes e interpretação de dados para ensino o processsing e na simulação, caso necessária, anterior a montagem do circuito, será usado o QUCS [2] para que haja certeza de que o que se espera irá ocorrer. Também há o caso em que se deseje realizar a montagem em uma placa impressa, então será usado o software gEDA[3] para construir o layout do projeto. Outros simuladores de circuitos pesquisados: KLogic [4] e XCircuit [5].

Outros Softwares de simulação, diagramação etc, relacionados a circuitos podem ser encontrados em opencollector.org. O projeto ABaCo será usado em conjunto com outro em elaboração[6], que é criar aulas de laboratório de mídias e hardware para que os alunos tenham um melhor entendimento dos conteúdos que serão cobrados posteriormente em outras disciplinas de circuítos e desenvolvam a capacidade de criar sistemas interativos.

Computador

O componente da bancada no qual todos os estudos serão realizados tais como simulações, programação do software a ser embarcado no hardware(Arduino) quando necessário, a partir de um ambiente de desenvolvimento(Arduino Programming Language (IDE)). O sistema operacional a ser utilizado será baseado no GNU/Linux afim de que se estimule o aluno ao uso e criação de soluções livres para que haja total entendimento e acesso no projeto em desenvolvimento ou já desenvolvido por parte de outros estudantes ou interessados no assunto.

Arduino

Arduino é uma plataforma eletrônica de prototipação open-source que implementa um ambiente de fácil relacionamento entre o hardware e o software para programadores, designers, artistas ou quem quer que esteja interessado em utilizá-lo para algum fim. Com ele é possível capturar eventos em ambientes através de sensores, não inclusos, por meio da porta de entrada de sinais, e também controlar dispositivos eletrônicos de diversos tipos como luzes, motores et cetera, de um modo simples quando comparado às linguagens usadas que permitem esse tipo de comunicação. O Freeduino ou similares ao Arduino pode ser utilizado.

Arduino.jpg

O Arduino tem três regiões principais que estão em torno de um quadrado com bordas vermelhas na imagem acima.

  1. No canto esquerdo da imagem há duas portas e um pino (jumper) selecionável que diz se a alimentação do arduino será via USB ou por uma fonte externa ou bateria de 9 Volts.
  2. No topo da imagem há 16 portas sendo que os pinos de 0 a 13 são usados pra entrada e saída digital. Desses 13 pinos, os pinos rotulados 0(RX, Recebe) e 1(TX, Transmite) podem ser usados para comunicação serial, os pinos 3,5,6,9,10 e 11 suportam pwm (Pulse-width modulation) em que é possível especificar o tempo que o sinal ficará ligado em um periodo, a porta GND(Ground) é o terra do circuito e a porta AREF é a referência de entrada para as entradas analógicas, ou seja, quando a tensão lida é igual a tensão aplicada em AREF, então 1023 é retornado, caso contrario um valor proporcional de 0 a 1023 é retornado. O valor máximo aplicado na porta AREF deve ser de 5 volts, entretanto esse é o valor padrão considerado como 1023 nas leituras analógicas, logo o uso de AREF deve-se a necessidade de leitura de tensões máximas menores que 5 volts.
  3. Na base da imagem há 12 portas sendo 6 rotuladas de 0 a 5 para a entrada analógica de tensão, sendo a máxima 5 volts; na esquerda há 6 portas rotuladas da esquerda para a direita como porta RESET usada para resetar o arduino quando aplicado o terra sobre ela, a porta 3V3 que fornece 3.3 Volts com corrente máxima de 50mA, a porta 5V que fornece 5 volts de tensão, a porta GND que é ligada ao terra do circuito e a porta Vin que também fornece 5 Volts quando alimentado por USB ou a tensão da fonte de tensão ou da bateria quando alimentado por estas.

O botão na região central direita do arduino serve para resetá-lo.

Ambiente de programação Arduino

O ambiente de programação Arduíno é baseado na IDE do processing e a linguagem de programação do arduino é baseada nas linguagens de programação Java e C++. Para os programadores de C/C++ e java não há diferenças significativas na sintaxe.

Interfaceamento Processing - Arduino

É possível fazer comunicação com o Arduino através do Processing, assim aproveitando as vantagens em se trabalhar com processing em Mídias e Artes. O que o Processing fará então é ler toda a saída do Arduino, aplicando uma computação mais elaborada às respostas dele como efeitos 3D, musicas et cetera. Nos exemplos que se seguem será abordado a maneira de realizar tal comunicação.

Fonte de alimentação

A fonte de alimentação será construída de modo que tenha saídas padrões com relação aos componentes avançados que podem vir a ser usados, tais como transistores, amplificadores operacionais entre outros. A fonte precisa ser construída por uma pessoa experiente, utilizando o circuito que for conveniente de modo que apenas saiam as tensões +5V, -5V, +12V, -12V e terra(GND-Ground).

QUCS (Quite Universal Circuit Simulator)

QUCS é um diagramador de circuitos open-source fácil de usar e foi escolhido para compor o arcabouço, pelo fato de que permite a simulação fácil de circuitos e terá como finalidade sanar possíveis dúvidas de funcionalidade, antes da construção de um determinado circuito. Ele permite uma quantidade razoável de simulações dentre elas de corrente alternada, contínua e circuitos digitais.

A escolha pelo QUCS se deve também ao fato de que é um dos projetos mais atualizados entre os outros relacionados para GNU/Linux e mais conhecido/famoso em conjunto a seu foco profissional que também é acentuado.

Para mudar a linguagem do programa para Português acesse File > Application Settings e selecione em Language: Português.

Qucs3.jpg

Seu uso para simulações simples é relativamente simples baseado em etapas:

  • Montagem do circuito utilizando os componentes que são divididos em tipos, então para se escolher os Componentes primeiro se escolhe que tipo de componente quer e então arrasta-o, localizando-o numa lista, para o painel de desenho.

Qucs1.jpg

  • Após a montagem deve-se inserir o elemento de simulação no item Simulação e o que se deseja medir no menu Ponteiras junto ao circuito no painel de desenho.

QUCS2.jpg

  • E por fim então clica-se para começar a simulação em Simulação>Simular ou F2. Irá abrir uma página em branco e o item "diagramas" no painel lateral esquerdo, então deve-se escolher qual a forma de exibição dos dados como também quais variáveis deverão ser exibidas.

Hardware Base

O hardware base para a elaboração de circuitos será composto por resistores, um multimetro para a verificação das grandezas reais associadas ao circuito e aos componentes. A captura de dados e a alimentação do hardware será através da porta USB utilizando o Arduino, entrentanto para circuitos sem a necessidade da captura de dados uma fonte de tensão pode ser usada e por fim um protoboard, ou matriz de contatos, que é uma placa que contém dezenas de pequenas entradas nas quais os componentes eletrônicos são encaixados e o circuito é montado, evitando a necessidade inicial de placas condutoras e soldagem.

Leitura de Resistores

Cada resistor tem uma identificação única que o caracteriza, ou seja, que informa a sua resistência. São três anéis coloridos em que cada cor representa um número e a partir da combinação se tem então a resistência.

Geralmente os resistores possuem quatro faixas sendo que a última faixa a ser lida é dourada ou prata, ou seja, a orientação que deve-se seguir é com base na posição da faixa dourada ou prata. A faixa vermelha representa que o resistor tem um erro de 1%, a dourada um erro de 5% e a prata 10%. A leitura será explicada em base ao resistor de 5%.

Posicionando a faixa de erro para a direita, da esquerda para a direita a primeira faixa representa o primeiro digito, a segunda faixa o segundo digito e a terceira faixa o multiplicador dos dois primeiros. A tabela abaixo relaciona as cores com os valores a serem associados.

Resistores.png

Como exemplo, se um resistor tem as cores Amarelo-Violeta-Marrom-Dourado, então pode-se dizer que ele tem um erro de 5%, ou seja, varia para mais ou menos 5% do valor nominal e mais:

  1. Amarelo no primeiro anel representa 4
  2. Violeta no segundo anel representa 7
  3. Marrom no terceiro anel representa 10

Logo o resistor é determinado com a seguinte relação: ABxM em que A é o primeiro digito, B é o segundo digito e M é o multiplicador, do exemplo acima tem-se que A=4, B=7 e M=10 então a resistência desse resistor vale 47x10 = 470 Ohms Essa tabela é importante para se ter as resistências, entretanto há outras melhores e mais didáticas para facilitar na leitura e obtenção do valor.

É recomendado que se compre a série de 10 a 10k Ohms.

Protoboard

Protoboard2.jpg Protoboard.jpg

De maneira simples o protoboard pode ser explicado como se segue:

Cada conjunto de 5 furos numa mesma vertical estão ligados eletricamente como um nó, como mostra a figura acima e toda a linha horizontal nos extremos são ligadas eletricamente. Por exemplo, para se ligar uma bateria no protoboard, é necessário apenas plugar um terminal em um furo de qualquer das linhas nos extremos e o outro terminal na outra linha, então todos os furos da linha com o terminal positivo tera +V e toda a linha com o terra terá GND(Terra). Um resistor por exemplo deve ter cada terminal em uma linha vertical (coluna) diferente. Caso seus terminais estejam na mesma coluna, não funcionará corretamente o circuito pois os dois terminais estarão num mesmo potencial e não fluirá corrente através do resistor.

Software para criar o layout do projeto

Se o interesse for apenas em construir o layout do projeto, com os componentes, pode-se usar:

  • gEDA - GPL’d suite of electronic design automation

Uma vez montado o circuito no protoboard, todo o esquema então pode ser passado a um programa para que, caso haja interesse, o circuito possa ser construído para a versão definitiva, ou seja, impresso e construído em uma placa condutora. Um software para GNU/Linux encontrado que possibilita o desenho de circuitos para impressão no formato sem componentes:

  • PCB - Printed Circuit Board Layout Tool [7]

Componentes físicos do projeto ABaCo

Abaco.jpg

A imagem acima ilustra a parte física necessária para o projeto ABaCo, a maioria dos itens já foram explicados anteriormente e os que ainda não foram, serão melhor explicados no manual junto aos exemplos.

  1. Arduino e cabo USB para conexão com computador
  2. Multimetro Digital para medir as grandezas associadas aos circuitos
  3. Protoboard para a montagem física do circuito sem a necessidade de uma placa impressa
  4. Ferramentas: Cabo de rede para construção de cabos para interligar os componentes no protoboard
  5. Ferramentas: Alicate para auxiliar na construção dos fios que interligarão o circuito
  6. Ferramentas: Pinça para retirar resistores do protoboard e/ou manipulação de pequenos componentes
  7. Componentes: Resistores
  8. Fonte de alimentação para alimentar o circuito

Custo dos componentes

Abaixo segue a especificação dos componentes recomendados para o uso no projeto ABaCo junto ao preço aproximado de cada elemento: Observação: A fonte de alimentação para o projeto deve ser construída por uma pessoa experiente.

  • Arduino Duemilaenove R$ 150,00
  • Freeduíno R$ 85,00
  • Alicate de corte diagonal 4 1/2 (4,5 polegadas) R$ 6,00
  • Protoboard ICEL 840 furos com Bornes (terminais para fontes) R$ 31,00
  • Mutimetro digital Minipa ET1002 R$ 24,00
  • Pinça reta TS-14, ponta fina, anti-estática R$ 6,00
  • Resistores(10 unidades) R$ 0,30
  • Fonte de alimentação (Retificação-Transformador) R$ 25,00

Para o Arduino deve-se buscar online para comprá-lo, ou também adquirir um mais barato (Freeduino), que pode ser encontrado no Mercado Livre ou nos buscadores online.

Referências Bibliográficas

  1. Arduino. http://www.arduino.cc/. Acesso em 01 de setembro de 2008.
  2. Quite Universal Circuit Simulator - QUCS.http://qucs.sourceforge.net/. Acesso em 5 de setembro de 2008.
  3. gEDA. http://www.geda.seul.org/. Acesso em 26 de setembro de 2008.
  4. KLogic. http://www.a-rostin.de/. Acesso em 15 de setembro de 2008.
  5. XCircuit. http://opencircuitdesign.com/xcircuit/. Acesso em 15 de setembro de 2008.
  6. MERKLE, L. E. MÍDIAS TANGÍVEIS E TECNOLOGIAS LIVRES NA EDUCAÇÃO INTERDISCIPLINAR, jun. 2008.
  7. PCB. http://sourceforge.net/projects/pcb/. Acesso em 26 de setembro de 2008.
Ferramentas pessoais