quarta-feira, 21 de agosto de 2019

XI - ENCONTRO: DADO VIRTUAL (3ª parte)

XI - ENCONTRO: DADO VIRTUAL (3ª parte)

Olá turma, em nosso encontro do dia 16/08/2019 continuamos a montagem do nosso da do virtual e colocamos um botão para simular o lançamento de dado.
Pressiona-se o botão e quando ele é solto um número aleatório é gerado e exibido na face do dado (LEDs).
Outra parte do grupo de alunos continuou fazendo teste de montagens com o kit ATTO, vendo as possibilidades para a reconstrução do guindaste.

Nossas atividades
Mecânica;
Montagem de estruturais com o kit ATTO.

Eletrônica:
Inserção do botão no circuito: quando pressionado ele envia nível lógico 0  para o pino 6 do arduino, que ficou configurado com nível lógico 1.




Programação:
Configuramos o pino digital 6 do arduíno como modo de  entrada e mantivemos ele em estado alto através de um resistor interno de INPUT_PULLUP.
comando pinMode(pino, modo).
Para fazer a leitura do botão configuramo o pino 6 como digitalRead( ).

Para gerar o número aleatório usamos a função interna do linguagem do arduino chamada random(min, max).

Também criamos uma função para selecionar e mostrar o número:
void mostrarNum(int num){
  if(num==1)fazer1();
  if(num==2)fazer2();
  if(num==3)fazer3();
  if(num==4)fazer4();
  if(num==5)fazer5();
  if(num==6)fazer6();
}

Realizamos testes, segue abaixo o código, caso queiram realizar modificações, fique a vontade
Código

Abraço a todos




X - Encontro: Dado Virtual 2ª parte

X Encontro: Dado virtual 2ª parte

Olá turma, neste encontro do dia 09/08/2019, continuamos a programação do nosso dado. corrigimos bugs nos programas e fizemos correções em montagens que não estavam funcionando.
Como proposta para ampliar nossos conhecimentos foi proposto aos alunos mais avançados criar um acionamento sequencial do dado, ou seja, ele acende as faces do dado uma a uma no intervalo de 2 segundos.
Paralelo a esta atividade outro grupo de alunos retomou a montagem do guindaste
Nossas atividades
Programação
Trabalho com funções com e sem passagem de parâmetros.
Revisar  comandos do arduino:

delay( )

Em nosso programa do dado criamos uma função para mostrar sequencialmente as faces do dado em ordem crescente: do 1 até número 6
void sequenciar(int tempo){
 fazer1();
 delay(tempo);
 fazer2();
 delay(tempo);
 fazer3();
 delay(tempo);
 fazer4();
 delay(tempo);
 fazer5();
 delay(tempo);
 fazer6();
 delay(tempo); 
  
}



Abraço a todos


segunda-feira, 19 de agosto de 2019

Dado virtual - código

Programação Dado Virtual

Olá turma, código do dado com botão para vocês brincarem e alterarem.

/* Ao apertar o botão um número é sortedo e exibido

*/
//variaveis para os leds
int led1=7;
int led2=8;
int led3=9;
int led4=10;
int led5=11;
int led6=12;
int led7=13;
int num=6;

//configura botoes
int botao=6;


void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(botao,INPUT_PULLUP);

  
}

void loop()
{
  if (digitalRead(botao)==LOW){  
num=random(1,7);
    acenderTudo();
delay(200);
  apagarTudo();
    delay(200);
  }   
mostrarNum(num); 
}


//acender todos
void acenderTudo(){
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
}

//apagar todos
void apagarTudo(){
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
  digitalWrite(led6, LOW);
  digitalWrite(led7, LOW);
}

//piscar todos
void piscar(){
  acenderTudo();
  delay(500);
  apagarTudo();
  delay(500);
}
//fazer 1 (acender led4
void fazer1(){
  digitalWrite(led4, HIGH);
  delay(200);
}

