sábado, 12 de fevereiro de 2011

Why the Arduino Won and Why It’s Here to Stay (pt-BR version)

Li este artigo, intitulado Why The Arduino Won and Why It's Here to Stay, do Phillip Torrone da Adafruit Industries, aquela mesma que ofereceu um prêmio de dois ou três mil dólares pra quem conseguisse hackear o Kinect da Microsoft e disponibilizasse o código online, e me interessei por ele. Até o momento o artigo no post original tem 75 comentários e 126 reações, que são os comentários no Twitter, o que significa que ele tem dado o que falar. Resolvi então traduzir o artigo pra o Português Brasileiro e disponibilizar aqui no blog para que mais pessoas pudessem ter a oportunidade de ler o que uma pessoa que se interessa, trabalha e acredita no Arduino tem a dizer sobre esta plataforma de desenvolvimento que vem numa crescente bastante significativa.

Por Que o Arduino Venceu e Por Que Ele Está Aqui pra Ficar por Phillip Torrone
Traduzido por Raphael Cerqueira

Todo mês estarei postando algumas colunas do tipo editorial aqui no Make:Online. Estas colunas têm a intenção de fazer você pensar, promover discussões e debates e talvez te enlouquecer um pouco. Minha primeira coluna é chamada “Por Que o Arduino Venceu e Por Que Ele Está Aqui pra Ficar”.

Dentro de uma semana estarei recebendo um representante de uma grande fabricante de chips para me mostrar uma outra plataforma “Arduino-like”, também conhecida como “Arduino killer” (nota do tradutor: a matadora do Arduino numa tradução literal). Esta é uma situação que ocorre muito por aqui; todo mês tem uma nova empresa ou pessoa que quer fazer o próximo Arduino. Eles normalmente entram em contato comigo pela minha atenção dada ao Arduino ao longo dos anos, pela minha contribuição em fazer o Arduino chegar ao mundo dos criadores e o fato de usar ele diariamente no meu trabalho na Adafruit. Acho que ele teve um impacto impressionante nas pessoas que têm a eletrônica como hobby, talvez como o computador pessoal há alguns anos (Homebrew Computer Club, etc). Existem mais de 100.000 Arduinos no mercado, e, pelas minhas estimativas, muito mais quando você adiciona os derivados (aproximadamente 150.000 em 2/2011). Dentro dos próximos 5 ou 10 anos, o Arduino será usado em toda escola para ensinar eletrônica e computação física – essa é a minha previsão. Não tem mais volta.

Na maioria das vezes estes encontros terminam com uma lista de coisas a serem consideradas se eles quiserem desbancar o Arduino, e é isso – eles normalmente nunca o fazem. Existem alguns artigos sobre o Arduino, com uma história boa, mas eu quero focar no que eu considero o por que do Arduino ter “vencido”. Mas, dizer algo que vai ser o padrão é arriscado – é também muito cedo, certo? Dizer que algo ganhou irá causar também algum debate, e está tudo bem – nosso sistema de comentários está funcionando bem agora. Eu acho que ele ganhou, vou te falar o por que e por que ele está aqui pra ficar. Se você está pensando em fazer algo para desbancar o Arduino, eu já te entendi – aqui está a sua receita. Vamos por a mão na massa!

O que é o Arduino?
Vamos começar em como a equipe do Arduino o define:

“Arduino é uma plataforma de prototipação eletrônica open-source baseada na flexibilidade e na facilidade de uso de seu hardware e software. É direcionado para artistas, designers, hobistas e qualquer um interessado na criação de objetos ou ambientes interativos.

“O Arduino pode perceber o ambiente recebendo como entrada dados de uma variedade de sensores e pode interagir com o mesmo controlando luzes, motores e outros atuadores. O microcontrolador na placa é programado utilizando a linguagem de programação Arduino (baseada em Wiring) e o ambiente de desenvolvimento Arduino (baseado em Processing). Projetos com Arduino podem ser tanto stand-alone ou podem se comunicar com outros softwares rodando em um computador (ex. Flash, Processing, MaxMSP).

