Semana 9 – Em nosso último encontro formal, nasce o Lagartixa Hacker Clube, primeiro makerspace do Estado de Goiás!!

Pois é, o tempo voou e chegamos à última semana da nossa ocupação…

Dia de comer uns salgados, tomar um refri, fazer um balanço e discutir o futuro!

DCIM106GOPRO

Começamos o encontro vendo um pouco do que existe para além do Arduino. Conhecemos o Raspberry Pi e o Beaglebone Black, dois computadores de uma só placa, do tamanho de cartões de crédito, que rodam linux, tem saída de vídeo, acessam a internet e que podem turbinar nossos projetos no futuro!

DCIM106GOPRO

Raspberry Pi

DCIM106GOPRO

Tela do Raspberry Pi rodando Linux, mais especificamente a IDE do Scratch

DCIM106GOPRO

Beaglebone Black

Quanto ao nosso balanço e perspectivas, em resumo, foi assim:

Começamos com 15 participantes e terminamos com 5. Lamentavelmente dez pessoas desistiram ao longo do caminho, por motivos diversos: para ter mais tempo para estudar para o vestibular, porque arranjaram um emprego, por não ter afinidade com o tema, por problemas familiares e outros.

Ao longo do processo, queríamos emplacar um projeto de cunho social para ajudar a resolver algum problema do entorno. Uma questão importante em Águas Lindas de Goiás é a dengue. Pensamos em um monitoramento de focos de dengue utilizando arduino e processing para a contagem automatizada de ovos de Aedes em ovitrampas. Chegamos a instalar ovitrampas para testes, mas nenhum ovo foi detectado, o que inviabilizou a continuidade do projeto. Inviabilizou temporariamente, porque provavelmente não detectamos mosquitos agora por ser o começo da estação seca. O projeto pode ser retomado no futuro.

IMG_4962

IMG_4961

Apesar das baixas, terminamos o processo de um modo maravilhoso: os 5 makers que puderam ir até o fim fundaram hoje o que acredito ser o primeiro makerspace do Estado de Goiás, que batizaram de Lagartixa Hacker Clube!

DCIM106GOPRO

Os fundadores do Lagartixa Hacker Clube! (da esquerda para a direita, Vagner, Eduardo, Thiago, Edson, Oda e Gabriel, e ao centro o robô Betinha)

A coordenação do CEU autorizou a turma a usar o laboratório multimídia nos fins de semana, período em que ficava fechado, e o lab agora tem internet. Para ajudar neste início, deixei um kit de arduino e o conjunto das peças que compunham o robô Betinha como doação para o clube. É um bom começo, e os lagartixas já marcaram um encontro no próximo sábado!

Em breve eles vão assumir o controle deste blog (culturadigital.br/maker), e já assumiram o controle do grupo do Whatsapp, inclusive já atualizaram a foto e o nome do grupo. Acho que estão bem encaminhados!

Seguem abaixo alguns agradecimentos:

  • à toda a equipe dos Labceus (UFPE e Ministério da Cultura) pelo apoio e confiança;

  • à equipe do Céu de Águas Lindas nos acolheu ao longo de dois meses e que hoje acolheu o Lagartixa Hacker Clube;

  • ao Josivan, funcionário do CEU sempre disponível para nos ajudar nos finais de semana;

  • à equipe do FabLab de Brasília, especialmente o André, que compartilhou conosco de modo muito generoso seu conhecimento;

  • ao Magnus, da ocupação Vídeo Especular, que se fez presente e nos ajudou tanto ao longo da nossa ocupação (vejam abaixo dois vídeos bacanas que os participantes da ocupação do Magnus fizeram quando estavam experimentando o KDELIVE, software livre para edição de vídeo, sobre a nossa ocupação);

  • à galera do Calango Hacker Club que nos estimulou muito ao longo do trabalho.

E um agradecimento final a todos e todas que participaram da ocupação, especialmente ao Eduardo, Vagner, Thiago, Gabriel e Edson que foram até o fim e que hoje fundaram o Lagartixa Hacker Clube, juntos com o robô Betinha!

Valeu galera, um grande abraço em cada um de vocês!

Avante Lagartixas, estamos juntos!!

Oda Scatolini

