O PSL-PI tem por objetivo incentivar o uso e a produção de software livre no Piauí como política de combate à exclusão digital. Acreditamos que a distribuição de conhecimentos proporcionada pelo Open Source/Software Livre tornará nossa sociedade mais justa e próspera, exatamente por dar a todos as mesmas condições de conhecimento e desenvolvimento.
Software Livre é uma grande oportunidade de construirmos uma sociedade produtora de ciência, independente e efetivamente competitiva. Estamos reconstruindo as bases da nossa sociedade, não mais calcados nos braços do Estado, mas sim, amparados pela iniciativa própria, pela auto-determinação. Nós somos capazes de nos auto-governar. Somos capazes de construir uma sociedade efetivamente Livre. Esta é a essência do PSL-PI.
O PSL-PI é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, grupos de usuários e desenvolvedores de software livre, empresas, governos ou ONGs, e demais setores da sociedade. O importante é a consciência e disposição para propagar o uso de software livre e a cultura colaborativa nas diferentes esferas da sociedade.
Filipe Saraiva: Software Freedom Day 2012 em Teresina
14 de Setembro de 2012, 0:00 - sem comentários aindaClique na imagem para ampliar
E amanhã será comemorado, no mundo, o Software Freedom Day – o dia da liberdade do software!
E nesse ano, mais uma vez, Teresina não vai ficar de fora. Com uma programação de alto nível e para os mais variados gostos, a biblioteca do Fripisa será tomada neste sábado (15 de setembro) por membros das comunidades piauienses de software livre e teremos palestras, oficinas, vídeos, e mais.
Dê uma olhada na comunidade do evento e saiba mais. As inscrições são gratuitas!
PSL-PI: Software Freedom Day 2012 em Teresina
14 de Setembro de 2012, 0:00 - sem comentários aindaE amanhã será comemorado, no mundo, o Software Freedom Day – o dia da liberdade do software!
E nesse ano, mais uma vez, Teresina não vai ficar de fora. Com uma programação de alto nível e para os mais variados gostos, a biblioteca do Fripisa será tomada neste sábado (15 de setembro) por membros das comunidades piauienses de software livre e teremos palestras, oficinas, vídeos, e mais.
Dê uma olhada na comunidade do evento e saiba mais. As inscrições são gratuitas!
AJ Alves: net.js – Um pacote Node.JS para trabalhar com TCP
11 de Setembro de 2012, 0:00 - sem comentários aindaTCP de (Transmission Control Protocol) é um protocolo robusto e eficiente da quarta camada do modelo OSI, a camada de transporte, e sobre qual a maioria dos serviços aos quais a internet está montada como o SSH, FTP e o HTTP. Tornou-se apropriado para a grande rede por se tratar de um protocolo que verifica se os dados estão sendo enviados da forma correta, na sequência, e sem erros.
net.js é um pacote que integra o core do framework Node.JS, foi e é especificamente desenvolvido e aprimorado para trabalhar com conexões TCP utilizando Javascript. Vou explicar o uso deste pacote através da criação de um Chat que será acessado via terminal com uso de um protocolo de aplicação, como por exemplo o TELNET, um dos protocolos que utiliza o TCP como protocolo de transporte.
// Instanciar o pacote para trabalhar com o TCP, o "net.js"var net = require("net"); // Criando um array para guardar todos os clientes "sockets" conectadosvar listaClientes = [];var ids = 0 // Criando um servidor a partir de um objeto "net" var servidor = net.createServer(function(cliente){ // Adicionando todos os clientes que se conectarem ao servidor ao array listaClientes cliente.id = ids++ listaClientes.push(cliente); // Enviando uma mensgem aos clientes que acabam de se conectar cliente.write("Bem vindo ao Chat!\n"); // Evento acionado sempre que um cliente conecta-se ao servidor cliente.on("connect", function(){ //imprimindo no servidor o id do cliente conectado console.log(cliente.id+" conectado!"); }); // Evento acionado sempre que alguém envia dados ao servidor cliente.on("data", function(dados){ // Cirando um mecanismo de logout if(String(dados).match(/sair/)){ //Desconectando o cliente cliente.end(); } // Implementação de um broadcast for(var i=0; i < listaClientes.length; i++){ // Impedindo que um dado seja enviado para quem o enviou if(listaClientes[i] == cliente){ continue; } // Enviando o dado para o referido cliente na posição i do array listaClientes[i].write(dados); } }); // Evento acionado sempre que um cliente desconecta-se do servidor cliente.on("end", function(){ //achando a posição do cliente que desconectou no array var i = listaClientes.indexOf(cliente); //retirando o cliente da lista listaClientes.splice(i, 1); //imprimindo uma mensagem que o cliente com este id desconectou-se console.log(cliente.id+" desconectado!"); });}); //configurando a porta a qual este servidor deve ficar escutandoservidor.listen(8000); //imprimindo um aviso que o servidor está rodandoconsole.log("Servidor TCP conectado em 127.0.0.1 porta 8000, aguardando conexões!!!");
Como destaque no código temos:
// Criar uma instância do pacotevar net = require("net"); // Criar um servidor a partir do objeto net// Note que o parametro do calback "cliente" será o objeto recipiente de cada usuário que se conectar ao chatvar servidor = net.createServer(function(cliente){});
Outros pontos importantes são, os handlers de eventos do objeto net.
// Evento acionado sempre que um cliente conecta-se ao servidorcliente.on("connect", function(){}); // Evento acionado sempre que alguém envia dados ao servidor// Note que o parametro "dados" é o recipiente de cada mensagem do respectivo usuáriocliente.on("data", function(dados){}); // Evento acionado sempre que um cliente desconecta-se do servidorcliente.on("end", function(){});
Por fim, basta configurar em qual porta o servidor deverá ficar escutando por conexões
//configurando a porta a qual este servidor deve ficar escutandoservidor.listen(8000);
Com esses métodos e ajuda do método .write(dados) do objeto client, que serve para enviar mensagens para o cliente em questão. Implementei um sistema de broadcast e de desconexão para o chat, agora, fiquem a vontade para aprimorar o código como melhor lhes servires.
Para brincar com o Chat
Abra o terminal ou algum programa grafico que manipule o TELNET e configure:
Host: localhost or 127.0.0.1 na Porta: 8000
comando: > telnet localhost 8000
AJ Alves: Hack Motor de Passo EM-211 e EM-210
11 de Setembro de 2012, 0:00 - sem comentários ainda“Hack” é uma palavra do inglês que dependendo do contexto pode ter um significado diferente. Para este caso, significa “Modificar componentes de hardware ou elementos de software para modificar, aprimorar ou incrementar suas funcionalidades”.
Nesta postagem venho publicar informações muito úteis para reaproveitar em seus projetos de eletrônica ou robótica dois tipos de Motor de Passo (“Também conhecidos como Motor Passo A Passo”), o EM-211 e o EM-210 extraídos de uma impressora matricial © EPSON LX-300, que é uma impressora muito comum de se encontrar em empresas, sucatas e até residências, consequentemente, estes motores também.
Um grande problema de se trabalhar com motores de passo é que você deve ter informações de extrema importância como, “O motor é de quantos passos?”, “O motor usa quanto de corrente e tensão por passo?”, “O motor trabalha com quantas rotações por minuto, RPM?”. Encontrar informações como estas é uma tarefa bastante complicada, pois a fabricante em hipótese alguma irá fornecê-las, e não sei se por falta de sorte, mas em toda a minha busca na WEB não encontrei nada útil, restando apenas a alternativa “Descubra você mesmo”.
Então vamos lá:
EM-211:
Motor de Passo EM-211, Costa, Frente, Lado
Características: (Ler palpite 1)
Tipo: Unipolar de 6 fios (Ler Dica 1)
Número de passos: 50
Ângulo por passo: 7,2º
Corrente por passo: 0,15A
Tensão por passo: 5V
Rotações por minuto: Trabalha vem entre 50RPM e 300RPM
Fiação: (Ler Obs 1) +A = Laranja, -A = Azul, +B = Branco, -B = Vermelho, COMMONS = Marrons
Fiação EM-211 |
EM-210
Motor de Passo EM-210, Costa, Frente, Lado
Características: (Ler palpite 1)
Tipo: Unipolar de 6 fios (Ler Dica 1)
Número de passos: 50 (Ler Obs 2)
Ângulo por passo: 7,2º
Corrente por passo: 0,42A (Ler Dica 2)
Tensão por passo: 9V
Rotações por minuto: Trabalha vem entre 50RPM e 300RPM
Fiação: (Ler Obs 1) +A = Laranja, -A = Azul, +B = Branco, -B = Vermelho, COMMONS = Marrons
Fiação EM-210 |
(Obs 1:. Aqui fica o grande detalhe nas características deste motor, a primeira vista fica fácil e sugestivo identificar os dois fios comuns “Os dois marrons”, neste ponto certo, mas para identificar os quatro de sinal tem um detalhe, os que ligam-se a mesma bobina não são dois da direita e os dois da esquerda, como parece de primeira)
(Obs 2:. O motor EM-210 tem uma caixa de redução de 2X1 “Dois para um”, significa que para cada dois passos do motor, apenas um será dado na redução, então, quanto estiver controlando o motor e quiser usar a redução terá que dar dar duas voltas no motor para completar uma na redução, caso não queira, a redução pode ser removida “quebrada”, sem prejuízo no motor)
(Dica 1:. Use um alicate de corte para remover o plug que vem nos motores, ica mais fácil de manusear, e plugar na protoboard)
(Dica 2:. Se for usar um circuito integrado como o ULN2803, que é um CI muito conhecido para controlar motor de passo, fique atento a corrente e a tensão do motor EM-210 pois ele trabalha com 0.42A de corrente e o máximo deste CI é 0.5)
(Palpite 1:. Estes valores, das características dos motores EM-211 e EM210 foram levantados com base em varias analises que eu realizei usando um multímetro e montagem de pequenos circuitos auxiliados por uma placa Arduino, então, caso alguém discorde e tenha analises melhores, por favor entrem em contato para que possamos aprimorar e ajudar mais pessoas que precisam destas informações)
Adriel Lucas: Software Freedom Day – 2012
10 de Setembro de 2012, 0:00 - sem comentários aindaAhhhh! E a inscrição é GRATUITA, ok? =D