Dispenser de MMs – Parte 1

Demorei mas, enfim, iniciei no mundo Arduino e Raspberry Pi. Na verdade, comecei pelo último, já que ainda sequer liguei o Arduino. Elegi como meu primeiro projeto uma ideia que tinha visto no DevFest São Paulo de 2015: um dispenser de MMs feito pelo Luis Leão. Achei a ideia bem bacana, divertida e, principalmente, didática. Minha ideia é levar esse projeto para os próximos eventos do GDG Salvador como uma forma de estimular os estudantes a entrarem nesse mundo também, afinal de contas, se um zé ruela como eu que nunca mexeu com eletrônica conseguiu, por que não eles também?

Nesse post, não vou dar detalhes muito técnicos. Vou passar mais pelos problemas e as soluções que encontrei. Caso você não queira ler tanto blá blá blá, sugiro visitar o post mais técnico (Parte 2), onde vou direto ao ponto, mostrando como montei as partes, as peças, as conexões com o Raspberry e por aí vai. Digamos que esse post aqui é mais filosófico. 😛

A Ideia

Vamos começar explicando a ideia. Meu objetivo era ter um dispenser que checaria por tweets e procuraria por uma determinada hashtag (configurável). Quando encontrasse essa hashtag, o dispenser liberaria MMs em um copo. No projeto do Luis Leão, ele usou um dispenser que já continha um sensor e um mecanismo de abertura que libera os doces (figura abaixo). Nesse caso, ele conectou o Raspberry a esse mecanismo, de forma que o sensor estivesse ativo apenas caso ele encontrasse os tweets. Caso não encontrasse os tweets, ele desligava o sensor, então, não adiantava encostar as mãos, pois ele estaria desativado.

229862204589c

Minha ideia inicial era usar o mesmo dispenser, mas… não o encontrei aqui no Brasil. Tem aos montes no exterior, como no eBay, Amazon e AliExpress, mas o custo total, com taxas de importação, daria uns 200 reais ou mais. Totalmente inviável. Mas não me dei por vencido e tentei encontrar algum outro dispenser que servisse aos meus propósitos. Infelizmente, não encontrei nenhum com sensor ou abertura automática. Foi então que me dei conta que eu precisava fazer tudo, desde o sensor de proximidade até a abertura do reservatório. Dessa forma, pesquisando no Mercado Livre, cheguei ao dispenser da imagem abaixo e pude começar minhas brincadeiras.

dispenser-porta-cereal-prata-zevro

Desafios

Os desafios que eu tinha com esse dispenser se resumiam a:

  • Como vou girar as pás de forma a liberar os MMs?
  • Qual sensor uso para checar se tem uma mão ou um copo próximo?
  • Como vou conectar tudo isso no dispenser?
  • Boto um LCD?
  • Como faço tudo isso de forma que o resultado final não fique uma bagunça?

Alguns destes desafios se mostraram até fáceis demais, vamos a eles.

Girar as Pás

Esse foi o primeiro problema que resolvi encarar, afinal, se eu não conseguisse girar as pás, de nada adiantaria ver os demais desafios. Logo de cara, assim como você também deve ter pensado, pensei em solucionar o problema com um servo motor. Usei um que veio no kit que comprei da RoboCore. Trata-se de um Servo Turnigy TG9e 9g. Comecei retirando a manopla que veio na frente do dispenser (aquela ali da frente, pra girar manualmente as pás) e encaixando o servo motor na haste interna que é usada para girar as pás internas.

103_1_M

Fiz essa fixação, inicialmente, com cola e durex mesmo, já que queria só testar minha hipótese. E que acabou falhando. Falhou porque o servo motor não tinha torque suficiente para mexer as pás quando o dispenser estava muito carregado. Meus primeiros testes contavam apenas com “MMs de papel”, e aí funcionava bem. Quando testei com MMs de verdade, colocando quase 1kg deles no dispenser, o servo não conseguia girar as pás. A solução, então, foi comprar um servo mais potente e, dessa vez, escolhi o SM-S4303R, que tem um bom torque e é de rotação contínua.

