quinta-feira, 23 de dezembro de 2010

Você já contribuiu com a Wikipédia em 2010?

A Wikipédia (ou, em inglês, Wikipedia) dispensa apresentações - se por acaso você está lendo o meu blog e não a conhece, algo está errado! ;-) Com certeza você já deve ter pesquisado algum termo no Google e a primeira resposta foi a página sobre esse termo na maior enciclopédia do mundo.

Wikipédia - A Enciclopédia Livre

A Wikipédia é gratuita e mantida de forma colaborativa, porém acredito que a maioria das pessoas não entende muito bem como esse "colaborativo" funciona. Sim, quando falo de colaboração estou falando em adição, tradução, modificação e atualização dos verbetes contidos na enciclopédia - e é só isso que as pessoas geralmente sabem. Porém a Wikipédia não consegue se manter online só por conta disso: alguém tem que pagar as contas! Para manter esse site online (que é um dos mais acessados do mundo), precisa-se de uma quantidade grande de servidores online e precisa-se de dinheiro para comprar, mantê-los ligados, conectados à Internet em alta velocidade e funcionando de forma adequada. Enfim, existe um gasto enorme para manter toda infraestrutura! E, pasme: tudo isso também é resolvido de forma colaborativa! Cada um contribui com o pouco que pode e, juntando todas as colaborações, conseguimos manter o projeto vivo.

Manter esse projeto através de doações é algo importante para os usuários, já que poderíamos ter problemas caso, por exemplo, resolvessem colocar propagandas para financiar o site - os verbetes poderiam começar a ser mais tendenciosos, os leitores poderiam se confundir etc. Nesse ano a Wikipédia precisou expandir sua infraestrutura, os gastos foram altos e infelizmente ainda não atingimos a meta de doações para o ano. O próprio fundador do projeto, Jimmy Wales (que trabalha voluntariamente para a instituição), faz um apelo, pedindo doações aos usuários. Você já doou?

Como não contribuo doando meu tempo (escrevendo verbetes) e utilizo bastante o site, resolvi contribuir doando dinheiro, então doei US$50.00. Existem opções para doar uma vez só ou mensalmente - em breve pretendo começar a doar mensalmente. As doações podem ser feitas via cartão de crédito ou PayPal. Faça agora sua doação e ajude um projeto que lhe ajuda!

segunda-feira, 20 de dezembro de 2010

Desconto de 50% no Curso de Arduino!

Em parceria com a Resvista Espírito Livre e em clima de Natal :-), farei um sorteio que dará ao ganhador 50% de desconto no Curso de Arduino. A revista, lançada por João Fernando C. Jr. em 2009, é publicada em formato digital (PDF) e tem foco em cultura livre e tecnologia.

Revista Espírito Livre

O sortudo que ganhar a promoção terá um ótimo presente de Natal: pagará apenas metade do valor do Curso e terá direito a tudo (kit completo, apostila, aulas etc.). O que você está esperando para se inscrever na promoção? Inscreva-se já!

terça-feira, 14 de dezembro de 2010

Palestra online sobre Arduino no Lab de Garagem

O Lab de Garagem, de início, era uma rede social onde hobbyistas trocavam informações sobre projetos homemade. No mês passado, o projeto se estendeu e conta agora também com um espaço em São Paulo para facilitar a vida de todos os hobbyistas - ou melhor, garagistas - que precisam de um local para desenvolver seus projetos. O espaço conta com bancadas, equipamentos, componentes eletrônicos e ferramentas para que os garagistas não tenham problemas com relação a infraestrutura na hora de desenvolver seus projetos, no melhor estilo do it yourself.

Lab de Garagem

Há duas semanas, o Marcelo Rodrigues, lá do Lab de Garagem, teve a iniciativa de criar uma série de palestras online (webminars) e me convidou para falar sobre o Arduino. As palestras estão sendo feitas utilizando o DimDim e são gratuitas - você só precisa de uma conexão banda larga à Internet para assistir! Então, todos estão convidados: Palestra sobre Arduino com Álvaro Justen hoje (terça-feira, 14/12/2010) às 20h na página do LdG no DimDim.

