Caixa Automatizada de Esterilização de Máscaras COVID-19 com UV-C

Postado em Atualizado em

Estamos vivendo uma crise onde todos necessitam usar máscaras ao sair de casa. A orientação é que as máscaras sejam higienizadas após cada uso. Mas como fazê-lo de forma simples, eficaz e rápida? Há, na Internet, muitíssimos tutoriais de como fazer máscaras caseiras (aqui um corte bem legal para você costurar em casa), mas quase nenhuma informação de como limpá-las.

Há várias possibilidades: você pode lavá-las ou passá-las a ferro muito quente (esse método, dependendo do tecido que usou, vai destruí-las). A forma mais prática é utilizar irradiação germicida por Ultravioleta-C. Esta técnica tem sido utilizada inclusive para higienizar ônibus e trens, passando-os por túneis cheios de lâmpadas, e corredores de hospitais, estes últimos com robôs-esterilizadores carregando um pilar de lâmpadas germicidas. A vantagem desse método é que é extremamente rápido: dependendo da potência da lâmpada, poucos segundos de exposição da superfície à irradiação bastam.

Para usar UV-C para esterilizar suas máscaras, o ideal é ter uma caixa de desinfecção simples, que você pode colocar na entrada da sua casa e onde você joga as máscaras ao chegar, ligando o aparelho por alguns minutos para realizar a esterilização. Essa caixa deve ser automatizada e desligar sozinha quando o processo de esterilização estiver completo, para que não seja esquecida ligada.

Esta página descreve como foi que, na nossa família, construímos uma caixa assim. É um modelo simples que pode ser construído em uma tarde em casa, usando peças velhas que você pode ter sobrando na sua garagem. Vou também mostrar como aumentamos a segurança e praticidade, incluindo algumas melhorias que nós descobrimos que são úteis durante os nosso experimentos com o uso da caixa.

Eu vou primeiramente descrever a versão simples da caixa (Versão 1), sem automação, que nós construímos como primeiro protótipo. Depois eu vou descrever como foi que nós incluímos  segurança adicional (Versão 2), com uma chave que desliga automaticamente a caixa se ela for aberta acidentalmente enquanto estiver ligada, e, depois, como incluímos automação (versão 3) com um temporizador que desliga automaticamente a caixa, para que ela não seja esquecida ligada. A caixa pode ser construída e refinada incrementalmente, constriuindo-se primeiro a Versão 1 e depois ir refinando.

 

Importante: Radiação UV-C pode ser perigosa e esta caixa trabalha com alta tensão (8.200 V) gerada por um transformador de lâmpada fluorescente. Se você tem alguma dúvida sobre o que está descrito aqui ou não possui experiência em construir aparelhos ligados na rede elétrica (220 V), não tente, em hipótese alguma, montar esta caixa em casa. Entre em contato com um engenheiro biomédico ou eletricista. Nunca permita a crianças ou adolescentes montarem este dispositivo sem supervisão.

Versão 3.0 da Caixa de Esterilização de Máscaras com UV-C
Versão 3.0 da Caixa de Esterilização de Máscaras com UV-C

O que é UV-C?

O Ultravioleta-C é a faixa de onda mais curta e de mais alta energia da Luz Ultravioleta. UV-C é emitido pelo Sol mas, em condições naturais, nunca atinge a superfície da Terra porque a camada de ozônio na parte superior da atmosfera absorve-o. Na verdade, é o UV-C que é em parte esponsável pela formação da camada de ozônio. Isso significa que os seres vivos na Terra não evoluíram para lidar com UV-C e são susceptíveis a ele.

Como age o UV-C?

O UV-C, por ter ondas muito curtas, é uma radiação de alta energia e é capaz de danificar moléculas grandes dos tecidos de seres vivos: as ondas curtas dessa radiação penetram nessas moléculas e as destroem. Uma dessas moléculas é o DNA, nosso código genético. Isso significa que UV-C destroi o código genético de seres vivos e torna-os incapazes de viver ou se reproduzir. Como a onda é absorvida rapidamente, ela tem pouco poder de penetração: no ser humano, as camadas externas da pele absorvem todo o UV-C e ele não causa danos profundos, mas pode causar câncer de pele se a exposição for prolongada. Em micróbios, o UV-C é extremamente destrutivo e neutraliza-os em segundos.

Que lâmpada usar?

Com o COVID-19 surgiu uma verdadeira coqueluxe de irradiar tudo com ultravioleta e a indústria Chinesa está produzindo os mais variados modelos de lâmpadas. Abaixo coloquei uma figura de um site de televendas Chinês mostrando uma infinidade de ofertas para “UV-C”.

O problema é: quais são os padrões industriais sob os quais estas lâmpadas estão sendo produzidas? Como vou saber que a tira de LED UV que eu comprei de fato irradia UV-C e não simplesmente ilumina os meus micróbios com luz roxa e não esteriliza absolutamente nada? Como eu vou saber que aquela lâmpada UV de ampola não está produzindo também uma pequena porcentagem de raios-X? A resposta é: eu não sei. Não há padronização nenhuma. Além disso, encomendar algo da China no momento é pouco praticável, quando chegar, a Crise do Corona vai possivelmente estar passsando…

Exemplo da variedade confusa de ofertas atuais…

A Adafruit nos presenteou com uma análise objetiva e muito bem fundamentada das lâmpadas de UVC que há no mercado: https://www.youtube.com/watch?v=FvL6DzwrF_g

Em função dessa incerteza, decidi por usar um equipamento profissional: lâmpadas de esterilização de água para filtros de passagem para Aqüicultura. No Brasil se pratica muito aqüicultura e todas estas fazendas de tilápia e camarão necessitam que a água seja controlada para não ficar verde demais e nem desenvolver patógenos nocivos aos animais. Isso se faz passado a água por um filtro de luz, um cano onde a água é irradiada com luz UV-C para matar algas e micróbios. Isto também é usado em esterilizadores para aquários.

Essas lâmpadas são produzidas em situações controladas e obedecem a padrões de qualidade confiáveis e com certeza produzem uma radiação UV-C dentro dos parâmetros esperados: podemos ter uma razoável certeza de que essas lâmpadas vão esterilizar de fato as máscaras e não vão irradiar a minha casa com raios-X. Além disso são fáceis de encontrar porque muita gente adquire.

Eu utilizei uma lâmpada de uma marca de qualidade na potência de 60 W, OSRAM GFT60DL/2G11/SE/OF, mas há muitas outras. Eu comprei logo o kit completo, com lâmpada, soquete e transformador. Você pode adquirí-los no Mercado Livre. Abaixo alguns exemplos:

Como eu construí a Caixa? Versão 1.0

