Social Icons

Tornando-se Desenvolvedor Apple!

Você sonha em se tornar um desenvolvedor de aplicativos para iOS, mas não sabe por onde começar? Então veja aqui os primeiros passos básicos para começar a criar seus próprios programas e, quem sabe, ficar famoso com isso. E o melhor: qualquer um pode se tornar um grande desenvolvedor para o iPhone. :)
Introdução
Ninguém duvida que a App Store revolucionou a telefonia mundial, pois trouxe para o mundo dos celulares a dinâmica e variedade de instalação de aplicativos que sempre existiu nos computadores, aumentando exponencialmente as capacidades do aparelho. Já haviam maneiras de instalar aplicativos menos elaborados em smartphones antes, via download em sites ou envio por SMS, mas a facilidade de ter o que se quer com apenas um clique (ou toque) acabou sendo copiada por diversos fabricantes e até mesmo reutilizada pela própria Apple, na sua versão para Mac.
Se do lado do consumidor a loja foi um sucesso, do lado de quem faz aplicativos foi aberto um campo imenso, pois possibilitou que qualquer um (como eu e você) pudesse criar e vender aplicativos para o mundo inteiro, coisa que antigamente só era viável a grandes empresas multinacionais. A Apple não só disponibilizou toda a estrutura de servidores para armazenar e distribuir os apps (com uma loja centralizada), mas também criou um kit de desenvolvimento (SDK) que qualquer um pode baixar e criar aplicativos. Tudo o que você precisa é de equipamento compatível e muito, muito estudo.

1º Passo – Comprar um Mac
Muita gente esbarra nesse primeiro passo, pois para desenvolver para o iOS (sistema operativo do iPhone, iPad, iPod touch e AppleTV) é obrigatório possuir um computador com Mac OS X. Há quem faça a gambiarra de tentar instalar o sistema em PCs Intel (os chamados hackintoshes), mas o melhor mesmo é investir em um bom Mac, principalmente agora que eles baixaram de preço no Brasil. Além de ser a ferramenta perfeita, você verá que ele mudará sua experiência com computadores para o resto de sua vida. :)
O Mac mais barato hoje no nosso país é o Mac mini (link) e custa R$1.999. Se você é estudante ou trabalha na rede de ensino, pode usar a área educacional da Apple Store Online e pagar ainda menos: R$1.849 (link). Ele vem só com a CPU central, ideal se você já tiver monitor, teclado e mouse do seu PC anterior.
Mas se você estiver querendo investir em algo um pouco mais consistente, que o ajude também em outros aspectos de sua vida (e não só no desenvolvimento de apps), o melhor conselho é o de investir em um MacBook (Air ou Pro) ou até mesmo em um iMac, que na semana passada ganhou um descontão de R$1.000. Lembrando que na área educacional os preços são ainda menores. :)

2º Passo – Inscrever-se no programa gratuito da Apple
Enquanto você decide se compra um Mac ou uma bicicleta, você já pode começar a baixar o material necessário para iniciar o desenvolvimento, se inscrevendo gratuitamente como Apple Developer. Esse passo não custa nada e você tem acesso ao último SDK, exemplo de códigos, vídeos de introdução e um vasto material em PDF para aprender os primeiros passos de programação. É material suficiente para dias e dias de aprendizado, sem gastar nenhum tostão. Absolutamente tudo é em inglês, o que torna obrigatório o conhecimento básico da língua.
Além da versão gratuita, há o Apple Developers Program, que é pago (US$99 ou 74€ por ano) e permite alguns benefícios a mais, como instalar e rodar os códigos no seu aparelho (com a versão grátis você só pode testá-los no simulador do Mac), tem acesso à versões beta do iOS e também tem direito a publicar seu aplicativo na App Store. Mas isso você pode fazer depois que tiver uma boa base da teoria. ;)

3º Passo – Estudar, estudar, estudar
As ferramentas que a Apple proporciona são uma verdadeira mão na roda, facilitando muito o desenvolvimento de aplicativos. Mas não bastam para começar a criar programas para o iPhone. É preciso muito estudo da linguagem básica de programação, chamada Objective-C, que não é algo que se aprenda em duas semanas. Por isso, é preciso muito estudo e dedicação.
Além do material em PDF disponibilizado pela Apple, há também alguns volumes convertidos em formato iBook, que podem ser baixados direto na App Store para serem lidos no iPhone, iPad ou iPod touch.
Se você não se contentar com o material gratuito (que é extenso) e preferir livros comerciais dedicados a isso, com uma linguagem mais abordável, é possível comprar no Brasil obras importadas (veja a lista de algumas sugestões aqui). Infelizmente não há obras de destaque em português para aprender programação para iPhone.

