Apropriação em Bancada Computacional (ABaCo)

De Wiki DAINF
(Diferença entre revisões)
(Links Relacionados)
(Manual Básico do projeto ABaCo)
Linha 100: Linha 100:
 
Os exemplos contidos no manual seguirão a parte teórica aqui escrita, ou seja, será usado o Qucs para simulação dos circuitos, quando possível, e depois implementados fisicamente no Protoboard e então a fonte de energia e processamento dos dados será feito utilizando o Arduino.
 
Os exemplos contidos no manual seguirão a parte teórica aqui escrita, ou seja, será usado o Qucs para simulação dos circuitos, quando possível, e depois implementados fisicamente no Protoboard e então a fonte de energia e processamento dos dados será feito utilizando o Arduino.
  
* Manual em contrução
+
* Manual ABaCo [http://www.megaupload.com/?d=QAI9AA37]
  
 
== Referências Bibliográficas ==
 
== Referências Bibliográficas ==

Edição de 15h34min de 9 de maio de 2009

Tabela de conteúdo

Introdução

Um dos entraves enfrentados pelos professores e estudantes das áreas de Engenharia que têm como disciplina eletricidade, é o ensino e entendimento, este por parte dos alunos, de circuitos elétricos. Como cita [1], há uma dificuldade na construção da ponte que liga o embasamento teórico, este adquirido desde as disciplinas básicas tais como física e matemática, e as disciplinas que envolvem a prática em laboratório, o que faz com que o aproveitamento esperado seja prejudicado.

Seguindo por uma das idéias levantadas na elaboração deste projeto, que no caso é a criação de um arcabouço para auxiliar no entendimento do aluno para com as aulas de laboratório e a familiarização com circuitos elétricos, o estudo se assemelha em partes ao programa REENGE [2] que tem como objetivo a criação de uma plataforma para ensino de modo a facilitar o entendimento.

Um dos pontos-chave do projeto é a importância do baixo custo na construção do arcabouço, uma vez que toda a arquitetura, a princípio almejada, segue a filosofia livre. E um outro fator importante do projeto é o foco no curso de Engenharia de Computação.

No curso de Engenharia de Computação, ofertado no campus de Curitiba pela Universidade Tecnológica Federal do Paraná (UTFPR), o primeiro relacionamento com os fundamentos da eletricidade e componentes com propriedades elétricas acontece no segundo semestre com a disciplina de Física 3, a qual intermedeia o aluno e os componentes elétricos pela primeira vez. Entretanto são poucos os alunos que conseguem absorver o que o laboratório propõe que é entender a teoria na prática, pelo pouco tempo que o aluno tem para entender o que ele deve fazer, por que deve ser assim o experimento e o que são as coisas com as quais ele está manipulando, o que converge para um único resultado: o professor certamente não terá tempo de explicar o porquê das coisas e conduzirá o aluno a fazer mecanicamente o experimento.

Após concluir Física 3, o aluno então embarcará na disciplina de Fundamentos de Análise de Circuítos Elétricos, que irá aumentar o nível de entendimento, por parte do aluno, dos componentes eletrônicos e da manipulação e montagem de circuítos, as quais não estão solidamente entendidas. Como produto desse imperceptível entrave, o bom desenvolvimento do aluno durante a disciplina é prejudicado, novamente levando a uma busca pela solução mecanica, sem o entendimento claro, em busca de nota e aprovação ao final do semestre.

Voltando ao segundo semestre, mais especificamente na disciplina de Oficinas de Integração 1, na qual um projeto deve ser realizado por um grupo no prazo de seis meses, alguns grupos acabam por não realizar o que gostariam, ou não conseguirem como pretendiam, quando o assunto envolve hardware e o motivo é evidente: ainda não há carga teórica e nem prática suficiente para esses alunos.

É com base nesses pequenos problemas, que futuramente se tornaram grandes, que o projeto{?} ABaCo tem como foco auxiliar, criando um arcabouço no qual o aluno irá construir seus fundamentos teóricos e práticos em hardware e componentes eletrônicos assim como, também, com a interface hardware-software, usando desta com o foco inicial no design e artes.

O que é ?

Uma bancada computacional de baixo custo que irá auxiliar o aluno de Engenharia de Computação no entendimento e desenvolvimento de projetos utilizando hardware e interface hardware-software, esta por meio da criação do design de interação. A arquitetura básica da bancada, além do computador 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 Arduíno [3], na parte do design de interação da interface hardware-software o ambiente Processing [4], na simulação, anterior a montagem do circuito, será usado o QUCS [5] para que haja certeza de que o que se espera irá ocorrer. Outros diagramadores de circuitos pesquisados: KLogic [6], XCircuit [7] e Oregano [8]. Programas relacionados a circuitos podem ser encontrados em [1]. O projeto será usado em conjunto com outro em elaboração, 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 principal da bancada no qual todos os estudos serão realizados tais como simulações, programação do software a ser embarcado no hardware(Arduino) e interação com o hardware(Arduino) a partir de uma interface(Processing). 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 por parte de outros estudantes ou interessados no assunto.

Arduino

Arduino

Arduino é um protótipo eletrônico 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, por meio da porta de entrada de sinais, e também controlar dispositivos eletrônicos de diversos tipos como luzes, motores etc, de um modo simples quando comparado às linguagens usadas que permitem esse tipo de comunicação.

Processing

Processing é uma linguagem de programação e ambiente open-source destinada a produção de artes, não necessariamente precisando de conhecimentos profundos em programação e algoritmos para que se possa dar um primeiro passo significativo no entendimento e domínio dela, assim como também destinada a ensinar os princípios básicos de programação para computadores num contexto visual. O ambiente Processing é uma ferramenta livre de grande valia aos estudantes, designers e entusiastas que têm como obstáculo na criação de algum projeto(arte), elementos que uma suite gráfica dificilmente fornece, como exemplo uma função recursiva (chamada a própria função antes desta terminar, exemplo: fatorial[2] é uma função recursiva).

QUCS - Quite Universal Circuit Simulator

QUCS

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.

Hardware base

O hardware base para a elaboração de circuitos será composto por componentes eletrônicos tais como resistores, capacitores, diodos etc, 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 (que pode ser construida a partir de uma fonte ATX de computadores, ver em Links Relacionados) 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 condutora e solda.

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 [9]

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 [10]

Componentes físicos do projeto ABaCo

ABaCo

A imagem lateral 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
  2. Cabo USB para conexão Arduino -> Computador e alimentação do Arduino
  3. Multimetro Digital
  4. Protoboard
  5. Cabo de rede para construção de cabos para interligar o circuito no protoboard
  6. Alicate para auxiliar na construção dos fios que interligarão o circuito
  7. Resistores
  8. LEDs

Os elementos da parte física do projeto não precisam ser necessariamente iguais aos da imagem. Qualquer modelo e forma, no caso do protobard, servirá, exceto pela versão do Arduino que deve-se tomar cuidado em verificar se apresenta diferenças significativas em relação ao Arduino DIECIMILA que é o usado nesse projeto.

Requisitos

Como citado , este projeto tem foco nos estudantes de Engenharia de Computação da UTFPR, entretanto qualquer um pode se apropriar do que for útil aqui escrito. Entretanto alguns requisitos básicos são necessários para que possa haver progresso no uso do projeto ABaCo, dentre elas vale citar:

  • Conhecimento básico no funcionamento de componentes de circuitos elétricos (Resistores, Capacitores, Indutores, Diodos, Transistores etc).
  • Conhecimento básico em alguma das linguagens de programação como Java, C entre outras.

Desenvolvimento de interfaces tangíveis

Segundo a definição de Ullmer e Ishi(2000) [11], interfaces tangíveis relacionam o uso de um sistema de artefatos físicos para o controle de informações digitais. Ou seja, a informação a ser manipulada não fica restrita apenas a comandos e ações realizadas por meio de dispositivos genéricos, mas sim por dispositivos específicos. Isso faz com que se torne mais fácil e eficiente a manipulação dessas informações. O projeto ABaCo tem por foco o apoio ao desenvolvimento de interfaces tangíveis. Com isso agregar melhor entendimento de circuitos eletro-eletrônicos bem como em design de interação, atingindo a meta do projeto que é fornecer uma base sólida de circuitos elétricos em conjunto com programação embarcada e o desenvolvimento de tecnologias pensando no usuário, aplicando os princípios de design de interação.

Fundamentos de Software Livre

Como o projeto vai se manter sobre a filosofia de software livre, é de grande importância esclarecer alguns pontos que dizem respeito ao software livre. Segundo a cartilha de Software Livre do Projeto Software Livre Bahia [12], software livre não é uma questão de preço, mas sim de liberdade, que segue as seguintes liberdades definidas pela Free Software Fundation [13]:

  • A liberdade de executar o programa, para qualquer propósito;
  • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade;
  • A liberdade de redistribuir cópias de modo que você possa beneficiar o próximo;
  • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade.

Um programa que segue essas quatro liberdades pode ser condiderado livre. Entretanto não impede que o programa custe um valor que muitos não possam pagar. No caso de um hardware em conjunto com o software, algumas mudanças baseadas nessas quatro liberdades são suficientes para que o hardware seja livre Hardware aberto. Algo interessante que poucas vezes é citado quando explicado o porquê do software livre é o fato de que todo o conhecimento usado pelo programador para se contruir um software/hardware, pode ser obtido por ele sem custo algum. Desde as teorias matemáticas, físicas, químicas etc até a própria escrita, que ele tem as quatro liberdades acima citadas (com algumas adaptações). Entretanto o produto produzido pelo programador de software proprietário é fechado de modo que ninguém saiba como funciona? Mas e se tudo que ele usou como fundamento para seu projeto fosse também restrito? O que seria do projeto ?

Um texto escrito por Pedro Antonio Dourado de Rezende explica melhor a linha de raciocínio:

"No software proprietário, o programador abdica da liberdade de controlar sua obra, em troca de salário e compromisso de sigilo. O distribuidor, fantasiado de 'fabricante', torna-se proprietário de tudo. Desde o código fonte, tido como segredo de negócio, até as cópias executáveis, licenciadas ao usuário sob custódia e regime draconiano. Enquanto no software livre o programador abdica de um dos canais de receita pelo seu trabalho, em troca da preservação do controle dos termos de uso da sua obra. Em contrapartida, se a obra tiver qualidades, agregará eficiência aos empreendimentos em torno dela. Seu valor semiológico, conversível em receita com serviços, será proporcional à magnitude do esforço colaborativo onde se insere. O código fonte é livre sob licença que preserva esta liberdade, enquanto a cópia executável é tida como propriedade do usuário. (...) Só tem a perder com ele (Software Livre) quem consegue galgar posições monopolistas no modelo proprietário. O problema é que a ganância faz muitos acreditarem que serão os eleitos pelo deus mercado, enquanto seguem correndo atrás da cenoura amarrada na ponta da vara que pende das suas carroças digitais, não se importando com os efeitos colaterais de se tratar conhecimento como bem escasso, ao considerarem software como mercadoria."

Manual Básico do projeto ABaCo

O manual para o projeto ABaCo será objetivo e omitirá a parte teórica já explicitada nesse artigo. Ele deve focar práticas básicas que façam com que o seu usuário aprenda os conceitos básicos inerentes ao Arduíno bem como ao entendimento superficial, caso não haja algum, de elementos de circuitos. O uso do software para criação do Layout só será necessário quando se quiser construir um circuito definitivo em uma placa de metal como por exemplo de cobre.

Os exemplos contidos no manual seguirão a parte teórica aqui escrita, ou seja, será usado o Qucs para simulação dos circuitos, quando possível, e depois implementados fisicamente no Protoboard e então a fonte de energia e processamento dos dados será feito utilizando o Arduino.

  • Manual ABaCo [3]

Referências Bibliográficas

  1. Nival Nunes de Almeida, D.Sc, Bernardo Severo da Silva Filho, M.Sc. O Desafio do Ensino de Circuitos Elétricos na Formação Básica em Engenharia Elétrica na UERJ. Disponível em: http://www.del.ufms.br/desafio_CE.pdf Acesso em 29 de agosto de 2008
  2. Reestruturação do Ensino de Engenharia - Disponível em: http://www.unicamp.br/prg/reenge/reenge.html#reenge Acesso em 29 de agosto de 2008
  3. Arduino Disponível em: http://www.arduino.cc/ . Acesso em 01 de setembro de 2008.
  4. Processing Disponível em: http://processing.org/ . Acesso em 01 de setembro de 2008.
  5. QUCS - Quite Universal Circuit Simulator Disponível em: http://qucs.sourceforge.net/ . Acesso em 5 de setembro de 2008.
  6. XCircuit Disponível em: http://opencircuitdesign.com/xcircuit/ . Acesso em 15 de setembro de 2008.
  7. KLogic Disponível em: http://pdb.finkproject.org/pdb/package.php/klogic . Acesso em 15 de setembro de 2008.
  8. Oregano Disponível em: http://oregano.gforge.lug.fi.uba.ar/ . Acesso em 26 de setembro de 2008.
  9. gEDA Disponível em: http://www.geda.seul.org/ . Acesso em 26 de setembro de 2008.
  10. PCB Disponível em: http://sourceforge.net/projects/pcb/ . Acesso em 26 de setembro de 2008.
  11. ULLMER, Brygg; ISHI, Hiroshi. Emerging frameworks for tangible user interfaces Disponível em http://www.research.ibm.com/journal/sj/393/part3/ullmer.html Acesso em 5 de novembro de 2008.
  12. Projeto Software Livre Bahia Disponível em: http://twiki.dcc.ufba.br/bin/view/PSL Acesso em 7 de novembro de 2008.
  13. Free Software Foundation Disponível em: http://www.fsf.org/ Acesso em 7 de novembro de 2008.

Links Relacionados

  1. Open source hardware 2008 - The definitive guide to open source hardware projects in 2008 http://blog.makezine.com/archive/2008/11/_draft_open_source_hardwa.html
  2. tinker.it http://tinker.it/now/category/physical-computing/
  3. harkopen http://www.harkopen.com/projects/littlebits
  4. Open Collector http://www.opencollector.org/collector.php
  5. e-panorama.net http://www.epanorama.net/index.php
  6. Como converter uma fonte ATX em uma fonte de tensão para experimentos http://www.wikihow.com/Convert-a-Computer-ATX-Power-Supply-to-a-Lab-Power-Supply
  7. Phoenix: Computer Interfaced Science Experiences http://www.nsc.res.in/~elab/phoenix/
  8. J. Jayapandian (2006) Embedded control and virtual instrument simplifies laboratory automation. CURRENT SCIENCE, VOL. 90, NO. 6, 25 MARCH 2006. Disponível em http://www.ias.ac.in/currsci/mar252006/765.pdf
  9. Hardware toolkits for physical user interface prototyping - Disponível em http://hci.rwth-aachen.de/toolkits
  10. O Uso de Realidade Aumentada no Ensino de Física Abstract 1 - Disponível em http://www.ckirner.com/download/anais/WRA2005-Anais/WRA2005-1-24.pdf
  11. http://oap.sourceforge.net/
  12. http://wiki.debian.org/DebianScience
  13. http://www.discovercircuits.com/H-Corner/tool-kit.htm
  14. Starter kit of components http://www.kpsec.freeuk.com/starter.htm
  15. Electronics Learning-Resources on the WWW http://newton.ex.ac.uk/teaching/CDHW/Electronics2/ElectronicsResources.html
  16. Michael Gurevich, Bill Verplank, Scott Wilson Physical Interaction Design for Music http://ccrma.stanford.edu/courses/250a/docs/gurevich_icmc2003.pdf
  17. Wayne Wolf, Computers as Components: Principles of Embedded Computing System Design, Morgan Kaufman Publishers, ISBN: 9780123743978, 2008.
  18. http://en.wikibooks.org/wiki/Embedded_Control_Systems_Design
  19. EU project to build embedded toolchain http://kn.theiet.org/news/feb09/interested.cfm
  20. http://www.esemagazine.com/index.php?option=com_content&task=view&id=955&Itemid=4
  21. http://www.netrino.com/node/118
  22. http://www.netrino.com/Embedded-Systems/Training-Courses/Embedded-Linux
  23. http://www.codesourcery.com/sgpp/lite/arm/portal/target_arch1?@template=faq
  24. http://www.renaissancesoftware.net/blog/archives/41
  25. http://wiki.linux-xtensa.org/index.php/Toolchain_and_Embedded_Distributions
  26. http://www.lynuxworks.com/products/eclipse/luminosity.php
  27. Multitouch http://nuigroup.com/forums/viewthread/4680/
  28. Embedded computing Por Joseph A. Fisher, Paolo Faraboschi, Clifford Young http://books.google.com/books?id=R5UXl6Jo0XYC&pg=PA292&lpg=PA292&dq=workflow+%22embedded+computing%22&source=bl&ots=3Ord-pJ0le&sig=LRcizAl8B_kYiOhBxZt_VkElkro&hl=pt-BR&ei=1qrUSdjjJcKktgew4K3gDw&sa=X&oi=book_result&ct=result&resnum=2#PPA292,M1
  29. Sentient Data Access via a Diverse Society of Devices Buxton http://portal.acm.org/ft_gateway.cfm?id=966721&type=pdf
  30. Institut fur pervasisve computing http://www.pervasive.jku.at/Research/
Ferramentas pessoais