A vantagem de usar uma lâmpada fluorescente como essa que eu peguei é que ela não esquenta e você pode usar praticamente qualquer material para fazer o seu Esterilizador Caseiro. Achei até um exemplo na Internet onde a pessoa usou caixas de sapatos. Eu optei por usar madeira. No nosso caso foi uma gaveta velha, mas pode ser qualquer caixa de verduras pêga na feira, desde que seja bem vedada com alumínio. Veja a figura abaixo para ver como ficou e quais os passos que nós seguimos para construir a caixa. Os passos:

  1. Pegue uma caixa de madeira. Você pode fazer a caixa em casa com MDF também. A caixa deve ter pelo menos uns 30cm de lado, para que a lâmpada, que tem quase 40cm caiba na diagonal. Eu usei uma gaveta velha que sobrou de um armário onde decidi não montar a gaveta;
  2. Pegue um pedaço de MDF cortado no tamanho da caixa ou então um pedaço de Eucatex/Duratex para servir de tampa. Você pode serrar tudo em casa com uma serra manual ou com uma serra circular se você possuir uma. Alternativamente, ligue para uma madeireira próxima e passe o tamanho das peças de madeira, normalmente eles cortam e, atualmente, muito possivelmente vão até entregar na sua casa. O ideal é que a tampa tenha bordas, para que a luz não irradie para fora. Eu usei divisórias velhas para gaveta, mas você pode usar papelão ou filete de madeira;
  3. Tome duas ou três dobradiças, das menores que encontrar (eu tinha sobras daqueles armários que você compra desmontados na Tok & Stok ou outro lugar e onde você sempre acaba deixando alguma coisa de fora). Qualquer loja de material de construção vai ter essas dobradiças. Parafuse-as com parafusos para madeira pequenos;
  4. Faça os pés da caixa: eu usei dois tacos de madeira que estavam na garagem. O peso dos tacos vai evitar que a caixa se desloque quando você estiver abrindo ou fechando. Você pode usar um quarteto de pés de borracha para dar um ar mais profissional também;
  5. Forre a caixa com alumínio: vai servir de refletor para irradiar melhor as suas máscaras e também evitar que a radiação escape da caixa. Eu usei folha de alumínio genérica usada para artesanato e para fazer calhas, que eu tinha sobrando aqui em casa. Você pode usar também aquela folha de alumínio fina para churrasco. A folha para calhas vende me qualquer loja de materiais de construção;
  6. Fixe o alumínio na caixa com parafusos ou cola. Se você usou uma chapa mais rígida, deixe-a com uma curvatura para fazer um refletor melhor, como mostra a figura;
  7. Para evitar vazamento de radiação pela fresta das dobradiças, use aquele adesivo aluminizado para tubos de aquecimento (duct tape) ou então cole qualquer plástico aluminizado de uma embalagem. Eu utilizei uma embalagem de corn flakes;
  8. Faça as conexões elétricas:
    1. Fixe os fios do transformador no soquete: haverá dois pares de fios com a mesma cor cada, no meu transformador eram dois azuis e dois vermelhos. Fixe os fios de mesma cor em contatos vizinhos no soquete, de forma que cada filamento da lâmpada esteja conectado a um par de fios da mesma cor – é corrente alternada, não faz diferença qual fio em qual contato;
    2. Conecte a entrada no transformador em um interruptor dequeles de fio para abajures. Você acha em qualquer loja de material de construção. Eu tinha um sobrando de um abajur velho. Observe que, se o transformador for bivolt, ele vai ter três fios, use o fio preto e aquele marcado 220V ou 110V, dependendo da tensão na região onde mora. Isole o outro fio;
    3. Conecte o interruptor ao fio elétrico para ligar na tomada. Fio e um plugue você também encontra em qualquer loja de material de construção;
    4. Encaixe a lâmpada no lugar: a lâmpada não tem polaridade;
    5. Fixe a ponta da lâmpada na tampa, para que não quebre e não caia sobre as máscaras. Como a lâmpada é fluorescente e não aquece, você pode usar uma tira de nylon ou um barbante:
  9. Finalize imprimindo e colando um aviso de cuidado UV na tampa.
Clique na imagem para ampliar e ver os detalhes

O aviso:

Minha Instalação: Entrada da Casa

Agora é só colocar a caixa em um local de fácil acesso. Nós colocamos na entrada da nossa casa, com um gaveteiro ao lado onde estão os EPIs de toda a família:

  • quando alguém chega em casa, joga seu EPI na caixa;
  • quando a caixa está cheia que chega, alguém vai lá e a liga por 5 minutos;
  • espera-se 15 minutos até que o ozônio produzido se disperse, e
  • guarda-se os EPIs nas gavetas de seus donos.
Esterilizador instalado na entrada da nossa casa, ao lado de um gaveteiro contendo as máscaras e luvas de cada membro da família

Aumentando a Segurança: Kill Switch. Versão 2.0

Um risco dessa caixa é você abrir a caixa sem querer enquanto estiver ligada e acabar olhando diretamente para a lâmpada: se você isolou a caixa bem, você não vai saber de fora se está ligada ou não, a não ser pela posição do interruptor que, num interuptor de fio como o que usamos, pode ser ambígua.

A forma mais simples de prevenir isto é colocar em série com o interruptor, um segundo interruptor, que vai funcionar como sensor de fechamento da caixa e, na prática, atuar como um kill switch: se você abrir a caixa, ela desliga imediatamente.

Você pode fazer isso com qualquer botão de pressão. Eu usei um botão velho de reset de computador, mas pode ser algo que você compra em lojas de materiais elétricos, até um botão de campainha serve:

A montagem é simples: conecte o interruptor de pressão entre o interruptor de fio e o transformador e posicione-o na parte lateral da caixa de forma que a aba da caixa o presione para baixo quando estiver fechada. Quando você abrir a caixa, o botão abre o circuito e a caixa automaticamente desliga.

O que falta fazer? Automação com um Temporizador! Versão 3.0

Para não esquecer a caixa ligada (já nos aconteceu) a melhor coisa é colocar um temporizador que a desligue automaticamente depois do tempo de irradiação correto. Para isto a melhor coisa são essas plaquinhas temporizadoras eletrônicas programáveis simples que você compra prontas.  Eu adicionei um temporizador como este, modelo XY-J02, da figura:

No link abaixo há uma infinidade de modelos e ofertas, todos funcionam do mesmo jeito e podem ser alimentados por um carregador de celular velho:

Existem outros modelos de temporizador, por exemplo o modelo DK-C-01. Ele não tem um botão de pausa, mas tem uma campainha, o que pode ser útil.

Como eu montei o circuito do temporizador?

Eu inseri o relê do temporizador em série com as outras chaves, entre a chave geral e o kill switch. A alimentação do temporizador eu derivei também depois da chave geral, para que o temporizador energize quando eu ligo o aparelho, mas antes de ligar o relê, de maneira que o temporizador sempre tenha energia, independente do estado do relê. É importante também ligar a energia do temporizador antes do kill switch, senão você interrompe o timer toda vez que abrir a caixa para colocar mais alguma coisa que ficou esquecida do lado de fora.  O circuito de toda a caixa, automatizada com o temporizador, é mostrado abaixo:

O temporizador funciona com qualquer fonte de corrente contínua supostamente entre 6V e 30V. Fiz uns testes e descobri que, com 5V também funciona, o display só fica um pouco apagadinho. Então, para alimentar o temporizador eu usei um carregador de celular velho, daqueles de celular de teclado, que me dá pouco mais de 5V e resolve dois problemas: me livrei de um lixo eletrônico que estava no fundo da gaveta e achei uma fonte de alimentação para a placa temporizadora.  Se você não guarda sucata eletrônica como eu, sugiro adquirir a fonte de 9V ou 12V mais simples que puder encontrar, como essas:

Você pode também ver na lojinha de consertos de TV do seu bairro. Eles com certeza vão ter algo que sirva.

Essa fonte de alimentação eu instalei embaixo da chapa de alumínio do fundo da caixa. Lembra que eu dissse que ia usar uma chapa curva? Pois é, embaixo dessa curvatura sobrou espaço para deixar a fonte bem acomodada. Para conectar a fonte à energia eu usei um plugue fêmea, desses de fio de extensão. Vende em qualquer supermercado:

Como botão de “início”, para iniciar a contagem regressiva do temporizador e ligar a lâmpada, eu usei um botão de máquina caça-níqueis, que é bem grande e fica óbvio para todo mundo onde é que liga a máquina. Veja abaixo o temporizador e o botão, já montados:

Esse tipo de botão você compra em lojas de eletrônica ou no Mercado Livre:

Para a capinha de acrílico da placa eu usei um fundo de uma fita minDV, dessas de filmadora velha. Existem caixinhas profissionais para eletrônica que você pode comprar, se desejar.

Eu usei um conector, que pode ser comprado em qualquer loja de material elétrico, para conectar os fios todos. Pode-se simplesmente enrolar os fios e passar fita isolante por cima, também. Vista do lado de fora, as conexões da caixa ficaram assim:

Não ficou muito bonito, mas está funcional e seguro.

Agora é só programar o tempo de exposição. Ele vai depender da lâmpada. Para uma lâmpada de 60W como a minha, supostamente 2 minutos são mais que suficientes, se a superfície de máscara for lisa, o que não acontece, já que as máscaras são feitas com tecido comum e os fios de tecido vão atenuar a radiação nas camadas mais profundas do tecido. Eu fiz vários testes e percebi que o tecido não desbota e nem queima com até 15 minutos de irradiação. Acima disso ele começa  perder um pouco de cor. Então eu programei o meu temporizador para 15 minutos. A forma de programar cada modelo de placa temporizadora é diferente, veja os manuais:

Existem também videos no YouTube. Aqui um exemplo:

Importante: Cuidados Adicionais

Ao Construir e Testar: cuidado Radiação UV-C!

UV-C, mesmo em pequenas quantidades pode ser prejudicial aos seus olhos: mesmo quando estiver testando o aparelho, nunca olhe diretamente para a lâmpada. Também não se exponha a radiação indireta da lâmpada, por exemplo, colocando-se de costas para ela e acendendo-a: a luz UV-C refletida pelas paredes da sua casa já pode ser suficiente para machucar os seus olhos.  O que nós fizemos para testar se a lâmpada estava funcionando foi terminar de construir todo o aparelho e aí o ligamos para identificar as frestas por onde escapava um pouco de radiação. É uma construção caseira: sempre vão haver frestas. Serviu tanto para ver se a lâmpada estava acendendo como para identificar onde tínhamos que vedar a caixa com papel alumínio extra.