4º Passo – Criar seu primeiro aplicativo
Nesse ponto, você já tem todas as condições de começar a desenvolver seu primeiro aplicativo. Mesmo que você ainda não tenha um registro pago da Apple, poderá criar e testar apps no simulador do iPhone (ou iPad) no Mac.
A primeira coisa é saber o que você quer fazer. É normal os primeiros resultados serem apps básicas e com função duvidosa, mas que são fundamentais para a evolução do aprendizado. Mas não faça como alguns devs, que se empolgam com o primeiro aplicativo e o publicam na App Store… Depois de ter experiência suficiente, tente pensar em algo útil que realmente vá servir para os usuários. De preferência, que ainda não exista na loja.
Depois que você já pegou a prática e até mesmo já desenvolveu um ou mais aplicativos funcionais, aí sim poderá partir para o passo final.

5º Passo – Inscrever-se como desenvolvedor da Apple
Você agora já tem tudo para começar ganhar fama (e quem sabe, dinheiro) com suas criações. É o momento de se inscrever oficialmente como um desenvolvedor de iOS e pagar a taxa necessária, que poderá ser recuperada facilmente se seu aplicativo fizer sucesso.
Há três tipos de contas: a Individual (só você tem acesso à conta) e a Company (você pode ter uma equipe que também terá acesso à conta), ambas custando US99; ou então a Enterprise (permite que se crie aplicativos internos para empresas, sem passar pela App Store) que custa US$299.
A conta paga também dá acesso aos fóruns técnicos de desenvolvedores, onde são debatidas questões e problemas relativos ao iOS. Em época de versões beta, há também uma área confidencial com várias novidades sobre as futuros sistemas.
—————————————–
Esses são os passos básicos para todos que quiserem começar a investir na programação para iPhones e iPads. As possibilidades são enormes e a cada ano o mercado cresce cada vez mais. Se você gosta disso, não deixe para amanhã o que você pode começar hoje. ;) 

Créditos BlogDoiPhone.com.br

Adicionando Favoritos

Um dos recursos presentes no sistema iOS (que roda no iPhone, iPad e iPod touch) que os novatos nem sempre sabem que existe é a possibilidade de adicionar um ícone de página internet diretamente na tela de aplicativos do aparelho, para acesso fácil. Se você é um destes que desconhece esta função, veja agora como realizá-la.
A função existe desde a versão 1.3 do iOS (jan/2008), quando a Apple ainda estava em dúvida se permitia ou não o desenvolvimento de aplicativos de terceiros no iPhone. A ideia inicial era apenas permitir webapps, aplicativos baseados na internet e não instalados diretamente no dispositivo. Felizmente ela mudou de ideia e a App Store revolucionou o mercado de celulares.
Com um ícone na tela inicial, fica muito mais fácil acessar páginas que usamos com frequência. Vamos exemplificar o processo usando uma página que eu particularmente acesso bastante: o Blog do iPhone.
1. Abra no Safari a página do site que você deseja favoritar.

2. Toque na seta localizada no menu inferior da tela. Escolha a opção “Adicionar à Tela Início“.

3. Escolha o nome que quer que o ícone se chame. Se tiver mais de 12 caracteres (incluindo espaços), o sistema cortará o nome. Em sites preparados, aparecerá automaticamente um ícone personalizado especial para iOS.

A partir daí, o ícone já aparece ao lado de outros aplicativos, com fácil acesso. Veja estes passos em vídeo:

Créditos BlogdoiPhone.com.br

Dicionário no iOS

