domingo, 3 de julho de 2011

Pisca led com Arduino e Node.JS

Eu estava devendo a muito um post sobre Arduíno, já foram 3 Dojos e eu nao postei nada a respeito. Então vamos la...
O Arduino e um projeto de hardware livre, e tem muita coisa na internet (muita mesmo), e vários grupos como o ArduinoMS que promove encontros periódicos para troca de conhecimento, experiencia e um pouco de diversao tambem, afinal diversão e o carro chefe de quem "brinca" com Arduino.
Ja o Node.JS e um servidor de aplicacaoes em javascript orientado a eventos e assíncrono.

Esta aplicacao e bem simples, ascender e apagar um led por uma interface web, utilizando webSockets.

Presumindo que vc ja tenha instalado o Node.JS, vamos aos codigos.


Na interface....




var socket = new WebSocket("ws://localhost:8080/"); // abro a conecxao com o servidor

function acendeLuz(){
socket.send(1); // envio 1 para ascender
}
function apagaLuz(){
socket.send(0); // e 0 para apagar
}


e o html.....







no servidor....

var ws = require("./ws"); // blibioteca para trabalhar com webSocktes
var fs = require('fs'); // bliboteca para trabalhar com fileSystem

var server = ws.createServer(function(socket){
socket.on("connect", function(resource){
socket.write("conectou");
});

socket.on("data", function (data) {
console.log(data);
if(data == 1){acende();} // verifico a mensagem da interface
if(data == 0){apaga();}
});
});

function acende(){
// envia a string '1' para o arduino pela porta USB, dev/ttyUSB0 (no Ruwindows seria COM1 )
fs.open('/dev/ttyUSB0', 'a', 666, function( e, id ) {
fs.write( id, '1', null, null, null, null);
});
}

function apaga(){
fs.open('/dev/ttyUSB0', 'a', 666, function( e, id ) {
fs.write( id, '0', null, null, null, null);
});
}

server.listen(8080); // server na porta 8080...




e por fim no arduino.....

int incomingByte = 0; // for incoming serial data
int ledPin = 13;

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // opens serial port, sets data rate to 9600 bps
}

void loop() {

// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();

// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte);
if(incomingByte == 49){ // o 49 representa a string '1' enviada pelo servidor
digitalWrite(ledPin, HIGH);
}

if(incomingByte == 48){ // e o 48 representa o '0'
digitalWrite(ledPin, LOW);
}



}
}



tem ai um video da aplicacao funcionando




Mais.....

o codigo completo ta no github https://github.com/eltonluc/ArduinoNode

sobre o ultimo Dojo do ArduinoMS tem um post do @jeffmor no blog da Jera

Dica...

se vc tem um modem 3g da Huawei, evite usar ele e a placa do arduino espetada ao mesmo tempo no computador, pode ser fatal (para o modem)....

sexta-feira, 15 de outubro de 2010

Consumindo a API do Twitter com PHP e PEAR

Depois de varios exemplos de acesso a API do twitter com PHP e outras linguagens, busquei uma forma mais simples e cheguei a este result em 3 passos. Não vou explicar muito mas se alguem tiver duvidas só perguntar....


Primeiro - você tem que ter o PEAR instalado - http://pear.php.net/

Segundo - Inclua a classe RestConnection no seu projeto.

Terceiro - uma funcao exemplo para retornar uma busca por tag no twitter:

public function twitter() {
$pathParams = array();
$pathParams["{format}"] = "json"; //Formato da resposta
$queryParams = array("q" =>"carro","result_type"=>"recent"); // parametros da busca
$conn = new RestConnection("http://search.twitter.com/search.{format}", $pathParams, $queryParams, false);
$result = $conn->get();
$result = json_decode($result->getResponseBody(), true);
return $result['results'];
}

quinta-feira, 2 de setembro de 2010

CensorCheap

"CensorCheap é um projeto exclusivo, lançado em 24 de agosto de 2010, com o intuito de mapear a censura na internet pelo mundo.

 A idéia é realmente simples: Instalar um pequeno addon no seu firefox e, sempre que você tentar acessar um site que é censurado por seu ISP ou do seu país, esta informação será armasenada em um banco de dados de colaboração em tempo real. A CensorCheap irá compilar estes dados e construir um mapa da censura em todo o mundo."

 

Para saber mais sobre o projeto é só acessar o site oficial http://censorcheap.org/

Para colaborar é instalar o addon.


segunda-feira, 16 de agosto de 2010

Adobe Contribute CS5

O que é Adobe Contribute CS5?

 

Segundo a Adobe é:

O software Adobe® Contribute® CS5 é uma ferramenta poderosa de publicação na Web e gerenciamento de websites que integra criação, revisão e publicação em um editor de HTML WYSIWYG fácil de usar. Aumente a produtividade da publicação na Web em colaboração, simplificando, ao mesmo tempo, as tarefas de supervisão e aprovação.

 

