sexta-feira, 8 de dezembro de 2017

Projeto de Scan de Rede com Arduino Uno R3

Com o intuito de fazer um projeto com Arduino, voltado para segurança da informação, após algumas ideias descartadas, veio esta do scan de rede.

Já existem aplicativos de celular como o Fing, assim como diversos programas e/ou comandos que podem ser executados a partir de um PC, por exemplo, porém estes precisam da interação humana para realizar um escaneamento, . E se um dia o usuário se esquecer de escanear a rede e exatamente neste dia houve alguma alteração/invasão, como saber?

E se com um dispositivo que faz o escaneamento automaticamente, com um intervalo de tempo determinado pelo próprio usuário, com gasto de energia elétrica extremamente baixo, bastando apenas plugar este dispositivo no cabo de rede, e na fonte.E ainda tornar um projeto de hardware livre.

A partir disso surgiu a idéia do scan de rede com o Arduino.
O projeto para a matéria de Arquitetura e Organização de Computadores, do Professor Ismael Moura Parede, é em dupla, neste caso estou fazendo com o Pedro. Este post é uma adaptação do trabalho entregue.

MATERIAL 
Arduino Uno R3 CH350G da RoboDyn
Shield Ethernet

Cabos de rede
Cabo USB / mini USB (para alimentação/inserção de dados)
Switch  de 8 portas , Encore ENH908-NWY

Aqui tem um tutorial em português, bem detalhado sobre o Arduino Uno, mas alguns aspectos desse modelo da RoboDyn são diferentes, como a porta USB aqui usada, que é a mini, ao contrário dos modelos antigos, que usavam o tipo B.

Tutorial básico (em inglês) do shield Ethernet.

Para usar o cartão micro SD do shield Ethernet, é necessário usar a biblioteca do mesmo.
Neste cartão pretendemos gravar as informações adquiridas a cada escaneamento da rede, e assim poder compara-las e alertar sobre qualquer alteração.

Para colocar o Shield Ethernet, basta alinha-lo com o Arduino Uno R3, sendo que a entrada do cabo de rede (RJ45), deve ficar logo acima da entrada USB, como visto na animação.


DIAGRAMAS / ESQUEMAS

Para simular um ambiente de rede residencial cabeada, evitando assim o uso da rede da faculdade, utilizamos um switch de 8 portas, e a partir dele, um cabo de rede vai para o shield arduino, e um cabo de rede para cada dispositivo.
Lembrando que todos os dispositivos conectados tem de estar na mesma classe de IP (Internet Protocol), que no caso foi usada a 192.168.1.0. 
O netbook usado para os testes e de onde usamos o monitor serial, por exemplo, ficou com o IP 192.168.1.5. Este netbook usa o Debian como sistema operacional.


Conectamos outro notebook, este com Windows 10, mas lembre-se de desativar o Firewall nativo, que vem habilitado por padrão, este foi configurado para ficar com IP 192.168.1.9.

Abaixo um diagrama de nosso ambiente de testes 


PROGRAMA


No programa, tudo que esta grifado em azul após as barras duplas, são os comentários explicando o funcionamento dos trechos.  

Sempre que usar um shield é recomendável adicionar sua biblioteca, para o funcionamento correto do mesmo, e assim conseguir explorar sua usabilidade ao máximo.
No nosso caso as bibliotecas usadas são:

Biblioteca para comunicação de periféricos em série (Serial Peripheral Interface), já vem por padrão na IDE do Arduino (pequeno tutorial em pt-br)

Biblioteca do shield Ethernet, também disponivel por padrão na IDE do Arduino

Biblioteca para executar a função do comando “ping” , esta biblioteca, ao contrário das anteriores, não esta disponível por padrão na IDE do Arduino. Esta é uma das diversas bibliotecas feitas pela comunidade de usuários do Arduino

O programa pode ser encontrado no GitHub do Pedro.


COMENTÁRIOS E CONCLUSÕES

Para visualizar o funcionamento passo a passo do programa, utilizamos o monitor serial, que pode ser acessado pela IDE do Arduino. Através do monitor serial também é possível acompanhar o comando “ping” e sua resposta (se offline, ou dispositivo conectado).