P.S.: Recebemos informações que no sábado seguinte ao nosso último encontro aconteceu de fato o primeiro encontro autônomo dos lagartixas. Soubemos que apareceu gente nova por lá, que já receberam mais doações de componentes, que vão fazer uma apresentação da proposta para a comunidade e que o Xexéu, coordenador do CEU, passou por lá para conversar com eles, dando apoio ao coletivo. Enfim, SÓ NOTÍCIAS BOAS!!!

IMG_5090 IMG_5091 IMG_5092 IMG_5093 IMG_5105

Publicado em Sem categoria | Deixar um comentário

Semana 8 – Cobrindo algumas brechas, usando um controle remoto e discutindo os projetos

A gente já sabe usar uma entrada analógica mas ainda não tínhamos experimentado uma chave digital, que é bem mais simples mas muito importante, olha só que brecha! É só usar a função digitalRead() e não se esquecer de colocar o resistor pull-down, senão com a chave aberta o pino não fica conectado ao GND e então a entrada pode oscilar entre HIGH e LOW aleatoriamente.

Testamos também um controle remoto via rádio com 4 canais, com ele é possível controlar quatro entradas do arduino à distância!

Além de experimentarmos entradas digitais, tiramos um tempo para pensarmos nos nossos projetos, o robô Betinha e um braço mecânico que o Edson e o Vagner construíram na faculdade e agora estão planejando automatizar usando arduino, servos e motores de passo!

Vejam as fotos:

IMG_4995 IMG_4996 IMG_4992 IMG_4989 IMG_4987 IMG_4986

Publicado em Sem categoria | Deixar um comentário

Semana 7 – Transistores, relês, motor DC e motor de passo!

Hoje aproveitamos nosso encontro para aprendermos mais algumas manhas.

Aprendemos como funciona um transistor. Tem o emissor, a base e o coletor, e funciona mais ou menos como uma torneira, onde a base é o controle. Variando a tensão entre base e emissor é como se a gente estivesse abrindo ou fechando a torneira, varia a corrente entre o coletor e o emissor.

transistor_analogy

Com transistores a gente consegue controlar coisas que precisam de mais corrente do que os pinos do arduino pode fornecer. O arduino é bom pra controlar as coisas, mas é fraquinho de corrente. É que nem uma pessoa aprende fácil a realizar as tarefas que a gente pede, mas não tem a força nos músculos necessária, rs!

Usando um transistor conseguimos controlar o motor DC (de corrente contínua) e ligar e desligar o laser, coisas que a gente não conseguia fazer antes.

motor-dc-transistor-d

int motor = 3;          // o transistor que controla o motor tem a base ligada ao pino 3
int velocidade = 100;   // a velocidade do motor pode variar de 0 a 255
 
void setup() 
{ 
  pinMode(motor, OUTPUT);
} 
 
 
void loop() 
{ 
      analogWrite(motor, velocidade);
} 

Aprendemos também a controlar uma carga AC (corrente alternada) de alta tensão, 220 volts no caso. Uamos o arduino com um relê e com isso conseguimos controlar uma lâmpada de 220V. Se conseguimos controlar a lâmpada agora a gente consegue controlar qualquer coisa de 220V, seja um ventilador, ar condicionado, ligar e desligar uma TV, etc.

Conhecemos também o famoso motor de passo, um atuador muito preciso e que como a gente tinha visto no FabLab é muito utilizado em impressoras 2D, 3D e máquinas CNC (Computer Numeric Control – Controle Numérico por Computador) em geral. O motor que a gente usou precisava de 200 passos pra dar uma volta completa. Vimos como transformar o movimento de rotação em movimento linear usando uma barra roscada, que é basicamente como muitas CNC funcionam. Sabendo quantas voltas o motor precisa dar para a porca correr um centímetro, conseguimos fazer um controle preciso de posição. Aprendemos também que para controlar um motor de passo a gente precisa de um driver (ponte H) e da biblioteca stepper.h do arduino.

Controlando um motor de passo sem potenciômetro:

#include <Stepper.h>
 
// numero de passos por volta do motor
int volta = 200;
 
// cria o motor, especificando o numero de passos por volta
// e em quais pinos o motor esta conectado
// pino 4: A1B
// pino 5: A1A
// pino 6: B1A
// pino 7: B1B
// Motor A -> Motor B: vermelho - amarelo - verde - cinza
// nao se esquecer de conectar o GND da fonte com o GND do arduino
Stepper motorpasso(volta, 4, 5, 6, 7);
 
 
void setup()
{
  // estabelece a velocidade do motor em RPMs
  motorpasso.setSpeed(120);
}
 
