quinta-feira, novembro 03, 2016

Projeto: Candy Dispenser, em três versões

Um post meio corrido sobre um projeto meu que já passou por três versões: um "dispensador de doces".

A primeira versão


Inspiração


A ideia original veio de um projeto que Luis Leão levou ao Garoa Hacker Clube. Ele comprou no Mercado Livre um dispensador ativado por movimento (veja na Amazon) e colocou um Raspbery Pi para comandar a liberação dos doces a partir de likes no Facebook (se a memória não falha). Eu tentei comprar um igual, mas estava esgotado.

Versão 1: Intel Edison

Passado um bom tempo, me inscrevi para participar do Intel IoT Roadshow de 2015. Neste evento a Intel forneceu aos participantes um Intel Edison com o desafio de fazer algum projeto relacionado à "internet dos trecos".

Revivendo a ideia do dispensador, parti de uma garrafa plástica de suco. Uma portinha de papelão presa a um servomotor controla a saída do doce. Para ter uma telemetria, coloquei LEDs IR de um lado e fototransistores do outro. Para sofisticar um pouco mais, coloquei um leitor de RFID.

Detalhe do servo


Com isto eu usei uma boa quantidade de recursos do Edison: PWM (para controlar o servomotor), entradas e saídas digitais  (LEDs e fototransistores), serial (para comunicação com o leitor RFID) e WiFi (para enviar a leitura dos sensores para a "nuvem"). Por simplificação, a minha "nuvem" era um programa no PC que recebia conexões TCP e atualizava uma imagem simples indicando o nível do doce.

Demonstração no Intel IoT Roadshow

O software do Edison foi feito em C++ usando a biblioteca MRAA.  O programa no PC foi feito em Python.

Versão 2: Arduino

Algumas semanas depois, ao participar da bancada do Garoa na Roadsec, resolvi simplificar um pouco e usar um Arduino. A montagem original já usava uma placa protótipo de shield (o Edison estava em uma placa com conectores padrão Arduino), portanto do ponto de vista elétrico e mecânico foi trivial.

Demonstração na RoadSec


Mantive o leitor de RFID mas não usei a informação dos sensores IR. O funcionamento ficou todo local: lendo um tag o doce era liberado.

Versão 3: ESP8266


Na versão mais recente (até o momento), eu tirei o Arduino, o leitor RFID e os sensores IR. O servo foi ligado a um ESP8266 e acrescentei um display I2C. O software verifica periodicamente o recebimento de mensagens de email. O assunto do email deve estar em um formato específico, que indica uma pergunta e uma resposta. Ao receber a primeira resposta correta a uma pergunta, o doce é liberado. Eu previ 26 perguntas e 26 respostas (uma para cada letra).

No HacKids


Esta versão foi apresentada no "HacKids Dia das Crianças". Alguns aprendizados:
  • Não é trivial usar comunicação segura com o ESP. Acabei usando POP3 aberto.
  • Exemplos retirados da internet podem ter bugs sutis. O exemplo de uso de display I2C que eu usei como ponto de partida acabava bagunçando tudo na minha configuração.
  • As minhas temporizações precisam ser ajustadas quando muda o tamanho do doce. Desta vez eu usei um doce menor e as porções ficaram muito generosas.
  • Preciso imprimir uma peça para prender no servo. A peça de papelão presa com cola quente se soltou.

Nos arquivos do blog, em Baleiro.zip, tem os softwares que eu usei. Estão em estado bruto, com poucos comentários.

3 comentários:

Ricardo Macagnan disse...

Me ocorreu a seguinte ideia: para não ter que alterar a temporização do servo, talvez adaptar algo como uma bola de isopor cavada em um dos lados de forma a criar um "buraco" onde cabe uma certa quantidade de doces. Com isso o servo só precisaria dar uma volta inteira para descarregar o conteúdo e reposicionar o "buraco" para encher novamente, mais ou menos como aquelas máquinas que se coloca uma moeda e se gira uma borboleta para retirar o prêmio. Pode ser que funcione...

DVM - Delphi Virtual Machine disse...

Muito legal DQ! Gostei do projeto.

Daniel Quadros disse...

Ricardo, sua ideia é interessante. Já tinham me sugerido algo equivalente, mas mais complicado. Neste caso em particular não sei se adiantaria tanto, pois a diferença de tamanho entre os doces era grande e cabe bem mais do pequeno no mesmo volume.