Depois de efetuada a varredura dos IPs da classe de rede , já pré definida, o programa mostra quantos dispositivos estão conectados na rede. Após uma segunda varredura, o programa compara com o resultado da operação anterior e avisa se encontrou mais dispositivos ou se não houve alteração na rede.


Muito obrigado se você chegou a ver até aqui. Aceitamos sugestões, e queremos manter este projeto em aberto para toda a comunidade.

Bônus: Vídeo da apresentação, gravado pelo Will.





Uma versão atualizada esta no GitHub do ABC Makerspace

sexta-feira, 29 de setembro de 2017

Totem para o WikiLab

No último transporte das peças da 123 Painéis para o depósito do WikiLab, conversando com o Gustavo, ele deu uma ideia muito legal, fazer um totem como os existentes em shoppings. Fizemos alguns rascunhos em um caderno que eu tinha na hora. Depois disso fizemos alguns rascunhos digitais, eis alguns deles:



     
Verifiquei alguns retalhos de OSB 18mm que estavam no depósito (foto abaixo) e levei um de 18cm de largura por 110cm de altura para o FabLab do Heliópolis. Lá precisei cortar um pedaço para o           retalho entrar na cortadora laser.


Se alguém tiver alguma ideia legal de bancos, mesas, estantes ou qualquer outra coisa útil para fazer com OSB de 18mm estamos aceitando sugestões, se possivel com imagens ou links da sugestão.
Utilizei frente e verso da chapa de OSB para verificar a diferença e por ser um protótipo de totem. Claro que não esta perfeito, longe disso, estou aceitando sugestões e preciso corrigir muitas coisas, entre elas a que me deu a maior dor de cabeça, uma imagem com zilhões de linhas que preciso "simplificar".
Aqui vão as imagens de frente e verso do protótipo de totem:

 

No caso da esquerda foi utilizada a gravação, bem mais demorada, e na direita apenas o corte superficial. Agora vamos aos detalhes da confecção, vou colocar alguns videos para exemplificar melhor, e para entenderem a diferença da velocidade entre corte superficial e gravação. Neste primeiro vídeo temos o corte superficial feito com potencia entre 13 e 15 e a velocidade de 230. 



O tempo estimado para execução da tarefa no LaserCAD não é confiável, como pode ser visto na comparação abaixo, sendo o da esquerda o tempo estimado pelo software e na direita o tempo em que realmente foi feito.

 
E neste segundo video temos a gravação feita por cima do corte superficial, mas foi interrompida devido a proximidade do canhão com a lateral, fazendo com que precisasse mudar a chapa d posição.


Antes de fazer o verso da chapa, modifiquei as configurações no software, dividindo o desenho em 3 operações, sendo a primeira gravação (verde), a segunda corte superficial (azul) e a terceira (amarelo) para ignorar.

Quando se tem uma concentração de traços em um determinado ponto da imagem vetorizada, o ideal é reduzir o máximo possível esta quantidade de linhas, evitando assim o que acontece neste video:


Não entendeu? Tudo bem, vou desenhar ;-p


O canhão da cortadora laser passa por todas estas linhas, o que acaba ocasionando a queima do material. A correção do desenho farei em outro post com mais detalhes. Eis o detalhe de como ficou.


quinta-feira, 14 de setembro de 2017

Corte do segundo arco de apoiadores do WikiLab

Pra quem nunca foi no FabLab do Heliópolis, esta é uma panoramica de onde fica a cortadora laser, neste horário estava vazio, mas dependendo do dia e horário fica  dificil até pra ver a máquina, com tantos alunos curiosos para ver em funcionamento. No dia 5 de setembro (terça-feira), fui cortar o segundo arco com os nomes dos apoiadores do WikiLab.


Como já havia sido recomendado pelo pessoal do FabLab, dividi o arquivo em 4 partes, sendo uma para cada arco e outras duas para as letras e logos que serão feitos para aproveitar a chapa. A potência e velocidade seguem as mesmas do primeiro arco, sendo entre 9 e 10 de potencia com velocidade de 230 para os nomes e 40/45 com velocidade de 15 para o corte.


