Olá turma;
Este último encontro, 08/12/2017, teve baixa participação presencial, pois as férias estão chegando e alguns já a anteciparam.
Sem problema para o nosso processo de avaliação, pois nossas questões foram sendo discutidas ao longo dos encontros.
Concluímos os projetos:
semáforo;
cadeira giratória;
carrinhos elétricos com sucata;
sensor de distância ultrassônico (simulador virtual);
sensor de luz LDR (simulador virtual);
Durante nosso projeto surgiu a possibilidade de realizarmos montagens físicas com o arduíno graças ao recebimento do kit arduino ganho pelo professor na oficina USP/CODEIoT. De forma que montamos:
um sensor de luz com LDR
uma automatização de ventilador: só liga a partir de uma dada temperatura. Este circuito foi sugerido pela equipe de robótica, mas concluído com alunos que ainda não fazem parte da equipe. pois realizou-se em outros dias.
Projetos não concluídos:
Carrinho de sucata com o uso de polias.
Carro robótico com sensor de distância.
Para o próximo ano teremos velhos e novos desafios, velhos e novos alunos, sempre mantendo o espírito de colaboração e respeito, sempre curiosos!!!
P.S.
Devido a correria de final de ano - fechamento de notas, conselho de classe, correção de registros e pendências não pude manter em dia o blog. Peço desculpa, espero que entendam!
Bom Ano Novo a todos!
Prof. Paulo
sábado, 30 de dezembro de 2017
Vigésimo quinto encontro - Carro robótico
Olá turma,
Este encontro,dia 01/12/2017, serviu para concluirmos a parte de programação referente a movimentação do carro, criamos funções para:
avançar;
recuar;
parar;
ir para a direita;
ir para a esquerda;
// Controle de motores
//
int led = 13;
int tempo = 100;
int sentA = 10;
int sentB =11;
int mtA = 5; //motor A
int mtB = 6; //motor B
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(3, OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(mtA,OUTPUT);
pinMode(mtB,OUTPUT);
}
//Dentro do loop são executadas as funções que criamos:
void loop() {
piscar();
avancar();
}
//função piscar
void piscar() {
digitalWrite(led,HIGH); // turn the LED on (HIGH is the voltage level)
delay(tempo); // espera 1 segundo
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW - apaga o led
delay(tempo);
}
//
void motorA(int velA){
analogWrite(mtA,velA);
}
void motorB(int velB){
analogWrite(mtB,velB);
}
void avancar(){
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
motorA(250);
motorB(250);
}
void recuar(){
digitalWrite(10,LOW);
digitalWrite(11,LOW);
motorA(250);
motorB(250);
}
void parar(){
motorA(0);
motorB(0);
}
void irDireita(int vel){
motorA(vel);
motorB(0);
}
void irEsquerda(int vel){
motorA(0);
motorB(vel);
}
Está funcional e operante.
Para o próximo ano faremos melhorias
Abç a todos
Este encontro,dia 01/12/2017, serviu para concluirmos a parte de programação referente a movimentação do carro, criamos funções para:
avançar;
recuar;
parar;
ir para a direita;
ir para a esquerda;
// Controle de motores
//
int led = 13;
int tempo = 100;
int sentA = 10;
int sentB =11;
int mtA = 5; //motor A
int mtB = 6; //motor B
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(3, OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(mtA,OUTPUT);
pinMode(mtB,OUTPUT);
}
//Dentro do loop são executadas as funções que criamos:
void loop() {
piscar();
avancar();
}
//função piscar
void piscar() {
digitalWrite(led,HIGH); // turn the LED on (HIGH is the voltage level)
delay(tempo); // espera 1 segundo
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW - apaga o led
delay(tempo);
}
//
void motorA(int velA){
analogWrite(mtA,velA);
}
void motorB(int velB){
analogWrite(mtB,velB);
}
void avancar(){
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
motorA(250);
motorB(250);
}
void recuar(){
digitalWrite(10,LOW);
digitalWrite(11,LOW);
motorA(250);
motorB(250);
}
void parar(){
motorA(0);
motorB(0);
}
void irDireita(int vel){
motorA(vel);
motorB(0);
}
void irEsquerda(int vel){
motorA(0);
motorB(vel);
}
Está funcional e operante.
Para o próximo ano faremos melhorias
Abç a todos
Vigésimo quarto encontro - Montagem carro e IoT
Vigésimo quarto encontro - Montagem de carro e uso do kit IoT
Salve turma, neste encontro de 24/11/2017, montamos nosso carro com o Kit Atto, iniciamos as programação do mesmo e ainda houve tempo para uma parte da turma trabalhar no kit de arduino recebido do CODE IoT - montagem do sensor de luz que havíamos projetado no simulador Tinkercad.
Atividades:
Montagem de carro com o Kit Atto.
Montagem de sensor de luz com kit CodeIoT.
Montagem de sensor de luz com kit CodeIoT.
Programação
Iniciamos o código para acionar os motores e controlar a velocidade
Localizamos as portas do kit que controlam os motores
Pensamos em maneiras de organizar nosso código.
Realizamos testes iniciais
Iniciamos o código para acionar os motores e controlar a velocidade
Localizamos as portas do kit que controlam os motores
Pensamos em maneiras de organizar nosso código.
Realizamos testes iniciais
Eletrônica com arduino:
abç a todos
Vigésimo terceiro encontro - IoT
Conhecendo IoT
Salve turma, neste encontro, 17/11/2017, realizamos uma interação entre robótica e IoT (Internet das Coisa). Optamos por esta abordagem devido a contingências, no caso ficamos sem internet e sem acesso ao Kit de Atto.
Assim adiantamo o nosso próximo tópico que é uma discussão sobre a Internet das Coisa - Internet of Things, simplificando IoT.
Foi apresentado a vocês exemplos de objetos do cotidiano que estão ou podem estar conectados a internet: geladeiras, cafeteiras, tênis, relógios etc.
Foi proposto como atividade que vocês pensassem em objetos do seu cotidiano que podem ser conectados a internet. Vocês apresentaram os seguintes exemplos:
- ventilador que liga sozinho quando há presença de pessoas na sala e a temperatura está alta.
- porta que abre automaticamente ao perceber a presença da chave e da aproximação de uma pessoa.
- armário que escolhe a roupa apropriada para o dono em função do clima.
- cama despertador
O professor Paulo também apresentou aos alunos um kit de arduino que recebeu por participar da oficina de Internet das Coisas promovida pela USP.
Como desafio, foi pedido para vocês pensarem na viabilidade da implementação de uma das ideias apresentadas ou de outra.
abç a todos.
Salve turma, neste encontro, 17/11/2017, realizamos uma interação entre robótica e IoT (Internet das Coisa). Optamos por esta abordagem devido a contingências, no caso ficamos sem internet e sem acesso ao Kit de Atto.
Assim adiantamo o nosso próximo tópico que é uma discussão sobre a Internet das Coisa - Internet of Things, simplificando IoT.
Foi apresentado a vocês exemplos de objetos do cotidiano que estão ou podem estar conectados a internet: geladeiras, cafeteiras, tênis, relógios etc.
Foi proposto como atividade que vocês pensassem em objetos do seu cotidiano que podem ser conectados a internet. Vocês apresentaram os seguintes exemplos:
- ventilador que liga sozinho quando há presença de pessoas na sala e a temperatura está alta.
- porta que abre automaticamente ao perceber a presença da chave e da aproximação de uma pessoa.
- armário que escolhe a roupa apropriada para o dono em função do clima.
- cama despertador
O professor Paulo também apresentou aos alunos um kit de arduino que recebeu por participar da oficina de Internet das Coisas promovida pela USP.
Como desafio, foi pedido para vocês pensarem na viabilidade da implementação de uma das ideias apresentadas ou de outra.
abç a todos.
Vigésimo segundo encontro -sensor infravermelho
Conhecendo sensores
Olá turma neste encontro, dia 27/10/2017, passamos a conhecer e manusear um sensor infravermelho que acompanha o Kit ATTO.
Conhecemos o princípio de fundamentos deste tipo de sensor, muito comum na detecção de objetos e medição de distâncias.
Atividade:
Montagem do circuito no kit e testes de programação.
Programação:
Baseou-se no código abaixo e durante o encontro alteramos alguns parâmetros da função map com o objetivo de melhorar a precisão da leitura.
int _ABVAR_1_distancia = 0 ;
void setup()
{
Serial.begin(9600);
}
void loop()
{
_ABVAR_1_distancia = map ( analogRead(4) ,100 , 1000 , 0 , 45 ) ;
Serial.print("Distancia =");
Serial.print(_ABVAR_1_distancia);
Serial.println();
delay( 1000 );
}
Após os testes planejamos nossos próximos encontros focando utilizar o sensor acoplado num carro robótico a ser montado
Dividimos o grupo em 2 sub grupos para os trabalhos com carro robótico:
Mecânica e programação.
Abraço a todos!
Olá turma neste encontro, dia 27/10/2017, passamos a conhecer e manusear um sensor infravermelho que acompanha o Kit ATTO.
Conhecemos o princípio de fundamentos deste tipo de sensor, muito comum na detecção de objetos e medição de distâncias.
Atividade:
Montagem do circuito no kit e testes de programação.
Programação:
Baseou-se no código abaixo e durante o encontro alteramos alguns parâmetros da função map com o objetivo de melhorar a precisão da leitura.
int _ABVAR_1_distancia = 0 ;
void setup()
{
Serial.begin(9600);
}
void loop()
{
_ABVAR_1_distancia = map ( analogRead(4) ,100 , 1000 , 0 , 45 ) ;
Serial.print("Distancia =");
Serial.print(_ABVAR_1_distancia);
Serial.println();
delay( 1000 );
}
Após os testes planejamos nossos próximos encontros focando utilizar o sensor acoplado num carro robótico a ser montado
Dividimos o grupo em 2 sub grupos para os trabalhos com carro robótico:
Mecânica e programação.
Abraço a todos!
sexta-feira, 27 de outubro de 2017
Vigésimo primeiro encontro - Sensores
Conhecendo sensores - LDR - Resistor dependente de luz
Salve turma,
Nesta data, 20/10/2017, brincamos com um novo componente, o LDR. Um componente que altera suas propriedades elétricas na presença da luz. Muito utilizado em circuitos de iluminação automática.
Nossa atividade:
Desenvolver um circuito que aumenta a luminosidade quando o um ambiente escurece.
Os alunos foram divididos em grupos que pesquisaram e montaram os circuitos
Montagem eletrônica:
Criar um circuito similar, análogo ao que está abaixo no laboratório virtual tinkercad:
https://d10zxokiwapyap.cloudfront.net/circuits/3wGBSv0XBCw-eac5a5d5-caca-4547-906c-4976467675ce-snapshot-thumb
programação
Criar um código funcional para o circuito
//Sensor de luz com LDR
int ledPin = 6; //Led no pino
int ldrPin = A0; //LDR no pino analígico a0
int ldrValor = 0; //Valor lido do LDR
void setup() {
pinMode(ledPin,OUTPUT); //define a porta 6 como saída
Serial.begin(9600); //Inicia a comunicação serial
}
void loop() {
///ler o valor do LDR
ldrValor = analogRead(ldrPin); //O valor lido será entre 0 e 1023
int valorMap=map(ldrValor,0,1023,0,255); // converte o valor lido para a faixa de a a 255
analogWrite(ledPin,valorMap); //
//imprime o valor lido do LDR no monitor serial
Serial.println(ldrValor);
Serial.println(valorMap);
delay(10);
}
void simNao(){
//se o valor lido for maior que 500, liga o led
if (ldrValor>= 800) digitalWrite(ledPin,HIGH);
// senão, apaga o led
else digitalWrite(ledPin,LOW);
}
Façam os testes que acharem interessantes
Abraço a todo
Salve turma,
Nesta data, 20/10/2017, brincamos com um novo componente, o LDR. Um componente que altera suas propriedades elétricas na presença da luz. Muito utilizado em circuitos de iluminação automática.
Nossa atividade:
Desenvolver um circuito que aumenta a luminosidade quando o um ambiente escurece.
Os alunos foram divididos em grupos que pesquisaram e montaram os circuitos
Montagem eletrônica:
Criar um circuito similar, análogo ao que está abaixo no laboratório virtual tinkercad:
https://d10zxokiwapyap.cloudfront.net/circuits/3wGBSv0XBCw-eac5a5d5-caca-4547-906c-4976467675ce-snapshot-thumb
programação
Criar um código funcional para o circuito
//Sensor de luz com LDR
int ledPin = 6; //Led no pino
int ldrPin = A0; //LDR no pino analígico a0
int ldrValor = 0; //Valor lido do LDR
void setup() {
pinMode(ledPin,OUTPUT); //define a porta 6 como saída
Serial.begin(9600); //Inicia a comunicação serial
}
void loop() {
///ler o valor do LDR
ldrValor = analogRead(ldrPin); //O valor lido será entre 0 e 1023
int valorMap=map(ldrValor,0,1023,0,255); // converte o valor lido para a faixa de a a 255
analogWrite(ledPin,valorMap); //
//imprime o valor lido do LDR no monitor serial
Serial.println(ldrValor);
Serial.println(valorMap);
delay(10);
}
void simNao(){
//se o valor lido for maior que 500, liga o led
if (ldrValor>= 800) digitalWrite(ledPin,HIGH);
// senão, apaga o led
else digitalWrite(ledPin,LOW);
}
Façam os testes que acharem interessantes
Abraço a todo
quinta-feira, 19 de outubro de 2017
Vigésimo encontro - funções (continuação)
Trabalhando com funções (programação)
Olá turma no nosso encontro, dia 6/10/2017, continuamos a conhecer um pouco mais de programação através de nosso experimentos com funções.
Vimos que elas são um bloco de códigos e as utilizamos para situações repetitivas de forma a deixar nosso código mais limpo e legível.
Neste encontro também solucionamos o problema de senha de alguns alunos que não estavam conseguindo cadastrar-se no site do tinkercad.
Revimos os conceitos de variável e estruturas de repetição; comando if.
Segue abaixo alguns links para vocês poderem estudar e tirar dúvidas
Caso queiram um bom canal no Youtube sobre arduino vejam estas aulas: Click
Abraço a todos!
sexta-feira, 6 de outubro de 2017
Código completo com sensor e funções piscar
Trabalhando com sensores - funções
// Conexão Ping))) conectar pino do arduino ao sensor
int sinal=8; //indica qual pino do arduino o sensor esta ligado
int distancia; //gurada o valor da distancia medida
unsigned long pulseduration=0; //duração do pulso
//conexão dos leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
//função roda apenas quando o arduino é ligado e configura
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sinal, OUTPUT); //configura o pino de sinal como saida
Serial.begin(9600); //faz a comunicação do arduino com o computador via usb
}
void loop()
{
// le o sensor Ping)))
medirDistancia();
// divideo o valor do pulso pela metade
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
//converte a duranção do pulso em centimetros e armazena na variavel distância
distancia = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distancia);
Serial.println(" cm");
//acender();
if(distancia<100){
piscar2();
} else { piscar();}
delay(100);
}
//função para calcular a distancia
void medirDistancia()
{
// set pin as output so we can send a pulse
//definir pino sinal como saída para que possamos enviar um pulso
pinMode(sinal, OUTPUT);
// set output to LOW
digitalWrite(sinal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
//agora envie o pulso de 5uS para ativar Ping
digitalWrite(sinal, HIGH);
delayMicroseconds(5);
digitalWrite(sinal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
//agora precisamos mudar o pino digital
// para inserir para ler o pulso recebido
pinMode(sinal, INPUT);
// finally, measure the length of the incoming pulse
//finalmente, medimos o comprimento do pulso recebido
pulseduration=pulseIn(sinal, HIGH);
}
//--------------------
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){
digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);
}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
//função piscar leds
void piscar(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(500);
}//fim da funcçãp piscar
//função piscar sequencialmente leds
void piscar2(){
int tempo=50;
digitalWrite(led1, HIGH);
delay(tempo);
digitalWrite(led1, LOW);
delay(tempo);
digitalWrite(led2, HIGH);
delay(tempo);
digitalWrite(led2,LOW);
delay(tempo);
digitalWrite(led3, HIGH);
delay(tempo);
digitalWrite(led3, LOW);
delay(tempo);
digitalWrite(led4, HIGH);
delay(tempo);
digitalWrite(led4,LOW);
delay(tempo);
}
// Conexão Ping))) conectar pino do arduino ao sensor
int sinal=8; //indica qual pino do arduino o sensor esta ligado
int distancia; //gurada o valor da distancia medida
unsigned long pulseduration=0; //duração do pulso
//conexão dos leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
//função roda apenas quando o arduino é ligado e configura
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sinal, OUTPUT); //configura o pino de sinal como saida
Serial.begin(9600); //faz a comunicação do arduino com o computador via usb
}
void loop()
{
// le o sensor Ping)))
medirDistancia();
// divideo o valor do pulso pela metade
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
//converte a duranção do pulso em centimetros e armazena na variavel distância
distancia = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distancia);
Serial.println(" cm");
//acender();
if(distancia<100){
piscar2();
} else { piscar();}
delay(100);
}
//função para calcular a distancia
void medirDistancia()
{
// set pin as output so we can send a pulse
//definir pino sinal como saída para que possamos enviar um pulso
pinMode(sinal, OUTPUT);
// set output to LOW
digitalWrite(sinal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
//agora envie o pulso de 5uS para ativar Ping
digitalWrite(sinal, HIGH);
delayMicroseconds(5);
digitalWrite(sinal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
//agora precisamos mudar o pino digital
// para inserir para ler o pulso recebido
pinMode(sinal, INPUT);
// finally, measure the length of the incoming pulse
//finalmente, medimos o comprimento do pulso recebido
pulseduration=pulseIn(sinal, HIGH);
}
//--------------------
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){
digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);
}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
//função piscar leds
void piscar(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(500);
}//fim da funcçãp piscar
//função piscar sequencialmente leds
void piscar2(){
int tempo=50;
digitalWrite(led1, HIGH);
delay(tempo);
digitalWrite(led1, LOW);
delay(tempo);
digitalWrite(led2, HIGH);
delay(tempo);
digitalWrite(led2,LOW);
delay(tempo);
digitalWrite(led3, HIGH);
delay(tempo);
digitalWrite(led3, LOW);
delay(tempo);
digitalWrite(led4, HIGH);
delay(tempo);
digitalWrite(led4,LOW);
delay(tempo);
}
Obs.: As funções que vc não for utilizar comente-as, ou seja, coloque duas barras // antes da função.
Décimo nono encontro - sensores e funções
Trabalhando com sensores e funções (programação)
Olá turma no encontro do dia 29/09/17
Fizemos experimentos com funções de programação para tornar nosso código interessante.
Criamos funções para piscar um 4 leds simultaneamente e sequencialmente conforme uma distancia pré definida por nós.
Segue abaixo o código
//função piscar leds
void piscar(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(500);
}
//função piscar sequencialmente leds
void piscar2(){
int tempo=50;
digitalWrite(led1, HIGH);
delay(tempo);
digitalWrite(led1, LOW);
delay(tempo);
digitalWrite(led2, HIGH);
delay(tempo);
digitalWrite(led2,LOW);
delay(tempo);
digitalWrite(led3, HIGH);
delay(tempo);
digitalWrite(led3, LOW);
delay(tempo);
digitalWrite(led4, HIGH);
delay(tempo);
digitalWrite(led4,LOW);
delay(tempo);
}
Não esqueçam de colocar estas funções no final do código principal e para usá-las basta chamá-las dentro da função loop, ou seja, dentro de void loop () em sua última linha
Abraço
quinta-feira, 28 de setembro de 2017
Décimo oitavo - sensores
Trabalhando com sensores: Medindo distâncias 2ª parte
Olá turma, em nosso encontro do dia 22/09/2017 continuamos trabalhando com nosso sensor de ultrassom. Começamos a entender a função que mede a distância e acrescentamos leds no Arduíno.
Nossa atividade
Eletrônica
Acrescentado 4 leds no circuito virtual e interligados ao Arduíno.
Programação
Configuramos as portas do Arduíno como saída
Revimos o comando if else.
Implementamos a função acender led condicionada a distância medida pelo sensor
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){ digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
Próxima aula vamos discutir e entender com detalhes esta e outras funções,
Abç a todos!
Olá turma, em nosso encontro do dia 22/09/2017 continuamos trabalhando com nosso sensor de ultrassom. Começamos a entender a função que mede a distância e acrescentamos leds no Arduíno.
Nossa atividade
Eletrônica
Acrescentado 4 leds no circuito virtual e interligados ao Arduíno.
Programação
Configuramos as portas do Arduíno como saída
Revimos o comando if else.
Implementamos a função acender led condicionada a distância medida pelo sensor
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){ digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
Próxima aula vamos discutir e entender com detalhes esta e outras funções,
Abç a todos!
sexta-feira, 22 de setembro de 2017
Décimo sétimo encontro - sensores
Trabalhando com sensores: Medindo distâncias
Olá turma, neste nosso encontro, dia 15/09/2017, "brincamos com um sensor de ultrassom". Entendemos a teoria de seu funcionamento e projetamos um circuito virtual na plataforma tinkercad.
Nossa atividade
Eletrônica
Conhecemos o princípio de funcionamento de um sensor de ultrassom, conhecemos e definimos o que é ultrassom, vimos como funciona superficialmente o sensor
Montamos o circuito com o sensor no tinkercad: 1 placa de Arduíno e um sensor ultrassônico.
Programação
A partir de um modelo de programa que conseguimos na internet implementamos um circuito de medição através de ondas ultrassônica.
Próxima aula implementaremos leds no circuito
Olá turma, neste nosso encontro, dia 15/09/2017, "brincamos com um sensor de ultrassom". Entendemos a teoria de seu funcionamento e projetamos um circuito virtual na plataforma tinkercad.
Nossa atividade
Eletrônica
Conhecemos o princípio de funcionamento de um sensor de ultrassom, conhecemos e definimos o que é ultrassom, vimos como funciona superficialmente o sensor
Montamos o circuito com o sensor no tinkercad: 1 placa de Arduíno e um sensor ultrassônico.
Programação
A partir de um modelo de programa que conseguimos na internet implementamos um circuito de medição através de ondas ultrassônica.
Próxima aula implementaremos leds no circuito
Código ping traduzido e comentado
Olá turma
Código para medir e acender os 4 leds
// Conexão Ping))) conectar pino do arduino ao sensor
int sinal=8; //indica qual pino do arduino o sensor esta ligado
int distancia; //gurada o valor da distancia medida
unsigned long pulseduration=0; //duração do pulso
//conexão dos leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
//função roda apenas quando o arduino é ligado e configura
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sinal, OUTPUT); //configura o pino de sinal como saida
Serial.begin(9600); //faz a comunicação do arduino com o computador via usb
}
void loop()
{
// le o sensor Ping)))
medirDistancia();
// divideo o valor do pulso pela metade
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
//converte a duranção do pulso em centimetros e armazena na variavel distância
distancia = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distancia);
Serial.println(" cm");
acender();
delay(100);
}
//função para calcular a distancia
void medirDistancia()
{
// set pin as output so we can send a pulse
//definir pino sinal como saída para que possamos enviar um pulso
pinMode(sinal, OUTPUT);
// set output to LOW
digitalWrite(sinal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
//agora envie o pulso de 5uS para ativar Ping
digitalWrite(sinal, HIGH);
delayMicroseconds(5);
digitalWrite(sinal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
//agora precisamos mudar o pino digital
// para inserir para ler o pulso recebido
pinMode(sinal, INPUT);
// finally, measure the length of the incoming pulse
//finalmente, medimos o comprimento do pulso recebido
pulseduration=pulseIn(sinal, HIGH);
}
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){ digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
Código para medir e acender os 4 leds
// Conexão Ping))) conectar pino do arduino ao sensor
int sinal=8; //indica qual pino do arduino o sensor esta ligado
int distancia; //gurada o valor da distancia medida
unsigned long pulseduration=0; //duração do pulso
//conexão dos leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
//função roda apenas quando o arduino é ligado e configura
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sinal, OUTPUT); //configura o pino de sinal como saida
Serial.begin(9600); //faz a comunicação do arduino com o computador via usb
}
void loop()
{
// le o sensor Ping)))
medirDistancia();
// divideo o valor do pulso pela metade
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
//converte a duranção do pulso em centimetros e armazena na variavel distância
distancia = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distancia);
Serial.println(" cm");
acender();
delay(100);
}
//função para calcular a distancia
void medirDistancia()
{
// set pin as output so we can send a pulse
//definir pino sinal como saída para que possamos enviar um pulso
pinMode(sinal, OUTPUT);
// set output to LOW
digitalWrite(sinal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
//agora envie o pulso de 5uS para ativar Ping
digitalWrite(sinal, HIGH);
delayMicroseconds(5);
digitalWrite(sinal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
//agora precisamos mudar o pino digital
// para inserir para ler o pulso recebido
pinMode(sinal, INPUT);
// finally, measure the length of the incoming pulse
//finalmente, medimos o comprimento do pulso recebido
pulseduration=pulseIn(sinal, HIGH);
}
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){ digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
sexta-feira, 15 de setembro de 2017
Código Ping
Olá turma
Tentem usar este código para calcular a distância com o sensor ultrassônico de 3 pinos (PING)
Este código peguei neste site: click aqui
http://tronixstuff.com/2011/11/28/tutorial-parallax-ping-ultrasonic-sensor/
Tentem usar este código para calcular a distância com o sensor ultrassônico de 3 pinos (PING)
Este código peguei neste site: click aqui
http://tronixstuff.com/2011/11/28/tutorial-parallax-ping-ultrasonic-sensor/
// Connect Ping))) signal pin to Arduino digital 8
int signal=8;
int distance;
unsigned long pulseduration=0;
void setup()
{
pinMode(signal, OUTPUT);
Serial.begin(9600);
}
void measureDistance()
{
// set pin as output so we can send a pulse
pinMode(signal, OUTPUT);
// set output to LOW
digitalWrite(signal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
digitalWrite(signal, HIGH);
delayMicroseconds(5);
digitalWrite(signal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
pinMode(signal, INPUT);
// finally, measure the length of the incoming pulse
pulseduration=pulseIn(signal, HIGH);
}
void loop()
{
// get the raw measurement data from Ping)))
measureDistance();
// divide the pulse length by half
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
distance = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
sexta-feira, 8 de setembro de 2017
Décimo sexto encontro
Montagem de carrinhos - Ação - 3ª parte
Olá turma, estamos chegando ao final das nossas montagens com materiais diversos, neste dia 01/09/2017 resolvemos problemas nas montagens e conseguimos 2 carrinhos funcionais de 3 previstos.
Testamos o programa tinkcard na sala de informática, ao que parece está ok e poderemos reutilizá-lo nos próximos encontros.
Nossa atividade:
Continuação das montagens
Teste dos carrinhos
Abraço a todos
quinta-feira, 7 de setembro de 2017
Décimo quinto encontro
Montando carrinhos - Ação - 2ª parte
Olá turma, em 25/08/2017 continuamos a montagem dos carrinhos e estudamos o funcionamento de polias e verificamos a possibilidade de implementar um carrinho com polias.
Nossas atividades:
montagem de carrinhos
visualização de vídeo sobre polias
confecção de polias
Encontramos alguns problemas em relação a fixação dos fios, tensão de operação dos motores, centralização dos eixos nas rodas e dimensões para as polias.
Em nosso próximo encontro tentaremos resolver estes e outros problemas, tragam sugestões.
Vídeo de apoio sobre confecção de polias:
https://www.youtube.com/watch?v=SviOC_qtkX0
https://www.youtube.com/watch?v=SviOC_qtkX0
Abraço a todos.
Décimo quarto encontro
Montando carrinhos - Ação
Olá turma, nosso encontro do dia 18/08/17 foi fantástico!!!
Colocamos mão na massa!!!!
Dividimos a turma em 3 grupos que receberam:
2 - tampas
1 - pedaço de papelão
2 - motores elétricos
palitos a vontade
canudos de refrigerante
elásticos
Atividade:
A partir destes materiais e outros os grupos iniciaram a montagem dos carrinhos:
Desafios, problemas e soluções encontramos.
Até o momento montamos um carrinho funcional,
Abaixo segue as imagens e vídeos da atividade
Abraço a todos
Olá turma, nosso encontro do dia 18/08/17 foi fantástico!!!
Colocamos mão na massa!!!!
Dividimos a turma em 3 grupos que receberam:
2 - tampas
1 - pedaço de papelão
2 - motores elétricos
palitos a vontade
canudos de refrigerante
elásticos
Atividade:
A partir destes materiais e outros os grupos iniciaram a montagem dos carrinhos:
Desafios, problemas e soluções encontramos.
Até o momento montamos um carrinho funcional,
Abaixo segue as imagens e vídeos da atividade
Abraço a todos
segunda-feira, 21 de agosto de 2017
Décimo terceiro encontro
Montando carrinhos - Planejando
Olá turma, no nosso encontro do dia 11/08/17 começamos a planejar carrinhos com materiais recicláveis , "lixo eletrônico" e materiais disponíveis na escola e em casa.
Para despertar as ideais e ver possibilidades vimos dois vídeos no youtube
Discutimos conceitos de:
Polia;
Eixo;
Rodas;
Revimos o funcionamento de motores elétricos.
Combinamos para a próxima aula trazer tampas de maionese, palitos de churrasco e outros
materiais que acharmos interessantes.
Abraço a todos!
Olá turma, no nosso encontro do dia 11/08/17 começamos a planejar carrinhos com materiais recicláveis , "lixo eletrônico" e materiais disponíveis na escola e em casa.
Para despertar as ideais e ver possibilidades vimos dois vídeos no youtube
Discutimos conceitos de:
Polia;
Eixo;
Rodas;
Revimos o funcionamento de motores elétricos.
Combinamos para a próxima aula trazer tampas de maionese, palitos de churrasco e outros
materiais que acharmos interessantes.
Abraço a todos!
quinta-feira, 10 de agosto de 2017
Décimo segundo encontro
Dando um giro
Olá turma, no encontro do dia 04/08 fizemos nossa base girar, definimos que ela deveria girar 2 segundos em sentido horário, parar por 2 segundos e depois girar 2 segundos no sentido anti-horários.
Foi um sucesso e também testamos vários valores para a velocidade do motor.
Chegou novos colegas para integrar nossa equipe.
Nossa atividade:
Eletrônica
Conhecemos o princípio de PWM, que nos permitiu controlar a velocidade do motor.
Programação
Conhecemos e trabalhamos com a porta analógica do arduíno que nos permitiu controlar a velocidade do motor.
No caso utilizamos o comando:
analogicWrite(5,128), aqui 5 é o pino do arduíno onde o motor está conectado e 128 para a velocidade.
Nosso código simplificado, que posteriormente vocês farão algumas alterações:
int led = 2; //variável para o led ligado no pino 2 do arduino
// configuração dos pinos do arduino como saída
void setup() {
pinMode(led, OUTPUT);
pinMode(10, OUTPUT); //sentido de giro
pinMode(5, OUTPUT ); // controla a velocidade
}
//Execução do programa
void loop(){
digitalWrite(led, HIGH); //Acende led
digitalWrite(10,LOW); //gira sentido horário
analogicWrite(5, 150); // velocidade pela metade no pino 5
delay(2000) ; //aguarda 2 segundos
analogicWrite(5,0 ); //velocidade 0, motor para
delay(2000); //fica parado por 2 segundos
digitalWrite(10,HIGH); //gira sentido anti-horário
analogicWrite(5, 150);
delay(2000);
}
Para as próximas aula estamos vendo a possibilidade de integrar um sensor de distância para ligar e desligar o circuito.
Também vamos confirmar se começamos a montar protótipos de carrinhos com sucata.
Nossas fotos
Abraço a todos!!!
quinta-feira, 3 de agosto de 2017
Décimo primeiro encontro
Décimo primeiro encontro - Controle de motores - continuação
Olá pessoal, no encontro do dia 28/07/2017 tivemos altos e baixos...
Devido a atualizações na sala de informática não foi possível programarmos nosso arduíno para controlar os motores.
O simulador virtual tinkercad, assim como outros sites pararam de rodar devido as novas configurações da sala de informática. Vamos aguardar os reparos que já estão sendo providenciados para darmos continuidade nas etapas de eletrônica e programação.
Mecânica:
Explorando as possibilidades e a criatividade vocês construíram com o kit de robótica um disco giratório com cadeiras. Nosso desafio para os próximos encontros é colocá-lo em funcionamento.
Abraço a todos
Olá pessoal, no encontro do dia 28/07/2017 tivemos altos e baixos...
Devido a atualizações na sala de informática não foi possível programarmos nosso arduíno para controlar os motores.
O simulador virtual tinkercad, assim como outros sites pararam de rodar devido as novas configurações da sala de informática. Vamos aguardar os reparos que já estão sendo providenciados para darmos continuidade nas etapas de eletrônica e programação.
Mecânica:
Explorando as possibilidades e a criatividade vocês construíram com o kit de robótica um disco giratório com cadeiras. Nosso desafio para os próximos encontros é colocá-lo em funcionamento.
Abraço a todos
sexta-feira, 7 de julho de 2017
Décimo encontro: controle de motores
Sempre firmes!!!!
10° encontro - Obtendo movimento com a eletrônica
Motores Dc continuação
Salve turma, no encontro do dia 30/06/17 continuamos ampliando nosso controle de motores com o circuito integrado L293d, inserimos um segundo motor e fizemos os testes manuais para controlá-los.
Tivemos um problema em relação ao circuit.io que migrou os projetos do laboratório virtual para o site tinkercard.A princípio vocês já estão cadastrados, pois basta entrar com o usuário e senha que vocês fizeram no circuit.io.Caso tenha problema, façam um cadastro no tinkercard.Os comando e operações são os mesmos.
Nossa atividade;
1 Eletrônica
1.1 Realizamos a conexão do segundo motor ao chip L293d, assim vimos que:
O motor é ligado nas saídas do chip conhecidas como OUTPUT, há 4 destas saídas no c.i. (circuito integrado).
Controlamos o sentido de giro através das entradas IN, também há 4 entradas no c.i. .
1.2 Relembramos alguns fundamentos de eletrônica digital, onde...
Ligado = verdadeiro = High = 1
Desligado = falso = Low = 0
1.3 Definindo o sentido de giro levando em consideração a polaridade do motor dc
IN1 IN2
0 1 Sentido Horário
1 0 Sentido Anti-horário
1 1 Freio
0 0 desligado
IN3 IN4
0 1 Sentido Horário
1 0 Sentido Anti-horário
1 1 Freio
0 0 desligado
2 Virtual/ tinkercad
2.1 Montagem do circuito com motores dc ligado no chip L293d
Nesta etapa passamos a controlar 2 motores dc, Na na seguinte configuração:
entradas pinos Chip
In1 2
In2 7
saidas(motor A)
out1 3
out2 6
entradas pinos Chip
In3 10
In4 15
saidas(motor B)
out3 11
out4 14
DESAFIO
Coloquem uma placa de Arduíno UNO no circuito que vocês montaram e conectem da seguinte
forma:
Arduino pinos L293D pino sinal
3 1 enable 1,2
2 2 IN1
4 7 IN2
6 9 enable 3,4
7 10 IN3
8 15 IN4
Abç a todos!
Arduino pinos L293D pino sinal
3 1 enable 1,2
2 2 IN1
4 7 IN2
6 9 enable 3,4
7 10 IN3
8 15 IN4
Abç a todos!
Assinar:
Comentários (Atom)






