Já aconteceu com você de escrever uma palavra da língua portuguesa e ele nem sempre corrigí-la como deveria? Por exemplo, você digita “nao” e ele nem sugere para você colocar o til. Por que isso acontece?
A resposta é que, na verdade, foi você mesmo quem ensinou que a palavra “nao” é sem acento.
Isso porque o sistema de autocorreção do iOS é capaz de aprender palavras se você as usar frequentemente. O problema disso é que, em torpedos SMS por exemplo, muitos de nós tem o hábito de não escrever acentos nas mensagens (pois não são todos os celulares que os suportam). Com isso, ao digitar várias vezes a palavra sem acento, o dicionário do iPhone (iPod ou iPad) acha que aquele é o modo correto de escrever e acaba incorporando-a à sua biblioteca. Como consequência, ele passa a não corrigí-la mais.
Uma das falhas no iOS, aliás, é a impossibilidade de personalizar o dicionário.
Felizmente existe uma maneira de redefinir todas as palavras, fazendo com que o dicionário volte ao que era quando você instalou pela primeira vez o sistema. Aprenda como fazer:
1. Vá em Ajustes > Geral e, no fim da tela, Redefinir.
2. Toque em Redefinir Dicionário do Teclado.
3. Um aviso lhe informa que todas as palavras personalizadas serão apagadas e voltarão aos padrões de fábrica. Como é isso mesmo que queremos, confirme em Redefinir.
A partir daí, as palavras que não estavam apresentando mais correção, voltam a funcionar. Claro que, se ele já tinha se acostumado com outras palavras particulares (gírias), estas também serão apagadas e ele terá que reaprendê-las. Para isso, basta usá-las várias vezes no uso diário.

Créditos - BlogdoiPhone.com

Jailbreak!

Muita gente ainda confunde quando se fala de jailbreak do iPhone. Alguns têm medo, outros preconceito. Mas o fato é que ele é uma maneira de melhorarmos ainda mais um celular que já é fantástico, livrando ele das limitações impostas de fábrica.
Jailbreak é liberar o seu iPhone de todas as limitações
Por que fazer o jailbreak? Ele é contra a lei? Ele pode estragar meu telefone? Eu perco a garantia?
É justamente sobre isso que discutiremos neste artigo.
Primeiro de tudo vamos à definição:

O que é jailbreak?

A palavra “jailbreak”, em uma tradução livre, poderia ser definido como “sair da prisão”. É o processo que libera o iPhone (e iPod touch) dos limites impostos pela Apple, permitindo que você instale programas não-oficiais e habilite funções bloqueadas no aparelho.
Ele é feito graças à programas desenvolvidos por comunidades de hackers, que têm como ideologia a liberdade que cada um tem de fazer o que quiser com uma propriedade sua.

iPhone Dev-Team

O Dev-Team é o grupo mais conhecido no momento, por ter sido o único a apresentar um método gratuito de jailbreak (e desbloqueio) para o firmware 2. Eles não aceitam doações e são contra a pirataria, procurando sempre desenvolver hackings que não transgridam a lei, tomando o cuidado de não alterar nenhum código que seja de propriedade intelectual da Apple. É por isso que eles desenvolvem a ferramenta para os firmwares customizados, mas não distribuem os arquivos prontos, pois isso seria ilegal. Você mudar um firmware para uso próprio pode, mas não tem o direito de distribuí-lo a ninguém.
É como você comprar uma música e alterá-la. Você pode, pois é sua, mas se distribuí-la, irá ferir os direitos autorais do autor. O raciocínio é o mesmo.

iPhone Classic

No começo, quando o iPhone era vendido somente nos Estados Unidos, o jailbreak era a única maneira de moradores de outros países usarem o celular, que vinha bloqueado com a AT&T. Milhares de pessoas no mundo fizeram isso, inclusive ministros europeus.
Ainda hoje, quem tem um iPhone Classic (aquele com a traseira prateada e preta) precisa obrigatoriamente fazer o jailbreak para poder usá-lo, pois ele continua preso com o chip da operadora original. Ele passou a ser vendido em alguns países da Europa, mas o único país que desbloqueava oficialmente os antigos modelos era a França (após 6 meses da compra), devido à sua legislação.

Cydia e Installer

No começo, o iPhone vinha com somente 16 aplicativos básicos (e o iPod touch com 12). E só.
Nada de aplicativos de terceiros, a única coisa que você podia fazer era acessar páginas internet no formato iPhone, que a Apple chamou de “Webapps”. Ela tentou incentivar os “aplicativos web” entre os desenvolvedores, mas isso foi um banho de água fria na maioria que pensava que poderia usar o máximo do sistema Unix instalado no aparelho.
Foi esse o grande incentivo inicial ao jailbreak, liberar aquele dispositivo cheio de capacidades, mas que vinha ultralimitado de fábrica. E com ele nasceu o Installer, que instalava direto no celular aplicativos feito por terceiros. Era o início da revolução.