Estou Fazendo este post pelo Adobe Contribute CS5, muito facil e simples mesmo.

 

 Os softweres da Adobe em geral são faceis e intuitiveis de usar. para mim o programa que você precisa de tutorial ou manual para usar não é um bom programa, mas isso é assunto pra outro post......

quinta-feira, 24 de junho de 2010

Busca CEP com google maps

Quando precisei de uma busca de cep para implementar em um cadastro encontrei diversas soluções, algumas pagas, mas nenhuma que atendia as minhas necessidades e claro, de fácil implementação.

O problema
No cadastro em questão era exigido o cep do cliente, o problema é que nem sempre o cliente sabe ou tem paciencia de buscar em outro site ou até mesmo em uma conta de luz por exemplo, esse tipo de dificuldade pode fazer com que o cliente dexista do cadastro.

Solucao Implementada

Segue uma solução simples usando a API http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/v2/basics.html do Google Maps e flamework javascript Mootools (você pode usar qualquer outro ou nenhum flamework se assim desejar)

HTML

<input type="text" name="consulta" id="consulta"/>
<input type="button" id="endResult" value="Busca Cep" />

<div id="resultado">
// div que recebe o resultado


</div>


Javascript

window.addEvent('domready', function(){
var buscaCep = function(){
var endereco = $('endereco').get('value'); //recebe o endereço de input HTML
var resultado = $('resultado'); // div onde sera apresentado os resultados
resultado.innerHTML = '';

//funcao request do Mootools, que passa via POST o endereço
// a ser pesquisado, aqui voce pode usar qualquer framework ou fazer a mao :(
// passa o parametro endereço via POST ao proxy PHP

var request = new Request.JSON({
url: "proxy.php",
onSuccess: function(locais){locais.results.each(function(item){
resultado.innerHTML += "
"+item.formatted_address+"
";
})}
}).post({'endereco': endereco});
}

//vinculando a funcao buscaCep ao evento OnClik do input
$('buscar').addEvent('click', buscaCep);
});


PHP


<?php
$adress = str_replace(" ","+", $_POST['endereco']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://maps.google.com/maps/api/geocode/json?address=$adress&sensor=false");
curl_exec($ch);
curl_close($ch);
?>


para o exemplo eu peguei somente o "formatted_address" retornado pelo Google,
se você quiser formatar o resultado de outra forma esta é a resposta.

{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "Av. Afonso Pena, 643 - Amambaí, Campo Grande - MS, 79005-000, Brazil", // usei esta opçao por que em alguns testes o resultado do google veio de formas diferentes em alguns casos.
"address_components": [ {
"long_name": "643",
"short_name": "643",
"types": [ "street_number" ]
}, {
"long_name": "Av. Afonso Pena",
"short_name": "Av. Afonso Pena",
"types": [ "route" ]
}, {
"long_name": "Amambaí",
"short_name": "Amambaí",
"types": [ "neighborhood", "political" ]
}, {
"long_name": "Campo Grande",
"short_name": "Campo Grande",
"types": [ "locality", "political" ]
}, {
"long_name": "Mato Grosso do Sul",
"short_name": "MS",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "Brazil",
"short_name": "BR",
"types": [ "country", "political" ]
}, {
"long_name": "79005-000",
"short_name": "79005-000",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": -20.4668048,
"lng": -54.6306711
},
"location_type": "RANGE_INTERPOLATED",
"viewport": {
"southwest": {
"lat": -20.4699625,
"lng": -54.6338140
},
"northeast": {
"lat": -20.4636672,
"lng": -54.6275188
}
},
"bounds": {
"southwest": {
"lat": -20.4668249,
"lng": -54.6306711
},
"northeast": {
"lat": -20.4668048,
"lng": -54.6306617
}
}
},
"partial_match": true
}, {
"types": [ "street_address" ],
"formatted_address": "Travessa Afonso Pena, 643 - Chácara Cachoeira, Campo Grande - MS, 79031-010, Brazil",
"address_components": [ {
"long_name": "643",
"short_name": "643",
"types": [ "street_number" ]
}, {
"long_name": "Travessa Afonso Pena",
"short_name": "Travessa Afonso Pena",
"types": [ "route" ]
}, {
"long_name": "Chácara Cachoeira",
"short_name": "Chácara Cachoeira",
"types": [ "neighborhood", "political" ]
}, {
"long_name": "Campo Grande",
"short_name": "Campo Grande",
"types": [ "locality", "political" ]
}, {
"long_name": "Mato Grosso do Sul",
"short_name": "MS",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "Brazil",
"short_name": "BR",
"types": [ "country", "political" ]
}, {
"long_name": "79031-010",
"short_name": "79031-010",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": -20.4612687,
"lng": -54.5633648
},
"location_type": "RANGE_INTERPOLATED",
"viewport": {
"southwest": {
"lat": -20.4644168,
"lng": -54.5665221
},
"northeast": {
"lat": -20.4581215,
"lng": -54.5602269
}
},
"bounds": {
"southwest": {
"lat": -20.4612696,
"lng": -54.5633842
},
"northeast": {
"lat": -20.4612687,
"lng": -54.5633648
}
}
},
"partial_match": true
} ]
}