void loop()
{
  // roda 50 voltas para frente
  motorpasso.step(volta * 50);
  // roda 50 voltas para tras
  motorpasso.step(-volta * 50);
}

Controlando um motor de passo com potenciômetro:

#include <Stepper.h>
 
// numero de passos por volta do motor
int volta = 200;
int veloc = 0;

int pot;
 
// cria o motor, especificando o numero de passos por volta
// e em quais pinos o motor esta conectado
// pino 4: A1B
// pino 5: A1A
// pino 6: B1A
// pino 7: B1B
// Motor A -> Motor B: vermelho - amarelo - verde - cinza
// nao se esquecer de conectar o GND da fonte com o GND do arduino
Stepper motorpasso(volta, 4, 5, 6, 7);
 
 
void setup()
{
Serial.begin(9600);
}
 
void loop()
{
  
  pot = analogRead(A0);
  pot = map(pot, 0, 1023, 0, 119);
  // estabelece a velocidade do motor em RPMs
  if (pot>60){
    veloc = pot-60;
    Serial.println(veloc);
    motorpasso.setSpeed(veloc);
    motorpasso.step(1);
  }
  else if (pot<60){
    veloc = -(pot-60);
    Serial.println(veloc);
    motorpasso.setSpeed(veloc);
    motorpasso.step(-1);
  }
}

Vejam algumas fotos do nosso encontro de hoje (essa caneta que usamos nos vidros não é marcador permanente!! É que não temos lousa, kkk!):


IMG_4947 IMG_4953 IMG_4954 IMG_4955

Publicado em Sem categoria | Deixar um comentário

Semana 6 – Dia de experimentar!

Agora já temos que a gente já tem um bom repertório de técnicas, que tal um dia livre para experimentações? Foi o que fizemos!

O Eduardo e o Thiago trabalharam para ressucitar o robô Betinha, que tinha sido queimado. Nessa nova versão o Betinha vai ser melhorado, por que não botar nele olhos de raios laser? Além do laser, começaram a trabalhar para equipar o Betinha com dois servos de rotação contínua para ele andar e um sensor de distância que vai possibilitar que ele desvie de obstáculos!

 

IMG_4885 IMG_4890 IMG_4892

IMG_4901

 

O Edson aproveitou para revisar o controle de motores com arduino usando potenciômetro. E se o potenciômetro fosse substituído com diferentes sensores, como o de luminosidade (LDR) ou de umidade do solo, por exemplo? Bora experimentar e entender como esses sensores funcionam! Ambos trabalham com resistência que varia com a luminosidade ambiente ou umidade. Novas idéias vão surgindo dessas experimentações…

IMG_4896

 

O Vagner pegou um circuito maluco de um tutorial que gerava som de acordo com a luminosidade e botou pra funcionar. Muito bom um dia livre para experimentar!

IMG_4897 IMG_4898

 

E aqui embaixo um pouco da evolução do Betinha ao longo da semana depois do nosso encontro:

 

E o papo maluco continua pelo Whatsapp:

IMG_4945

Publicado em Sem categoria | Deixar um comentário

Semana 5 – Um robô com “olhos” e a tão esperada visita ao FabLab!

Nesse dia a gente já chegou no CEU carregados de rango na mochila, ansiosos pra ir pro FabLab. Mas tinha um tempo antes de pegar o baú, então a gente aproveitou pra dar mais uma avançada na história dos robôs.

O Betinha, infelizmente, morreu durante a semana (RIP). RIP nada, a gente vai ressucitá-lo em breve! Hoje não vai dar tempo de fazer a autópsia, tudo que a gente sabe é que num dos testes a fonte deu um estouro e o pescoço dele não quis mais girar… Bom, vamos aprender outras coisas que na semana que vem a gente já faz o Betinha 2.0!

Esse negócio de o servo não dar uma volta completa deixou a comunidade maker com a pulga atrás da orelha, até que algum hacker mais abusado desmontou a parada, cortou uma trava aqui, botou um resistor ali e fez a parada rodar! Esses nerds são perigosos, é melhor não desafiar esses caras, kkk! Daí tanta gente começou a fazer isso que até os fabricantes de servos começaram a já vender os servos hackeados, chamando de servos de rotação contínua. Mas se quiser fazer na raça, tem vários tutoriais na internet, clique aqui para ver um deles.

