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, 30 de novembro de 2014

Intel IoT Road Show II - O evento

Hoje, domingão, estou de volta a SJC, depois de dois dias participando do Intel IoT Road Show. Junto com outros 100+ caras, incluindo um grupo intrépido de joseenses, passamos muitas horas desvendando as possibilidades da "plaquinha nem tão inha assim", Intel Galileo Gen 2. A cada um de nós a Intel deu um kit composto de dois produtos: uma placa Galileo Gen 2 e um Grove Starter Kit Plus, da Seeed. Acabou que alguns kits Groove não chegaram a tempo, e algumas pessoas receberam somente o Galileo, mas a Intel vai encaminhar a estes os seus kits assim que os problemas burocráticos forem resolvidos. Como o trabalo foi em grupo e também foi franqueado aos participantes levar as suas tralhas, os kits nem fizeram tanta falta. Foi dada preferência aos oficineiros de fora da Sampa no recebimento do kit da Groove, então eu pude trazer o meu prá cá.

O evento foi no Insper, instituição de ensino sem fins lucrativos que está lançando seus cursos de engenharia este ano. Fiquei muito impressionado com as instalações da escola (algumas fotos abaixo) e com as conversas que tive com pessoas do corpo docente. Também conversei um pouco com alunos americanos que apareceram por lá e são partícipes de um programa de convênio deles. Dá vontade de dar aulas num lugar como aquele...

"Resistro" que a Globalcode também foi parceira do evento, e estavam por lá os intrépidos Vinícius Senger, Iara e Carol.

A brincadeira ela simples: após a entrega do hardware, de algumas falas do povo da Intel e do Insper, o Jomar, nosso mestre de cerimônias, organizador do evento por parte da Intel, nos passou um site de ftp onde havia o software necessário para a diversão com o Galileo. Em seguida cada grupo (haviam mesas distribuídas pela sala em torno das quais foram formados 26 grupos) foi instado a escolher um projeto a ser implementado e apresentado ao fim do evento. Os projetos foram por nós criados no Hacker  Leage, site de registro de hackatons e quetais, muito legal, não conhecia. Aqui um link para o nosso projeto, e cá a lista de projetos.

Chega de papo, bora prás fotos:

 Aqui um panorama do espaço, com os grupos já distribuídos pelas mesas de trabalho. Em casa uma delas dois havia filtros de linha e dois pontos de rede. Em quase todo grupo, inclusive no nosso, tinha gente com roteadores, então tivemos até que organizar os canais dos mesmos para evitar as interferências.

O fato da sala ter tomadas 220V causou algum transtorno, nada que não fosse contornável com o empréstimos de fontes de alimentação entre os grupos.
O sujeito simpático com uma pequena saliência abdominal a precedê-lo é o Jomar, nosso mestre de cerimônias.

Aqui a nossa bancada sendo instalada.
Outra panorâmica da sala...
 O pessoal trouxe todo o tipo de traquitana tecnológica. Esse é um robô humanóide com uns 30 motores. Segundo o povo do grupo ele precisa de um companheiro de caminhada suficientemente forte para arcar com o peso das baterias.
Aqui a sala já mais cheia.
 À esquerda, um grupo trouxe uma maquete de uma casa, com o objetivo de automatizá-la.

As paredes são revestidas de uma espécie de fórmica branca, então pode-se escrever nelas.
Nossa mesa de trabalho.
Aqui trabalham no nosso projeto, da esquerda para a direita: Fábio Calegari (a.k.a. "O The Boss"), o Fábio Luiz, Bruno Rosa, joseense que vive em Sampa e sempre está nos eventos de nerdices. Foi ideia dele o nosso projeto de máquina de venda com bitcoins.
 Aqui a estrela da festa, a Galileo. Em cima, acoplado, um shield de geração de sons que eu tenho. Só que... não funcionou. Porque? Explico depois.
 Aqui, outros grupos;

Uma câmera transmitia o evento em tempo real.
Aqui a bancada da Intel. Abaixo, o Galileo com um tanto de tralhas atachadas.
E eu achei que tinha levado muita coisa... aqui um osciloscópio sendo usado por uma das equipes.
 Acima, foto da equipe do Garoa, mais antigo Hackerspace do Brasil. Eles trabalharam no PinGo, versão para Galileo. Ao fundo, mestre Luciano Ramalho.

E assim foi-se a sexta-feira.

No sabadão...

Chegada.
À frente da sala um telão com as fotos sendo postadas pelos participantes no Instagram.
Fábio se diverte com o braço robótico que levei.

 Abaixo, algumas imagens da infra de ensino de engenharia do Insper. Impressionante!

 Fablab... dããããã! Prá quem não é do ramo, é um espaço criado para que se criem "coisas", ou seja, a partir de uma ideia transformada em projeto possam ser usados os insumos e ferramentas disponíveis no FabLab para criar essas coisas. Mais sobre o conceito aqui.
