Compus Party - processing e arduino

4,694 views

Published on

2 Comments
11 Likes
Statistics
Notes
No Downloads
Views
Total views
4,694
On SlideShare
0
From Embeds
0
Number of Embeds
854
Actions
Shares
0
Downloads
0
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide

Compus Party - processing e arduino

  1. 1. + <ul><li>Palestrante: Adauto Silva </li></ul><ul><li>Email: Adauttosilva@gmail.com </li></ul>
  2. 2. O QUE É PROCESSING?
  3. 3. O QUE É PROCESSING? <ul><li>É um ambiente de programação. </li></ul><ul><li>Open-source. </li></ul><ul><li>Resultado da simplificação de Java com C++. </li></ul><ul><li>Utilizada na aprendizagem, prototipagem e produção. </li></ul>http://diegovics.blogspot.com/2011/04/processing.html/
  4. 4. HISTÓRICO <ul><li>Iniciou em 2001 </li></ul><ul><li>Casey Reas </li></ul><ul><li>Benjamin Fry </li></ul>http://90.146.8.18/en/archives/picture_ausgabe_02_new.asp?iAreaID=274&showAreaID=292&page=16&pagesize=20&order=source
  5. 5. VANTAGENS DO PROCESSING <ul><li>Bem documentado (apesar da maioria esmagadora do material ser em inglês). </li></ul><ul><li>Com várias API’s (Interface de Programação de Aplicativos). </li></ul><ul><li>Download grátis e código aberto. </li></ul><ul><li>Permite a construção de programas interativos usando saída 2D, 3D ou PDF. </li></ul><ul><li>OpenGL para aceleração 3D. </li></ul><ul><li>Disponível para Linux, Windows e Mac. </li></ul><ul><li>Projetos rodam on-line ou com executáveis. </li></ul><ul><li>Mais de 100 bibliotecas que estendem o software em termos de som, vídeo, visão computacional, entre outros. </li></ul>
  6. 6. VANTAGENS DO PROCESSING <ul><li>Bem documentado (apesar da maioria esmagadora do material ser em inglês). </li></ul><ul><li>Com várias API’s (Interface de Programação de Aplicativos). </li></ul><ul><li>Download grátis e código aberto. </li></ul><ul><li>Permite a construção de programas interativos usando saída 2D, 3D ou PDF. </li></ul><ul><li>OpenGL para aceleração 3D. </li></ul><ul><li>Disponível para Linux, Windows e Mac. </li></ul><ul><li>Projetos rodam on-line ou com executáveis. </li></ul><ul><li>Mais de 100 bibliotecas que estendem o software em termos de som, vídeo, visão computacional, entre outros. </li></ul>
  7. 7. INTERFACE PROCESSING http://processing.org/about/
  8. 8. Bloco Principal <ul><li>Void Setup() </li></ul><ul><li>Void draw() </li></ul>
  9. 9. EXEMPLO DE PROGRAMAÇÃO int x=255, y=0, troca, ativo=0; //declaração de variáveis globais. void setup() //tudo que vai ser carregado no inico do programa. { size (200,200); //dimensiona tamanho da tela. background (255); //determina cor de fundo principal. } void draw() //loop que desenha as interações. { background (255); //determina a cor periodicamente, //limpando as interações da tela. println ( mouseX ); //escreve a posição do mouse em X. println ( mouseY ); //escreve a posição do mouse em Y. FORMAS PARTE 1
  10. 10. EXEMPLO DE PROGRAMAÇÃO stroke (2); //cor do traçado. strokeWeight (3); //largura do traçado. fill (x); //muda a cor dos objetos seguintes. rect (50,50,50,50); //desenha um quadrado de inicio em 50,50 //e de tamanho 50x50. fill (0); line (50,50,100,100); //desenha uma linha (x,y) //de inicio em 50,50 e termino em 100,100. line (100,50,150,100); line (50,100,100,150); fill (y); rect (100,100,50,50); fill (0); line (100,100,150,150); FORMAS PARTE 2
  11. 11. EXEMPLO DE PROGRAMAÇÃO if ( mousePressed ) //se mouse pressionado. { fill (150); ellipse ( mouseX , mouseY ,30,30); //cria uma elipse. fill (0); } } void mouseClicked () //se mouse clicado. { if ( mouseX >100 && mouseX <150 && mouseY >100 && mouseY <150 && ativo==0) { troca=x; FORMAS PARTE 3
  12. 12. EXEMPLO DE PROGRAMAÇÃO x=y; y=troca; ativo=1; } if ( mouseX >50 && mouseX <100 && mouseY >50 && mouseY <100 && ativo==1) { troca=x; x=y; y=troca; ativo=0; } } FORMAS PARTE 4
  13. 13. EXEMPLO DE PROGRAMAÇÃO RESULTADO Imagem própria
  14. 14. EXEMPLOS COM PROCESSING http://australianrobotics.com.au/products/getting-started-with-processing http://www.randomtype.com/?p=55 http://createdigitalmotion.com/2008/02/processing-class-in-new-york-online-art-from-code-for-non-coders/ http://twr.cs.kuleuven.be/researchTopics.html http://nomada.blogs.com/jfreire/2006/04/software_art_ca.html
  15. 15. LIVROS Processing: A programming Handbook for visual Designers and Artists, Casey Reas and Ben Fry, 2007 Processing: Creative Coding and Computational Art, Ira Greenberg, 2007
  16. 16. Arduino – USO E APLICAÇÕES
  17. 17. COMPUTAÇÃO FISICA
  18. 18. HISTÓRICO <ul><li>Local Ivrea, Itália </li></ul><ul><li>Ano 2005 </li></ul><ul><li>Comunidades Digitais em 2006 </li></ul><ul><li>Pris Arm Eletronicas </li></ul><ul><li>50.000 Placas </li></ul>
  19. 19. HISTÓRICO <ul><li>Gianluca Martino </li></ul><ul><li>David Mellis. </li></ul><ul><li>David Cuartielles </li></ul><ul><li>Tom Igoe </li></ul><ul><li>Massimo Banzi </li></ul>http://pt.wikipedia.org/wiki/Arduino http://pt.wikipedia.org/wiki/Arduino
  20. 20. O QUE È ARDUINO? http://www.arduinobrasil.com/2011/01/uno/,
  21. 21. O QUE É ARDUINO? <ul><li>É uma placa Open-source </li></ul><ul><li>Microcontrolador Atmel </li></ul><ul><li>Suporte a entradas e saidas </li></ul><ul><li>Linguagem de programação Wiring C/C++ </li></ul>
  22. 22. ARDUINO UNO http://www.arduinobrasil.com/2011/01/uno/,
  23. 23. PWM http://www.arduino.cc/en/Tutorial/PWM http://pt.wikipedia.org/wiki/Arduino
  24. 24. MODELOS DE ARDUINOS <ul><li>' </li></ul>http://www.arduino.cc/en/Tutorial/PWM http://leomar.com.br http://leomar.com.br http://leomar.com.br http://pt.wikipedia.org/wiki/Arduino http://www.arduino.cc/en/Tutorial/PWM
  25. 25. MODELOS DE SHIELD http://www.jarenhavell.com/Projects/projects/arduino/ http://nicegear.co.nz/arduino-shields/gsm-cellular-shield-with-sm5100b/ http://www.robotshop.com/ProductInfo.aspx?pc=RB-Ard- 05
  26. 26. MODELOS CLONES http://www.solarbotics.com/products/28920 / http://brasuino.holoscopio.com/
  27. 27. MODELOS USANDO OUTRO MICROCONTROLADOR http://www.bugblat.com/products/cor.html http://www.zeitounian.com.br/pinguino/
  28. 28. VANTAGENS DO ARDUINO <ul><li>Fácil programação. </li></ul><ul><li>Inúmeras aplicações. </li></ul><ul><li>Bastante material documentado. </li></ul><ul><li>Prático. </li></ul><ul><li>Possui vários Shields (Rede, Bluetooth, GSM...) </li></ul><ul><li>Barato. </li></ul>http://technabob.com/blog/2008/10/27/arduino-gamepack-make-your-own-open-source-gameboy/ http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/
  29. 29. INTERFACE DE PROGRAMAÇAO http://www.openframeworks.cc/ http://pyserial.sourceforge.net/ http://www.openframeworks.cc/ http://pyserial.sourceforge.net/
  30. 30. IDE ARDUINO <ul><li>http://www.arduino.cc/en/Main/Software </li></ul>Fonte Própria
  31. 31. Bloco Principal <ul><li>Void Setup() </li></ul><ul><li>Void loop() </li></ul>
  32. 32. Instrunções básicas <ul><li>pinMode(pino, nível logico); </li></ul><ul><li>digitalRead(pino); </li></ul><ul><li>digitalWrite(pino, nível logico); </li></ul><ul><li>analogRead(pino); </li></ul><ul><li>delay(ms); </li></ul>
  33. 33. Liga led <ul><li>void setup(){ </li></ul><ul><li>pinMode(13,OUTPUT); // define que o pino 13 é saida </li></ul><ul><li>} </li></ul><ul><li>void loop(){ </li></ul><ul><li>digitalWrite(13,HIGH); // coloco o pino 13 em nivel logico alto </li></ul><ul><li>} </li></ul>
  34. 34. Polaridade do LED http://lusorobotica.com/index.php?topic=1768 .0
  35. 35. Tabela de Cores http://www.eletrica.info/tabela-de-resistores/
  36. 36. Tabela de Cores http://www.eletrica.info/tabela-de-resistores/
  37. 37. Liga led http://makebits.net/arduino-de-principiante-a-utilizador-avancado-aula-1/ http://makebits.net/arduino-de-principiante-a-utilizador-avancado-aula-1/
  38. 38. Pisca led <ul><li>// Programa para pisca um led. </li></ul><ul><li>void setup(){ </li></ul><ul><li>pinMode(13,OUTPUT); // define que a porta 13 vai ser saida </li></ul><ul><li>} </li></ul><ul><li>void loop(){ </li></ul><ul><li>digitalWrite(13,HIGH); // colocao nivel da porta 13 alto =5V </li></ul><ul><li>delay(1000); // gera um atraso de 1 segundo. </li></ul><ul><li>digitalWrite(13,LOW); // coloca o nivel da porta 13 baixo =0V </li></ul><ul><li>delay(1000); // gera um atraso de 1 segundo. </li></ul><ul><li>} </li></ul>
  39. 39. Leitura analógica <ul><li>// Controlar a velocidade do pulso das bobinas do motor de passo </li></ul><ul><li>int temp; // cria uma variavel. </li></ul><ul><li>void setup() { </li></ul><ul><li>pinMode(13,OUTPUT); // define que a porta 13 vai ser saida </li></ul><ul><li>pinMode(12,OUTPUT); // define que a porta 12 vai ser saida </li></ul><ul><li>pinMode(11,OUTPUT); // define que a porta 11 vai ser saida </li></ul><ul><li>pinMode(10,OUTPUT); // define que a porta 10 vai ser saida </li></ul><ul><li>} </li></ul><ul><li>void loop() { </li></ul><ul><li>temp=analogRead(A0); // temp recebe o valor lido na porta analogica </li></ul><ul><li>digitalWrite(13, HIGH); // colocao nivel da porta 13 alto =5V </li></ul><ul><li>delay(temp); //atraso em ms. </li></ul><ul><li>digitalWrite(13, LOW); // coloca o nivel da porta 13 baixo =0V </li></ul><ul><li>delay(temp); //atraso em ms. </li></ul><ul><li>digitalWrite(12, HIGH); // colocao nivel da porta 12 alto =5V </li></ul><ul><li>delay(temp); //atraso em ms. </li></ul><ul><li>digitalWrite(12, LOW); // coloca o nivel da porta 12 baixo =0V </li></ul><ul><li>delay(temp); //atraso em ms. </li></ul><ul><li>digitalWrite(11, HIGH); // colocao nivel da porta 11 alto =5V </li></ul><ul><li>delay(temp); </li></ul><ul><li>digitalWrite(11, LOW); // coloca o nivel da porta 11 baixo =0V </li></ul><ul><li>delay(temp); </li></ul><ul><li>digitalWrite(10, HIGH); // colocao nivel da porta 10 alto =5V </li></ul><ul><li>delay(temp); </li></ul><ul><li>digitalWrite(10, LOW); // coloca o nivel da porta 10 baixo =0V </li></ul><ul><li>delay(temp); </li></ul><ul><li>} </li></ul>
  40. 40. EXEMPLOS COM ARDUINO http://andyplekhanov.narod.ru/hard/arduino/arduino.htm http://technabob.com/blog/2008/10/27/arduino-gamepack-make-your-own-open-source-gameboy/ http://blog.bricogeek.com/noticias/electronica/video-osciloscopio-con-arduino-y-pantalla-grafica-lcd/ http://artduino.wordpress.com/ http://www.hardwaresphere.com/2010/05/19/arduimu-quascopter-the-diy-arduino-helicopter-that-can-avoid-obstacles/
  41. 41. ARM 500 – EQUIPE TECH HUNTERS Imagem própria http://www.equipetechhunters.blogspot.com
  42. 42. PROCESSING + ARDUINO http://www.arduino.com.br/blog/
  43. 43. OBJETIVO Criar uma interface no Processing constituida de um botão que acenderá e apagará um led no Arduino. Além de um botão fisico no Arduino que apagará o led quando pressionado, tendo que a interface Processing demonstrará o ocorrido. LED desligado LED ligado Imagem própria.
  44. 44. http://www.arduino.cc/
  45. 45. PROGRAMANDO ARDUINO int dados, entra=0, val; //declaração de variáveis.   void setup() //configurações padrão de seu programa que são //executadas uma vez. { Serial.begin (9600); //defino que a porta seria vai ter uma taxa //de transferencia de dados de 9600bps. pinMode (13, OUTPUT ); // defino que o pino 13 é saida. pinMode (12, INPUT ); // defino que o pino 12 é entrada. } PARTE 1
  46. 46. PROGRAMANDO ARDUINO void loop() //vai ser um loop infinito. { if ( Serial.available() > 0) //quando a serial tiver dados. { dados = Serial.read() ; //dados assume o valor lido da serial. if (dados=='l') digitalWrite (13, HIGH ); //ativa a saida do pino 13 ligando o led. if (dados=='d') digitalWrite (13, LOW ); //desativa a saida do pino 13 desligando o led. } PARTE 2
  47. 47. PROGRAMANDO ARDUINO val = digitalRead(12 ) ; //val assume valor lido do pino 12. if (val== HIGH && entra==0) { Serial.print ( 'q' ) ; //escreve na serial uma variável. entra=1; } if (val== LOW && entra==1) { Serial.print ( 'w ') ; entra=0; } } PARTE 3
  48. 48. http://tutoriais01.blogspot.com/2011/03/programacao-c-aula-1.html
  49. 49. INTERFACE PROCESSING import processing.serial.* ; //importa a biblioteca para comunicação //serial. Serial porta; //declara porta.   int button1=0; //declara as variáveis. int entrada=0;   void setup() //tudo que vai ser carregado no inico do programa. { size (200,200); //tamanho da tela. background (255); //cor do fundo preta. porta = new Serial(this, Serial.list() [0], 9600); //cria objeto serial. } PARTE 1
  50. 50. INTERFACE PROCESSING   void mouseClicked() { //quando o mouse é clicado. if ( mouseX >50 && mouseX <150 && mouseY >50 && mouseY <150 && button1==0 && entrada==0) //condição para acontecer a ação. { button1=1; rect (50, 50, 100, 100); //desenha um quadrado. fil l (255,0,0); //muda a cor dos objetos seguintes. porta.write ('l'); //envia para porta serial um valor. } else if ( mouseX >50 && mouseX <150 && mouseY >50 && mouseY <150 && button1==1) { button1=0; PARTE 2
  51. 51. INTERFACE PROCESSING   rect (50, 50, 100, 100); fill (255,255,255); porta.write ('d'); } } void draw() //loop que desenha as interações. { rect (50, 50, 100, 100); if ( porta.available() > 0) //quando a serial tiver dados. { entrada = porta.read() ; //lê a porta serial. println (entrada); //imprime o valor da variável no 'text area' do programa. } PARTE 3
  52. 52. INTERFACE PROCESSING   if (entrada==113) //113 é a representação em ascii de 'q'. { fill (255,255,255); porta.write ('d'); entrada=67; //numero qualquer só para dar efeito a rotina. } if (entrada==119) //119 é a representação em ascii de 'w'. { entrada=0; } } PARTE 4
  53. 53. REFERÊNCIAS       http://processing.org/ http://arduino.cc/ http://equipetechhunters.blogspot.com/ http://www.arduino.com.br/blog/ http://pt.wikipedia.org/wiki/Arduino/

×