Ao Operar: cuidado Ozônio!

Luz UV-C, ao passar pelo oxigênio dissolvido na atmosfera, ioniza e energiza as moléculas de oxigênio, o que gera ozônio. A caixa, ao final da operação, conterá uma certa quantidade de ozônio produzido pela radiação da lâmpada. Ozônio, se inspirado, pode causar danos aos pulmões. Porém, ozônio, na ausência de radiação ultravioleta, é instável e se desfaz rapidamente quando você desliga a lâmpada.  É importante esperar pelo menos 15 minutos antes de abrir a caixa após uma esterilização para que o ozônio se disperse e desfaça.

A lâmpada OSRAM GFT60DL/2G11/SE/OF, que eu usei,  é supostamente “ozone free”, mas o meu nariz me diz outra coisa. É interessante ler esta notícia aqui: https://saude.estadao.com.br/noticias/geral,usp-desenvolve-camara-de-ozonio-para-desinfeccao-e-reuso-de-mascaras-hospitalares,70003267103  para se informar mais.

Isenção de Responsabilidade/Disclaimer

Este posting descreve minha experiência, eu pessoa privada Aldo von Wangenheim, na montagem de uma caixa de esterilização usando luz UV-C. Isto não é um posting oficial do Coordenador Científico de Telemedicina do STT/SC e nem tampouco um posting oficial do Professor Aldo von Wangenheim do Depto. de Informática e Estatística da UFSC. Também não é um incentivo a você sair construindo esta caixa. É apenas a minha experiência privada, de um dispositivo que construímos em família e que eu estou compartilhando porque considero útil no momento atual. Eu sou formado em Ciências da Computação e tenho doutorado em Matemática Aplicada. Não sou Engenheiro Eletricista e não sou Engenheiro Biomédico. Tudo o que está aqui foi realizado baseado no bom senso e nos conhecimentos científicos e técnicos meus e de minha família, que ajudou no desenvolvimento e montagem deste dispositivo.

Radiação UV-C pode ser perigosa e esta caixa trabalha com alta tensão (8.200 V) gerada por um transformador de lâmpada fluorescente. Se você tem alguma dúvida sobre o que está descrito aqui ou não possui experiência em construir aparelhos ligados na rede elétrica (220 V), não tente montar esta caixa em casa em hipótese alguma. Nunca permita a crianças ou adolescentes montarem este dispositivo sem supervisão.

Use esta descrição sob sua conta e risco.

Agradecimentos

Queremos agradecer ao Prof. Fernando Pacheco do IFSC pela revisão deste material e pela sugestão do kill switch. Queremos também agradecer às Profas. Cristina Calvo e Josimari Telino, do Depto. de Saúde Pública da UFSC, pela leitura crítica do material.

Referências

 

Greenscreen rapidamente feito em casa com Eucatex para Videoconferências e Videoaulas

Postado em Atualizado em

Nos “tempos do Coronavírus” todos estão passando a trabalhar de casa. Nós professores & pesquisadores somos uma classe abençoada e amaldiçoada ao mesmo tempo: Podemos trabalhar tranqüilamente de casa dando videoaulas no modelo semipresencial (depois de gastar um $$ dando upgrade na nossa Internet) e, por isso mesmo, não temos uma desculpa para ficar de pernas para o alto comendo pipoca, assistindo Netflix e ficando gordos.

Parte importante de uma boa aula é você ter um bom fundo virtual: ninguém quer ver aquele guarda-roupas meio aberto, com a roupa suja meio caindo para fora (a faxineira não está vindo, certo?).

A técnica para isso é chamada de chroma key ou greenscreen e consiste em usar um fundo de uma cor básica forte, que depois é filtrado e substituído por uma imagem ou um vídeo bacana, como na previsão do tempo que você está acostumado a assistir.

Muitos softwares de video- e webconferência hoje têm módulos de greenscreen. Se você possuir um fundo desses, vai ficar bem fácil dar aulas superprofissionais!

Aqui em casa somos duas pessoas a darem aulas e realizarem videoconferências o tempo todo. Estávamso precisando profissionalizar. Neste post mostramos como fizemos o nosso greenscreen.

O que você necessita?

Material:

  1. 1 Litro de Tinta branca solúvel em água. Pode ser esmalte sintético base água ou tinta de parede branca de qualquer tipo. Preferencialmente acetinado/semi-brilho ou fosco. Uma pintura brilhante vai criar reflexos que vão atrapalhar.  Eu usei uns restos de um conserto numa parede aqui de casa e não tive de comprar nada;
  2. 2 Frascos de Corante para latex/tinta acrílica de parede na cor verde. Veja aqui exemplos: https://lista.mercadolivre.com.br/corante-para-tinta-latex
  3. Uma brocha ou um rolo de pintura. Eu usei material velho que havia na garagem, a não ser que você queira transmitir video em resolução 4K,  pintura não vai necessitar ser perfeita;
  4. Um lugar para misturar a tinta. Eu usei um pote de iogurte de 2 litros velho. Você pode profissionalizar e usar uma bandeja de pintura velha;
  5. Uma chapa de Eucatex ou Duratex tamanho padrão. Veja aqui exemplos: https://www.americanas.com.br/produto/103904135
  6. 2 Ripas de madeira 2,5 x 2,5 cm de aproximadamente 1,50 m de comprimento.  Qualquer madeireira tem, se você for comprar o Eucatex numa madeireira, compre logo as ripas junto. Eu tinha umas sobras de construção aqui em casa e não precisei comprar;
  7. Parafusos pequenos para prender as ripas no Eucatex. Qualquer coisa que você tenha sobrando em casa vai satisfazer.

Mãos à Obra!

Coloque o Eucatex no chão, misture o corante na tinta a tinta até ficar um verde vivo como o da imagem abaixo?

Pinte o Eucatex/Duratex usando um rolo ou pincel velho

Você provavelmente vai gastar um tubo e meio de corante, talvez um pouco mais. Despeje o corante aos poucos e vá misturando.  Eu criei um “misturador de tinta” usando um elemento de uma batedeira velha na minha parafusadeira.

Dê duas demãos de tinta, esperando secar entre demãos e estará bom que chega. Aí é só esperar secar bem e parafusar as ripas de forma que o Eucatex fique na altura certa para cobrir todo o espaço atrás de você quando você estiver dando uma videoaula:

Com os suportes

O nosso greenscreen “preparado para uso” ficou assim:

Nosa Sala de Videoaula preparada para uma transmissão…

Feito isto, escolha o software de videoconferência e o fundo virtual que você deseja usar. Na imagem abaixo um exemplo usando Microsoft Zoom e um fundo contendo o brasão da UFSC (esse eu uso para dar aulas na universidade e para proferir aulas convidadas em outros cursos):

sala-de-videoaula2

Se a sua plataforma de web- ou videoconferência não suporta fundos virtuais, passe o sinal de sua câmera através do OBS Studio, lembrando de instalar o plugin de Câmera Virtual. O OBS captura a sua câmera, mistura com o conteúdo do seu video ou de parte dele e oferece isso como uma saída de câmera virtual que pode ser usada na sua plataforma de videoconferência. O OBS é software livre e existe para todas as plataformas: Windows, Mac e Linux:

sala-de-videoaula4

Pronto, você tem a sua aula superprofissional:

sala-de-videoaula3

Agora só falta dar um acabamento especial na porta do seu escritório. Essa placa nós encontramos no Mercado Livre, mas deve ser possível de encontrar em lojas de decoração e artigos para bares e lojas também:

Toque profissional na porta do escritório…

Divirta-se!

Caixa de Esterilização de Máscaras com UV-C de Montagem Rápida

Postado em Atualizado em

Estamos vivendo uma crise onde todos necessitam usar máscaras ao sair de casa. A orientação é que as máscaras sejam higienizadas após cada uso. Mas como fazê-lo de forma simples, eficaz e rápida? Há, na Internet, muitíssimos tutoriais de como fazer máscaras caseiras (aqui um corte bem legal para você costurar em casa), mas quase nenhuma informação de como limpá-las.

Há várias possibilidades: você pode lavá-las ou passá-las a ferro muito quente (esse método, dependendo do tecido que usou, vai destruí-las). A forma mais prática é utilizar irradiação germicida por Ultravioleta-C. Esta técnica tem sido utilizada inclusive para higienizar ônibus e trens, passando-os por túneis cheios de lâmpadas, e corredores de hospitais, estes últimos com robôs-esterilizadores carregando um pilar de lâmpadas germicidas. A vantagem desse método é que é extremamente rápido: dependendo da potência da lâmpada, poucos segundos de exposição da superfície à irradiação bastam.