“As placas podem ser construídas manualmente ou serem compradas pré-montadas; o software pode ser baixado de graça. Os documentos de referência do hardware (arquivos CAD) estão disponíveis sob licença open-source, você é livre para adaptá-los de acordo com suas necessidades.”

O “o que” é ainda bem vago e essa é a força do Arduino. É a cola que as pessoas usam para conectar as tarefas. A melhor maneira de descrever o Arduino é através de alguns exemplos:
  •  Quer que a cafeteira envie uma mensagem no Twitter quando o café esteja pronto? Arduino.
  • Quer fazer almofadas acenderem? Arduino.
  • Que tal receber um alerta no seu telefone quando uma correspondência chegar na sua caixa de correio? Arduino.
  • Quer uma cadeira de rodas do professor Xavier do X-Men que fale e disponibilize bebidas? Arduino.
  • Quer fazer um canhão que acende igualzinho ao do personagem do Mega Man para o seu filho? Arduino.
  • Quer fazer seu próprio monitor cardíaco para andar de bicicleta que registre os dados num cartão de memória? Arduino.
  • Quer fazer um robô que desenha no chão ou que ande na neve? Arduino.
Para alguém que não saiba eletrônica, ou entenda de microcontroladores, isso soa bem interessante e você desejará se juntar ao clube. Este é o tipo de coisa que crianças querem fazer – você pode até mesmo fazê-las aprender algumas coisas no processo. Essas são as coisas das quais os projetos de ciência são feitos, as coisas sobre as quais sites de aparatos tecnológicos falam. O que todos elas têm em comum? São idéias que normalmente não se tornariam realidade, coisas que nós simplesmente idealizamos. Mas agora estas idéias tornaram-se reais e muito provavelmente não pelas mãos de um engenheiro. 

Isso por si só já é grande coisa por que engenheiros tendem a criar plataformas para outros engenheiros, não para artistas, gente esquisita ou crianças que querem conectar as coisas para compartilhar uma idéia. A equipe do Arduino não é feita de engenheiros elétricos na sua essência. Eles são designers, artistas, professores e (até onde posso falar) viciados em tecnologia (isso é um elogio, espero não ter ofendido). O Arduino é basicamente um projeto italiano, e, todo ano leio outro artigo sobre como a Itália está lutando para encontrar o seu Google, quando eles já o têm. É o Arduino – eles só não perceberam isso ainda.

Se você olhar em exemplos de projetos feitos com o Arduino vai perceber que os criadores estão mais preocupados com o “o que” e não com o “como” na eletrônica. As pessoas que gostam de encrencar com o sucesso do Arduino adoram dizer que o Arduino não ensina os fundamentos da eletrônica. “Que nada! Isso não é eletrônica de verdade.”, dizem eles, “É muito fácil!” Sim, é. Se você quiser fazer um LED piscar ou um motor de mover sem usar o Arduino, boa sorte se você for um artista ou um designer. Estamos falando de dias para fazer tudo funcionar corretamente (se funcionar). Claro, é bom impressionar os outros com aquele livro pesadão da Arte da Eletrônica, mas para todos os outros, eles só querem fazer um LED piscar para a sua fantasia de Halloween.

Acho que meu exemplo favorito de como partes da antiga comunidade voltada para microcontroladores  viu o Arduino vem da AVR Freaks (nota do tradutor: algo como Loucos pelo AVR), a comunidade oficial dedicada ao processador AVR (o mesmo utilizado no Arduino). Você poderia pensar que eles adoraram toda essa atenção, trazendo os microcontroladores AVR às massas. Mas muitos na comunidade AVR Freaks não gostam desses não-engenheiros com seus projetos de arte esquisitos mexendo na sua hierarquia. Minha citação favorita (e eu quero isto numa camiseta) é:

“Arduino: Programação no mole para fumadores de maconha” – ArnoldB, AVRfreaks.net

Esta atitude errada na verdade ajudou o Arduino por que ela contribuiu para que os fãs do Arduino criassem a sua própria comunidade. E, uma comunidade que, posso dizer, é mais inclusiva e se afasta dessa visão de superioridade.