GeoHot

Impossível falar do jailbreak sem citar o nome de George Hotz, o hacker de 17 anos que foi o primeiro no mundo a desbloquear o iPhone, pouco mais de um mês após seu lançamento. Mas na época o processo era físico: você tinha que abrir seu aparelho e tentar soldar um ponto minúsculo. Se errasse
O GeoHot também ajudou a encontrar várias outras falhas, que permitiram os desbloqueios futuros (inclusive o yellowsn0w).

Para que fazer o jailbreak?

Liberar seu aparelho é mais uma opção do que uma necessidade. Nos dias de hoje você pode muito bem viver sem o jailbreak e se conseguir, ótimo, pois estará evitando muita dor de cabeça com atualizações de firmwares e reinstalação de aplicativos cada vez que restaura. Mas deve saber também que não poderá fazer muita coisa além dos limites impostos pela Apple.
O jailbreak pode habilitar várias funções no aparelho, como MMS, gravação de filmes, multitasking (mais de um aplicativo rodando ao mesmo tempo), copiar/colar, usar o celular como modem internet, instalação de temas e fundos de telas, entre outros. Até o uso ilimitado do bluetooth é uma promessa iminente. Várias coisas que outros celulares permitem e o iPhone não.
É crime querer usar toda a capacidade de um aparelho que comprou?

O jailbreak anula a garantia?

Sim, anula, mas é totalmente reversível, porque ele não altera nada definitivamente no seu aparelho. Basta fazer a restauração normal pelo iTunes e você terá seu sistema original de fábrica. Só não pode levar para a assistência com o jailbreak, porque a Apple não permite.

Por que a Apple não permite o jailbreak?

Por uma questão lógica. A Apple proíbe qualquer alteração no sistema do iPhone porque instalar coisas que a empresa desconhece pode fazer um belo estrago no aparelho. Ela não pode achar que todos os hackers agem de boa fé e por isso não se responsabiliza pelas alterações feitas. É como quando você compra um computador: o manual diz que, se você abrí-lo, perde a garantia, porque a fabricante não sabe o que foi feito nele sem a permissão oficial. A mesma coisa com o iPhone, se você abrí-lo ou mexer no sistema operacional, ela não se responsabiliza mais. Nada mais lógico.

Preocupado com isso, o Dev-Team desenvolveu um processo confiável que não altera nada definitivamente no iPhone. Se o aparelho estragar, não será culpa do jailbreak e é por isso que basta restaurar o firmware para que a garantia valha outra vez.

Já ouvi dizerem que isso é querer enganar a assistência técnica oficial, mas a realidade é bem outra: se ele não estragou por causa do jailbreak, não é justo a garantia perder a validade.

É como você desinstalar um aplicativo antes de levar para a assistência.
Claro que estamos falando de jailbreak confiável. Se você um dia liberar seu aparelho em um site estranho com um método diferente do Dev-Team, ele pode usar métodos que estraguem seu aparelho e aí a garantia, com razão, fica inválida. Mas basta estar ligado aqui no Blog que informaremos sempre o método mais seguro.

Jailbreak não é sinônimo de pirataria

Muitos associam o desbloqueio ao uso de aplicativos crackeados, mas nem sempre isso é verdade.
Um dos motivos da Apple querer impedir o jailbreak é justamente o fato dele possibilitar usos pouco ortodoxos do aparelho, como a possibilidade de instalar aplicativos piratas. Isso sim é ilegal, pois é um roubo de propriedade intelectual. A comunidade de hackers responsável pelo desbloqueio do iPhone é contra este tipo de prática, por ser uma falta de respeito ao trabalho de pequenos e médios desenvolvedores, além de ser contra a lei.

Achar que todo o jailbreak é ilegal só por causa da pirataria é um erro.


O desbloqueio do aparelho

Este parece ser um ponto polêmico entre nossos leitores.
O desbloqueio é outra função que o jailbreak permite, possibilitando o uso do chip de uma operadora diferente daquela que vendeu o aparelho. Este é um recurso desnecessário no Brasil, visto que as operadoras nacionais desbloqueiam oficialmente o iPhone (comprado com elas), bastando um simples pedido do cliente. 
Mas em muitos países o aparelho vem bloqueado, dependendo do acordo que a Apple fez em cada país. Nesses casos, o cliente fica com o celular preso, não podendo usá-lo em viagens, por exemplo. Muitos brasileiros que moram no exterior sofrem com isso.