Aqui a caixa da nossa vending machine sendo cortada a laser. Os caras mostraram os equipamentos prá nós, aí o Fábio Luiz, que tem "asma" dessas maquininhas (o cara tem uma em casa, bicho!), passou a noitw projetando a caixinha e no sabadão a gente pediu e os caras cortaram prá nós.

 Máquina cortando o nosso case.

Montando a maquininha...


Caixa da nossa maquininha de vendas, montada.
Djonatas e Fábio discutem os toques finais no nosso projeto. Tava difícil arrumar parede para escrever, então a nossa lousa foi a porta da sala...
Acima, a caixinha sendo testada, já com os motores e demais eletrônicos instalados.

Acima, laboratório de Física e Instrumentação do Insper. Os caras pegaram um andar e puseram diversos containers, onde montaram os laboratórios. Os equipamentos, de última geração, são didáticos, ou seja, são equipamentos projetados para uso em ensino. Chique!

Impressora 3D do FabLab.
Máquinas de corte e costura do FabLab.
Super fresa.

Outros projetos


Abaixo imagens de outros dos projetos feitos pela turma durante o evento.

Quadricóptero comandado por voz.


Quem será que leva uma impressora 3d para um evento?


Abaixo, uma das brincadeiras do povo do Garoa: um Pong (Aquele joguinho da época do telejogo), implementado no Galileo usando Python & PinGo.

 E foi-se o sabadão. No próximo post, algumas conclusões técnicas sobre o Galileo.


domingo, 23 de novembro de 2014

Intel IoT Roadshow I - Aquecendo as turbinas

Em setembro deste fui convidado a palestrar num evento da Intel, o Intel Innovation Week. O assunto era MQTT, protocolo IoT sobre o qual já fiz alguns posts nesse blog. Lá no evento os caras divulgaram outro, o Intel IoT Road Show. Esse evento busca difundir o uso da plataforma IoT da Intel baseada no Galileo. Foram abertas inscrições gratuitas, onde nós apresentávamos nossas atividades em automação e programação, para que fossem selecionados 1000 participantes mundo afora que receberão gratuitamente kits com uma placa Galileo ou Edson e também o Grove Starter Kit Plus - Intel ® IoT Edition, participando de dois dias de oficinas com o pessoal da Intel.

O fato é que fui selecionado. Iremos passar por treinamento e em seguida, usando os recursos disponibilizados pela Intel e também aqueles que levarmos, iremos desenvolver projetos de maneira a explorar os recursos da plataforma Galileo.

Pensei então em preparar alguns gadgets para a diversão, ops, evento:

- Para fazer um encontro de gerações vou levar o meu Genius, brinquedo que já foi objeto de outros posts aqui do blog. Ele sempre rende alguma brincadeira interessante, já tenho algo em mente pra fazer por lá. Será o encontro do primeiro "videogame" fabricado no Brasil com a última palavra em recursos de automação em placa única, o Galileo.

- Vou também deixar a minha câmera com gimbal conectada aqui em casa. Ela é comandada por um Raspberry que recebe comandos MQTT via web, então lá do evento a gente pode desenvolver por exemplo um controlador Nunchuck para posicionar a câmera aqui em casa.

Resolvi fazer alterações no Genius para levar no evento. A primeira delas foi melhorar o brilho das cores durante o jogo. Como ele usa lâmpadas incandescentes, as cores não brilham muito e também demoram a aparecer, de maneira que quando o jogo vai ficando mais rápido algumas vezes não dá para ver a cor que acendeu. Assim, para aumentar o brilho primeiro fizemos (quer dizer, o supoer Euclas fez...) uma fonte regulada para, em vez de colocar 3,3V na lâmpada a gente poder fornecer até 5V. Supondo que elas resistam, o brilho aumenta, claro.

Também queria controlar a velocidade do jogo, ou seja, fazer com que ele fique mais lento se eu quiser. Nesse caso o Euclides (sempre ele!) deu a ideia matadora: vamos achar o clock do circuito e fazê-lo ficar variável. O cara não é um gênio? Fala verdade!

Abaixo imagens dos brinquedos:



O capacitor C2 e o resistor R1 formam o clock do circuito. Como variar a resistência é muito mais simples do que a capacitância, ligamos um potenciômetro de 1M em série com o resistor, que é de 600k. Assim, quando o potenciômetro está em 0 a velocidade do bicho é igual à original. Á medida que aumentamos a resistência a velocidade vai caindo, porque ela é função do tempo de descarga do capacitor através do resistor.

 Aqui a fonte regulada. Hora dessas eu ponho o projetinho dela aqui. Como diz o Euclas: "Maurão, isso dá um post!"


Aqui o LED em paralelo com a lâmpada. Como ele é de alto brilho, o impacto foi grande.