Para usar UV-C para esterilizar suas máscaras, o ideal é ter uma caixa de desinfecção simples, que você pode colocar na entrada da sua casa e onde você joga as máscaras ao chegar, ligando o aparelho por alguns minutos para realizar a esterilização.

Esta página descreve como foi que, na nossa família, construímos uma caixa assim. É um modelo simples que pode ser construído em uma tarde em casa, usando peças velhas que você pode ter sobrando na sua garagem. Vou também mostrar como aumentamos a segurança e praticidade, incluindo algumas melhorias que nós descobrimos que são úteis durante os nosso experimentos com o uso da caixa.

Importante: Radiação UV-C pode ser perigosa e esta caixa trabalha com alta tensão (8.200 V) gerada por um transformador de lâmpada fluorescente. Se você tem alguma dúvida sobre o que está descrito aqui ou não possui experiência em construir aparelhos ligados na rede elétrica (220 V), não tente, em hipótese alguma, montar esta caixa em casa. Entre em contato com um engenheiro biomédico ou eletricista. Nunca permita a crianças ou adolescentes montarem este dispositivo sem supervisão.

O que é UV-C?

O Ultravioleta-C é a faixa de onda mais curta e de mais alta energia da Luz Ultravioleta. UV-C é emitido pelo Sol mas, em condições naturais, nunca atinge a superfície da Terra porque a camada de ozônio na parte superior da atmosfera absorve-o. Na verdade, é o UV-C que é em parte esponsável pela formação da camada de ozônio. Isso significa que os seres vivos na Terra não evoluíram para lidar com UV-C e são susceptíveis a ele.

Como age o UV-C?

O UV-C, por ter ondas muito curtas, é uma radiação de alta energia e é capaz de danificar moléculas grandes dos tecidos de seres vivos: as ondas curtas dessa radiação penetram nessas moléculas e as destroem. Uma dessas moléculas é o DNA, nosso código genético. Isso significa que UV-C destroi o código genético de seres vivos e torna-os incapazes de viver ou se reproduzir. Como a onda é absorvida rapidamente, ela tem pouco poder de penetração: no ser humano, as camadas externas da pele absorvem todo o UV-C e ele não causa danos profundos, mas pode causar câncer de pele se a exposição for prolongada. Em micróbios, o UV-C é extremamente destrutivo e neutraliza-os em segundos.

Que lâmpada usar?

Com o COVID-19 surgiu uma verdadeira coqueluxe de irradiar tudo com ultravioleta e a indústria Chinesa está produzindo os mais variados modelos de lâmpadas. Abaixo coloquei uma figura de um site de televendas Chinês mostrando uma infinidade de ofertas para “UV-C”.

O problema é: quais são os padrões industriais sob os quais estas lâmpadas estão sendo produzidas? Como vou saber que a tira de LED UV que eu comprei de fato irradia UV-C e não simplesmente ilumina os meus micróbios com luz roxa e não esteriliza absolutamente nada? Como eu vou saber que aquela lâmpada UV de ampola não está produzindo também uma pequena porcentagem de raios-X? A resposta é: eu não sei. Não há padronização nenhuma. Além disso, encomendar algo da China no momento é pouco praticável, quando chegar, a Crise do Corona vai possivelmente estar passsando…

Exemplo da variedade confusa de ofertas atuais…

Em função dessa incerteza, decidi por usar um equipamento profissional: lâmpadas de esterilização de água para filtros de passagem para Aqüicultura. No Brasil se pratica muito aqüicultura e todas estas fazendas de tilápia e camarão necessitam que a água seja controlada para não ficar verde demais e nem desenvolver patógenos nocivos aos animais. Isso se faz passado a água por um filtro de luz, um cano onde a água é irradiada com luz UV-C para matar algas e micróbios. Isto também é usado em esterilizadores para aquários.

Essas lâmpadas são produzidas em situações controladas e obedecem a padrões de qualidade confiáveis e com certeza produzem uma radiação UV-C dentro dos parâmetros esperados: podemos ter uma razoável certeza de que essas lâmpadas vão esterilizar de fato as máscaras e não vão irradiar a minha casa com raios-X. Além disso são fáceis de encontrar porque muita gente adquire.

Eu utilizei uma lâmpada de uma marca de qualidade na potência de 60 W, OSRAM GFT60DL/2G11/SE/OF, mas há muitas outras. Eu comprei logo o kit completo, com lâmpada, soquete e transformador. Você pode adquirí-los no Mercado Livre. Abaixo alguns exemplos:

Como eu construí a Caixa?

A vantagem de usar uma lâmpada fluorescente como essa que eu peguei é que ela não esquenta e você pode usar praticamente qualquer material para fazer o seu Esterilizador Caseiro. Achei até um exemplo na Internet onde a pessoa usou caixas de sapatos. Eu optei por usar madeira. No nosso caso foi uma gaveta velha, mas pode ser qualquer caixa de verduras pêga na feira, desde que seja bem vedada com alumínio. Veja a figura abaixo para ver como ficou e quais os passos que nós seguimos para construir a caixa. Os passos:

  1. Pegue uma caixa de madeira. Você pode fazer a caixa em casa com MDF também. A caixa deve ter pelo menos uns 30cm de lado, para que a lâmpada, que tem quase 40cm caiba na diagonal. Eu usei uma gaveta velha que sobrou de um armário onde decidi não montar a gaveta;
  2. Pegue um pedaço de MDF cortado no tamanho da caixa ou então um pedaço de Eucatex/Duratex para servir de tampa. Você pode serrar tudo em casa com uma serra manual ou com uma serra circular se você possuir uma. Alternativamente, ligue para uma madeireira próxima e passe o tamanho das peças de madeira, normalmente eles cortam e, atualmente, muito possivelmente vão até entregar na sua casa. O ideal é que a tampa tenha bordas, para que a luz não irradie para fora. Eu usei divisórias velhas para gaveta, mas você pode usar papelão ou filete de madeira;
  3. Tome duas ou três dobradiças, das menores que encontrar (eu tinha sobras daqueles armários que você compra desmontados na Tok & Stok ou outro lugar e onde você sempre acaba deixando alguma coisa de fora). Qualquer loja de material de construção vai ter essas dobradiças. Parafuse-as com parafusos para madeira pequenos;
  4. Faça os pés da caixa: eu usei dois tacos de madeira que estavam na garagem. O peso dos tacos vai evitar que a caixa se desloque quando você estiver abrindo ou fechando. Você pode usar um quarteto de pés de borracha para dar um ar mais profissional também;
  5. Forre a caixa com alumínio: vai servir de refletor para irradiar melhor as suas máscaras e também evitar que a radiação escape da caixa. Eu usei folha de alumínio genérica usada para artesanato e para fazer calhas, que eu tinha sobrando aqui em casa. Você pode usar também aquela folha de alumínio fina para churrasco. A folha para calhas vende me qualquer loja de materiais de construção;
  6. Fixe o alumínio na caixa com parafusos ou cola. Se você usou uma chapa mais rígida, deixe-a com uma curvatura para fazer um refletor melhor, como mostra a figura;
  7. Para evitar vazamento de radiação pela fresta das dobradiças, use aquele adesivo aluminizado para tubos de aquecimento (duct tape) ou então cole qualquer plástico aluminizado de uma embalagem. Eu utilizei uma embalagem de corn flakes;
  8. Faça as conexões elétricas:
    1. Fixe os fios do transformador no soquete: haverá dois pares de fios com a mesma cor cada, no meu transformador eram dois azuis e dois vermelhos. Fixe os fios de mesma cor em contatos vizinhos no soquete, de forma que cada filamento da lâmpada esteja conectado a um par de fios da mesma cor – é corrente alternada, não faz diferença qual fio em qual contato;
    2. Conecte a entrada no transformador em um interruptor dequeles de fio para abajures. Você acha em qualquer loja de material de construção. Eu tinha um sobrando de um abajur velho. Observe que, se o transformador for bivolt, ele vai ter três fios, use o fio preto e aquele marcado 220V ou 110V, dependendo da tensão na região onde mora. Isole o outro fio;
    3. Conecte o interruptor ao fio elétrico para ligar na tomada. Fio e um plugue você também encontra em qualquer loja de material de construção;
    4. Encaixe a lâmpada no lugar: a lâmpada não tem polaridade;
    5. Fixe a ponta da lâmpada na tampa, para que não quebre e não caia sobre as máscaras. Como a lâmpada é fluorescente e não aquece, você pode usar uma tira de nylon ou um barbante:
  9. Finalize imprimindo e colando um aviso de cuidado UV na tampa.