Também tem o caso dos proprietários do primeiro modelo de iPhone, que necessitam do desbloqueio para poder usar o aparelho no Brasil. A própria Apple já não se preocupa mais com isso, pois não está mais atualizando a baseband dos Classics.

Robô Extremamente Simples com Arduino!



Este robô desenvolvido com Arduino e dois servos é uma excelente projeto para os amantes da robótica.
O grande diferencial é que toda a documentação está livre, basta seguir os passos de montagem.

O que é?
Um robô de fácil construção e montagem, que você pode fazer com materiais de baixo custo.

Como surgiu?
Do interesse de professores do IF-SC, Campus Florianópolis, em desenvolver uma plataforma robótica facilmente replicável, como meio de incentivo às ciências exatas e tecnológicas.

O desenvolvimento deste robô foi apoiado pelo Primeiro Edital de Apoio a Projetos de Extensão no IF-SC (I APROEX). A equipe executora é formada pelos professores Joel Lacerda (Coordenador), Fernando S. Pacheco e Charles B. de Lima, do Departamento Acadêmico de Eletrônica (DAELN) do Campus Florianópolis e pelo aluno Luciano Silva do Lago, do Curso Técnico em Eletrônica.

Características
Nessa versão 1.0, a plataforma microcontrolada escolhida, por sua facilidade de aquisição, programação e baixo custo é o Arduino (usa microcontrolador ATmega328, família AVR). O chassis é de material plástico (polietileno) e as conexões elétricas são feitas em uma barra Sindal. Também para manter o baixo custo, usamos pilhas de fácil aquisição (tamanhos AA e 9 V).

Materiais

clique para ampliar
  • [A] Uma placa Arduino Duemilanove ou Arduino Uno
  • [B] Dois servomotores (hobby servo) 9 g
  • [C] Uma chapa de polietileno de alta densidade (PEAD ou HDPE, do nome em inglês). Aqui, usamos uma tábua de cortar carne :-)
  • [D] Duas rodas. Aqui, são os rolos que puxam papel de uma impressora usada (rodas com diâmetro de 5 cm)
  • [E] Pequeno pedaço de chapa de alumínio
  • [F] Fios para conexões (AWG 26 a 30)
  • [G] Dois elásticos de dinheiro
  • [H]  Cabo e conector de alimentação para bateria 9 V
  • [I] 1 bateria 9 V (quadrada)
  • [J]  Um porta 4 pilhas tamanho AA
  • [K] 4 pilhas AA
  • [L] Uma barra de conectores Sindal (12 bornes, 4 mm)
  • [M] Duas chaves (microswitch com haste)
  • [N] Dois LDRs
  • Não mostrados na figura
  • Dois espaçadores com rosca (de placa-mãe de computadores)
  • Um palito
  • Uma chave liga-desliga
Ferramentas

clique para ampliar
  • [A] Arco de serra comum ou mini
  • [B] Formão
  • [C] Furadeira
  • [D] Martelo
  • [E] Lápis
  • [F] Chave de fenda
  • [G] Brocas 1 mm (não mostrada na figura), 2,5 mm e broca de madeira 5/8" (aprox. 15 mm)
  • [H] Tesoura
  • [I] Lixa
  • [J] Régua
1. Faça o chassis
a. Imprima o modelo que está disponível acima (observe se escala está em 100%; confira com a marcação de 13,6 cm que existe no modelo). Recorte e marque sobre a placa de polietileno.



b. Usando o arco de serra, recorte a placa (na foto, estou fazendo um teste). Você deve levar aproximadamente 30 min nessa tarefa.


c. Faça os furos previstos com a broca menor.
d. Faça o recorte para as rodas com a broca maior (em uma furadeira de bancada, como mostrado na figura, fica mais fácil).


e. Com o formão, faça o acabamento dos recortes. Cuidado! Nunca direcione a lâmina para o seu corpo!
f. Lixe as bordas para um melhor acabamento.

2. Modifique os servomotores
a. Originalmente, um servo desse tipo tem o movimento limitado em 180 graus. Para transformá-lo em um servo de rotação contínua, siga as instruções (excelentes, com várias fotos) do blog de Tod E. Kurt, em http://todbot.com/blog/2009/04/11/tiny-servos-as-continuous-rotation-gearmotors/
Se tiver qualquer dúvida ou dificuldade, entre em contato com a gente.
b. Faça as ligações mostradas na figura seguinte para testar o funcionamento dos servos no próximo passo.
c. Carregue o programa seguinte na IDE do Arduino para testar os servos e ajustar a largura de pulso para que eles fiquem parados quando desejado.