Controlar esses servos é fácil: se botar 90, ele fica parado. Se colocar 0 ele roda a toda velocidade pra um lado, e 180, a toda velocidade pro outro lado. Os valores do meio servem pra controlar a velocidade. Mas precisa primeiro calibrar o motor, que a gente faz botando 90 e girando um potenciômetro que tem dentro do motor até ele ficar parado. Pronto! Com dois desses dá pra gente fazer um robô que vai pra frente, pra trás, pra direita e pra esquerda. Vamos fazer um então!

Como a gente ainda não sabe controlar o robô sem fio, como é que ele vai desviar pra não dar com a cara na parede? O negócio é usar algum sensor, e programar o robô pra ele desviar dos obstáculos…

Pegamos um sensor ultrassônico (que nome doido!). Ele funciona que nem um morcego: emite um som que vai bater no obstáculo e fazer um eco. Sabendo a velocidade do som e o tempo que o eco demorou pra voltar até o sensor, a gente consegue calcular a distância do objeto, é muito louco! Se a velocidade do som é 340 metros por segundo, fazendo um cálculo rápido aqui de cabeça a gente viu que pra andar um centímetro o som leva 29 milionésimos de segundo, ou 29 microssegundos. Considerando que o som vai andar o dobro da distância até o objeto – é claro mano, ele tem que ir até lá e voltar – a gente conseguiu fazer as contas. Pegamos uma trena e vimos que a parada é bem precisa

int  enviaUltrassom = 5;                  // pino 5 sera usado para enviar ultrassom
int  recebeUltrassom = 6;                 // pino 6 sera usado para enviar ultrassom
long duracao;                             // variavel que vai armazenar quantos microssegundos o som levou ate bater no obstaculo e voltar para o sensor
long distancia;                           // variavel que vai armazenar a vamos calcular com base na duracao 
int led = 9;                              // vamos ligar um led no/vai acender quando a distancia for curta

void setup() {
  Serial.begin(9600);                     // inicializa comunicacao serial
  pinMode(enviaUltrassom, OUTPUT);
  pinMode(recebeUltrassom, INPUT);
}

void loop() {
  digitalWrite(enviaUltrassom, LOW);      // nessas primeiras 5 linhas, desligamos o pino 5, ligamos por 10us e desligamos de novo
  delayMicroseconds(2);
  digitalWrite(enviaUltrassom, HIGH);
  delayMicroseconds(10);
  digitalWrite(enviaUltrassom, LOW);
  
  duracao = pulseIn(recebeUltrassom, HIGH); // quantos microssegundos levou para o sinal voltar ate o sensor
  
  distancia = duracao / 29 / 2;             // se o som leva 29us para percorrer um centimetro, basta dividirmos a duracao por 29 e teremos a 
                                            // distancia em centimetros. Devemos tambem dividir por dois, porque leva o dobro do tempo para ir e voltar.
  
  Serial.print("Distancia em CM: ");        // imprime a distancia no Monitor Serial
  Serial.println(distancia);  

  if (distancia < 10) {                     // se a distancia for menor que 10cm
    digitalWrite(led, HIGH);                // acende o led do pino 9
  }
  else {                                    // caso contrario (distancia maior ou igual a 10cm)
    digitalWrite(led, LOW);                 // apaga o led
  }

}

Depois juntamos os dois códigos, do servo de rotação contínua (que é praticamente igual ao da semana passada) e do sensor de distância, prendemos tudo em uma chapa de eucatex, alimentando o circuito com um powerbank, e o nosso primeiro robô autônomo funcionou! Agora sim var dar pra dar um grau no Betinha!

Aí vão o circuito e código desse robô:

robo_semana_5

#include <Servo.h>

Servo motorEsquerda;
Servo motorDireita;
int  enviaUltrassom = 5;
int  recebeUltrassom = 6;
long duracao;
long distancia = 20 ;
int led = 13;

void setup() {
  Serial.begin(9600);
  pinMode(enviaUltrassom, OUTPUT);
  pinMode(recebeUltrassom, INPUT);
  motorEsquerda.attach(10);
  motorDireita.attach(9);
}