Clique na imagem para ampliar e ver os detalhes

O aviso:

Minha Instalação: Entrada da Casa

Agora é só colocar a caixa em um local de fácil acesso. Nós colocamos na entrada da nossa casa, com um gaveteiro ao lado onde estão os EPIs de toda a família:

  • quando alguém chega em casa, joga seu EPI na caixa;
  • quando a caixa está cheia que chega, alguém vai lá e a liga por 5 minutos;
  • espera-se 15 minutos até que o ozônio produzido se disperse, e
  • guarda-se os EPIs nas gavetas de seus donos.
Esterilizador instalado na entrada da nossa casa, ao lado de um gaveteiro contendo as máscaras e luvas de cada membro da família

Aumentando a Segurança

Um risco dessa caixa é você abrir a caixa sem querer enquanto estiver ligada e acabar olhando diretamente para a lâmpada: se você isolou a caixa bem, você não vai saber de fora se está ligada ou não, a não ser pela posição do interruptor que, num interuptor de fio como o que usamos, pode ser ambígua.

A forma mais simples de prevenir isto é colocar em série com o interruptor, um segundo interruptor, que vai funcionar como sensor de fechamento da caixa e, na prática, atuar como um kill switch: se você abrir a caixa, ela desliga imediatamente.

Você pode fazer isso com qualquer botão de pressão. Eu usei um botão velho de reset de computador, mas pode ser algo que você compra em lojas de materiais elétricos, até um botão de campainha serve:

A montagem é simples: conecte o interruptor de pressão entre o interruptor de fio e o transformador e posicione-o na parte lateral da caixa de forma que a aba da caixa o presione para baixo quando estiver fechada. Quando você abrir a caixa, o botão abre o circuito e a caixa automaticamente desliga.

O que falta fazer? Temporizador!

Para não esquecer a caixa ligada (já nos aconteceu) a melhor coisa é colocar um temporizador que a desligue automaticamente depois do tempo de irradiação correto. Para isto a melhor coisa são essas plaquinhas temporizadoras eletrônicas programáveis simples que você compra prontas.  Eu quero ainda adicionar um temporizador como este, modelo DK-C-01, da figura:

temporizador1

Talvez no próximo final de semana eu faça….

Aqui há uma infinidade de modelos e ofertas, todos funcionam do mesmo jeito e podem ser alimentados por um carregador de celular velho:

Importante: Cuidados Adicionais

Ao Construir e Testar: cuidado Radiação UV-C!

UV-C, mesmo em pequenas quantidades pode ser prejudicial aos seus olhos: mesmo quando estiver testando o aparelho, nunca olhe diretamente para a lâmpada. Também não se exponha a radiação indireta da lâmpada, por exemplo, colocando-se de costas para ela e acendendo-a: a luz UV-C refletida pelas paredes da sua casa já pode ser suficiente para machucar os seus olhos.  O que nós fizemos para testar se a lâmpada estava funcionando foi terminar de construir todo o aparelho e aí o ligamos para identificar as frestas por onde escapava um pouco de radiação. É uma construção caseira: sempre vão haver frestas. Serviu tanto para ver se a lâmpada estava acendendo como para identificar onde tínhamos que vedar a caixa com papel alumínio extra.

Ao Operar: cuidado Ozônio!

Luz UV-C, ao passar pelo oxigênio dissolvido na atmosfera, ioniza e energiza as moléculas de oxigênio, o que gera ozônio. A caixa, ao final da operação, conterá uma certa quantidade de ozônio produzido pela radiação da lâmpada. Ozônio, se inspirado, pode causar danos aos pulmões. Porém, ozônio, na ausência de radiação ultravioleta, é instável e se desfaz rapidamente quando você desliga a lâmpada.  É importante esperar pelo menos 15 minutos antes de abrir a caixa após uma esterilização para que o ozônio se disperse e desfaça.

Isenção de Responsabilidade/Disclaimer

Este posting descreve minha experiência, eu pessoa privada Aldo von Wangenheim, na montagem de uma caixa de esterilização usando luz UV-C. Isto não é um posting oficial do Coordenador Científico de Telemedicina do STT/SC e nem tampouco um posting oficial do Professor Aldo von Wangenheim do Depto. de Informática e Estatística da UFSC. Também não é um incentivo a você sair construindo esta caixa. É apenas a minha experiência privada, de um dispositivo que construímos em família e que eu estou compartilhando porque considero útil no momento atual. Eu sou formado em Ciências da Computação e tenho doutorado em Matemática Aplicada. Não sou Engenheiro Eletricista e não sou Engenheiro Biomédico. Tudo o que está aqui foi realizado baseado no bom senso e nos conhecimentos científicos e técnicos meus e de minha família, que ajudou no desenvolvimento e montagem deste dispositivo.

Radiação UV-C pode ser perigosa e esta caixa trabalha com alta tensão (8.200 V) gerada por um transformador de lâmpada fluorescente. Se você tem alguma dúvida sobre o que está descrito aqui ou não possui experiência em construir aparelhos ligados na rede elétrica (220 V), não tente montar esta caixa em casa em hipótese alguma. Nunca permita a crianças ou adolescentes montarem este dispositivo sem supervisão.

Use esta descrição sob sua conta e risco.

Agradecimentos

Queremos agradecer ao Prof. Fernando Pacheco do IFSC pela revisão deste material e pela sugestão do kill switch.

Referências

 

Visão Computacional & Deep Learning no LAPIX/INCoD

Postado em Atualizado em

cnns
Página de Deep Learning da Disciplina de Visão Computacional/UFSC

Páginas & Tutoriais

Material do LAPIX/INCoD

Material de Referência para nossas Aulas…

class (1)

  1. Deep Learning::Introdução ao Novo Coneccionismo
  2. Deep Learning::Reconhecimento de Imagens
  3. Deep Learning::Detecção de Objetos em Imagens
  4. Deep Learning::Segmentação Semântica
  5. Deep Learning::Aprendizado por Transferência e Ajuste Fino
  6. Deep Learning::Redes Adversárias & Neural Style Transfer
  7. Deep Learning::Usando a Nuvem para seus Trabalhos
  8. Deep Learning::Coisas Prontas & Datasets
  9. Deep Learning::Ensinando à Rede: Ferramentas de Anotação
  10. Deep Learning::Eu não gosto de escrever código! Ambientes de Programação Visual
  11. Deep Learning::Eu quero embarcar! IoT & CNNs com Raspberry Pi
  12. Deep Learning::Entenda o Babel: Glossário

Tutoriais Gerais & Blogs

Se você é novato, comece por aqui!!!

  1. Redes Neurais Tradicionais: vamos fazer alguns testes usando o simulador online simplificado de TensorFlow
  2. Olhe a Nossa Página sobre RNAs Tradicionais em Reconhecimento de Padrões::Técnicas Sub-simbólicas: Redes Neurais
  3. An Intuitive Explanation of Convolutional Neural Networks
  4. An intuitive guide to Convolutional Neural Networks
  5. Martin Görner – Learn TensorFlow and deep learning, without a Ph.D.
  6. Medium::Short Introduction to Convolutions and Pooling: Deep Learning 101!

Disciplinas em outros Lugares

  1. Stanford: CS231n: Convolutional Neural Networks for Visual Recognition (Andrej Karpathy)

    1. Material de Aula: Stanford CS class CS231n: Convolutional Neural Networks for Visual Recognition
    2. Videoaulas: Lecture Collection | Convolutional Neural Networks for Visual Recognition (Spring 2017)

Modelos e Frameworks

Material do LAPIX/INCoD

  1. Deep Learning com OpenCV: DNN
  2. Deep Learning::Tensor Flow
  3. Deep Learning::PyTorch

Discussões & Blogs

  1. Choosing a Deep Learning Framework in 2018: Tensorflow or Pytorch?
  2. PyTorch vs TensorFlow — spotting the difference

Videos Introdutórios

Estes são videos de cursos de Redes Convolucionais, mas começam do be-a-bá :

Páginas Correlatas neste Site

Reconhecimento de Padrões

  1. Reconhecimento de Padrões::Técnicas Sub-simbólicas: Redes Neurais
  2. Reconhecimento de Padrões::Técnicas Simbólicas: Aprendizado de Máquina

Copyright © 2018 Aldo von Wangenheim/INCoD/Universidade Federal de Santa Catarina
[analytics-counter]

Timer Intranet para Controle de Forno com Raspberry Pi