/*****************************************************************************
 * ajuste_rotacao_direcao_servos
 *
 * Ajuste dos valores de pulso máximo (max.pulse) e mínimo (min.pulse) para
 * que o servo mantenha-se parado quando for enviado o comando de 90 graus
 *
 * Fernando S. Pacheco - 2011
 *****************************************************************************/

#include "SoftwareServo.h"

SoftwareServo servo;

void setup()
{
  servo.attach(2); //Num. do pino (Arduino) em que o servo está conectado.
  // Teste um servo, anote o valor do max. pulse, e depois teste o outro.

  //servoL.setMaximumPulse(XXX);// esse é o valor que será testado no loop.
  //   Depois de obtê-lo, coloque aqui em cima e tire o comentário.
  //servoL.setMinimumPulse(XXX);// para um dos servos que testamos, 
  //   não resolveu mexer só no max. pulse.
  //   Ficou muito baixo e, assim, a velocidade máxima era pequena.
  //   Foi necessário, então, ajustar também o min. pulse

  Serial.begin(9600);
  Serial.println("ServoAdjust/Ajuste do servo");
}

void loop()
{
  for (int maxpulse=500; maxpulse!=3000; maxpulse+=10)  { 
    servoL.setMaximumPulse(maxpulse);
    servoL.write(90);
    Serial.println(maxpulse);
    SoftwareServo::refresh();
    delay(45);
    SoftwareServo::refresh();
    delay(45);
  }
  //Depois de ter um valor aproximado, diminua o incremento do laço e 
  //os valores inicial e final
  delay(500);
}

3. Conecte as rodas aos motores
a. Coloque o suporte do servo em cima da roda e marque o material que será retirado
b. Com a furadeira e/ou formão, retire parte do plástico até que o suporte fique encaixado e centralizado
c. Fure as rodas e fixe o suporte (aqui, para teste, não usei parafusos)

4. Fixe a placa Arduino e as chaves
a. Rosqueie os espaçadores no chassis
b. Coloque a placa do Arduino
c. Cole ou parafuse as chaves na frente do robô. Use a chapa de alumínio para fazer uma haste maior para as chaves

5. Faça as conexões elétricas
a. Siga o esquemático e faça as conexões elétricas na barra Sindal

6. Fixe as pilhas
a. Use os elásticos e o palito para fixar as pilhas
b. Coloque um pequeno pedaço de polietileno embaixo da bateria 9 V

7. Programe o microcontrolador
a. Use o programa exemplo abaixo.
 
/*****************************************************************************
 * robot_segue_luz_e_volta_quando_bate
 *
 * Robô vai para a direção com mais luminosidade, a partir da leitura de 
 *  dois LDRs (fotorresistores)
 * Também tem duas chaves na frente para detectar quando bate
 *
 * Código usa os resistores internos de pullup do ATmega
 *
 * Fernando S. Pacheco - 2011
 *****************************************************************************/
#include "SoftwareServo.h"
#define invON LOW
#define invOFF HIGH
#define leftColisionPin  11
#define rightColisionPin 10
#define leftLdrPin A0
#define rightLdrPin A1

SoftwareServo servoL;
SoftwareServo servoR;

int leftCol=invOFF;
int rightCol=invOFF;
int leftLight=0;
int rightLight=0;

void setup()
{
  Serial.begin(9600);
  servoL.attach(2);
  servoR.attach(3);
  servoL.setMinimumPulse(295); //coloque os valores que você obteve no 
  //  teste dos servos. (Insert here the values obtained during servo testing)
  servoL.setMaximumPulse(993);
  servoR.setMaximumPulse(1247);
  pinMode(leftColisionPin, INPUT);
  digitalWrite(leftColisionPin, HIGH); //habilitar os resistores internos de
  //  pullup. (To enable internal pullup resistor)
  pinMode(rightColisionPin, INPUT);
  digitalWrite(rightColisionPin, HIGH); //to enable internal pullup resistor
  pinMode(rightLdrPin, INPUT);
  digitalWrite(rightLdrPin, HIGH); //to enable internal pullup resistor
  pinMode(leftLdrPin, INPUT);
  digitalWrite(leftLdrPin, HIGH); //to enable internal pullup resistor
  //Wait 2 seconds to begin
  delay(2000);
  //Aumenta velocidade vagarosamente / Increment speed slowly
  for (int k=0; k!=90; ++k) {    
    servoL.write(90+k);   //forward/frente em 180 
    servoR.write(90-k); //forward/frente em 0
    SoftwareServo::refresh();
    delay(25);
  }
  }