Desta vez nem vi o tempo estimado, mas este arco tem menos caracteres que o primeiro, por isso foi mais rápido, levando 1h34min para escrever os mais de 200 nomes e cortar.


Claro que não é só este tempo gasto, antes de mandar o arquivo temos de fazer diversos ajustes no arquivo (isso quando o LaserCAD não trava, rsrs), o que muitas vezes leva bem mais tempo, algumas horas no caso.





sexta-feira, 8 de setembro de 2017

Corte do primeiro arco dos apoiadores WikiLab


E na sexta feira, 1º de setembro, no FabLab do Heliópolis, foi cortado o primeiro dos 4 arcos do WikiLab que terão os nomes dos apoiadores da campanha efetuada através do Catarse.


Primeiro foi necessário dividir o arquivo original em 4 partes, pois estava muito grande e acarretava o travamento do LaserCAD. Depois de dividido vimos o tempo estimado 1h8min, porém o mesmo se mostrou inválido na prática. Já separado no software o que esta em preto será apenas corte superficial, com potência entre 9 e 10 e velocidade de 230, enquanto para a linha vermelha estão ajustados potência de 45 e velocidade de 15.


Como é possível observar pelas fotos, a sequência da gravação segue uma lógica própria, definida pelo software, para evitar o desgaste da máquina.

Neste arco estão pouco mais de 200 nomes, sendo que os 20 maiores estão aqui. O tempo total de corte e impressão foi de exatamente 2  horas, praticamente o dobro do estimado pelo software. Existe a possibilidade de se deixar colorido diretamente pelo InkScape, o arquivo fica maior, porém facilita na hora de importar o arquivo, e como eu uso Debian em casa, não tenho como instalar (diretamente, sei do Wine e das VMs) o LaserCAD pois este é apenas para Windows.



domingo, 3 de setembro de 2017

Teste da Lista de Apoiadores WikiLab - parte 3

Definido o logo a ser usado para preencher com os nomes dos apoiadores do WikiLab, começaram a aparecer os problemas que terão de ser resolvidos.

Primeiro problema ao ter a lista em mãos, são mais de 800 nomes (827 até o momento), colocar em ordem alfabética é simples, mas os nomes variam muito em relação a quantidade de caracteres, como pode ser visto na imagem abaixo, tornando as colunas disformes.


Retirei os nomes repetidos. E depois infelizmente tive de apelar ao Excel, já que não encontrei a função de contagem de caracteres no Calc (Libre Office), aproveitando que estava no Excel já também usei a função de Primeira Maiúscula, deixando todos os nomes com as iniciais em letra maiúscula, e separei em blocos de 100 nomes.
 
                                                       
Para não ficar tão pequena a fonte, resolvi fazer em dois logos, distribuindo os nomes em pouco mais de 400 por logo, permitindo assim que eu aumente a fonte e fique mais legível.  Nestes espaços em branco ainda posso fazer os logos do ABC Makerspace e do LabLivre. Nos circulos internos das letras "a" e "b" dá para colocar o logo do LabLivre , vetorizado e monocromatico, resultando em 4 peças. 


Como ainda tinha 2 chapas para usar, decidi aumentar um pouco mais o tamanho do arco, deixando 2 por chapa, e no espaço livre joguei as letras que formam o logo do WikiLab, ficando com a fonte maior, usando Arial com tamanho 20, ficou bem legivel depois de feito o primeiro corte. Abaixo como ficou a disposição final das peças na chapa de MDF 3mm.


Para dividir os nomes ficaram assim as colunas:
1  -  100   Contendo de 5 a 12 caracteres
101-200   Contendo de 12 a 14 caracteres
201-300   Contendo de 14 a 15 caracteres
301-400   Contendo de 15 a 17 caracteres
401-500   Contendo de 17 a 20 caracteres
501-600   Contendo de 20 a 23 caracteres
601-700   Contendo de 23 a 26 caracteres
701-800   Contendo de 26 a 32 caracteres
801-827   Contendo de 32 a 67 caracteres

segunda-feira, 21 de agosto de 2017

Teste da Lista de Apoiadores WikiLab - parte 2