sexta-feira, 21 de agosto de 2009

Video Aula Corel

Segue abaixo uma pequeno video onde faço uma planta baixa simples no Corel Draw, o objetivo do video não é ensinar a fazer planta baixa (por que nem eu sei) mas a usar algumas ferramentas simples do corel, otimo para quem para quem esta começando a trabalhar com corel.



Explicações do video:

1- onde você ve o zoom estou utilizando a rodinha do mouse, bem mais agil que as barras de rolagem.

1- em algum objetos ao invés de redesenhar eu uso um recurso mutio util do corel que é a duplicação do objeto, para fazer isso basta clicar sobre o objeto, arastar e depois, sem soltar o objeto clice com o botão esquerdo do mouse e pronto...

com um pouco de treino você pode chegar e estes resultados

i
mage via Wikipedia
The groundplan of the Abbey of St. Gall in Swi...

quarta-feira, 18 de março de 2009

Tutorial CorelDraw aula 5

CorelO basico da ferramenta forma ja foi passado agora vamos a proxima ferramenta, a ferramenta cortar….

como o proprio nome ja diz ela corta os objetos na pagina

nao tem muita funcionalidade porque ela elimina todo o resto, fora da area de corte… existe tambem sua variações para cortes mais especificos como a ferramentas faca, borracha e ‘excuir segmento virtual’….

Share this post :

quarta-feira, 4 de março de 2009

Tutorial Corel Draw Aula 4

Continuando com a ferramenta forma...

a ferramenta forma tem algumas funcionalidades amais que as anteriores, ja falmos de ponto e retas agora vamos as curvas...

Corel

Com a mesma figura e ferramenta da aula passada clique em uma linha e clique na opçao de ferramenta 'converter linha em curva' >>>>>>>>>>>>>>v

Corel

 

Agora clique e arraste estas cetas que apareceram ai ou clique e arraste a linha en si e esta feito sua curva outras

Corel

entao... outras finalidades da ferramenta forma passarei mais tarde agora vamos a proxima ferramenta ....

 

 

 

 

Share this post :

quarta-feira, 25 de fevereiro de 2009

Tutorial CorelDraw Aula 3

Continuando...

 

Corel no tuto anterior começamos a descobrir as ferramentas do corel, a proxima é a 'Ferramenta Forma'.

Esta ferramenta, como o propio nome já diz, tem a função de dar e/ou manipular as formas do objeto.  Entendeu?

então vamos a pratica, crie um quadrado,  igual ao do tuto anterior,  selecione e agora cliqueCorel na ferramneta forma, observe que os cantos da imagem mudou, se voce clicar em um dos cantos  e arrastar vai começar a arredondar os cantos ate um ponto maximo,  isso só é possivel porque esta imaggem ainda é um vetor do corel para poder manipular melhor vamos converter esta imagem em curvas va em Organizar->Converter em Curvas. perceba que novamente os cantos da imgem mudou, clique com a ferramenta forma em um dos cantos,  agora sim voce podera manipular a imagem da forma que quiser, cada canto contem um ponto (ponto é a junção de duas retas) se der dois cliques sobre o ponto ira deleta-lo, se der dois clique sobre a linha sera criado um novo ponto...

lembre-se de sempre praticar com cada ferramenta para se familiarizar mais e

Share this post :

de que o corel tem o famoso Ctrl+Z, caso faça alguma caca.

pontos, retas... e na proxima curvas...

parece mastematica mas não é....

sexta-feira, 13 de fevereiro de 2009

Tutorial CorelDraw Aula 2

Continuando....

No ultimo tuto vimos informações basicas para começar a desenvolver algo... e como a melhor maneira de aprender é na pratica então vamos lá...

passamos agora a conhecer as ferramentas que o corel oferece...

Corel esta é a caixa de ferramentas do corel e, de cima para baixo, a primeira ferramenta é  'seleção' como o proprio nome já diz serve para selecionar, redimencionar e girar ou mover objetos na tela.... mas para isso temos que ter um objeto para ser manipulado certo!?
Então vamos usar a ferramenta retangulo para criar nosso objeto a ser manipulado....