void loop() {
  frente();
  digitalWrite(enviaUltrassom, LOW);
  delayMicroseconds(2);
  digitalWrite(enviaUltrassom, HIGH);
  delayMicroseconds(10);
  digitalWrite(enviaUltrassom, LOW);
  duracao = pulseIn(recebeUltrassom, HIGH);
  
  distancia = duracao / 29 / 2;
  
  //Serial.print("Distancia em CM: ");  
  //Serial.println(distancia);  

  if (distancia < 15) {
    digitalWrite(led, HIGH);
    parar();
    delay(2000);
    marchaRe();
    delay(1000);
    virarEsquerda();
    delay(2000);
  }

  else {
    digitalWrite(led, LOW);
    frente();
  }

}

void frente() {
  motorEsquerda.write(180);
  motorDireita.write(0);
}

void marchaRe() {
  motorEsquerda.write(0);
  motorDireita.write(180);
}

void virarDireita() {
  motorEsquerda.write(0);
  motorDireita.write(0);
}
void virarEsquerda() {
  motorEsquerda.write(180);
  motorDireita.write(180);
}

void parar() {
  motorEsquerda.write(90);
  motorDireita.write(90);
}


Depois pegamos uma van que a Prefeitura Municipal de Águas Lindas de Goiás descolou pra gente e partimos pra nossa tão esperada visita ao BSB FabLab! Não víamos a hora de ver as impressoras 3D e outros equipamentos ao vivo!

Galera na van

Vimos muita coisa legal pra ficar explicando aqui, então é melhor vocês verem o video da nossa visita. É longo, mas como é que a gente ia cortar as explicações que o André Leal deu pra gente com toda a atenção? No finalzinho do video, tem os depoimentos que a gente gravou na volta na van, dizendo o que a gente achou da visita. Valeu demais!!

A gente queria agradecer muito ao pessoal do BSB FabLab, especialmente o André Leal, que foi tão legal com a gente! E valeu também Prefeitura de Águas Lindas, que liberou uma van pra gente, e o pessoal do LabCEUs, sem vocês a gente não sabe quando ia conhecer essas paradas!

Publicado em Sem categoria | Deixar um comentário

Semana 4: O nascimento do robô Betinha

Hoje começamos vendo uns vídeos loucos. Um mostrava que o Processing não é tosco não. Enquanto a gente está aprendendo, olha o que já tem gente fazendo:

Os caras fizeram isso filmando uma dançarina de verdade com 3 Kinects, uns sensores de movimento e profundidade que foram feitos pra usar com video-game, mas que os makers estão hackeando pra usar em várias outras coisas por aí.

Depois vimos um video de uma câmera open-hardware chamada Pixy-cam. Vimos ela ao vivo também! É muito massa, reconhece as cores e usando dois motores servo dá pra fazer ela seguir os objetos, como se fosse um robô curioso.

Foi bom que já deu pra sacar o que são motores servo e ver algumas utilidades pra eles: movimento de pan (horizontal) e tilt (vertical) de câmeras, controle de altura e direção de drones em forma de avião, e ficamos pirando em robôs. Vamos aprender a controlar um servo então!

Mas antes, como é que vamos controlar o servo? Pensamos em usar um potenciômetro, que é um tipo de resistor variável com um controle que roda pra lá e pra cá, igual àqueles controles de volume de rádios antigos. Pra usar um potenciômetro com o Arduino, a gente tem que ligar ele numa das entradas analógicas, que são aquelas de A0 até A5, chamadas de Analog In na plaquinha. A gente conecta o pino do meio do potenciômetro em uma dessas entradas, numa ponta o GND e na outra +5v para alimentar. Depois é só usar a função analogRead() pra ler o valor de entrada:

s4-potenciometro-arduino

s4-cod-pot

Massa, usando o Serial.begin(9600) no setup() e Serial.println() no loop(), a gente consegue ver a variação do potenciômetro no Monitor Serial da IDE do Arduino! Varia de 0 até 1023. Com isso acho que a gente vai conseguir controlar a posição do servo motor!

Pra usar o servo motor a gente precisa carregar uma library, ou biblioteca, que tem umas funções que não vem embutidas no Arduino. A gente faz isso com a linha #include <Servo.h> . As bibliotecas de funções são arquivos com extensão “.h” que dão novas funcionalidades pro Arduino.

Como o servo não roda totalmente, só de um lado pro outro, de 0 até 180 graus, a gente usa um comando pra colocar o motor na posição que a gente quer, é bem fácil:

nomedoservo.write(posição);