Postado em Atualizado em

Versão DRAFTíssima - em escrita

Este é um timer para controlar o forno elétrico da minha casa. Ele pode ser controlado tanto localmente, com botões de controle de tempo de início e de desligamento usando Rotary Sensors como também via Intranet.

Componentes

  1. Raspberry Pi2 (não é necessário um Pi3 novo – aproveite um Pi velho jogado por aí…)
  2. Fonte de alimentação 5V para RPi (a simples, de 2A está de excelente tamanho)
  3. Display LCD 16×2 para mostrar IP e status do timer e mostrar o ajuste do tempo – http://lista.mercadolivre.com.br/display-lcd-16×2#D%5BA:display-lcd-16×2%5D
    lcd
  4. Relê simples de 1 canal – http://lista.mercadolivre.com.br/rel%C3%AA-1-canal#D%5BA:rel%C3%AA-1-canal%5D
  5. 2 Módulos Encoders Rotativos para ajustar o tempo de ligação e o tempo de assar – http://lista.mercadolivre.com.br/rotary-sensor#D%5BA:rotary-sensor%5D
    modulo-encoder-rotativo-rotary-sensor-arduino-pic-d_nq_np_227701-mlb20385254672_082015-f
  6. Contator bipolar simples ou 2na+2nf para ligar em cascata com o relê simples e ligar/desligar de fato o forno
    1. http://lista.mercadolivre.com.br/contator-bipolar#D%5BA:contator-bipolar%5D
    2. http://www.jng.com.br/produtos-detalhes.asp?idprod=40
    3. http://www.jng.com.br/upload/download/%7B4F49757C-72F9-4385-B15E-7D0784FA1D6C%7D_39%20-%20Catalogo%202016%20Contatores%20-%20BR.pdf
    4. http://lista.mercadolivre.com.br/contator-2na-2nf#D%5BA:contator-2na-2nf%5D
      contator-bipolar-hx20-32-32a-220v-jng-d_nq_np_397011-mlb20465733210_102015-f

Alternativa: Um terceiro rotary encoder para ajustar o tempo de espera pelo aquecimento do forno para emitir um sinal sonoro/sinal via web para indicar que aqueceu e chamar o cozinheiro para colocar a comida no forno.

Background

Rotary Encoders

Uma excelente explicação de como funcionam há aqui: https://www.modmypi.com/blog/how-to-use-a-rotary-encoder-with-the-raspberry-pi

1-click

Os exemplos dessa página não mostram o modelo que nós usamo sna nossa construção, mas os princípios são os mesmos.

Configuração do Pi

Desabilitando a UART

Se você está usando um RPi2 velho com um cabeçote de 26 pinos apenas, dependendo do que for pendurar nele, vai necessitar de todos os GPIOs, inclusive os GPIOs da UART: GPIO 14 (TxD) (pino 8 do cabeçote) e GPIO 15 (RxD) (pino 10 do cabeçote). No Raspbian eles estão por default configurados para, ao bootar, imediatamente abrir uma interface serial para acesso ao Pi. Isso significa que TxD vai ter sinal logo após o boot e bagunçar tudo, principalmente se você ligou um relê ali. Para evitar que isso aconteça, você tem de desabilitar o módulo de comunicação serial do Kernel.

Faça isso chamando raspi-config como superusuário:

sudo raspi-config

e seguindo as telas abaixo, indo para Interfacing Options -> P6 Serial:

1. Vá para Interfacing Options:

raspiconfig1

2. Vá para P6 Serial:

raspiconfig2

Ali, desabilite toda a comunicação serial. As outras interfaces (SPI, I2C e 1-Wire) que vão usar a GPIOs 2, 3, 7, 8, 9, 10, 11) estão desabilitadas por padrão e você não necessita mexer.

Wiring/Conexões

Pinagem

Existem quatro padrões de pinagem. Abaixo a tabela de equivalência para o cabeçote do RPi2:

gpio1

LCD Display

Para poder instalar o display no forno, mas deixar o RPi longe do calor, usei um fio CAT6 de 1,5m (pinagem em BCM GPIO):

  • 5V: Laranja (pintado de vermelho na figura)
  • GND: Marrom
  • Enable: Azul – Pi pin 22
  • RS: Verde – Pi pin 27 (or 21 on older revision Pi’s)
  • D4: Laranja claro – Pi pin 25
  • D5: Verde claro – Pi pin 24
  • D6: Azul claro – Pi pin 23
  • D7: Marrom claro – Pi pin 18

Detalhes:

  • V0 (contraste do display) está ligado a GND com um resistor de 2,2 k. Se ficar ruim, substitua por 1 k ou 4,7 k. Ninguém vai mexer nisso depois que um valor bom for encontrado, não faz sentido colocar um trimpot aqui, como sugerem a maioria das instruções.
  • RW está ligado a GND (modo de escrita apenas)
  • GND e K estão conectados (o fio GND sai de K)
  • VDD (+5V alimentação do LCD) está ligado a A (+5V luz de fundo) que está ligado a +5V no RPi

temp-forno-inf

Ligando os Rotary Encoders

A coloração do CAT6 que eu usei foi a seguinte (pinagem em BCM e Wiring Pi):

Rotary 0 (Timer para Ligar) – Botão verde

  • GND: Marrom escuro (comum com Display)
  • 5V: Laranja (comum com Display)
  • SW: Azul escuro – Pi pin 17 (wiring Pi pin 0)
  • DT: Azul claro – Pi pin7 (wiringPi 10) (CE1 = SPI chip select 1)
  • CLK: Laranja claro – Pi pin8 (wiringPi 11) (CE0 = SPI chip select 0)

Rotary 1 (Tempo de Cozimento) – Botão laranja

  • GND: Marrom escuro (comum com Display)
  • 5V: Laranja (comum com Display)
  • SW: Verde escuro – Pi pin 4 (wiring Pi pin 7)
  • DT: Verde claro – Pi pin 9 (wiring Pi pin 13) (MISO)
  • CLK: Marrom claro – Pi pin 11 (wiring Pi pin 14) (SCLK)

O que não ligar?

Pi pin 2 (wiring Pi pin 8) (SDA) and Pi pin 3 (wiring Pi pin 9) (SCL) pins have external 1k8 pull-up resistors connected. This is indeed because they are intended for I²C usage (which requires them). Unfortunately, since they are external, they can’t be disabled in software.

Having pull-up resistors means that default state of the pin in HIGH, unless they are pulled to ground. And this is exactly the problem you described.

This may be seen as a disadvantage but for buttons, this can be actually useful. This means that you don’t have to use any additional pull-up/pull-down resistors with those pins (but you will have to use inverse logic – 1 when button is not pushed and 0 whet it is).

Poderia ter ligado SW dos rotaries ali, mas não testei.

Ligando o Relê de Cascateamento do Contator

Para controlar o contator vamos necessitar de uma corrente de 220V. Para isso vamos cascatear um relê de 5V, ligado a um GPIO para que ele controle 220V que vão ligar/desligar o contator.

  • GND: Azul (ligado no GND do pino físico 14 do RPi)
  • 5V: Roxo (ligado no pino físico 2 do RPi)
  • Signal: Verde escuro – Pi pin 10 (wiring Pi 12) (MOSI)

Como ligar o CAT6 nos terminais?

Para colocar terminais no CAT6 usei um alicate de crimpagem para conectores e terminais 1×1 avulsos com protetor plástico:

temp-forno-alicate

Snippets de Código para Construir

Display 16×2 com RPi

Servidor Python para o RPi com a automação usando WiringPi

  • Ver piscina-server.py

Letras Grandes para Display 16×2 em Python

Preparando o Raspberry Pi

Para instalar o WiringPi e WiringPi-Python veja aqui: https://github.com/WiringPi/WiringPi-Python

sudo apt-get update
sudo apt-get upgrade

#Instalar python-dev para poder recomplar o Python se necessário
sudo apt-get install python-dev

#Instalar git e coisas do Python
sudo apt-get install build-essential python-smbus python-pip git

#Instal GPIO nativo do Python
sudo pip install RPi.GPIO

#Instalar Adafruit CharLCD e GPIO
cd ~
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
cd Adafruit_Python_CharLCD
sudo python setup.py install

#Instalar Gaugette para rotary encoders e switches
cd ~
git clone https://github.com/guyc/py-gaugette.git
cd py-gaugette/
python setup.py build
python setup.py install