clique na ferramenta e clique a arraste em qualquer lugar da tela e temos nosso objeto criado.

Voltamos a ferramenta seleção, clique no objeto...

Os quadinho pretos servem para você redimencionar o objeto e o "x" para arrasta-lo.>>
Corel
se você clicar sobre o x aparecerao as opições para girar e inclinar o objeto...
Corel Corel
continua....
Share this post :

terça-feira, 10 de fevereiro de 2009

Tutorial Corel Draw Aula 1

Vou começar uma serie de tutoriais para que tem interesse em saber mais sobre este ótimo programa...

Então vamos lá...

Primeiro o que vem a ser e pra que serve exatamente o corel?

Teoricamente  O CorelDRAW é um programa de desenho vetorial bidimensional para design gráfico desenvolvido pela Corel Corporation, Canadá. É um aplicativo de ilustração vetorial e layout de página que possibilita a criação e a manipulação de vários produtos, como por exemplo: desenhos artísticos, publicitários, logotipos, capas de revistas, livros, CDs, imagens de objectos para aplicação nas páginas de Internet (botões, ícones, animações gráficas, etc) confecção de cartazes, etc.

mas na pratica  o corel é exelente para produção de graficos que serão impressos como folders, cartões de visita, panfletos e ect...

sua definição de dpi e diferente de outros programas como photoshop... se vc pretente criar layouts para web ou icones prefiro photoshop ou illustrator... mas se mesmo assim quiser usar o corel então >>>

A pratica... vou usar o corel x4 mas estas informaçoes vale para as sversões anteriores.

abra sua versao do corel clique em aquivo>novo

ira abrir um novo documento

Corel

esta é a barra de propriedades do novo documento, no primeiro campo esta o nome/tipo da pagina que por default A4, papel que usamos em impressoras comum. Ao lado as dimensoes da pagina, largura e altura e os praximos doi botões sao para difinir a posição do papel/pagina em retrato e paisagem...

 

Continua......

 

Recomende :

sábado, 31 de janeiro de 2009

sábado, 17 de janeiro de 2009

O que é XSLT?

XSL Transformations, ou XSLT, é uma linguagem de marcação XML usada para transformar documentos XML. É parte de linguagem de transformação XML da especificação XSL (as outras partes sendo XSL-FO e XPath). Como a XML e a HTML, a especificação XSLT é uma recomendação desenvolvida pela W3C.

A especificação XSLT - eXtensible Stylesheet Language for Transformation (linguagem de folhas de estilo extensível para transformação) - possibilita transformações mais potentes do que as folhas de estilo CSS.

A apresentação de documentos XML é apenas um dos objetivos de XSLT, podendo ser usada também para transformar um documento de um vocabulário diferente para outro vocabulário.

A transformação de um documento XML em XHTML é apenas um caso especial de uma aplicação XSLT. E, ao contrário do uso do CSS com XML, uma folha de estilo XSLT pode produzir um documento XHTML real como saída em vez de apenas atribuir informações de estilo aos elementos XHTML existentes.

para saber mais sobre esta tecnologia tem um minicurso em pdf aqui



segunda-feira, 29 de dezembro de 2008

Melhores Tutoriais Photoshop 2008

Photoshop Beauty Tutorial 35,809 views


Under Photo Effect, Photoshop Tutorial ( Source: zoffie.deviantart )

In this tutorial, it will show you how to edit and improve a image to become more pretty and wonderful. To edit and enhance the beauty of image, there are different ways to achieve this. It is worthwhile to learn it as this. (Downloading the tutorial is required.)

Add to Favourite Add to Favourite

Create Amazing Photomontages 30,288 views


Under Photo Effect, Photoshop Tutorial ( Source: digitalartsonline )

In this tutorial, itshows you how to make a splash, blending two very different images to create this amazing underwater effect, complete with a dissolving figure of a man. At the end, the last adjustment is to draw focus to the centre by blurring the edges a little. Hope you enjoy!

Add to Favourite Add to Favourite

 blog it

Melhores Tutoriais Photoshop 2008

Smokin’ Woman 43,653 views


Under Abstract Effect, Photoshop Tutorial ( Source: aviary )

In this tutorial, it is going to show how to create one smoking woman using a couple source pics, and just a few of the features associated with Phoenix. So follow along. With the magic of Phoenix, you've created the smoking woman of your dreams.

Add to Favourite Add to Favourite

Turning a Image into a Beautiful Paint 41,208 views


Under Photo Effect, Photoshop Tutorial ( Source: vectorportraits )

In this tutorial, it will show you how to turn a photo into a beautiful paint. This process is required to implement part by part. You need to define the image by different color parts. And you may use pen tool to do it. In order to turn the paint becoming more realistic, adding shadow into the image is necessary.

Add to Favourite Add to Favourite

 blog it