Agora o negócio é botar o potenciômetro e o servo pra funcionarem juntos. E não é que o joystick tem dois potenciômetros lá dentro, um que varia quando mexemos a alavanca no eixo X e o outro no Y? Então se a gente programar pra controlar o motor com o potenciômetro, depois é só botar o joystick no lugar dele que nem precisa mudar o código!

Mas agora o bicho pegou… Como faz se o potenciômetro varia de 0 a 1023 e o servo de 0 a 180?! Ah, tem uma função no Arduino chamada map() que vem bem a calhar!

s4-servo-pot

s4-cod-servo-pot

b_IMG_4747

b_IMG_4755

b_IMG_4762

DCIM106GOPRO

 

No final todo mundo conseguiu controlar os servos com os joysticks, foi massa! Todo mundo já tá pensando nos robôs que dá pra fazer…

Quando o Thiago chegou em casa ele já botou a mão na massa e criou o seu primeiro robô, o Betinha, um robô skatista! Ficou muito massa!! A galera não vê a hora de ajudar o Thiago a incrementar o Betinha, vamos fazer isso nas próximas semanas!b_IMG_4772

Ah, e no final a gente ainda viu rapidinho como começar a controlar nosso game em Processing usando as variáveis keyPressed, key, mousePressed, mouseButton. Ainda é um controle meio tosco, mas já evoluiu mais um pouco!

E no whatsapp:

betinha-bom-dia

Publicado em Sem categoria | Deixar um comentário

Semana 3: Arduino funcionando e game em Processing!

Nesse sábado nosso time entrou em campo desfalcado… A Elizangela descolou um trampo e não vai mais poder vir aos sábados de manhã, a Danny teve que substituir a irmã dela no trabalho hoje, e acho que uns caras preferiram dormir até mais tarde ou dar um rolê de skate mesmo. Mas gente não desanimou não, tocamos o barco, tinha uma galera afim e finalmente a gente ia mexer no Arduino e começar a fazer um game em Processing, com desenhos de verdade, sem bolinhas e quadrados! O Gabriel que tava doente na semana passada veio, e mais tarde foi aparecendo mais gente!

Agora sim os Arduinos tão funcionando! A gente trocou umas idéias rápidas sobre eletrônica: voltagem, resistência, corrente, umas coisas que a gente já tinha estudado na escola. Pra acender um led precisa de mais ou menos um volt e meio, dependendo da cor, mas as saídas do Arduino são de 5v, então precisa botar um resistor em série com o led para acender, senão queima. É lógico que a gente queimou um led, kkk! Mas não foi por falta de resistor não, a gente tinha colocado sim!

blog-s3-fritzing-arduino-led

blog-s3-tela-arduino-codigo

A gente entendeu que o Arduino tem saídas digitais e analógicas. Nas digitais é tudo ou nada: ou acende ou apaga, 5v ou 0v, HIGH ou LOW. As analógicas na real nem são analógicas, mas elas fazem uma simulação usando um treco chamado PWM, ou Pulse Width Modulation, ou Modulação de Largura de Pulso: continua saindo sempre 5v, mas a saída fica piscando bem rapidinho e é como se saisse uma voltagem menor. Assim dá para acender um led com menos brilho, ou fazer ele oscilar tipo uma sirene, a gente fez isso!

A gente tinha combinado de parar de mexer só com bolinhas no Processing, então abrimos o Inkscape, um software livre para fazer desenhos vetoriais, bem maneiro. Conversamos sobre a diferença de imagem raster e vetorial. Raster é tipo as fotos jpg, bmp, png, gif, o que fica armazenado no arquivo são as cores de cada pixel. Quando a gente aumenta, perde a resolução, fica toda zoada. A vetorial, tipo svg, é mais ou menos como a gente faz no Processing, o arquivo tem as informações matemáticas que formam o desenho na hora. Na vetorial, não importa o tamanho que a gente coloca, ela não fica serrilhada!

Com o Inkscape a gente desenhou uns personagens, tipo espaçonaves, aviões e carros, só desenhos top, obras de arte mesmo. Depois a gente conseguiu importar esses desenhos no Processing e fazer eles andarem na tela. Ficou beleza, mas quando eles chegavam no final da tela eles sumiam! Eita, e agora, como a gente faz para eles não vazarem na capoeira?!