O Arduino é simples, mas não tão simples. É construído na idéia de que estudantes usarão ele para fazer alguma coisa; receber dados de sensores, escrever algum código, fazer algo com o conjunto. Talvez eles nem mesmo escrevam o código, eles copiam e colam para iniciar. Ninguém vai perder a mão ou trazer o estúdio ao chão somente por experimentar.Um dos membros da equipe do Arduino ensina designers e artistas – todo dia a plataforma vem sendo construída e melhorada pelo “aprenda fazendo” e pelo compartilhamento de código – esses designers e artistas estão usando Macs e trabalhando em Processing (o parente mais velho do Arduino). 

OK, então tá tudo bem consufo, um artista gosta de festivais, e é por isso que a história do DIY (nota do tradutor: do inglês Do It Yourself, Faça Você Mesmo) é um sucesso? Não, tem muito mais! Vamos ser um pouco mais específicos:

A IDE roda em Macs, Linux e Windows
A IDE roda no Mac, Linux e Windows e é completamente open-source. A IDE é o onde você programa o Arduino – é baseada em Processing (uma linguagem de programação gráfica e de desenvolvimento de sistemas popular entre artistas e designers), que está por aí faz um tempo. Roda em Mac e Linux e não somente no Windows, e, isso importa se você quer ser inclusivo. Tem um grande suporte por trás, o kit de ferramentas gcc, e sobre ela temos o Java, desta forma a portabilidade é fácil e os bugs podem ser encontrados e corrigidos facilmente. Existem pessoas espertas o suficiente trabalhando na IDE para mantê-la forte. Se você quer que as pessoas façam coisas bacanas utilizando a sua plataforma, ela deve rodar sem problemas em Mac e também em Linux.

O driver funciona no Mac, Linux e Windows
Novamente, como a IDE, os drivers para utilizar a placa funcionam no Mac, Linux e Windows e os drivers FTDI “simplesmente funcionam”. Se meter com comunicação serial, uma bem conhecida (mas lenta) interface foi uma boa sacada. Com certeza HID e coisas customizadas são bacana e tudo mais, e podem ser muito mais rápidas, mas o chip serial funciona e pode ser usado pra debug e programação, e facilmente ser integrado a outros softwares desenvolvidos em Java, Python, Perl, C, .NET, BASIC, Delphi, MAX/MSP, PureData, Processing, entre outros.

Bibliotecas, faça as coisas faceis de forma simples e as dificieis também
Existem milhares de bibliotecas orientadas a objetos para fazer coisas complexas, como escrever em SD Cards, telas de LCD, manipular dados do GPS, e existem também bibliotecas para fazer coisas simples, como debugar botões. Nós já escrevemos códigos para configuração de UART umas 10 vezes para 10 chips e francamente, nós estamos cansados. É muito melhor chamar somente Serial.begin(9600) e ter os registros organizados para nós.

É leve
Possui um bem testado e conhecido compilador (nós até nos atrevemos a dizer que que o avr-gcc é o compilador padrão para AVR). Não é interpretado como .NET ou BASIC. É rápido, é pequeno, é leve e você pode usar os arquivos HEX para programar chips novos.

Sensores
O Arduino realmente deslanchou por que tem entrada analógica para digital, em outras palavras, você pode receber dados de entrada dos sensores como luz, temperatura, som ou qualquer outra coisa usando sensores de baixo custo encontrados facilmente por aí e utilizá-los com o Arduino sem mais problemas. Ele também tem uma interface SPI e I2C para sensores digitais. Isso cobre cerca de 99% dos sensores do mercado. Você não pode fazer isso tão facilmente com outras plataformas – é completamente bizarro ver uma BeagleBoard (ótimo produto) com o Arduino plugado somente para receber entrada de dados dos sensores.

Simples, mas não tão simples
Muitas placas de desenvolvimento são absurdamente complexas com um monte de partes que podem ser adicionadas como LCD, LEDs, displays de 7 segmentos, botões, etc, para mostrar tudo que ela pode fazer. O Arduino tem o básico. Quer mais? Adicione um shield. Existem centenas de shields para o Arduino, de LCD a Wifi, sendo uma decisão do usuário adicioná-los ou não. Os shields adicionam funcionalidade facilmente e existem incentivos para que eles sejam feitos.