427_1_M

Pronto! Agora tudo beleza! O servo tinha força de sobra para girar as pás. Meus testes foram com até 1kg de MMs, o que acho suficiente. O primeiro aprendizado aqui é que servos de rotação contínua operam de forma diferente dos servos com rotação limitada (180 graus). Ao usar os servos de rotação contínua, você determina a velocidade de rotação deles, enquanto com os servos limitados a 180 graus você define a posição para a qual ele deve se deslocar.

Sensor

Logo que comecei com essa brincadeira, nunca tinha imaginado como seria o funcionamento de um sensor de proximidade. No mundo lindo que eu tinha na minha cabeça, o sensor já me daria como dado bruto a distância em si. Mera ilusão. Na verdade, seria necessário usar algum sensor com o qual eu pudesse checar a proximidade de um objeto. Por exemplo, um sensor de luminosidade. Caso um objeto esteja muito próximo, a luz diminui. Mas não serviria muito bem para os meus propósitos, pois seria necessário aproximar demais as mãos.

Foi então que vi que eu tinha um sensor ultrassônico, que se encaixou perfeitamente. Com esse sensor, eu posso calcular a distância de um objeto para o sensor. A ideia é simples: ele emite um som que vai bater em objeto e voltar. Assim, eu tenho todas as informações que preciso pra saber a distância: o tempo que o som levou para ir e voltar e também a velocidade do som. Lindo. Agora eu já tenho como saber se tem um objeto próximo o suficiente. Ah! Para meu caso, usei o sensor HC-SR04.

620_1_M

LCD

Para o negócio ficar ainda mais bonito, resolvi botar uma tela de LCD de 16×2 com o objetivo de mostrar o nome da pessoa que ganhou os MMs. E essa foi a parte que mais me deu trabalho. Primeiro, porque o LCD precisa de fio pra cacete. Segundo, porque o idiota aqui conectou errado na primeira vez. Terceiro, porque eu sou idiota mesmo. 😛

79_1_M

Mas, acabou que funcionou lindamente, embora tenha poluído o projeto com uns 12 fios passando de um lado pro outro. O LCD que usei foi o LCD 16×2 com fonte preta e fundo verde, vendido na Robocore.

Assembly

Uma vez que eu tinha os componentes e já os tinha testado, agora restava colocá-los no dispenser de uma forma bacana, sem que ficassem muito expostos. Foi aí que entrou meu lado Maker. E como esse lado Maker me surpreendeu. Eu diria que foi até muita sorte, porque eu consegui fazer os cortes até bem demais. Só o do LCD que não ficou muito gatinho, mas está valendo.

Primeiro, tirei o “girador” manual da frente e coloquei o servo motor na parte de trás, para que ficasse escondido e bem apoiado. Caso eu o colocasse na parte frontal, teria como problema sua fixação, já que necessitaria de algo para apoiá-lo bem, sem que girasse em seu próprio eixo toda vez que fosse acionado. Depois, precisei fazer os cortes do LCD e do sensor ultrassônico, pois sem esses cortes, os fios atrapalhariam bastante, sem contar que ficariam demasiadamente expostos.

Para esses cortes, usei um estilete aquecido e um niple de inox que uso na minha panela de brassagem. Funcionou belezura demais! Acabou que eu tinha tudo o que precisava em minha casa mesmo!

Software

Para falar a verdade, o software foi a parte mais fácil. E não poderia ser de outra forma, né! Só precisei relembrar um pouco de Python e brigar um pouco com a GPIO até entendê-la direito. Superados esses problemas, foi piece of cake! Aliás, todo o código está no Github, caso esteja interessado.

Cadê os detalhes?

Calma! Este foi só o primeiro post! Um mais filosófico! Já estou escrevendo o post que mostrará todos os detalhes técnicos, com as conexões, uso do GPIO, código Python e fotos!