detector de ladrão com laser

2.176 visualizações

Publicada em

fazendo seu proprio detector de ladrao com laser e afins, uso com opencv para shot da cam...

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.176
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
33
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

detector de ladrão com laser

  1. 1. Só mais um projeto de detector de ladrão com laser , e algumas ideias...
  2. 2. Quem Sou ? Antonio Costa aka “Cooler_” , desenvolvedor independente emC,Common Lisp,Perl,PHP... Trabalho como freelancer a 4 anos nomeio de Web(e-commerce,web spiders...) e problemas em geraispara unix like, faço parte do grupo de estudo e pesquisa BugSec,sou um dos colaboradores e fundadores da e-zine “CogumeloBinario”. Estudo microcontroladores(AVR e PIC) ,eletrônica emgeral como hobby, também tento colaborar em projetosOpenSource.http://coolerlab.wordpress.com/“TombPool”simples biblioteca em Linguagem C para trabalhar com piscina de conexões.http://code.google.com/p/tombpool/“Hyde”Só mais um packet injector usando spoofinghttps://github.com/CoolerVoid/Hyde“Cactoo CMS”Só mais um CMS em PHPhttp://code.google.com/p/cactoo/“Beer”Biblioteca com funções diversas em C , para facilitar a vida do pessoal iniciantebem como automatizar tarefas em arquivos,strings,números etc...https://github.com/CoolerVoid/beer/blob/master/beer.c“BugSec”Grupo que faço parte, no nosso google code colocamos alguns códigos e papers queescrevemos para estudo etc...quem faz parte: Victor Ramos Mello aka “m0nad”, ref: “http://m0nadlabs.wordpress.com/” Tiago Natel aka “IAK”, ref: “http://www.secplus.com.br/site/” Felipe Pena aka “sigsegv” ref: “http://felipe.ath.cx/” Eduardo Bellani aka “ebellani” ref: “https://github.com/ebellani” Sergio Renan “_mlk_” . ref “http://code.google.com/p/lwv/”http://code.google.com/p/bugsec/downloads/list
  3. 3. ...The:empire:Strikes:Back.... Já a muito tempo tinha ideia de fazer algo com laser, emcircunstâncias anteriores tive algo empírico com detector deladrão, usando Arduino pro Mini e um PIR (detector demovimento), usava webcam usando api do OpenCV paraassim que tiver movimento obter uma foto, logo é enviadocomo anexo para um determinado e-mail a foto, funcionoubem entretanto não como o esperado então em uma questão dealeatoriedade passava falsos alarmes, nem tudo é perfeitovejamos alguns Ids como snort por exemplo. Com o passar do tempo, lendo livros da “Evil Genius” acheimuito material interessante sobre eletrônica envolvendosegurança, alguns deles compartilhei no meu blog como o“detector de mentira”, algo bem simples para detectar batidasdo coração e talvez julgar se é mentira ou não, analisandouma plotagem ou alguns inteiros, andando no meio dessaodisseia encontrei vários sistemas “pega ladrão” entre eles oque vamos estudar aqui sistema com “Laser”, devido acarência de material do mesmo em PT-BR, tive ideia deescrever este paper pois acho que seria a melhor forma deaprender é escrevendo...
  4. 4. Projeto antigo com Arduino com sensor de movimento
  5. 5. Por que Arduino ?• OpenSource• Facilidade por conta da IDE• Podemos optar em usar gcc-avr, programar em C,ASM...• prototipagem• Com Arduino podemos fazer gravação em outros AVR como ATtiny...
  6. 6. www.arduino.cc
  7. 7. O que é Laser ?Um laser é um dispositivo que controla a maneira pela qualátomos energizados liberam fótons(energia luminosa).Etimologia:Sua sigla de laser significa"Light Amplification by Stimulated Emission of Radiation" ouseja Amplificação da Luz por Emissão Estimulada de Radiação,Albert Einstein deu o primeiro passo, dizendo que a luz éformada por pacotes discretos e bem determinados de energiaque hoje é rotulado como fótons,Mais tarde em 1960 Charles Townes registrou a patente do primeiro gerador de raios laser, emWashington. Charles Townes e Arthur Schawlow
  8. 8. Luz do laser e da lanterna Emissão estimulada não ocorre numa lanternacomum, pois todos os seus átomos liberamseus fótons de forma aleatória. já no laser aemissão de fótons é organizada.Qual laser trabalhar ? Lasers em geral são classificados em várias classes, temos estes que pessoal da SWAT usa em armas,usam paraaumentar a probabilidade deacerto em umconflito armado,geralmente são daclasse 3 ou seja "IIIa" que é o quevamos usar,conhecido comolaser de díodo,única contra indicação é que se aponte em olhos pois pode causar danos embora tenha só 5mW, digamos ai com adição de elementos óticos pode causar danos, como adicionar uma lente de aumento etc...
  9. 9. Indo para PráticaRequerimentos:2 Resistor de 10k , R$ 0,30 centavos1 Fotocélula "sensor de luz" (photocell) R$ 2,00 reais1 Arduino nano USD 20,00 dollar1 Cabo para ftdi (para I/O) R$ 6 reais1 Laser de 5mW R$ 3,501 Led qualquer cor R$ 0,15 centavos*alguns jumpers e breadboard
  10. 10. Melhorando a visualizaçãoO LED não esta nesta foto, LED você adiciona no pino quequiser já que é algo opcional , lembrando que GND “negativo”é o fio verde, 5v “positivo” seria o fio vermelho, no caso olaranja seria o do PINO ”2”. http://fritzing.org/
  11. 11. O que foi feito ? A fotocélula ao ser usada com resistor de 10k vai detectar luz, no caso podemos usar 2 pedaços de cano PVC ou lata, deixar o circuito numa lata com um furo mirando para a fotocélula, segunda lata o laser mirando para o buraco da primeira lata, se alguém passar pelo laser e o laser não chegar na fotocélula logo não mandara a luz, então o microcontrolador irá julgar uma ação, no caso eu mandei "1" via serial caso não tenha luz, nosso código em C ao detectar "1" irá ativar uma função usando OpenCV para tirarfoto com webcam, logo seguido de um system() para uso do“mutt”(cliente de e-mail para unix like) para enviar foto comanexo para o e-mail destino...Diagrama
  12. 12. Note na foto o sistema rodando, repare que o laser mira emsima da fotocélula, e quando isso ocorre acende um LED,obviamente você pode mudar isso,adicionar um buzzer parasoar alarme caso o laser não alcance a fotocélula,talvez usaruma placa de GSM com seu SIM card e mandar um SMS porexemplo...
  13. 13. Código do Arduinoint photocellPin = 2;int RedLed = 3;int photocellReading;void setup(void){ pinMode(RedLed,OUTPUT); Serial.begin(9600);}void loop(void){ photocellReading = analogRead(photocellPin);// se entrada(fotons) maior que 900 é laser... então if( photocellReading>=900) { digitalWrite(RedLed,HIGH); delay(500); }else {// se o laser nao tiver apontando para fotocelula digitalWrite(RedLed,LOW);// manda 1 via serial assim ativa webcam etc... Serial.println("1"); } photocellReading = 1024 - photocellReading; delay(100);}
  14. 14. O Código em Linguagem CEste código vai ser compilado e executado e vai ficar no seucomputador em esculta, código ficou grande, então não voumostrar tudo somente os pontos críticos...baixe aqui ! bugsec.googlecode.com/files/ThiefGet_with_laser.c
  15. 15. Macro de DEBUGQuase todo código que escrevo uso esta macro, uso para ajudar adepurar o código, evita que eu abra o GDB para tomar uma surra!setar para 1 ativa debug#define BUGVIEW 1#define DEBUG(x, s...) do { if (!BUGVIEW) { break; } time_t t = time(NULL); char *d = ctime(&t); fprintf(stderr, "[!] %.*s %s[%d] %s(): ", (int)strlen(d) - 1, d, __FILE__, __LINE__, __FUNCTION__); fprintf(stderr, x, ## s); } while (0);Nos retorna tempo, nome do arquivo,linha e função.FunçõesEsta função abrimos a porta serial com a syscall open()e ajustamos o struct do “termios.h” para comunicação padrãoint serialboot(const char* serialport, int baud);Função para uso da syscall read() no descriptor para pegarinput...int serialread(int fd, char* buf, char until);Esta função tira foto da webcam usando API do OpenCVvoid webcam(const char* file);
  16. 16. Parte lógica// se receber "1" if(strcmp(buf,"1")>0) {//microsegundos do sleep usleep(500000); puts("MOVEMENT ONLINE"); puts(buf); counter++; OFF=0; }//numero de vezes que achou movimento if(counter==MOVES) { puts("cof cof thief in HOME");// tira foto da webcam webcam("test.jpg");// manda e-mail com anexo a webcam :-) ,poderia ser um execl() também... system(CMD); break; counter=0; }
  17. 17. Perguntas ???
  18. 18. Obrigado pela atenção Onde podemos conversar ? irc.freenode.net #cogubin c00f3r@gmail.com Thanks: m0nad,Iak,sigsegv,ebellani,_mlk_, clandestine,eremitah,mentebinaria,kov,f117,syn_ack marcelomf,zeppelin,muzgo,b4r0n,nibbles,voidpointerenygmata,crash,SecMentor, __von,twi-john , utroz,sexpistol,_i outros amigos...

×