Não é feito por um fabricante de chips
A placa não foi desenvolvida por uma fabricante de chips. Por que isso é importante? Fabricantes de chips geralmente querem mostrar como seus produtos são diferentes e para isso adicionam coisas estranhas para diferenciá-los. O Arduino defende o que é comum entre os microcontroladores e não o que é diferente. Isto significa que o Arduino é a plataforma ideal para iniciantes – tudo que você pode fazer com o Arduino você pode fazer com outros microcontroladores, e o conhecimento básico será mantido por um bom tempo.

Baixo Custo
Você pode ter um Arduino por $30 (nota do tradutor: cerca de R$50,00) e talvez veja Arduinos de $20 (nota do tradutor: cerca de R$34,00) em breve.  Muitas placas de desenvolvimento chegam aos $50 (nota do tradutor: R$ 86,00) e podem facilmente chegar a mais de $100 (R$ 170,00) , apesar de estarmos vendo que as empresas perceberam que compensa mais ter uma estratégia de vendas mais adequada.

Open Source
Apesar de sem bom que o Arduino seja open source, e o uso comercial é permitido se você fizer um clone, não é a razão principal , e é por isso que este item está próximo do fim da lista. Porém, não estou dizendo que não é importante. Produtos derivados podem ser criados sem pagar ou pedir nada a ninguém. É open source, o que significa que qualquer empresa ou escola pode usar sem ter que pagar nenhuma licença por pessoa. Não existem riscos de ser descontinuado ou que o software suma para sempre. Se você quiser uma nova funcionalidade é só gastar um tempo criando-a. Quando centenas de pessoas têm uma pequena parte em alguma coisa elas se importam mais. Mais alguém ainda discute se software open source é uma boa idéia?

Por isso que ele ganhou (ou pelo menos por que eu acho que ele ganhou). Não existe outra plataforma que faça isso. Algumas chegam perto (como o Netduino, uma ótima plataforma para um nincho específico), mas ainda tem mais algumas coisas a serem feitas. Você pode estar concordando comigo nestes pontos, ou você pode estar soprando de raiva pensando em como FPGAs (nota do tradutor: da Wikipedia - Um FPGA é um dispositivo semicondutor que é largamente utilizado para o processamento de informações digitais) são muito melhores. De qualquer forma, a não ser que você preencha todos estes pontos na sua plataforma, você não está pronto para competir com o Arduino. Especialmente se você for chamá-la de Arduino Killer.

Por que o Arduino está aqui pra ficar
Não existe uma barreira monetária, é filosófica. É preciso se arriscar e pensar fora da caixa. Fabricantes de chips precisam exibir seus chips – elas não ligam para suporte para Mac, ou escrever linhas e mais linhas de código, bibliotecas ou IDEs. Fabricantes de chips são (historicamente) as responsáveis por criar as plataformas. Nós veremos algumas das grandes empresas encher o mercado de hardware subsidiado para bater os $30 do Arduino, mas isso não muda nada se o suporte e qualidade do Arduino permaneçam lá em cima.

Porque mais o Arduino está aqui pra ficar? A comunidade. Como você consegue que mais 100.000 pessoas pulem de um navio? Você não consegue. Para chegar perto disso você vai precisar desenvolver algo como o Arduino, dar suporte aos seus shields e acessórios e escrever toneladas de código (algo que as fabricantes de chips detestam fazer). Um ótimo software para diversos sistemas, várias bibliotecas, drivers que funcionam, simples, baixo custo e open source. E quer saber do que mais? Acho que isso é o que a equipe do Arduino realmente quer. Eles são viciados em tecnologia – eles querem ver outras plataformas com os mesmos ideais – esse é o jogo que eles estão jogando. E eu acho que é o que todos nós queremos, seja ele chamado de Arduino ou não.

Se você quiser superá-los, você vai precisar mudar as suas convicções e se tornar eles. A melhor solução para usuários é a que realmente já ganhou e está aqui pra ficar. Vida longa ao Rei Arduino!


Bom pessoal, é isso. Espero que gostem e que tenha sido de uso pra alguém. Qualqer comentário, crítica ou sugestão, o nosso sistema de comentários também está funcionando. Você pode também nos seguir no Twitter e ficar por dentro das novidades do blog.


0 comments:

Postar um comentário