void loop()
{
  //Segue para frente em velocidade máxima / Go forward at full speed
  servoL.write(180);
  servoR.write(0);
  SoftwareServo::refresh();

  //Lê LDRs / Read LDRs
  leftLight=analogRead(leftLdrPin);
  rightLight=analogRead(rightLdrPin);
  
  if (leftLight > rightLight)  {
    servoL.write(150); 
    servoR.write(70);
  }
  else  {
    servoL.write(110);
    servoR.write(30);
  }
  SoftwareServo::refresh();
  delay(45);  

  //Lê chaves de colisão / Read collision detection switches
  leftCol=digitalRead(leftColisionPin);
  rightCol=digitalRead(rightColisionPin);
  
  //Detecção de colisão / Collision detected
  if (leftCol == invON || rightCol == invON) {
    //Robô para trás / Reverse
    servoL.write(30);   //frente em 180 
    servoR.write(150); //frente em 0

    for (int k=0; k!=10; ++k) {    
      SoftwareServo::refresh();
      delay(45);
    }
    if (leftCol == invON)  {
      //Se bateu à esquerda, vira para a direita / Turn right to avoid collision
      for (int k=0; k!=17; ++k) {
        servoL.write(140);
        servoR.write(140);
        SoftwareServo::refresh();
        delay(45);
      }
    }
    else {
      if (rightCol == invON)  {
        //Se bateu à direta, vira para a esquerda / Turn left to avoid collision
        for (int k=0; k!=17; ++k) {
          servoL.write(40);
          servoR.write(40);
          SoftwareServo::refresh();
          delay(45);
        }
      }
    }
  }  
  SoftwareServo::refresh();
  delay(1);
}

Você pode fazer o download dos programas do robô aqui.
 
8. Teste
a. Divirta-se! Modifique! Comente o resultado!

9. Ideias para outras versões
a. Com sensores infravermelho, fazer um seguidor de linha
b. Incluir sensores para que o robô identifique limites de espaço (por exemplo, não cair de uma mesa)
c. Fazer acionamento remoto
d. Usar um pack de baterias LiPo (6 células; 7,2 V, por exemplo)















Material Preço (R$) Observação
Uma placa Arduino Duemilanove ou Arduino Uno 74,00  se quiser fazer uma comprar internacional, no Ebay você encontra mais barato
Dois servomotores (hobby servo) 9 g 26,00 2 unidades no Brasil pode encontrar também em lojas de modelismo
Uma chapa de polietileno de alta densidade (PEAD ou HDPE, do nome em inglês) 4,00 Com uma tábua de cortar carne com aprox. 19x30 cm, é possível construir dois chassis
Duas rodas0,00 Aproveitamento de sucata (impressora); caso não consiga, pode fazer de madeira, MDF ou com o polietileno
Pequeno pedaço de chapa de alumínio 0,00 Também pode ser obtido de sucata
Fios para conexões (AWG 26 a 30) 5,00 A melhor opção é comprar já com as pontas feitas
Dois elásticos de dinheiro 0,00 Para fixar as pilhas
Cabo e conector de alimentação para bateria 9 V1,00 Peça quando comprar o Arduino
Uma bateria 9 V (quadrada) 7,00 Você também tem a opção de comprar uma recarregável
Um porta 4 pilhas tamanho AA 1,00 Facilmente encontrado em lojas de produtos eletrônicos
4 pilhas tamanho AA 5,00 Recarregáveis são uma ótima alternativa
Uma barra de conectores Sindal (12 bornes, 4 mm) 3,00 Em lojas de produtos eletrônicos ou elétricos
Duas chaves (microswitch com haste) 3,00 Opcionais, mas importantes para indicar quando o robô bate em um objeto
Dois LDRs 1,50 Opcionais; para fazer o robô seguir ou se afastar da luz
Dois espaçadores com rosca 0,00 De placa-mãe de computadores
Um palito 0,00
Uma chave liga-desliga 1,00
TOTAL 131,50