Iluminação Natalina com Arduino, Temporizador e LDR

Neste projeto, irei apresentar a vocês como controlar uma carga de 110 ou 220 volts com um Arduíno e um relé. Utilizaremos também um LDR para medição de intensidade de luz, para poder fazer com que a carga seja ligada apenas quando for escuro, e além disso, com a opção de temporizar o tempo que a carga ficará ligada. Um exemplo de aplicação é a iluminação Natalina, fazendo ela ligar somente quando escurecer, e caso quiser, pode-se também programar essa para desligar após algumas horas, ou ainda, deixar com que ela se apague novamente quando o dia clarear.

(mais…)

Como utilizar o getaddrinfo para evitar a falha GHOST

Em janeiro de 2015 se ouviu falar de uma falha de segurança na glibc chamada GHOST. Esta falha poderia ser explorada por um programa malicioso utilizando as funções gethostbyname() e gethostbyname2() da glibc. O ataque acontece por um buffer overflow dentro destas funções quando um endereço inválido é passando como parâmetro. Ao explorar esta falha, o atacante consegue executar códigos arbitrários com as permissões do usuários executando o processo.

(mais…)

Hands on: quilt

Quilt é uma ferramenta para criação e manipulação de patches de código fonte. Sua utilização é bem simples e permite criar patches de forma bem prática. Ele foi originalmente criado pelo desenvolvedor Andrew Morton, sendo uma série de scripts para gerenciar patches no Linux. Mas Andreas Grünbacher, um outro desenvolvedor, melhorou os scripts de Andrew para gerar constumizações do kernel para o SuSe Linux.

Para um exemplo prático, vejamos a seguinte estrutura de arquivos:

[[email protected] pytabs]$ ls
main.py  new_tab.py  new_tab.pyc  new_tab.ui  window.ui

Para criar um novo patch, execute:

quilt new alteracao1.patch

Após a execução deste comando, será criada uma pasta “patches”, que conterá todos os patches criados. Por hora esta pasta contém apenas o arquivo series, já que não adicionamos e nem alteramos nenhum arquivo para adicionar ao patch recem criado. O arquivo series mostra a ordem em que os patches criados serão aplicados.

(mais…)

Interagindo com a câmera do Raspberry Pi

Interagir com a câmera do Raspberry Pi é muito simples, graças ao módulo criado pelo desenvolvedor Dave Jones (veja seu github aqui). Este módulo torna simples tirar fotos, fazer vídeos e alterar parâmetros da câmera.

A câmera que iremos utilizar foi fornecida pela Loja Mundi e você pode comprá-la aqui.

Primeiro, segue um vídeo de como deve-se instalar a câmera no Raspberry:

Para fazer este tutorial, foi utilizada a distribuição Raspbian. Este mesmo tutorial pode ser utilizado com outras distribuições, basta ter o mesmo pacote python instalado. Para instruções de como baixar e instalar o Raspbian no seu Raspberry Pi, basta verificar aqui.

O pacote necessário para interagir com a câmera se chama python-picamera. Para instalar este pacote no Raspbian, primeiro atualize o repositório e execute o apt-get:

apt-get update
apt-get install python-picamera

Para mostrar sua simplicidade, segue abaixo o código necessário para tirar uma foto com a câmera:
O código é auto explicativo: é importado o módulo da câmera, instanciado o objeto e chamado o método para tirar uma foto, e esta é salva no arquivo foto.jpg. Segue um “selfie” tirado do Raspberry com este código:
foto

Para tirar fotos a cada 10 segundos:

Além disto, o módulo picamera consegue utilizar a câmera para mostrar em tempo real a câmera, funcionando como uma webcam, e ainda consegue gravar vídeos. Para mostrar imagens da câmera em tempo real, basta executar:

camera.start_preview()
camera.stop_preview()

O preview sobrepoe a seção atual do python. Para parar o preview, precione Ctrl-D.

Para gravar um vídeo de 5 segundos:
Segue vídeo gravado como exemplo:

Este módulo ainda suporta configurações da câmera, como saturação, brilho, flip vertical e horizontal da imagem, e vários outros recursos:

E a imagem tirada com estas configurações:
foto_config

Existem outras configurações e seus valores padrão são estes:

camera.sharpness = 0
camera.contrast = 0
camera.brightness = 50
camera.saturation = 0
camera.ISO = 0
camera.video_stabilization = False
camera.exposure_compensation = 0
camera.exposure_mode = 'auto'
camera.meter_mode = 'average'
camera.awb_mode = 'auto'
camera.image_effect = 'none'
camera.color_effects = None
camera.rotation = 0
camera.hflip = False
camera.vflip = False
camera.crop = (0.0, 0.0, 1.0, 1.0)

Um efeito interessante é gravar e ir alterando estes efeitos durante a gravação:

Clique aqui para a documentação completa sobre o módulo picamera. Espero que tenham gostado, e que se divirtam tanto quanto eu me diverti fazendo esta postagem. Até a próxima!

Referência: Página Oficial Raspberry Pi – Câmera