//fazer 2 (acender led3  e led5)
void fazer2(){
  apagarTudo();
  digitalWrite(led3, HIGH);
  digitalWrite(led5, HIGH);
  delay(200);
}
void fazer3(){
  apagarTudo();
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  delay(200);
}
void fazer4(){
  apagarTudo();
  digitalWrite(led1, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led7, HIGH);
  delay(200);
}
void fazer5(){
  apagarTudo();
  digitalWrite(led1, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led7, HIGH);
  delay(200);
}
void fazer6(){
  apagarTudo();
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
  delay(200);
}
void sequenciar(int tempo){
 fazer1();
 delay(tempo);
 fazer2();
 delay(tempo);
 fazer3();
 delay(tempo);
 fazer4();
 delay(tempo);
 fazer5();
 delay(tempo);
 fazer6();
 delay(tempo);   
}

//exibir

void mostrarNum(int num){
  if(num==1)fazer1();
  if(num==2)fazer2();
  if(num==3)fazer3();
  if(num==4)fazer4();
  if(num==5)fazer5();
  if(num==6)fazer6();
}

sexta-feira, 9 de agosto de 2019

IX - ENCONTRO: DADO VIRTUAL

IX - ENCONTRO: DADO VIRTUAL

Olá turma,, em nosso encontro do dia 02/08/2019 demos uma pausa em nosso guindaste para retomarmos conceitos de eletrônica e programação. Para tal iniciamos um projeto de dado virtual.
Nesta primeira etapa iniciamos a montagem do circuito no Tinkercad e a programação para acender os leds através do arduino.
Eletrônica
Montamos os leds na  protoboard e fizemos as conexões com os pinos do arduino.
Padronizamos:
led1---------------------pino 7
led2---------------------pino 8
led3---------------------pino 9
led4---------------------pino 10
led5---------------------pino 11
led6---------------------pino 12
led7---------------------pino 13

Veja imagem:

Colocamos 2 resistor de 220 ohms nos catodos e ligamos os anodos do leds diretamente nos pinos do arduino.
Caso a montagem fosse física preferível ligar os catodo diretamente no negativo e  em cada anodo colocar um resistor que se conectaria aos pinos do arduino.

Programação:
Criamos variáveis para  para acender cada um dos leds e depois criamos  funções para simular acender todos os leds, apagar todos e acender cada face do dado:
//variaveis para os leds
int led1=7;
int led2=8;
int led3=9;
int led4=10;
int led5=11;
int led6=12;
int led7=13;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
 
}

void loop()
{
  //digitalWrite(led4, HIGH);
 piscar();
// fazer1();
  
}
//acender todos
void acenderTudo(){
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  digitalWrite(led7, HIGH);
}

//apagar todos
void apagarTudo(){
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);
  digitalWrite(led5, LOW);
  digitalWrite(led6, LOW);
  digitalWrite(led7, LOW);
}

//piscar todos
void piscar(){
  acenderTudo();
  delay(500);
  apagarTudo();
  delay(500);
}
//fazer 1 (acender led4
void fazer1(){
  digitalWrite(led4, HIGH);
  delay(200);
}

//fazer 2 (acender led3  e led5)
void fazer2(){
  apagarTudo();
  digitalWrite(led3, HIGH);
  digitalWrite(led5, HIGH);
  delay(200);
}
//Seguir o pad
void fazer3(){
  
}

Ficou como tarefa a turma terminar o código até a face 6

Abraço a todos

quinta-feira, 8 de agosto de 2019

VIII - Encontro: Projeto Guindaste 3ª parte

VIII - Encontro: Projeto Guindaste 3ª partemeu ip

Olá pessoal, neste encontro do dia 26/07/2019 continuamos realizando teste e modificações em nosso guindaste. Nos testes preliminares, levantar e abaixar foi positivo, porém o giro para as laterais ainda apresenta problemas.
Nossa atividades
Programação:
Teste do código
Mecânica:
Testes e modificações na estrutura


Abraço a todos

quinta-feira, 1 de agosto de 2019

VII - Encontro: Projeto Guindaste 2ª parte

VII - Encontro: Projeto Guindaste 2ª parte

Olá turma, neste encontro do dia 28/06/2019, continuamos a montagem mecânica do guindaste e paralelo a isto, outra parte da equipe pesquisou na internet o funcionamento de garras mecânicas e como criar comandos eletrônicos e de programação para os motores e botões do guindaste.

Nossas atividades
Mecânica
Montagem da base do guindaste e inserção dos motores
Teste com as roldanas
Pesquisa na internet sobre o funcionamento de garras mecânicas

Programação
Estudo de código para acionar os motores e leitura de potenciômetro

Abraço a todos