#Instalar WiringPi e WiringPi-Python
sudo apt-get install python-dev python-setuptools swig
cd
git clone --recursive https://github.com/WiringPi/WiringPi-Python.git
cd WiringPi-Python
git submodule update --init
cd WiringPi
sudo ./build
cd ..
swig2.0 -python wiringpi.i
sudo python setup.py install

#Instalar LCDProc 
cd ~ 
wget http://sourceforge.net/projects/lcdproc/files/lcdproc/0.5.7/lcdproc-0.5.7.tar.gz/download -O lcdproc.tar.gz 
tar xzf lcdproc.tar.gz 
cd lcdproc-0.5.7 
./configure --help 
#hd44780 eh o display 16x2 ligado em GPIO 
./configure --enable-seamless-hbars --enable-drivers=hd44780 make 
sudo make install 
#Arrume a arquivo de configuracao para suportar o hd44780 
sudo nano /usr/local/etc/LCDd.conf 
#Iniciar o servidor LCDProc 
sudo LCDd 
#Instalar as libs Python 
sudo apt-get install python-setuptools 
cd ~ 
git clone https://github.com/jinglemansweep/lcdproc.git 
sudo easy_install lcdproc

Veja em  https://www.raspberrypi.org/forums/viewtopic.php?t=109321&p=751602  como ligar o HD44780 LCD display usando GPIO. A pinagem que você usou deve ser listada em LCDd.conf: arrume o arquivo, lá tem uma pinagem padrão que não é necessariamente a que nós usamos e que está no desenho acima.

Potência Máxima na Saída USB

Para ligar as caixas de som alimentadas por USB é aconselhável configurar o RPi para poder usar até um Ampére de corrente na saída USB. Veja aqui:

 

 

 

IBLBrowser – A Machine Learning teaching Tool implementing the IBL Family

Postado em Atualizado em

Este site em Português: http://www.lapix.ufsc.br/ensino/reconhecimento-de-padroes/iblbrowser-%E2%80%93-uma-ferramenta-de-aprendizado-de-maquina-que-implementa-a-familia-de-algoritmos-ibl

IBLBrowser description

This software was intended to help the teaching of ML algorithms.  It was developed in Smalltalk in different, widely spaced, bursts of creativity  between 2002 and 2015. It was developed with the intention to produce a tool to demonstrate the working of IBL algorithms and  NOT done with any serious usability criteria in mind.  The GUI is a patchwork of buttons, sliders and fields.

Take a deep breath and use it as it is! Alternatively, you can improve it and send me a copy of your efforts…

Background:

The software, in various incarnations, has been used since 2002 at the INE 5443 Reconhecimento de Padrões course (Pattern Recognition)  held during the 7th semester of the undergrad CS Program at UFSC. It was intended to help teaching basic symbolic PR techniques on the example of traditional ML algorithms, such as the IB family.

IBL1

IB1 without noise

IBL3.1

IB3 with lots of noise

The Code:

  • GitHub repository containing 3 versions of the application:
    • the sources as a VisualWorks 8.0 package
    • the sources as individual Smalltalk classes (Squeak programmers beware: this is Smalltalk source code with VisualWorks GUI class references…)
    • a VisualWorks 8.0 32 bit image file (with .changes)

Comment: Why not Squeak? I’m a Smalltalk developer since the end of the 1980’s and my whole PhD, in the first half of the 1990’s, was developed in ParcPlace Objectworks Smalltalk. To use a Smalltalk dialect compatible with the original ParcPlace Smalltalk was, for me, an obvious design decision. So I opted for Cincom Smalltalk as the heir of ParcPlace Visualworks.  I know it is a product and that it  is not fully compatible with current free software Smalltalk implementations such as Squeak, but it was easier for me to do so as to use the Apollo/Domain Smalltalk 80 v 2.5 anno 1988-styled development interfaces of Squeak. I would be happy if someone ported this tool to Squeak and would make it available here also.

Usage:

1. Generating Training Data

You can generate double spiral datasets with and without noise. IBLBrowser always generates 360 points, 180 in each class.
The Noise Level is the maximum noise, expressed in pixels, to be used in the generation of the double spiral.
The Probability radio button chooses the Distribution used to generate noise for training patterns when noise is desired:
uniform – random generator with the noise range value used directly (always expressed in pixels)
normal – a normal distribution along the main curve with sigma of 0.399 and x in [0.0  0.5] is used.
The Sigma of the probability distribution used to generate the training patterns can be set with the slider, allowing to parametrize the scattering of the points.

2. Training with IBL

Presently you can train using IB1, IB2 or IB3 (IB4 and IB5 wouldn´t make sense for a domain of 2 classes with only two variables).

The IB version can be chosen with the radio button in the middle of the interface.  Learned patterns will appear as dots of the chosen dotsize in the middle drawing area.

The first pattern included in the Concept Description will always be drawn in a different color, since it is randomly chosen and not trained. Position and color are displayed in the transcript area.

When training with IB1, wrongly classified patterns will appear as red dots, otherwise the color of the pertaining class will be used.

When training with IB2, the color used for each plotted pattern is the color of the correct class of each pattern (since only incorrectly classified patterns will be learned).

When training with IB3, dropped patterns will be recolored as red dots after they are dropped, so you can visualize where droppings occurred. Acceptance is caculated using z = 0.60. This value can be changed on the corresponding sliders.

3. Operating Modes when Training

There is a set of radio buttons that set operating modes and policies for the training process, mainly for IB3:

Stepwise – when in IB3, simulation halt after acceptable pattern and dropping (when selected) has occured.

Verbose – a log of the training steps is transcribed to the right text field (transcript). Will slow down considerably tthe training.

Allow dropping – bad classifiers are allowed to be dropped. Dropping PIs and FIs are set to use z = 0.90. This value can be changed on the corresponding sliders.

Accept n=0 – you can choose if patterns of the CD that were ever used before to classify something are acceptable as classification references for learning new patterns. Since their PIs would be infinite due to n=0, it is, in theory possible, but that is a question of interpretation. My personal experience is that learning gets biased when you ignore previously unused patterns.

Policy for Non Acceptance – sets the policy to be used when no acceptable pattern was found. There are the following policies:
first – most similar pattern is chosen (can introduce bias)
random – a random pattern is chosen from the CD
weighted – a random pattern is chosen from the CD with class-weighted probabilities, so that roughly the probability of an instance of each class to be chosen is the same (class-bias avoidance)

4. Testing

Click on test and the IBLBrowser will systematically test the whole pattern space and color each pixel with the classification of each point, drawing the decision surfaces that were learned during your simulation.

The Data radio button selects which dataset is displayed in the list view below. Default is the CD. Untrained shows yet to be trained patterns and, after a simulation is run, should be empty. If you interrupt a simulation in Stepwise mode clicking inspect in the dialog window, you will be able to see which patterns are in the untrained list.

5. Resuming a halted simulation

If you halted a simulation in Stepwise mode using the inspect button of the dialog window, you can always continue the simulation clicking the play button in the inspector/halt window.

================================================
This work is distributed under the GNU GENERAL PUBLIC LICENSE GPLv3
================================================
Modified versions should be marked as changed AND the Author should
be notified and receive a copy of thesse modifications.

Any scientific work or other kind of publication using this software or the
results produced by it should mention it and its Author.

Aldo von Wangenheim, (c) 2002 – 2015
mailto:awangenh@inf.ufsc.br
mailto:aldo.vw@ufsc.br
http://www.incod.ufsc.br
http://www.inf.ufsc.br/~awangenh

================================================
Useful links for the newbie in IBL/ML:

SÁ LISBOA, F. O. S. ; NICOLETTI, M. C. . A Família de Algoritmos Instance-Based Learning (IBL). 1997. (Relatório de pesquisa) http://www.inf.ufsc.br/~patrec/bibliografia/Ibl.pdf

David W. Aha, Dennis F. Kibler, Marc K. Albert. Instance-Based Learning Algorithms. Machine Learning 01/1991; 6(1):37-66. DOI:10.1023/A:1022689900470. https://www.researchgate.net/publication/220343419_Instance-Based_Learning_Algorithms

David W. Aha, Dennis F. Kibler. Noise-Tolerant Instance-Based Learning Algorithms. Proceedings of the 11th international joint conference on Artificial intelligence – Volume 1; 01/1989 https://www.researchgate.net/publication/220814591_Noise-Tolerant_Instance-Based_Learning_Algorithms

David W. Aha. Tolerating noisy, irrelevant and novel attributes in instance-based learning algorithms.  International Journal of Man-Machine Studies 02/1992; 36(2):267-287.

Marc K. Albert, David W. Aha. Analyses of Instance-Based Learning Algorithms. Proceedings of the 9th National Conference on Artificial Intelligence, Anaheim, CA, USA, July 14-19, 1991, Volume 2.; 01/1991.

