Postagem em destaque

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte I

Este post é o primeiro de uma série de seis que escrevi tratando de controle de potência e PID (controle proporcional, integral e derivativo...

domingo, 26 de outubro de 2014

Automação no Parque, 25/10/2014

Ontem foi punk o Automação no Parque. Cheguei às 7:30 da matina e saí coisa de 21:00, para vcs terem uma ideia. É que tem vários projetos de TCCs e uma das escolas adiantou a data de entrega dos grupos para essa semana. Além disso vai ter uma feira de tecnologia da ETEP, então a turma resolveu também passar por lá para pedir ajuda.

Vamos ao que rolou:



Acima, o projeto de uma esteira terminando numa garra, que seleciona produtos com base no tamanho. O projeto tava quase pronto, só faltava adicionar uma referência (fim de curso) para o motor do eixo da garra, de maneira a que ele se posicionasse de maneira precisa para receber o objeto. Isso feito... projeto terminado!

Abaixo, vídeo da garrinha mandando ver:


Nada menos que dois quadricópteros passaram pelo Automação no Parque ontem. chique, não?


 Ocupamos as duas mesas disponíveis hoje.

 Esse é o projeto de controle de um cofre. Com display LCD, teclado pro sujeito digitar uma senha para abrir o dito, o acionamento da fechadura é feito por um pequeno servo. A coisa pegou porque o shield de rede deles (sim, o cofre também pode ser monitorado pela web!) só funcionava no Arduino Uno, fingindo-se de morto ao ser plugado no Mega, apesar de estar escrito nele "Mega compatible". Como o número de portas do Uno era insuficiente para ligar toda a tralha, resolvemos usar um mega para controle e um Uno para a parte internética. Fizemos uma comunicação SPI entre os dois e boa.

Projeto terminado ontem, as well.




Esse projeto é o da casa domótica. Já escrevi sobre ele antes, é um que envolve Arduino, Raspberry Pi com câmera, web, tudo para monitorar e controlar o funcionamento de uma casa remotamente.

Ficou muito bom, também vou postar mais sobre ele semana que vem. Esse foi mais um dos três que terminaram hoje.

Quadricópteroporto...

 Preparando um deles para um ensaio "de voo". Acabou que apareceu também o Fernando "Satosan" Sato, especialista feroz em aeromodelos e drones e também o Waldir, outra fera no assunto. Eles deram aquela mão prá meninada do projeto, cujo prazo é essa semana e faltava "só o pograminha"...
Resultado: o Automação No Parque vai abrir as portas hoje novamente, em edição extra.




Aeronave sendo ensaiada na nossa sofisticada bancada de testes de empuxo.





Abaixo, vídeos dos ensaios quadricopterísticos:



Até a Bolinho de Chuva, 3D do SJC Hacker Clube, vei nos visitar hoje.

 Esse projeto é o de um estacionamento elevado automatizado, onde o sistema indica as vagas disponíveis, "pega" o carro e coloca na vaga indicada. Falarei mais sobre esse projeto no futuro.

 Tudo isso embalado por um forrozim pé de serra...

 Detalhe do "edifício garagem", com os sensores de ultrassom posicionados para dizer se a vaga está ocupada ou não.

 Conexões, muuuuitas...









É isso... Automação no Parque, diversão pura no sabadão!

Controle PID e Medição de Corrente Alternada com o Arduino

Eu ajudei alguns alunos que montaram um controle de temperatura usando PID. Já falei sobre isso antes, nos outros posts sobre PID que existem nesse blog.

Esse trabalho rendeu e ainda vai render bons posts.

Aqui algumas imagens do projeto:


Aqui a parte de controle. É um circuito de controle por ângulo de fase, como os descritos nos posts sobre PID desse blog, usado para controlar a temperatura de um tubo de cobre aquecido por uma resistência de ferro de solda.

Usa-se o teclado de membrana à direita para informar o set point e a seguir o sistema tenta controlar a temperatura em torno da temperatura especificada, com uma curva dependendo de KpKi e Kd.

Abaixo, os circuitos de ângulo de fase (parte de baixo da proto e a parte de saída na parte superior.

Hoje o que eu quero descrever é que instalamos um medidor de corrente no circuito. Esse sensor é um sensor "invasivo", quer dizer, eu tenho que interromper a corrente de modo a fazê-la passar pelo sensor. Aí vai uma imagem dele:



A potência é controlada por um circuito por ângulo de fase, como descrito antes.



Esse é um ACS712, que pode ser usado com até 30A de corrente.

A conexão dele ao circuito é óbvia, a entrada é à esquerda e a saída à direita. Ele é um sensor de CC, que dá uma saída linear de tensão no pino OUT confirme pode-se ver na figura abaixo:



Como utilizá-lo em corrente alternada?
Bom, uma alternativa, claro, é retificar a corrente e passar a trabalhar com CC. Vai funcionar, claro, e vai dar uma ótima precisão. Ocorre que não faz muito sentido retificar e estabilizar corrente com o único motivo de medi-la.

A outra alternativa é medir por amostragem e "integrar" a medição, ou seja, pegar a tensão em vários momentos diferentes da onda e obter uma média. Não é tão preciso, mas é a alternativa.

Para isso, também temos duas alternativas: uma é fazer a amostragem considerando a forma da onda, ou seja, usarmos o circuito de disparo de zero para indicar o início da senoide e colher amostras considerando a forma desta. É uma maneira de obter uma precisão semelhante ao do medidor quando usado em CC.

A outra forma é simplesmente fazermos uma amostragem "aleatória", sem nos preocuparmos com a sincronização com a onda. Se colhermos um conjunto de amostras suficiente, teremos uma aproximação do valor real.

Até por ser esse tipo o mais fácil de ser implementado, foi o que fizemos. Nesse caso, sugerimos que vc instale um amperímetro CA em série para calibrar o bicho.

domingo, 19 de outubro de 2014

Automação no Parque - diversão pura, as usual.

Essa época do ano é "de safra" no nosso Automação no Parque. É que os alunos que por lá aparecem atrás de ajuda por causa de seus TCC, com a proximidade da época de entrega ficam mais "entusiasmados" com seus próprios trabalhos. Assim sendo, aparece gente até de outras cidades, como dois camaradas que vieram lá de Pinda para conseguir ajuda para melhorar a eficiência de um segue-faixa.

Independente disso, já haviam alguns projetos muito interessantes acontecendo, como o de uma "casa domótica! usando-se RPi. Tem também o projeto de um cofre que, quando aberto, avisa do fato em uma página web. Esse, feito com Arduino, foi o primeiro usando Ethernet shield que eu ajudei a fazer.

Bom, vamos a algumas fotos da brincadeira:

Esse projeto aciona um servo sempre que o leitor de RFID está lendo uma determinada tag, enquanto para o motor e aciona um buzzer quando a tab se afasta. Pode ser usada para controlar a operação de uma máquina por determinado operador, por exemplo.


Aqui um vídeo da coisa funcionando:


Abaixo o carrinho do povo de Pinda.


Por fim, o projeto de uma maquininha que eu nem sei direito o que faz. Apareceu meio no fim da brincadeira, então eu nem entendi muito do que se tratava. Só deu tempo da gente programar uma referência para um dos motores de passo.

Semana que vem certamente vamos mais fundo.










Carrinho i-racer II

Como o carrinho é comandado pelo bluetooth, o jeito mais óbvio de hackeá-lo é substituir o software de controle do carrinho, que roda no Android, por algum outro. Para isso, é necessário descobrir os comandos que o software envia ao carrinho, de maneira a podermos comandá-lo a partir de outros dispositivos.

Existe um documento que descreve esses comandos, mas para testar fiz um "pograminha" para rodar no Arduino e ler os comandos.

Taí o bicho:

#include <SoftwareSerial.h>

SoftwareSerial irace(10, 11); // RX, TX
int BluetoothData; 

void setup() 
{
  Serial.begin(9600);
  irace.begin(9600);
  Serial.println("Fim Setup");
}

int i=1;
void loop() 
{
   if (irace.available())
   {
      BluetoothData=irace.read();
      Serial.print(BluetoothData,HEX);
      Serial.print(',');
      if((i % 20) == 0)
        Serial.println();
      i++;
   }
}

Essa é a tela do software, com a definição do de cada botão de comando.



Em seguida foi só parear o bluetooth do Arduino com o do celular, pilotar o aplicativo e fazer as leituras. Eis alguns exemplos, prá gente entender a bagaça:

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,71,71,71,71,71,71,71,71,71,71,71,71,71,71,
71,71,71,71,71,71,71,71,71,71,71,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,31,31,31,31,31,
32,22,22,22,23,23,24,25,25,26,27,27,28,28,29,29,2A,2B,2B,2B,
2C,2C,2C,2C,2D,2D,2D,2D,2D,2D,2D,2D,2D,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,2E,
2E,2E,2E,2E,2E,2F,2F,2F,2F,2F,2F,2F,2F,20,2F,3F,3F,3F,3F,3F,
3F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,
2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,
2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,
2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,
2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,2F,3F,3F,3F,3F,3F,3F,3F,3F,
3F,3F,3F,3F,3F,3F,3F,3F,3F,3F,3F,3F,3F,2F,2F,2F,2F,2F,2F,20,
2F,2F,2E,2C,2B,29,28,27,26,84,83,81,41,62,63,64,65,16,16,17,
17,17,18,18,19,19,1A,1B,1B,1B,1C,1C,1C,1C,1D,1D,1D,1E,1E,1F,
1F,10,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,
1F,1F,1F,1F,1F,1F,1F,0,

Quando não pressionamos nada no controle, nenhum dado é enviado. Quando eu toco o centro da Virtual Control Bar ele manda o comando 0. Depois, eu vou variando as direções, o que vc pode perceber pelo primeiro dígito dos número hexa acima. Primeiro eu acionei o carrinho para trás (primeiro dígito 2), depois para a frente (dígito 1). O segundo dígito é a intensidade, que vc vê que vai variando de intensidade à medida que eu desloco o dedo, indo de 2 até F no caso do movimento para trás.

Então é isso, bastaria então fazer um programa que envie esses comandos ao carrinho para que ele possa se movimentar. Moleza, não?

Aqui uma imagem do circuito do Arduino:






Carrinho i-racer I

Semana passada um grande amigo me emprestou um carrinho, i-racer. Nesse link tem toda a documentação e fontes do bichinho. Com conexão bluetooth, permite o controle via um aplicativo que vem no CD que acompanha o produto. Acho que ele vai gerar alguma diversão.

A documentação é um bocado confusa, deve ter sido traduzida do chinês pelo Google Translator, então não espere muito dela. Ainda bem que a net tem muita coisa sobre o bichinho, de modo que foi fácil botar a app para rodar no telefone e começar a brincadeira com o carrinho.

O meu amigo tem mais deles para vender, e tá pedindo R$ 100,00 por cada um deles. Pelo que já andei brincando, vale.

Uma das coisas legais que ele tem é um conector ISP, o que permite que a gente atualize o firmware, caso desejemos.

Nos próximos posts mais novidades sobre ele. Vamos hackeá-lo?

Abaixo algumas imagens do bichinho:






Abracadabraço,