E aqui a câmera com o guimbal, acoplados ao Arduino com Raspberry. Assim que tiver um tempo posto detalhes sobre o projeto.



#PartiuIntelIoTRoadshow!

sábado, 15 de novembro de 2014

Automação no Parque - 15/11/2014 - acionando um motor brushless com Arduino I

Hoje, feriadão, fizemos uma montagem que há muito tempo eu tinha vontade de fazer: controlar um motor brushless sem a ajuda de um ESC.

Motor brushless é aquele tipo de motor usado em CD-ROM e HD. Ele se chama assim porque não tem contato elétrico com o rotor, que é feito de ímã. Mais informações aqui.

Basicamente o BLDC (de motor brushless de corrente contínua, em inglês) é um motor trifásico do tipo Y, ou seja, tem três bobinas ligadas a um ponto comum, o neutro.

Acontece que os motores trifásicos CA (corrente alternada) se valem da onda senoide entregue pelas concessionárias para funcionar, ou seja, basta ligar as três fases mais o neutro ao motor e o mesmo começa a girar.
Senoide aplicada a um motor trifásico
A figura acima mostra a onda trifásica ideal para "tocar" um motor brushless.

Acontece que os circuitos de baixa tensão são normalmente alimentados por fontes de alimentação como as de celulares ou mesmo baterias que, claro, só proveem CC (corrente contínua).

Isso faz com que tenhamos apenas duas opções para controlar um motor brushless com um microprocessador como o Arduino:

1) Criar algum tipo de circuito que gere a senoide necessária. É assim que funciona a maioria dos drones, que usam normalmente motores brushless. Um equipamento chamado ESC (de Eletronic Speed Control) é usado para essa função. O ESC, por sua vez, é ligado ao microprocessador do drone que determina a velocidade, direção e até um "freio" para o motor.

Acontece que o ESC não é muito barato, custa acima de R$ 35,00. Se vc estiver pensando em construir um hexacóptero, só de ESC serão mais de R$ 210,00. Por isso vamos tentar outra alternativa:

2) Tratar o motor como se fosse de relutância chaveada. A ideia aqui é usar uma onda quadrada para fazer o papel da senoide.

SRM Simple Sequence
Exemplo de trem de pulsos usados para acionar um motor de relutância chaveada.
 Ocorre que essa onda tem que variar em função da velocidade do motor, ou seja, tem que ser mais lenta para que o motor parta e depois ir-se acelerando para que o dito ganhe velocidade. Novamente temos duas opções:

a) Usarmos um sensor para detectar a velocidade de giro e com isso ir ajustando a velocidade de acionamento das bobinas.

b) Simplesmente "chutar" algumas velocidades diferentes para mover o motor, sem saber exatamente o que está acontecendo com ele.

A opção "b" será analisada nesse post. Futuramente vamos testar outras alternativas.

Para avaliarmos essa abordagem vamos montar o seguinte circuito:


As três bobinas (L1, L2 e L3) são as que estão dentro do motor. Normalmente o motor brushless tem quatro pontos de conexão, conforme figura abaixo (motor de HD):



Para achar os terminais ligados às bobinas e o terra comum basta medir a resistência entre os terminais. A resistência entre dois terminais ligados às bobinas será mais ou menos metade existente entre uma das bobinas e o neutro. No meu motor a resistência entre os polos das bobinas é de em torno de 7V e de um terminal de bobina para o neutro em torno de 3,2V.

Usamos os três transístores (que podem ser qualquer um NPN que aguente 5V ou a tensão que vc resolva usar, com a corrente de algumas centenas de miliamperes) para funcionar como chave, permitindo o controle de uma corrente maior que os 50 mA que o Arduino pode prover por porta. Normalmente pode ser usados da série BC ou BD. Se vc for usar mais do que 6V convém usar também um dissipador de calor para cada resistor.

Os diodos por sua vez impedem o "ricochete" da tensão quando o motor for parando, já que ele tende a gerar uma força contra-eletromotriz quando está desligado porém rodando por causa da inércia.

Abaixo o circuito montado na protoboard:


Abaixo, dois vídeos do Automação no Parque desse sábado, 15/11.


Esse aí de cima é o do motor sendo acionado, ligado exatamente como descrito acima. O próximo vídeo é de um projeto de escola de alguns alunos de eletrônica da ETEP. O professor encomendou que os caras fizessem carrinhos para uma competição, porém os carrinhos deveriam ser comandados... por fios. Assim, o carrinho não tem nem processador, e a ponte H para controlar os motores é na mão, ou seja, os caras acionam os interruptores para acionar o carrinho na direção desejada. A bateria fica na caixinha de controle. Vejam aí o resultado:



Bom, esse foi o post da teoria e do hardware. Amanhã vai o do software e o vídeo com os resultados.

Abracadabraço!