Postagens

Mostrando postagens de março, 2014

Fotografia/fimagem time-lapse com Raspberry Pi

Imagem
Ano passado comprei um Raspberry Pi e comecei a me divertir com ele. Tenho arduinado já há alguns anos, e foi uma ótima ter incorporado o Pi aos meus brinquedinhos. Junto com ele comprei uma câmera, desenvolvida para o Pi. A bichinha é valente, full HD. Fotografa e filma, mas não tem microfone para as filmagens. O ponto negativo é que ela é conectada ao Pi com um flat muito delicado, que eu acho que nem vai durar muito na minha mão. Aliás ela é toda muito delicada, como vc pode ver abaixo:   Eu comprei um suporte que protege-a um pouco, mas mesmo assim... Ontem resolvi estudar o comando da câmera pelo Pi, e como a melhor linguagem de programação do mundo da última semana é o Python, tomei logo esse rumo. Pesquisa dali e daqui, achei essa lib , que prometia comandar as muitas features da camerazinha. Fiz então uma aplicação chamada piCamExplorer.py, que roda no Pi e faz as seguintes coisas: python piCamExplorer.py -mp : tira uma foto e armazena no arquivo

No meu "modo de vista"...

Imagem
Um domingão assim... Fica mais divertido se visto... assim: PS: Para um "making of", clique cá . Aqui, o dispositivo responsável pela mágica: Para um "making of", clique cá .

Código fonte do arquivo piCamExplorer.py.

O código fonte aplicação piCamExplorer.py segue abaixo. # programa piCamExplorer.py # Copywright by Mauro Assis (assismauro@hotmail.com) import time import picamera import sys import cv2 import getopt camera = picamera.PiCamera() def header(): print print 'piCamExplorer v0.9' print def usage(): print print 'Usage: pyhton piCamExplorer -m(mode m,p or t) -d(secs delay) -n(numbers of pics) -i(secs interval) -h(help)' print def main(): nPic = 10 interval = 10 delay = 0 # processa linha de comando try: opts, args = getopt.getopt(sys.argv[1:],'m:d:n:i:h') except getopt.GetoptError: usage() sys.exit(2) camera.resolution = (1024, 768) camera.vflip = True mode = '' for opt, arg in opts: if opt == '-h': usage() elif opt == '-m': mode = arg; elif opt == '-n': nPic = int(arg) elif

Controlando o acionamento e velocidade de um motor CC com Arduino e transistor

Imagem
Ontem, no Automação no Parque, contrariando as minhas expectativas, o movimento foi muito bom. Alguns trainees, o Euclas trabalhando em um projeto dele próprio, e outros. Choveu bastante, e como o telhado do quiosque não tá lá essas coisas, deu o que fazer para a gente conseguir posicionar as mesas de maneira a escaparmos das goteiras. É que eletrônicos e água geralmente não se dão bem, como vcs sabem... Achada uma posição como poucas e fracas goteiras, volta ao trabalho. Apareceu por lá um ex-aluno com um projeto de um mecanismo de ajuste de pH de soluções. Consiste em um pHgâmetro que captará o pH da solução, enviando ao Arduino. Este fará o ajuste do circuito acionando uma de duas bombas ligadas respectivamente a soluções ácida e básica. Ele trouxe o sensor, testamos, funcionou. Trouxe tb as bombas, mas não tínhamos fonte capaz de acioná-las. Como elas são tocadas por motores CC, resolvemos montar o circuito de controle do motor, para adiantar. Apesar de não prec

Dividindo um programa (sketch) do Arduino em mais de um arquivo

Imagem
Impressionante, vira e mexe eu aprendo um troço útil sobre a plataforma Arduino! Quando uma aplicação do Arduino começa a crescer muito, ou seja, os fontes passam das dezenas de linhas, começa a ficar incômodo lidar com aquele monte de instruções no mesmo texto. No Pascal, e depois no Delphi da Borland a gente tinha o recurso de dividir o fonte em diferentes arquivos e depois incluí-los em um deles usando-se o comando INCLUDE, dessa forma: {$INCLUDE interface.pas} {$INCLUDE calculos.pas} Quando o compilador, ao compilar o fonte "principal" topava com um include desses, ele achava o arquivo e o incluía naquela posição, montando um arquivão contendo todos os includes. Obs: não é um include como no C/C++, onde o include é só uma referência a um outro arquivo compilado que vai ser linkado pelo linker. Procurei esse troço várias vezes no mundo Arduino, sem sucesso. Assim, quando queria dividir os fontes em mais de um arquivo, eu criava uma lib do arquivo e usava o incl