Se você está interessado em ouvir sobre algum outro tema ou tem conhecimento para falar de algo, sugira na página de palestras online no Lab de Garagem! E para a galera que gostou do Arduino e quer aprender mais, vejam o site do meu Curso de Arduino - acontecerá em janeiro, no Rio de Janeiro. :-)

segunda-feira, 13 de dezembro de 2010

Grokpodcast sobre Arduino

Há algumas semanas atrás, fui convidado por Carlos Brando e Rafael Rosa Fu para falar sobre o Arduino no Grokpodcast. Para quem não conhece, o Grokpodcast tem como objetivo falar sobre tecnologia, empreendedorismo, agilidade e assuntos correlacionados - o termo grokar vem de um livro de ficção científica.

Rafael Rosa Fu e Carlos Brando - criadores do Grokpodcast
Rafael Rosa Fu e Carlos Brando - criadores do Grokpodcast

Ao total, gravamos 3 episódios - e no futuro gravaremos outros ;-D - que foram publicados durante 3 semanas! Para quem ainda nunca ouviu falar sobre o Arduino, essa é uma ótima oportunidade de conhecer o projeto! Então, ouça já:

E para quem já ouviu falar do Curso de Arduino, saiu uma propaganda dele no Episódio 13 do Grokpodcast - Singularidade e Biologia Sintética.

Ficou interessado? Que tal fazer o Curso de Arduino, no Rio de Janeiro? Gostou do podcast? Comente! :-)

quinta-feira, 9 de dezembro de 2010

Controle do Super Nintendo SNES no Arduino

Fui convidado para palestrar sobre Arduino (pra variar... ;-) na Semana de Computação da UFF (de 8 a 11 de novembro de 2010) e, sempre que apresento a plataforma de hardware e software livres, gosto de demonstrar exemplos e um projeto - por exemplo: no FISL11 demonstrei o Turiquinhas, no Dev in Rio 2010 demonstrei o Semáforo DojoRio. Como o Turiquinhas ainda está na oficina (com o eixo quebrado), resolvi fazer um pequeno projeto prático para apresentar na Semana de Computação da UFF: como controlar servomotores utilizando um controle de SNES.

Controle do SNES (Super NIntendo Entertainment System)
Foto por armless

Apresentei esse projeto também na Latinoware 2010, em Foz do Iguaçu/PR (dentro da Itaipu Binacional) - que foi um evento sensacional! Para quem não teve a oportunidade de assistir, seguem os slides de minha palestra, que não mudaram muito de um evento para o outro:

Chega de enrolação - vamos agora então falar de como pegar os dados do controle de SNES com o Arduino! Inicialmente, para fazer a aquisição dos dados (saber quais botões estão pressionados no momento), tentei utilizar a biblioteca NESpad/SNESpad, porém não obtive sucesso - já havia tentado utilizá-la no FISL11, junto com o Fávio Amieiro, mas ela não funcionou, porém na época não pesquisei a fundo sobre o problema. Dessa vez resolvi pesquisar mais sobre, aprendi como um controle de SNES funciona internamente e verifiquei que a temporização da biblioteca não estavam corretos, daí postei uma issue no issue tracker do NESpad para que eles corrijam o problema, porém o autor disse que nos controles de SNES dele a temporização funcionava. Então decidi criar uma função (no melhor estido DIY :D) para fazer aquisição dos dados de acordo com a descrição que havia lido. Em breve darei mais uma olhada na biblioteca para verificar qual problema pode ter acontecido e tentar fazê-la funcionar para qualquer controle (pode ser que o controle que o autor da biblioteca tenha utilizado funcione de forma diferente do meu).

Antes de mostrar o código, vamos ver como o controle de SNES se comunica com o mundo externo: o conector possui 7 pinos, onde apenas 5 são realmente utilizados. Veja o esquema:

Pinagem do controle de SNES
Basicamente, internamente o controle do SNES tem um registrador de 16 bits cuja saída é serial (entrada possivelmente paralela). O que temos que fazer é dar um pulso no pino strobe e então pegar bit a bit (no total são 16) no pino data, dando um pulso entre cada bit no pino clock a cada 6 microsegundos (período = 12 microsegundos). Os pinos +5V e GND fornecem energia para o circuito interno do controle e os pinos N/C não são utilizados.