Aqui vão alguns detalhes do segundo teste para colocar os nomes dos apoiadores do WikiLab.
Na foto acima estão todas as placas de OSB 18mm em que fiz os testes, as duas abaixo já expliquei neste post.

As placas do segundo teste se diferenciam pelo tamanho da fonte, e separações dos nomes, que ainda não foram decididas.

Esta primeira placa (imagem abaixo) tem x cm, foi feita com fonte Arial Normal tamanho 12, até esta legivel mas, poderia ficar ainda melhor se o laser passasse apenas uma vez. Acontece que ao transferir a fonte do InkScape para o LaserCAD a mesma vai apenas o contorno, que faz o laser passar tanto no contorno externo da fonte quanto no interno, ocasionando essa aparência "queimada".


Esta segunda placa tem x cm, foi usada fonte Sans Serif Normal 14, direto no InkScape, foi a que na minha opinião ficou mais agradavel aos olhos, porém depois percebi que por as linhas terem sempre as mesmas palavras fica bem distribuido, o que não acontecera com os nomes dos apoiadores, pois cada um tem uma quantidade diferente de caracteres. Mesmo testando alguns caracteres especiais para separar um nome de outro, creio que não usarei no final, pois apenas ocuparia espaço.
 
Para a terceira placa de  x cm, foi usada a fonte Arial Normal 16, direto no InkScape, neste tamanho já é bem visivel a linha de contorno na fonte.

Estas chapas foram levadas na última reunião presencial do WikiLab, podem ser vistas na lousa, na foto do post linkado.




terça-feira, 8 de agosto de 2017

MiniWikilab v8 (versão final)

Pulei algumas versões para dar uma resumida no que é a versão final, que comecei a cortar no dia 14 de julho de 2017, no FabLab do Heliópolis. Aqui vou explicar algumas das modificações, e seus motivos.


A primeira mudança mais visivel, retirei as gravações (rasterização) e deixei como corte superficial, só no tempo de produção unitário, reduziu de quase 16 minutos para 5 minutos, além do destaque que o corte superficial dá nas letras e principalmente no logo dos fundos (pentágonos), como pode ser visto abaixo, sendo a versão com gravação a da esquerda e a direita a versão com corte superficial.


Começarei mostrando um  erro básico que cometi e vi na prática, depois de importar a imagem do InkScape para o LaserCAD (software da máquina), é necessário que selecione a ordem das operações para a máquina, no caso da eCNC L1060 cada operação é definida por uma cor , como na imagem a esquerda e depois de terminado o corte da primeira placa de MDF a segunda já foi com a versão correta (direita). 


A primeira cor é para apenas circular a área usada para corte (similar a tecla BOX), a segunda cor (vermelho) faz os cortes dos círculos do pentágono (chaveiro) e os cortes internos das placas (encaixes e "janelas"), a terceira (rosa) recorta apenas os pentágonos internos, porém ainda vão cortes superficiais sobre estas peças, e as mesmas podem cair ou tombar na grelha de suporte da chapa.


Pode ser visto pela foto acima que se calcularmos mal as operações e não deixarmos regulada corretamente altura o canhão (no caso 10mm) é possível danificar a máquina. Uma sugestão é deixar um rolo de fita crepe em local de fácil  alcance, e também pode ser usado para reduzir a aparência de queimado dos cortes superficiais, especialmente em angulo reto.


Depois de muitas horas de uso direto e com muita fumaça produzida, o corte começa a ser afetado, cortei as primeiras 3 placas sem nenhum problema exceto os meus vacilos ;-p .


No final da quarta placa o corte já não estava sendo passante, o que deixa o acabamento ruim, acarretando na perda de algumas peças.


Resultado final de uma das placas de MDF de 3mm com 10 MiniWikiLabs e um montado, 


Algumas considerações:
_ Ao ampliar ou reduzir qualquer desenho para corte a primeira coisa a ser verificada são os encaixes, especialmente os que dependem da espessura do material usado.
_ No Inkscape sempre deixar medidas em mm em ambos os campos, por padrão vem pt.
_ Ao salvar qualquer texto, primeiro converter em caminho e não esquecer de retirar a seleção padrão de POLYXXXXXX (não me recordo o nome exato)