Kleerhangerbeest – o Robô Andarilho de Cabide de Arame controlado com Arduino

Postado em Atualizado em

Versão fácil para Arduino e 2 servos do Coat Hanger Walking Robot, o Robô Andarilho de Cabide de Arame originalmente desenvolvido por Jerome Demers e Gareth Branwyn.
O nome kleerhangerbeest é holandês e significa bicho-cabide, tendo sido inspirado nos robôs eólicos chamados strandbeest (bicho-de-praia) de Theo Jansen – http://www.strandbeest.com/ .

bug1-small-heinlein

Não parece com os “insetos” de Starship Troopers?

Veja o vídeo de efeito…

O chassis é feito em Meccano/Modelix. O resto é sucata que pode ser encontrada em qualquer lugar.

bug7-small bug2-small

bug3-small bug5-small

bug4-small bug6-small

O código Processing para Arduino está em: https://github.com/awangenh/Minhas-Engenhocas/blob/master/Kleerhangerbeest2.ino

Usei um Freaduino ao invés de um Arduino para evitar ter de usar um protoboard em cima do robô. O Freaduino é excelente para coisas que usam servos e outros periféricos que ligam com um cabo sinal/VCC/GND por causa das saídas prontinhas que ele oferece para isso. O circuito é ultrasimples.:

inseto_bb

O modelo do chassis está aqui embaixo (feito com VirtualMec):

chassis-inseto

Tentei manter o chasssis o mais simples possível. Os passos de montagem são esses abaixo:

chassis-inseto1chassis-inseto2

chassis-inseto3chassis-inseto4

chassis-inseto5chassis-inseto6

A lista de peças (códigos da Meccano e não da Modelix) é essa:

Peça    Qtdidade.
5	2
11	2
11a	2
37a	3
37b	13
90a	2
193	2
811	2

Depois de encaixados os servos, você pode fixá-los no lugar usando cantoneiras em “L” (aquelas pecinhas com formato em “L” com apenas dois furos, um redondo e o outro oblongo – código de peça Meccano = 12) fixadas com parafusos nos dois furos inferiores mais extremos do chassis.

Referências originais do Coat Hanger Walking Robot:
http://www.instructables.com/id/How-to-build-the-one-motor-walker/
http://www.technogumbo.com/projects/single-servo-walking-robot/
https://www.youtube.com/watch?v=bxxmN2sQvjk
https://solarbotics.com/product/abgchw/
https://www.youtube.com/watch?v=L984o5mT9HI (com motor de rotacao continua)

O código Processing para Arduino está em: https://github.com/awangenh/Minhas-Engenhocas/blob/master/Kleerhangerbeest2.ino

Braço-Robô com 3 Graus de Liberdade programado em Scratch S4A utilizando Arduino e Meccano/Modelix

Postado em Atualizado em

Um braço-robô com 3 graus de liberdade foi uma coisa que sempre me fascinou, inclusive pela sua suposta complexidade. Pensei e resolvi construir um que pudesse ser programado por qualquer criança usando a linguagem de programação visual para crianças Scratch. Aqui está o resultado.

Usei um Arduino Uno R3 com Firmata modificado para S4A e dois servos TowerPro SG90 para o manipulador e a 3ª junta e dois servos TowerPro 5010, mais fortes, para a 1ª e 2ª juntas. Os contrapesos são luvas de latão 3/4″ com rosca. Antes que eu esqueça: Tem um dirty hack no S4A: mudei o código Smalltalk e o código do Firmata para supoprtar 4 servos ao invés de dois…

Estou pensando em transportar para Snap! Scratch usando o servidor de comunicação s2a_fm de Alan Yorinks ao invés do S4A (Scratch for Arduino), que é bem limitado e só roda em Windows. Mas isso será outro post…

IMG_4993 (2)

Aqui o programa no dialeto S4A (Scratch for Arduino) da Linguagem de Programação Visual Scratch originalmente desenvolvida pelo MIT:

AE_swf16713054

Fiz um vídeo para mostrar algumas coisas:

 

O braço-robô foi construído utilizando-se peças de vários kits-clone de Meccano, incluindo-se aí peças originais Meccano vintage inglesas da década de 1940-50, como também peças do clone brasileiro Modelix. Abaixo algumas imagens:

medium-6 medium-7 medium-9

medium-8 medium-10

Para quem quiser refazer, aqui o esquema, detalhando quais servos em cada saída digital. Lembre-se, o S4AFirmware.ino original só suporta servos nos pinos 11 e 12. Tem que modificar.

Braço-Robo-3GL_bb

Microcontrolled Action Shooting Bike Helmet (Versão 0.1 Pré-Alfa)

Postado em Atualizado em

Peguei a ideia  de Jake Spurlock  daqui http://makezine.com/projects/make-38-cameras-and-av/gopro-swivel-camera-mount/ e automatizei o processo de varredura para a captura.

Neste post a versão pré-alfa da Engenhoca. Vamos melhorar….

action-shooting-helmet1

Aqui o detalhe do mecanismo de movimentação e da eletrônica de automação. Nesta versão o mecanismo de suporte é fixado diretamente ao eixo de nylon do servomotor. Para passear na Beira-Mar num domingo de manhã, como no filminho abaixo, é adequado. Se usar para MTB vai quebrar…

action-shooting-helmet2

Veja aqui um vídeo…

Aqui o código Processing em um Sketch para o Arduino. É uma pequena variação do exemplo-padrão Sweep.ino.

SweepCamera.ino – Código em Processing para Arduino
#include  
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  myservo.write(pos);                  // tell servo to go to position in variable 'pos' 
  delay(500);                          // added - stop at sideview before start sweeping
  for(pos = 0; pos < 180; pos += 1)    // goes from 0 degrees to 180 degrees
    {                                  // in steps of 1 degree
      myservo.write(pos);              // tell servo to go to position in variable 'pos'
      delay(20);                       // waits 15ms for the servo to reach the position
                                       // changed to 20ms  
    }
   delay(500);                         // added - stop at sideview before start sweeping
   for(pos = 180; pos>=1; pos-=1)      // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);                // tell servo to go to position in variable 'pos' 
    delay(20);                         // waits 15ms for the servo to reach the position 
                                       // changed to 20ms
  } 
} 

 

Mecanismo de Caminhada de Theo Jansen em Meccano/Modelix

Postado em Atualizado em

Sempre quis montar um Strandbeest (http://www.strandbeest.com/) de Theo Jansen usando Meccano (ou Modelix).

Jansen13c Jansen13d

Aqui há uma planilha que eu preparei contendo as relações de tamanho que você precisa de acordo com vários modelos e cálculos: planilha theo jansen.

A tabela abaixo dá um resumo (observe que há duas sugestões de tamanhos para as peças Meccano (ou Modelix)). A tabela converte duas interpretações em distâncias entre furos para peças Meccano/Modelix (1/2 polegada entre centros de furos). Para entendê-la veja a planilha detalhada no link acima. Nessa planilha o código de cores da modelagem em VirtualMec das imagens acima é mantido e fica mais fácil você identificar cada peça.

Orig. Hansen Sketch Label Part Name Ghassaei Diagram Size Ratio (4volt) Size (20) Amanda Ghassaei 1/2 Inches – Mecc. hole distances #Holes in Meccano Part 1/2 Inches – Mecc. hole distances #Holes in Meccano Part
j Upper drive bar (1, 2) 100 20,00 50,00 14,00 15 13,00 14
k Lower drive bar (1, 5) 124 24,80 61,90 17,36 18 16,12 17
c Inside connector bar (3, 5) 79 15,80 39,30 11,06 12 10,27 11
f Outside connector bar (4, 6) 79 15,80 39,40 11,06 12 10,27 11
b Inside soulder (2, 3) 83 16,60 41,50 11,62 13 10,79 12
e Outside shoulder (2, 4) 112 22,40 55,80 15,68 17 14,56 16
d Bottom shoulder (3, 4) 80 16,00 40,10 11,20 12 10,40 11
g Top of foot (5, 6) 73 14,60 36,70 10,22 11 9,49 10
i Inside of foot (5, 7) 98 19,60 49,00 13,72 15 12,74 14
h Outside of foot (6, 7) 131 26,20 65,70 18,34 19 17,03 18
m Drive pin offset (0, 1) 30 6,00 15,00 4,20 5 3,90 5
a Drive to shoulder x 76 15,20 38,00 10,64 12 9,88 11
l Shoulder down offset y 16 3,20 7,80 2,24 3 2,08 3