Daí a gente aprendeu que tem que criar umas regras, ou condições no programa. É fácil: se a tela tem 600 pixels de largura, é só a gente botar uma condição para quando o carro chegar perto disso voltar pro outro lado! Daí ao invés de a gente continuar incrementando a variável da coordenada x, a gente começa a decrementar, ou subtrair. Legal, mas daí ela vaza pelo lado esquerdo da tela…. Então a gente tem que botar outra condicional. Então a gente criou uma variável chamada “velocidade” que a gente somava na coordenada x a cada loop para dar o movimento, e ficava mudando ela de sinal toda vez que o carro chegava num canto da tela. Pra mudar o sinal é fácil, é só multiplicar a variável por -1!

blog-s3-tela-processing-play

Para ver o carro andando e o copiar o código, acesse este link.

blog-s3-tela-processing-codigo-1

blog-s3-tela-processing-codigo-2

Deu pra ver que esse negócio de condicional, ou “if”, que quer dizer “se” em português, é bem importante em programação, dá pra ir criando as regras que a gente precisa, tipo: se chegar perto do canto direito, volta pro esquerdo, if (x > 550) { velocidade = velocidade * -1; } . No final faltou a gente controlar as naves, carros e aviões com o teclado do computador, mas tudo bem, a gente já tava só o pó e ficou pra semana que vem, já aprendemos várias coisas novas hoje!

Na semana que vem, se der tudo certo, depois do nosso encontro aqui no CEU vamos pegar um busão da prefeitura e vamos lá pra Brasília visitar o FabLab (www.brasiliafablab.com.br) ! O pessoal de lá já falou que a gente pode ir que eles vão mostrar várias máquinas pra gente: impressoras 3D, CNC, cortadora laser e outras paradas. Vai ser da hora!!

Seguem algumas fotos que o Magnus cedeu pra gente!

foto-semana-3-10

foto-semana-3-7

foto-semana-3-4

E no Whatsapp:

wa-s3-2

wa-s3-1  wa-s3-3

Publicado em Sem categoria | Deixar um comentário

Semana 2 – A coisa começa a ficar mais “animada”!

Hoje a coisa avançou mais um bocado! Começamos vendo uns vídeos de um negócio chamado POV, Persistence of Vision, ou persistência da visão. Caramba, dá pra fazer um painel de leds tipo daqueles de busão usando só 7 leds!! Se tivesse que usar uns 300 a gente tava perdido, a parada é cara, mano!

Vimos que na realidade o Processing trabalha em loop, ou seja, fica executando as funções repetidamente do começo até o final várias vezes, pra sempre. Desse jeito então rola fazer umas animações! Até que enfim entendemos pra quê as variáveis tipo x e y que aprendemos em matemática na escola podem ser úteis, kkk! Se x era 1 e agora x = x+1, x agora é 2, mano! A bolinha anda pra direita!

Fizemos umas bolinhas rolarem pra lá e pra cá na tela, massa! Mas mexer só com bolinhas dá nos nervos, o cara falou que a gente vai avançar. Avança logo então, pô!

Agora a gente também já consegue controlar cor. Bem louco, o computador trabalha com RGB, red, green e blue, que é vermelho, verde e azul. Até inglês a gente tá aprendendo. Com as funções background(), fill() e stroke() a gente controla a cor do fundo de tela, do preenchimento e da borda dos desenhos. Se em cada cor a gente pode pode pôr uma quantidade de 0 até 255, então combinando os três canais de cor a gente pode fazer 256x256x256 cores. É cor pra caramba! Mais de 16 milhões de cores!

Fizemos as bolinhas se mexerem com o movimento do mouse também. Pelo menos isso né?! É tranquilo, é só usar as constantes embutidas no Processing, tipo mouseX e mouseY. E o computador é burro mesmo, se você trocar uma letra maiúscula por uma minúscula, não rola…

script2

script2-tela

Depois tentamos ligar os Arduinos, finalmente a gente ia acender uns leds! Mas aí deu chabú… O tal do Linux não reconhecia os Arduinos. Tenta pra lá, tenta pra cá e nada. Ainda bem que o Magnus, da ocupação de video, que manja muito de Linux estava lá e deu uma força. Enquanto ele arrumava lá o Oda mostrou no seu laptop como funcionava a linguagem de programação do Arduino, fazendo uns leds piscarem. Deu pra ver que a linguagem de programação do Arduino é bem parecida com o Processing, mas que ao invés de desenhar na tela, a gente pode acionar umas paradas, tipo leds e motores… Vamos ver então o que vai rolar na semana que vem, a coisa tá ficando mais interessante…