O que fiz então foi uma função que respeita a temporização e joga os 16 bits em uma variável do tipo unsigned int; a função demora em torno de 200 microsegundos para retornar esse inteiro (de 16 bits) - o detalhe é que o controle tem apenas 12 botões (cima, baixo, esquerda, direita, A, B, X, Y, select, start, L e R), então os 4 bits mais significativos do registrador de 16 bits não são utilizados (vêm sempre com o mesmo valor). Outro ponto importante é que o registrador é ativado em baixa (1 = botão não pressionado, 0 = botão pressionado), então no final da minha função eu inverto bit a bit dos valores lidos, para facilitar o uso dos dados. Além disso, defini algumas constantes que relaciona a posição do bit com cada botão do controle (exemplo: o botão B corresponde ao bit menos significativo). O código, que está disponível no meu BitBucket, ficou assim:

O código acima apenas lê os valores e controla dois servomotores e um alto falante, de acordo com os botões que foram pressionados. A cada loop, pego o estado dos botões com o comando:

 buttonsPressed = getSNESbuttons(CLOCK, STROBE, DATA); 
(os parâmetros da função são os números dos pinos onde o clock, strobe e data estão ligados) e para verificar, por exemplo, se o botão para cima foi apertado, faço um AND bit-a-bit com a constante relativa a esse botão:
if (buttonsPressed & SNES_UP) {
    //apertou botão para cima...
}
Segue a foto do projeto que apresentei nas palestras:

Arduino + controle de SNES + servomotores + alto falante - Foto por Tatiana Al-Chueyr na Latinoware 2010
Arduino + controle de SNES + servomotores + alto falante (foto por Tatiana Al-Chueyr, Latinoware 2010)

Sobre esse pequeno projeto e a palestra que ministrei na UFF: parece que a galera gostou - bastante gente da UFF entrou na lista ArduInRio. :-)

Ficou interessado? Gostou do artigo? Quer saber mais sobre o Arduino? Que tal fazer um Curso de Arduino no Rio de Janeiro? ;-) Caso tenha utilizado a função que criei (ela é software livre!) ou tenha qualquer dúvida, comente!

terça-feira, 7 de dezembro de 2010

Curso de Arduino no Rio de Janeiro

Após palestrar inúmeras vezes sobre Arduino e ouvir diversas vezes pessoas perguntando sobre um curso avançado, resolvi criar uma pesquisa para saber o que a galera estava interessada em aprender. Deixei a pesquisa rolar por algumas semanas para saber em que exatamente o pessoal estava interessado e então lancei o Curso de Arduino.

Curso de Arduino

Abri as inscrições na semana passada para a primeira turma, que acontecerá no Centro do Rio de Janeiro (próximo ao metrô, na Av. Rio Branco), em janeiro de 2011. O curso será dividido em 3 sábados (8, 15 e 29 de janeiro), totalizando 24 horas e será focado em atividades práticas. A inscrição custa R$899,00 por aluno e deve ser feita utilizando o PagSeguro, que permite parcelar em até 18x no cartão! Estou disponibilizando 20 vagas para essa primeira turma - e algumas já estão preenchidas.

Cada aluno, ao se inscrever, ganhará um Kit Arduino - um conjunto de componentes eletrônicos que estou montando (que inclui um Arduino) no valor de R$200,00! E o melhor: o kit não para de evoluir! Aos poucos, estou adicionando outros componentes que acho necessários para melhorar o aprendizado dos alunos (sem cobrar a mais por isso).

Kit Arduino do http://www.CursoDeArduino.com.br/

Além do kit, os alunos terão à disposição inúmeras ferramentas e outros utensílios para uso durante as atividades, como alicates dos mais diversos tipos, multímetros, ferros de solda, fios, placas etc. E como o curso terá duração de 8 horas por sábado, os alunos terão direito a coffee breaks também!

A divulgação do curso está sendo feita basicamente via boca-a-boca e através de algumas ferramentas via Internet (por este blog, Twitter, Facebook Advertising e Google Adwords). E, é claro, alguns amigos estão me ajudando nesse empreendimento, como:

Gostou? Inscreva-se já (vagas limitadas!), envie tweets, poste em seu blog ou simplesmente comente!