DCIM106GOPRO

DCIM106GOPRO

DCIM106GOPRO

DCIM106GOPRO

DCIM106GOPRO

Ah, e no Whatsapp…

wa-s2-1

wa-s2-2

wa-s2-3

wa-s2-4

wa-s2-5

Publicado em Sem categoria | Deixar um comentário

Vamos divulgar a nossa ocupação!

Seguem as lindas artes que o pessoal da coordenação dos LAbCEUs fez para a nossa ocupação, vamos divulgar em nossas redes sociais!

facaparte-com-data

 

facaparte-redessociais

 

 

Publicado em Sem categoria | Deixar um comentário

Semana 1 – Finalmente começamos!

Finalmente (quase) tudo funcionando e não é que hoje 15 hackers de Águas Lindas de Goiás chegaram junto e começaram a ocupar o antigo “telecentro” do tal do CEU – Centro de Esportes e Artes Unificados?! A gente sabia que lá tinha pista de skate, biblioteca, assistência social, quadra de futebol e salão de beleza, mas dessas paradas de nerd ninguém sabia não, kkk! Foi estranho, começaram a rolar uns scripts na tela e a sairem uns fios, arduinos, sensores e atuadores de caixas, e não é que o espaço começou a se transformar de um telecentro em um Makerspace?! As cabelereiras que estavam usando o espaço antes não gostaram muito não… Mas a gente se ajeita, tem lugar pra todo mundo!

DCIM106GOPRO

Hoje vimos uma apresentação sobre o que é esse tal de Maker Movement, ou Movimento Maker, ou Movimento do Faça Você Mesmo, enfim, vários nomes, mas uma só filosofia: criar, inventar, aprender e compartilhar o conhecimento. É massa!

Começamos a entender o que é programação e vimos como o computador é burro, aff! Tudo o que queremos fazer temos que explicar direitinho senão o coitado não entende…

E depois abrimos os kits dos tais dos Arduinos, umas plaquinhas azuis cheias de pinos, um tipo de um mini-computador. Vimos que dá pra fazer umas coisas bem doidas com eles e vimos vários componentes que vamos aprender a usar: motores, sensores de temperatura, de umidade do solo, joysticks, potenciômetros, sensor de luz… Tinha também uma geringonça feita para alimentar um gato gordo com uma ração que o outro gato magro não pode comer e vice-versa. Uma bagunça cheia de fios, parecia uma aranha! Era um protótipo ainda, mas já estava funcionando… Se o gato gordão chegasse perto com a coleira dele o pote de ração diet abria sozinho, mas se fosse o gato magro não abria não!

DCIM106GOPRO

Vimos também um video de um cara dos Estados Unidos que com a ajuda de outro cara da África do Sul usou uma impressora 3D e fez uma mão mecânica pro menino que tinha nascido com má formação. Gastou uns 10 dólares de plástico e o menino agora pode andar de bike e ajudar a mãe a carregar as compras. Muito massa!

protese-mao-impressora3d

Entendemos que o Processing é uma linguagem de computação muito usada pelos artistas digitais. Mão na roda para quem gosta de grafite, hiphop ou para os que que gostam mesmo é de ficarem em casa curtindo um video-game. Começamos a entender o que é resolução de tela, coordenadas, e no final é tudo matemática mesmo. Desenhamos no Processing círculos, retângulos e outras coisas usando comandos, tipo ellipse(), rect(), triangle() e line(). Cada função precisa de um número de parâmetros diferentes. É claro, como é que a gente vai fazer uma linha se não tiver 2 pontos, ou um triângulo se não tiver 3 pontos? O triângulo precisa de 3 pontos, e cada ponto precisa de duas coordenadas, então a função triangle() precisa de seis parâmetros. É simples, pô! E não é que o computador obedece mesmo?

 script1

script1-tela

Agora a gente tá na expectativa do próximo sábado. Já deu pra ver que não tem jeito, tem que entender o básico mesmo antes de sair fazendo jogos e impressoras 3D. Mas deu pra ver que dá pra gente fazer essas paradas! Vamos nessa!

Ah, e criamos um grupo no whatsapp!

image_1 image_3 image_5 image

Publicado em Capa | 3 comentários