Social Icons

Helicópteros com Arduino

Vagando pela nuvem achei vários exemplos de tutoriais com arduinos voando por ai...E aqui vai uma bela dica: não pesquise arduino no google se você esta procurando por projetos pesquise algo junto tipo "LED Arduino" ou algo assim pois só arduino te leva a sites simples que só tem o conceito e os famosos "hello world" e se você não aguenta mais isso #ficadica....
Seguindo aí uma breve introdução dos projetos para se ter uma idéia.

Esse abaixo é um helicóptero que possui Sensores IR para não bater em obstáculos, também conta com um sensor ultrasonico. Tem 4 hélices.





Vocẽ pode ver exemplos na internet como este:





Que possui 6 hélices e é acompanhado de um sistema GPS, controle wireless de alta frequência,(quem viu video sabe o porquê da alta frequencia).


Bom Acho que este post foi mais para dar uma idéia pra quem esta sem nenhum projeto e pesquisando para fazer algo novo por ai, estes brinquedinho dão bastante trabalho pois vi sobre um motor pra fazer levantar 500 gramas e ele não era caro, mas ocupava em torno de 29/35 Ampers, dai a bateria dele que fica cara, era uma NiPOH 2200mAh que custava 50 Dólares, acho que vale, mas tem quem prefira andar com uma bateria de carro pendurada...

Não sou vendedor dos links abaixo e nem conheço só achei no ML e quero dar uma luz ai pro pessoal perdido, pois depois de ler o cara fica com vontade não sabe nome seila e qualquer coisa os nomes e relação estão todos ai...

 Se quiser montar um dos acima pode usar algumas destas peças:


Especificações:
Dimensões: 35mm x 28mm, 51mm(incluindo o eixo)
Peso: 63g.
Consumo: 20~28A
Diametro do eixo: 3.17mm
Comprimento do eixo: 16mm
ESC recomendado: 40Amp.



Especificações:
Peso: 22g
Células: 2-3S
Corrente Máxima: 25A
Burst: 30A
BEC: 3A
Tamanho: 24x52x6 mm

Conversor BCD Sem CI (Ser #Foda é Outra coisa)

Conversor de números binários para hexadecimais utilizando apenas Diodos e Transistores.
Em vez de usar um CI 9368, o cara optou por desenvolver este circuito usando portas lógicas, baseado apenas em elementos básicos da eletrônica, tais como diodos, transistores e resistores.
Este sim, na minha terra chamado de "Guapo", para o resto do brasil só Fodão mesmo.
Desculpe o palavreado curto e grosso,(mais grosso) mas é que pra quem sabe o que este cara fez é extremamente difícil, e MUITO trabalhoso....

Ta aí a VideoProva comprovando A FAÇÃNHA!


[Video Aula] Protoboard/ATMega88/ etc...

Tutorial de grande ajuda para iniciantes em Eletrônica, mas que precisam "Pular" direto para a digital, implementando ai a configuração de um circuito de ligação do ATMega 88...
O circuito consiste em um microcontrolador Atmel ATmega88 que faz um LED piscar. O Famoso "Hello World".
Você pode gravar o bootloader do arduino nesse exemplo e usá-lo como um arudino...



Parte 2

Violão/Guitarra Wireless

Este circuito possibilita a transmissão do som de uma guitarra ou violão, com captador magnético de baixa impedância, para um receptor de FM. A bobina L1 é formada por 3 ou 4 espiras de fio comum comum auto-sustentada com 1 cm de diâmetro e igual comprimento. CV é um trimer comum para o ajuste da freqüência de operação. A antena deve ter 15 cm de comprimento para maior estabilidade. O alcance é da ordem de 15 metros.

Jogo Eletrônico extremamente Simples

Quem é o mais rápido? O que apertar primeiro o interruptor (S1 ou S2) faz com que o LED correspondente acenda. Para rearmar, desligue a fonte. O brilho dos LEDs depende de R1 e R2, que não devem ser menores que 100 ohms.
Portas NAND.
Circuito integrado TTL SN7400N (C.F.:1105937)

Amplificador 20w

Este integrado TDA 2020 permite obter uma potência de 20 W com alimentação de 20 V em carga de 4 ohms. A fonte deve ser simétrica e o integrado deve ser montado num excelente dissipador de calor.
Qualquer dúvida da uma comentada ai...

Usando um Acelerômetro ADXL3xx

Neste exemplo veremos como usar um Acelerômetro analógico da série ADXL3xx (exemplos: ADXL320, ADXL321, ADXL322, ADXL330) e comunica a aceleração para o computador. Os pinos usados foram desenhados para serem facilmente compatíveis com as placas Sparkfun. O dispositivo ADXL3xx  potencia a aceleração em cada eixo com uma tensão análoga entre 0 e 5 volts, que é lida por uma entrada analógica do Arduino.


Um ADXL322 em uma placa Sparkfun inserido nos pinos de entrada analógica de um Arduino.


Tabela de pinos para a configuração acima:

Pinos da Placa Auto-Teste Eixo-Z Eixo-Y Eixo-X Terra VDD
Pinos de entrada analógica do Arduino 0 1 2 3 4 5

Ou, se você está usando somente o acelerômetro:

Pino ADXL3xx Auto-Teste Saída-Z Saída-Y Saída-X Terra VDD
Pino Arduino Nenhum (não conectado) Entrada Analógica 1 Entrada Analógica 2 Entrada Analógica 3 GND 5V

Código

int groundpin = 18;             // analog input pin 4
int powerpin = 19;              // analog input pin 5
int xpin = 3;                   // x-axis of the accelerometer
int ypin = 2;                   // y-axis
int zpin = 1;                   // z-axis (only on 3-axis models)

void setup()
{
  Serial.begin(9600);

  // Provide ground and power by using the analog inputs as normal
  // digital pins.  This makes it possible to directly connect the
  // breakout board to the Arduino.  If you use the normal 5V and
  // GND pins on the Arduino, you can remove these lines.
  pinMode(groundPin, OUTPUT);
  pinMode(powerPin, OUTPUT);
  digitalWrite(groundPin, LOW); 
  digitalWrite(powerPin, HIGH);
}

void loop()
{
  Serial.print(analogRead(xpin));
  Serial.print(" ");
  Serial.print(analogRead(ypin));
  Serial.print(" ");
  Serial.print(analogRead(zpin));
  Serial.println();
  delay(1000);
}

Dados

Básicamente ele fica atualizando a tela com a leitura do acelerômetro...
Aqui apresentamos algumas leituras coletadas por um acelerômetro posicionando o eixo Y de um dispositivo ADXL322 2g a vários ângulos do chão. Os valores devem ser os mesmos para outros eixos, mas podem variar de acordo com a sensibilidade do dispositivo. Com o eixo horizontal (por exemplo paralelo ao chão 0º) a leitura do acelerômetro deveria ser ao redor de 512, mas os valores para outros ângulos serão diferentes para cada dispositivo (exemplo de um ADXL302 5g).

Ângulo -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90
Aceleração 662 660 654 642 628 610 589 563 537 510 485 455 433 408 390 374 363 357 355


O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.
Esta obra está licenciada sob uma Licença Creative Commons.
Creative Commons License

Um Dimmer Futurístico



Um dimmer digital que pode ser facilmente acoplado no Arduino ou qualquer outra placa controladora. O resultado é que você consegue controlar a intensidade de brilho de uma lâmpada incandescente.  Dependendo dos circutos que você colocar neste esquema, você pode controlar um ventilador, chuveiro, ou fazer um ferro de solda com controle de potência!

Os desafios propostos neste desenvolvimento foram bem interessantes e pessoalmente foram verdadeiras aulas práticas de eletrônica e microcontroladores. 

A primeira tentativa que fizemos utilizamos um isolador ótico simples e tentamos usar a PWM para controlar a potência, mas o resultado com a lâmpada não deu certo: ela ficava piscando. Então Paulo pesquisou e me passou uma solução mais trabalhosa mas que funcionaria.

Neste novo esquema elétrico usamos dois isoladores óticos: 4N35 um MOC3021. O primeiro é utilizado para detectar a passagem da corrente alternada por zero e interromper o ATMega cada vez que isso acontecere, no caso do Brasil com 60hz, 120 vezes por segunda a corrente passa por 0. Neste momento é onde temporizamos  a abertura do TRIAC e simulamos o controle de potência. Veja o esquema elétrico:




Segue o código-fonte para Arduino. Você pode mudar a intensidade alterando o valor da variável dim entre 1 e 120, sendo que 1 é o mais forte e 120 praticamente desligada. Este programa permite alteração desta variável por I2C ou por Serial:


/*

#include 
int AC_pin = 3;
volatile long dim = 60;

void setup(){
  pinMode(AC_pin, OUTPUT);
  Serial.begin(9600);
  attachInterrupt(0, light, CHANGE);
  Wire.begin(66);
  Wire.onReceive(receiveEvent);
}

void receiveEvent(int howMany){
   char comando[16];
   int counter=0;
   while(1 < Wire.available())  {
   char c = Wire.receive();
   comando[counter++]=c;
   Serial.print(c);
      }  

int x = Wire.receive();
Serial.println(x);
Serial.println("Evento");
Serial.println(howMany);
//value, fromLow, fromHigh, toLow, toHigh)  
dim = map(comando[1], 48,57,10,120);
  } 


void light(){
  if(dim<125) {
    long dimtime = (60*dim);  // eval the proper pause to fire the triac
    delayMicroseconds(dimtime);  // delay the dim time
    digitalWrite(AC_pin, HIGH);  // fire the Triac
    delayMicroseconds(1);  // pause briefly to ensure the triac turned on
    digitalWrite(AC_pin, LOW);   // turn off the Triac gate (triac will not turn off until next zero cross)
  }  else {
      digitalWrite(AC_pin, LOW);   // turn off the Triac gate (triac will not turn off until next zero cross)  
  }
}

void loop(){
if (Serial.available() > 0) {
    byte inByte = Serial.read();
    dim = inByte;  }
}



E na etapa seguinte integramos este circuito com o ping da Parallax para ter o controle de intensidade "on the air". Bem, isso deixamos para um próximo post, por enquanto vai se divertindo com este circuito!

A lista de materiais para você comprar e montar:

- 4 resistores de 47K (R1 a R4)
- 1 resistor de 10k (R5) (se não tiver 1k e 10k não é eletrônica!)
- 2 resistores 330 (R6 e R7)
- TRIAC BTA16
- 1 isolador 4N35
- 1 isolador MOC3021

Preço da lista: menos que R$ 10.

Criador do Projeto:  Vinicius Senger
http://twitter.com/vsenger
http://twitter.com/eletronlivre
http://loja.eletronlivre.com.br
http://www.globalcode.com.br/instrutores/ViniciusSenger

Projeto EscaPe! v1.1



Ontem a noite sem nada pra fazer comecei a trabalhar com novos caracteres para a LCD Shield e aprendi a criar caracteres especiais com este site você tem uma idéia de como eles vão ficar.
Criei alguns avatares,bonequinhos,símbolos e gostei, pensei então em fazer o bonequinho andar na tela com os comandos:

 lcd.setCursor(x,y);
X=Valor de 0 a 15(no caso de LCD 16x2); - COLUNA
Y=Valor 0 ou 1 (Linha de cima ou de baixo) - LINHA

Recomendo quem quer entender o código por completo que leia o outro tutorial que fiz para o reconhecimento das teclas da shield lcd, pois irei usar o mesmo código para fazer com que vá para cima/baixo...







------------------------------------------
Nome do Jogo: EscaPe! 
Versões:
- 1.0: (Bugs simples logo serão corrigidos);
   1.1 (Implementado e corrigido 3 Bugs, ainda tem bastante bugs mas como estou sem muito                                  tempo talvez demore a concertar todos - Qualque ajuda é bem vinda).


No Pack de Download estão todas as versões para você poder avaliar a evolução.
Totalmente OPEN SOURCE: Download do Código (coloquei assim porque é muito grande o código para largar aqui, +-350 linhas)
User como quiser.
Você pode acompanhar notícias do jogo pela label EscaPe! aguardem muitas novidades até o fim do mês.

Reconhecendo Teclas com Shield LCD



Fiz um Exemplo rápido de como "Lêr" as teclas da shield LCD, é bem simples, todos os botões são ligados na mesma entrada Analógica, a 0, por isso para diferenciar as teclas são usados resistores, fazendo com que valores diferentes sejam interpretados pelo arduino.
Não sei se é o caso de todas mas na minha as teclas são organizadas dessa forma:


Fotos em Breve...

------------------------------------------------------------------
Tecla         - Valor:
Cima          - 146
Baixo         - 334
Direita        - 0
Esquerda    - 511
Selecionar   - 745
------------------------

Qualquer coisa se não for este valor, ou quiser saber como ligar faça assim:






1) Ache o Datasheet da Sua Shield e confira qual pino Analógico dos botões.
2) Coloque este código em seu arduino substituindo o indicado pelas suas informações.
3) Anote o valor de cada tecla e faça um "coeficiente de cagaço" ou seja a margem de erro, de uns 50 para mais e para menos, mas cuide para que este 50 para mais ou para menos não entre no valor de outra tecla.


#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //use a pinagem de seu arduino
void setup(){
lcd.begin(16,2);
Serial.begin(9600);
}
void loop(){
  delay(1000);
  lcd.clear();
  int tecla_valor = analogRead(0);// 0  é o pino da sua entrada analógica
  lcd.print(tecla_valor);//tecla_valor armazena o valor lido e joga pra tela LCD.

}
5) Aqui está o código com os valores da minha Shield, ele lê a tecla e mostra qual é na tela.
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //use a pinagem de seu arduino
void setup(){
lcd.begin(16,2);
Serial.begin(9600);
}
void loop(){
  delay(90);
  lcd.clear();
  int tecla_valor = analogRead(0);
  if (tecla_valor == 0)
{
  lcd.print("Direita 0");
  delay(100);
}
if ((tecla_valor >= 120) & (tecla_valor <= 146))
{
 
  lcd.print("Cima 146");
delay(100);
}
if ((tecla_valor >= 300) & (tecla_valor <= 350))
{
  lcd.print("Baixo 334");
  delay(100);
}
if ((tecla_valor >= 500) & (tecla_valor <= 530))
{
  lcd.print("Esquerda 511");
  delay(100);
}
if ((tecla_valor >= 700) & (tecla_valor <= 790))
{
  lcd.print("Selecionar 745");
  delay(100);
}
delay(50);
}

Como prometido criei um "menuzinho", percebam que está cheio de bugs ainda, quando você vai pra negativo e volta pra positivo ficam números errados na tela, e várias outras coisas, mas como estou ainda em fase de testes nesse projeto do Relógio vou desenvolver um menu para poder alterar a hora do relógio pelo sistema mesmo e não mais pelo source, então vou aos poucos mudando o código abaixo...
Se alguém conseguir avanços poste ai, OpenSource é isso!


#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //use a pinagem de seu arduino
int up;
int down;
int nothing;
int right;
int left;
int enter;
int sel;
int x;
int y;
void setup() {   
lcd.begin(16, 2);
lcd.write(0);
sel = 0;
x = 0;
y = 0;
up = 0;
down = 0;
right = 0;
left = 0;
enter = 0;
nothing = 0;
}
void loop(){
  delay(100);
 
int tecla_valor = analogRead(0); 
if (tecla_valor == 1023){
up = 0;
down = 0;
right = 0;
left = 0;
enter = 0;
nothing = 1;
}
if (tecla_valor == 0)
{
  right = 1;
}
if ((tecla_valor >= 120) & (tecla_valor <= 146))
{
  up = 1;
}
if ((tecla_valor >= 300) & (tecla_valor <= 350))
{
  down = 1;
}
if ((tecla_valor >= 500) & (tecla_valor <= 530))
{
  left = 1;
}
if ((tecla_valor >= 700) & (tecla_valor <= 790))
{
  enter = 1;
}
delay(50);


lcd.setCursor(x,y);

if (down == 1){
  sel = sel -1;
}

if (up == 1){
  sel = sel + 1;
}
if (enter == 1) {
  (x=x+1);
}
lcd.print(sel);

}


Mais um exemplo, mas esse com menus escritos, tem 3 menus mas pode expandir para mais menus e sub-menus....


#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //use a pinagem de seu arduino
int up;
int down;
int nothing;
int right;
int left;
int enter;
int sel;
int x;
int y;
void setup() {  
lcd.begin(16, 2);
lcd.write(0);
sel = 1;
x = 0;
y = 0;
up = 0;
down = 0;
right = 0;
left = 0;
enter = 0;
nothing = 0;
}
void loop(){
 

int tecla_valor = analogRead(0);
if (tecla_valor == 1023){
up = 0;
down = 0;
right = 0;
left = 0;
enter = 0;
nothing = 1;
}
if (tecla_valor == 0)
{
  right = 1;
}
if ((tecla_valor >= 120) & (tecla_valor <= 146))
{
  up = 1;
}
if ((tecla_valor >= 300) & (tecla_valor <= 350))
{
  down = 1;
}
if ((tecla_valor >= 500) & (tecla_valor <= 530))
{
  left = 1;
}
if ((tecla_valor >= 700) & (tecla_valor <= 790))
{
  enter = 1;
}
delay(120);

if (right == 1){
sel++;
 }
if (left == 1){
sel--;
 }

if (sel<=1){
  sel =1;
  lcd.clear();
lcd.print("     MENU 1  >> ");
 }
if (sel==2){
  lcd.clear();
lcd.print(" <   MENU 2   > ");
 }
if (sel>=3){
  sel=3;
  lcd.clear();
lcd.print(" <<  MENU 3    ");
 }
}

Homens de Verdade Criam Seus Próprios Jogos!

Frase de efeito, mas muita gente (“geeks de verdade”) leva ao pé da letra. Claro que não dispensam um bom Wii ou XBox 360… mas brincar com a “Gamepack” aí embaixo é muito, muito mais legal.

diy_gameboy_arduino_2
O preço não é lá muito convidativo, especialmente em épocas de dólar caro: são US$ 250,00. O poder de processamento também não é “aquela coisa toda”.
Todos os esquemas estão disponíveis (o da CPU é este, por exemplo) e o display OLED é mesmo muito bonito. Mas, particularmente, ainda existe outro kit: o Hydra. (US$ 200,00), vem com teclado, tem saída para monitor/TV e gera imagens como essa aí de baixo:

hydra_ss_02_large

hydra_ss_03_large

gd-photo200
Para Nosso Arduino temos outra opção:

Em se tratando de acessibilidade e diversão com engenhocas DIY, nada pode bater o Arduino. Sim, projetos possibilitando a criação de jogos com uma proposta “do-it-yourself” já surgiram, mas pareciam caros e não muito atraentes. A ideia com o Gameduino é possibilitar que você crie o seu próprio “console” e saia jogando sem pagar caro para isso e com facilidade para dar vida às suas criações.

A solução se baseia em uma placa extra que se acopla ao Arduino adicionando o hardware necessário para transformá-lo numa plataforma de jogos de 8 bits. De acordo com seus criadores, adquirindo a placa por US$ 50,00 e sabendo como desenvolver projetos para o Arduino, qualquer um pode desenvolver seus próprios games sem muita complicação, contanto inclusive com a ajuda de elementos disponibilizados pela comunidade. Os jogos são declaradamente retrô, é óbvio, mas com criatividade é possível criar coisas bem interessantes.
Confira alguns detalhes técnicos sobre o projeto na página oficial do Gameduino.

Hacking with an USB Host

Jogando Super Nintendo no Android com controle original

Jogando SNES com controle original via bluetooth
 http://www.youtube.com/watch?v=_FZTz2KO9vU .

Mas tem um detalhe muito importante este projeto, é para NES e não o SNES (mais novo), ou seja, sabia que era possível fazer e tinha os materiais para isto, então só esperei sobrar um tempo para fazer (o único componente que não tinha era o controle, mas consegui um paralelo por R$ 8,00 no Mercado Livre).

vimeo.com/bsoares/snes-on-android-with-controller-and-bluesmirf
Como funciona:
O controle do SNES esta ligado a Arduino, é bem fácil obter as teclas pressionadas, mas existe uma biblioteca para tornar esta tarefa ainda mais simples (NESpad/SNESpad). Cada tecla pressionada liga um bit dentro do número que representa o estado das teclas do controle, e este estado (número) é enviado via Bluetooth (uso o BlueSMiRF) para o Android.
No Android, quem recebe este número é o Amarino, mas ele apenas recebe o número, ainda é necessário um App (que foi modificado a partir deste exemplo “SoftKeyboard“) para converter este número em teclas pressionadas (uso Bitwise) como um teclado do Android.

Por fim é só configurar o emulador para entender as teclas pressionadas como os comandos dentro do mesmo (pular, andar, girar, etc…)

Desta forma o controle pode ser usado como o teclado do seu Android, e ainda ser configurado como o controle de outros emuladores.
Sobre o módulo bluetooth BlueSMiRF:
Depois de configurado ele será o seu “cabo USB virtual” pois da mesma forma que usamos o comando Serial.print(“…”) para enviar dados via porta serial, o mesmo dado será enviado via bluetooth.

A App Amarino utiliza 57.600 de baudrate, e os módulos BlueSMiRF normalmente vem com 9.600.

Para configurar o blueSMiRF utilizei alguns tutoriais:
- http://todbot.com/blog/2006/02/23/howto-mac-os-x-bluetooth-serial-port/
- http://www.sparkfun.com/tutorials/67

Sobre o Soft Keyboard (App para Android):

Modifiquei o exemplo de Keyboard App disponível no Android Developers para obter os dados via Amarino e agir como teclado. Me baseei neste projeto criado para NES, porém criei outro código para a Arduino e alterei 95% do código para o Android.
O código fonte do projeto para Androi, Arduino e as versões das bibliotecas que foram utilizadas, podem ser baixadas do meu Github:
https://github.com/BSoares/SNES-on-Android-with-original-controller

Os Códigos Usados estão aqui:

https://github.com/BSoares/SNES-on-Android-with-original-controller





Créditos para :
http://blog.bsoares.com.br/category/arduino#bitwise-right-shift

Meu Primeiro "Projeto" Com Arduino.(AtualizadO)

Acabei de pegar meu Arduino MEGA 1280, e comecei a brincar com led's...
Comprei junto uma Shield LCD e resolvi transportar um programa que eu havia criado pra PASCAL/Windows pra o arduino e mostrá-lo na LCD 16x2.
Veja como Ficou:













/// ATUALIZAÇÃO

Este video é meio antigo, é da primeira versão que criei desse relógio geek...
Eu ja havia criado o algorítimo para o relógio em si, mas nada muito criativo, apenas uma implementação para "mostragem" correta da hora apartir de algumas combinações de números. Tinha feito em PASCAL e rodava perfeitamente no PC resolvi "portar" para C logo que comprei a Shield LCD, deu um pouco de trabalho mas ficou legal. Estou trabalhando agora com as teclas da Shield para o Ajuste de Hora entre outras peculiaridades.
Sugiro que ignorem nos códigos a parte de Temperatura, e também lhes informo que a contagem da hora atrasa muito depois de umas 4 horas de uso.
Estou pensando em colocar um RTC, não deve mudar drasticamente o Código.


-------------------------------------------------------------------------
Códigos Usados:
Inclui v1.3.3 que tem já ajuste de hora pela Shield.
mediafire.com/​?d2dz22kaw177n99
-------------------------------------------------------------------------

Retirar Elementos de uma imagem

  • Abrimos a imagem que queremos corrigir.

Como devem ter reparado, existe um elemento que faz com que o enquadramento da foto não seja ideal. Aquela senhora faz com que o ponto de interesse seja colocado à esquerda, e não centrado como era o desejado.

Após identificarmos qual o elemento que não está enquadrado na foto, vamos retirá-lo.

Para conseguirmos rectificar o que está errado, podemos usar uma das ferramentas que mais aprecio no Photoshop, o Clone Stamp Tool.

Esta ferramenta permite seleccionar um determinado ponto de uma foto, e através do processo de “clonagem” criar (copiar) noutra área distinta essa mesma imagem.

  • Seleccione a ferramenta Clone Stamp Tool, ou pressione a S.

Para seleccionar um determinado ponto na foto, terá de

  • Pressione a tecla ALT

Irá verificar que agora o brush (pincel) aparece com uma espécie de “alvo”. Como exemplificado na imagem seguinte.

  • Com a tecla ALT pressionada, clique com o botão esquerdo do rato

Após ter clicado no botão esquerdo do rato, já pode soltar a ALT.

Isto determinará o ponto de onde começará o processo de clonagem.

Muito importante é determinar o tamanho do brush, pois é necessário ter algum cuidado ao “clonar” determinada zona.

Com a ferramenta Clone Stamp Tool, irá ficar activa uma opção nova, o Aligned.

O que esta nova opção permite basicamente é o facto de depois o “alvo” acompanhar o brush.

Caso não esteja seleccionada, quando deixar de pressionar o botão esquerdo do rato, o “alvo” voltará ao ponto de origem. Mas para este tutorial não será preciso seleccionar esta ferramenta.

Agora só temos de “clonar” as ondas e a areia. Para “clonar”, tem de passar com o brush ao mesmo tempo que vai clicando no botão esquerdo do rato no elemento em excesso na imagem.

É também importante mudar o “ponto de origem”, para que as áreas fiquem realmente parecidas.

A meio do processo deve ter algo parecido com a imagem seguinte.

Como pode visualizar, uma parte da imagem já foi “substituída” pela água.

E assim aos poucos a imagem vai desaparecendo.

O aspecto final deverá ficar parecido com:

E assim a ficou corrigida.


BY SilV4

iDroid Guia Definitivo

idroid-mini-browser
Android é um sistema operacional mobile desenvolvido pelo Google™, baseado em Linux e totalmente aberto a desenvolvedores, concorrente direto ao iOS. Recentemente os desenvolvedores da Planetbeing iniciaram o desenvolvimento do iDroid, um projeto fantástico que permite portar o Android para o iPhone. Neste artigo vamos mostrar uma maneira bem didática de como instalar o iDroid no iPhone em dual-boot, permitindo você escolher qual sistema operacional deseja iniciar ao ligar o aparelho.



Introdução

O iDroid é um projeto recente e algumas funcionalidades ainda não foram portadas para o iPhone, mas já é possível desfrutar do sistema em seu aparelho com as funcionalidades básicas, veja abaixo como anda o status de desenvolvimento do projeto, comparando cada versão do iPhone.
 












Alguns Videos Demontrando Uso: 





Status do projeto

iPhone 2giPhone 3giPhone 3Gs
OpeniBoot - 100%OpeniBoot - 100%OpeniBoot - 10%
CPU - 100%CPU - 100%CPU - 100%
WLAN - 100%WLAN - 100%WLAN - 0%
Bluetooth - 0%Audio - 100%Baseband - 0%
Audio - 100% (c/ bugs)NAND (8GB) - 100%Bluetooth - 0%
NAND - (4GB) 100%NAND (16GB) - 100%NAND (16GB) - 0%
NAND - (8GB) 100%NOR - 0%Audio - 0%
NAND - (16GB) 100%Multi-Touch - 100%GPS - 0%
Baseband - 80% (c/ bugs)Baseband - 50%GPU - 0%
ALS - 50%Tri-Band HSDPA LNA - 0%Acelelerometro - 0%
Accelerometer - 100%GPS - 30%
PMU - 0%ALS - 80% (necessita driver)
GPU - 60% (sem aceleração)Accelerometer - 100%

Bluetooth - 80% (necessita driver)

PMU - 0%

GPU - 0%

UMTS Transceiver - 0%

WEDGE baseband - 0%

Tritium PA-duplexers - 0%
Como você pode notar, até o momento, o iDroid já está 70% funcional em iPhone’s 2g e 3g, ainda sendo portado para 3gs. Por este motivo nosso tutorial será focado para usuários do 2g/3g.

 

Requisitos


  • Apple iPhone 3g ou 2g (ainda não suporta o 3Gs)
  • O aparelho deverá estar ativado com Jailbreak (redsn0w, pwnagetool ou quickpwn), caso não esteja, siga nosso guia de jailbreak aqui.

 

 

Downloads necessários



 

Preparando nosso ambiente virtual Linux


O projeto iDroid pode ser manipulado em vários sistemas operacionais, mas escolhemos o Linux, por ser o mais versátil de todos, permitindo customizar e ter total controle do projeto. Não se preocupe se você não tem experiência com Linux, pois disponibilizamos uma imagem do Ubuntu 10.04 já preparada com todas dependências necessárias, vmware-tools instalado para facilitar a interação Windows X Linux, conexão de internet em bridge c/ ip válido para o roteador e um diretório comun tanto no Windows quanto na máquina virtual Linux para facilitar o compartilhamento de arquivos.
  1. Extraia e execute o VMware Wokstation 7.1.0, instale normalmente e ao final registre com o serial gerado pelo Keygen que está incluso no pacote que você fez download.
  2. Extraia todo conteúdo da imagem do Ubuntu Linux 10.04 em c:\vmware\ (se o diretório não existir, crie).
  3. Então apenas execute o VMware e abra a imagem, clicando em File/Open
  4. Selecione que você está utilizando uma cópia da imagem.
  5. Logue-se com a senha: infohelp.org
  6. Então, vá até o menu VM/Settings, em Options, vá até Settings/Shared folders e adicione um diretório qualquer de seu computador, será sua pasta de compartilhamento com o Linux, tudo que você jogar nesta pasta no Windows poderá ser acessado através do Linux (Atenção: este passo é importante).
  7. Então no Linux vá em Places/Computer/File System/mnt/hgfs e sua pasta estará lá, crie um atalho da mesma em seu Destkop.
  8. Agora configure a conexão com a internet. Para isto, vá até o menu VM/Settings e em Hardware/Network Adapter, selecione Bridged (marque o Replicate), desta forma o ip de sua placa de rede no Linux será na mesma range do DHCP de sua rede, ou seja, se você possuir um router ele atribuirá o IP de sua placa de rede virtual em sua máquina Linux.

  9. Verifique a conexão com a internet abrindo um Terminal e pingando o infohelp.org.
Pronto, você já tem seu ambiente de trabalho já pré-preparado para a manipulação de qualquer versão do iDroid.


O gerenciador de dual-boot

Para instalar o iDroid em seu iPhone, você deverá primeiro criar um dual-boot de seu aparelho, o que lhe permitirá escolher qual sistema será carregado ao ligar o aparelho. Para isso instalaremos o OpeniBoot.

A instalação do OpeniBoot é a mais complicada de todo o processo, pois será necesário compilar e interpretar alguns erros, de qualquer forma já deixamos a imagem com a maioria das dependências pré-configuradas.
Alguns pediram para deixarmos pré-compilado o OpeniBoot já pronto para instalação, mas optamos por ensinar o usuário a compilar, desta forma não limitamos na versão do aparelho, e será o mesmo processo para futuras atualizações do iDroid.

Métodos de instalação (didático)

Neste artigo vou apresentar dois métodos de instalação, o didático e o automático. recomendo executar e procurar entender primeiramente o método manual didático, pois dominando este método você será capaz de acompanhar todo o desenvolvimento do projeto e solucionar qualquer problema futuramente.
  • Método didático – Todos os processos estão descritos e são executados manualmente, e todos erros comuns e suas soluções são citadas no tutorial.
  • Método automatizado – Todo o procedimento de instalação será executado automaticamente através de um script, basta ter um iPhone já preparado com o OpeniBoot e um ambiente Linux já customizado com os passos acima.

Download da Git do OpeniBoot

Git é o pacote que contém o source do OpeniBoot. Apenas copie e cole os comandos em seu terminal no Linux.
  1. Primeiramente certifique-se de que está no ~/
    cd ~
  2. Então instale o gerenciador diretamente via apt:
    sudo apt-get install git-core
  3. Faça download da Git do OpeniBoot c/ o seguinte comando:
    sudo git clone git://github.com/planetbeing/iphonelinux.git
    cd iphonelinux/

Compilando o OpeniBoot pela primeira vez

Depois de uma vez compilado, você poderá instalar em qualquer aparelho com apenas um comando, porém na primeira vez terá um pouco de trabalho.
  1. Compile a ARM toolchain (aguarde um bom tempo pela compilação, um bom tempo mesmo. acredite)
    sudo toolchain/build-toolchain.sh make
    
  2. Solução para o erro: Failed to build newlib (stage: newlib_build)

    sudo apt-get install texinfo
    (Apenas instale o texinfo com o comando acima e reinicie a compilação do toolchain)
    

    Solução para o erro: Failed to create symlink (stage: makesymlink)

    sudo rm /usr/local/bin/arm-elf-cc
    (exclua o link simbólico e reinicie a compilação do toolchain)
    
  3. Compilando o OpeniBoot.
    Após a mensagem Toolchain install successful confirmando a instalação do toolchain você já poderá partir para a compilação do OpeniBoot.
  4. Primeiramente de um apt-get nas dependências:
    sudo apt-get install libusb-dev libreadline-dev libpng12-dev libusb-1.0-0-dev
    Nota: Caso esteja compilando em um sistema 64bits, você precisará dar um apt-get na libc6-dev-i386 e usaro comando export ARCH=x86_64 antes de prosseguir para os próximos passos.
    cd openiboot/
    • Para iPhone 3g use o comando:
      sudo PLATFORM=3G make openiboot.img3
    • iPhone 2g use:
      sudo PLATFORM=IPHONE make openiboot.img3

    Solução para o erro: expected specifier-qualifier-list before ‘AES_KEY’

    sudo apt-get install libssl-dev
  5. Compile tudo em client/:
    cd client
    sudo make all && cd ..
Concluído com sucesso, você já terá uma imagem do OpeniBoot preparada para a instalação em seu iPhone.

Carregando o console do OpeniBoot em seu iPhone

Chegou o momento de carregar e instalar o OpeniBoot. Primeiramente coloque seu aparelho em Simple Recovery mode.
Atenção: Simple recovery mode não é DFU mode, faça o seguinte:
  1. Desligue totalmente o aparelho e desplugue do computador;
  2. Antes de tudo, vá ao gerenciador de tarefas do Windows e finalize o iTunesHelper.exe para impedir que o iTunes carregue automaticamente ao plugar o iPhone no PC.
  3. Segure o botão Home do iPhone e então sem soltar, plugue o cabo USB ao computador;
  4. Aguarde o VMware detectar o iPhone com a seguinte tela:

    E o aparelho deverá mostrar esta tela:
  5. Então execute o comando:
    sudo client/loadibec openiboot.img3
    

    Solucionando o erro: open_device: unable to connect to device, your device must be in recovery mode.

    Isso significa que seu aparelho não está em Simple recovery mode, ou algum aplicativo está conectado mantendo o dispositivo ocupado, como o iTunes por exemplo, verifique se o aparelho está em simple recovery mode e se o iTunes está fechado e então continue os passos abaixo.
  6. Vá até o iPhone, pressione o botão Power 1x(uma vez), para selecionar o Console do OpeniBoot, deixe o cursor em cima dele.
  7. Agora no iPhone você deverá pressionar Home para executar o Console, e quando na tela do iPhone mostrar USB state change: 1 -> 1, você deverá deverá no Linux executar o comando abaixo, fique atento, pois o intervalo de tempo é bem curto.
    sudo client/oibc
    
    
Feito isso corretamente, você terá a tela acima no Linux sincronizada com seu iPhone, qualquer outra tela significa que não funcionou, repita o processo até conseguir o resultado.

Fazendo backup da NOR de seu iPhone

NOR é o flash chip responsável pela inicialização de seu aparelho, é ela que controla tudo que inicializa antes do sistema, inclusive os modos de restauração.
Fazer um backup é altamente recomendado, pois caso aconteça algum erro no meio do processo de instalação, ou acabe a bateria do aparelho, se você não possuir um backup da NOR, não conseguirá mais iniciar o iPhone nem em DFU restore mode, tornando muito complicado sua restauração.

Para efetuar o backup, apenas digite o seguinte comando abaixo em seu Terminal:
nor_read 0x09000000 0x0 1048576

Instalando o OpeniBoot definitivamente em sua NOR

Então digite o comando abaixo para concluir a instalação, o processo é rápido, mas antes de executar, ceritifique-se de que seu aparelho está com a bateria carregada totalmente:
Install
Ao concluir, deverá exibir a tela abaixo:

Então desligue o aparelho e ligue novamente, e você terá a tela do OpeniBoot sempre que o iPhone for desligado e ligado.
Para bootar o iOS, que é o sistema operacional padrão, apenas selecione usando Power e pressione Home para iniciar.

Extraindo e configurando os drivers de seu iPhone

Antes de prosseguir, necessitaremos os drivers de Wireless e Multitouch do iPhone. Os drivers de wireless já estão compilados e disponíveis para download no início do tutorial, porém os drivers do display Multitouch deverão ser extraídos de seu próprio aparelho, siga os passos abaixo:
Em seu iPhone, vá até o Cydia, settings e verifique se o Hacker mode está ativado.

Então, ainda no Cydia, busque e instale os seguintes apps:
  • Open SSH – Openssh para iPhone;
  • IOKit Tools – Conjunto de ferramentas Unix command-line para o iPhone;
  • VI improved – Editor VIm;
  • Core utils – Utilitários Unix para manipulação de shell e arquivos;
  • Apt 0.7 strict – Apt debian tools para iPhone.
  • Mobile terminal – terminal no iPhone que usaremos para dar input nos comandos.
Tendo todos esses aplicativos instalados em seu iPhone, você poderá prosseguir.

Drivers do Multitouch – Extraindo zephyr2_cal.bin, zephyr2_proxcal.bin e zephyr2.bin

Abra um novo Terminal em sua máquina Linux, e conecte via SSH no IP de seu iPhone usando o comando SSH 192.168.0.104, considerando que seu iPhone está na mesma rede que o computador e que o IP do iPhone seja 192.168.0.104, ao conectar digite Yes, para aceitar a nova chave SSL, caso ele pergunte, e logo após digite sua senha do root do OpenSSH, que por padrão é: alpine

Você poderá também executar os comandos abaixo diretamente de seu iPhone através do aplicativo Mobile Terminal. Lembrando que neste caso não terá como copiar e colar os comandos, terá que digitar usando o tecladinho do aparelho.
ssh root@192.168.0.104
su root
mkdir /private/var/firmware
cd /private/var/firmware
ioreg -l -w 0 | grep '"Calibration Data" =' | cut -d '<' -f2 | cut -d '>' -f1 | xxd -r -ps
- zephyr2_cal.bin (atenção, não quebre a linha, o - zephyr2... faz parte da linha de cima)
ioreg -l -w 0 | grep '"Calibration Data" =' | cut -d '<' -f2 | cut -d '>' -f1 | xxd -r -ps
- zephyr2_proxcal.bin (atenção, não quebre a linha, o - zephyr2... faz parte da linha de cima)
Isso irá gerar os arquivos zephyr2_cal.bin e zephyr2_proxcal.bin na pasta /firmware.
Agora vamos copiar o iPhone.mtprops para /var:
cd /private/var/stash/share.*
cd firmware/multitouch/
cp iPhone.mtprops /private/var
cp iPhone.mtprops /private/var/firmware
.. e finalmente gerar o zephyr2.bin:
cd /private/var/firmware
cat iPhone.mtprops | grep -B2 0x0049 | grep data | sed 's/^\t\t<data>//' | sed 's/<\/data>$//'
| base64 -d > zephyr2.bin (atenção, não faça a quebra de linha)
Faça uma cópia também de todo conteúdo da pasta /private/var/firmware de seu iphone para sua pasta ~/iphonelinux

scp /private/var/firmware/* root@192.168.0.104:~/iphonelinux
Neste momento você tem os drivers do multitouch devidamente instalados no diretório /firmware de seu iPhone.

Drivers da WLAN – Preparação

Pegue o arquivo SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL.zip e copie na pasta de compartilhamento entre Windows e Linux que você criou na preparação do Ambiente.
Vá até sua pasta de compartilhamento no Linux e mova este arquivo para dentro do diretório ~/iphonelinux
Então em sua outra janela de Terminal(não é a conectada ao iPhone) digite os comandos:
cd ~/iphonelinux
unzip SD-8686*.zip

Instalando a estrutura do Android

Antes de enviar o sistema operacional para o iPhone, devemos preparar a imagem, vamos montá-la em um diretório virtual e inserir os drivers que criamos dentro dela e montar novamente.
Então faça o mesmo que fez acima, copie o idroid-release-0.2-3g_rooted_with_sd_emulation_backlight_and_dns_fixed.zip que você fez download no início do tutorial para a a pasta de compartilhamento e acesse no Linux. Então mova-o para ~/iphonelinux, feito isso digite os comandos:
cd ~/iphonelinux
unzip idroid-relea*.zip
rm idroid-relea*.zip
gunzip android.img.zip
mv *.bin /var/firmware/

Montando o Android na máquina Linux

Montaremos o android.img.gz em um diretório e copiaremos os arquivos zephyr_aspeed.bin zephyr_main.bin sd8686_helper.bin sd8686.bin para o diretório /lib/firmware da imagem montada.
gunzip android.img.gz
sudo mkdir-p /mnt/android
sudo mount-o loop android.img /mnt/android
sudo cp zephyr_aspeed.bin zephyr_main.bin sd8686_helper.bin
sd8686.bin /mnt/android/lib/firmware/ (não existe quebra de linha aqui)
… e então desmonte e gzipe novamente a imagem:
sudo umount /mnt/android
gzip android.img
Agora faremos o mesmo com o system.img, nele copiaremos os arquivos zephyr_aspeed.bin zephyr_main.bin sd8686_helper.bin sd8686.bin para o diretório /mnt/android/etc/firmware/ da imagem montada.
sudo mkdir-p /mnt/android
sudo mount system.img-o loop /mnt/android
sudo cp zephyr_aspeed.bin zephyr_main.bin sd8686_helper.bin sd8686.bin
/mnt/android/etc/firmware/ (aqui também não existe quebra de linha)
sudo umount /mnt/android

Enviando o Android para o iPhone via SCP

Agora enviaremos todo o sistema do Android para o diretório /private/var do iPhone:
cd ~/iphonelinux
scp android.img.gz root@192.168.0.105:/private/var/
scp cache.img root@192.168.0.105:/private/var/
scp ramdisk.img root@192.168.0.105:/private/var/
scp system.img root@192.168.0.105:/private/var/
scp userdata.img root@192.168.0.105:/private/var/
scp zImage root@192.168.0.105:/private/var/
Vá até a outra janela de Terminal que está conectada ao iPhone via SSH e digite o seguinte comando:
chmod 755 ramdisk.img system.img userdata.img cache.img android.img.gz zImage
Neste momento você acaba de concluir a instalação do iDroid em seu iPhone.

Verificando a estrutura de arquivos

O Android no iPhone é basicamente o diretório /private/var/firmware contendo os drivers, e as imagens na root da /private/var. Qualquer arquivo a mais em alguma dessas pastas significa novos drivers, emulação de algum hardware como cartão de memória SD, etc. O que não pode é ter arquivos a menos, confira nas imagens abaixo também o tamanho em bytes dos arquivos.


Para iniciar o novo sistema basta desligar o aparelho, ligar e selecionar através do botão Power, o ícone do Android e então pressionar Home.

Método de instalação (automático)

O método automático nada mais é que um shell script que executa todo o procedimento de instalação sem a intervenção do usuário, SUCCA significa Speed Up Custom Creation (of) Android, nós pegamos a última versão deste script, editamos, traduzimos e corrigimos algumas falhas.
Para o perfeito funcionamento de nosso script, você terá que possuir um iPhone com os seguintes requisitos:
- Apple iPhone 2g/3g jailbreaked com redsn0w, pwnagetool ou quickpwn
- Cydia em Hacker mode com os seguintes aplicativos instalados:
  • Open SSH – Openssh para iPhone;
  • IOKit Tools – Conjunto de ferramentas Unix command-line para o iPhone;
  • VI improved – Editor VIm;
  • Core utils – Utilitários Unix para manipulação de shell e arquivos;
  • Apt 0.7 strict – Apt debian tools para iPhone.
  • Mobile terminal – terminal no iPhone que usaremos para dar input nos comandos.
- Um ambiente Linux Ubuntu 10.04 preparado:
  1. Copie nosso script ih_succa_2010052600.sh para a pasta de compartilhamento.
  2. Dentro do Linux, vá até a pasta de compartilhamento e mova o arquivo ih_succa_2010052600.sh para ~/iphonedroid (caso a pasta não exista, crie).
  3. Abra um Terminal e digite os seguintes comandos para iniciar o script:
    cd ~/iphonelinux
    ih_succa_2010052600.sh
    (caso tenha erros de permissões tome acesso de root com su root e a senha "infohelp.org")
Aguarde então a finalização de todos processos, o tempo de conclusão depende muito de sua velocidade de conexão.
Veja abaixo todo o output do processo de instalação.
Succa Installer version 2010052600 (modified by infohelp.org )

Verificando pacotes para instalar localmente... [ OK ]
Testando se seu iPhone está conectado... [ OK ]
Testando se o diretório ./succa_installer_files existe... [ OK ]
Testando se o diretório mnt/android existe... [ OK ]
Criando o diretório /private/var/firmware no iPhone... [ OK ]
Verificando pacotes para instalar remotamente...  [ OK ]
Criando zephyr2_cal.bin no iPhone... [ OK ]
Criando zephyr2_proxcal.bin no iPhone... [ OK ]
Localizando por iPhone.mtprops... [ OK ]
Verificando integridade do iPhone.mtprops... [ OK ]
Gerando o zephyr2.bin no iPhone... [ OK ]
Efetuando download do driver de WLAN sd8686.bin em kernel.org... [ OK ]
Efetuando download do driver de WLAN sd8686_helper.bin driver from kernel.org... [ OK ]
Transferindo os drivers de WLAN para o iPhone...[ OK ]
Efetuando download do pacote unofficial do Android (isto pode demorar um pouco)... [ OK ]
Extraindo o pacote do Android... [ OK ]
Efetuando download da zImage já patcheada... [ OK ]
Descompactando a zImage patcheada... [ OK ]
Copiando zImage para o iPhone... [ OK ]
Criando a imagem de emulação do sdcard... [ OK ]
Criando sistema de arquivos na imagem do sdcard... [ OK ]
Efetuando download da libreference-ril.so... [ OK ]
Descompactando a libreference-ril.so... [ OK ]
Montando a imagem de sistema... [ OK ]
Copiando libreference-ril.so para a imagem de sistema... [ OK ]
Desmontando a imagem de sistema... [ OK ]
Removendo os arquivos remotos instalandos anteriormente... [ OK ]
Transferindo arquivos para o iPhone... [ OK ]
Setando as permissões dos arquivos no iPhone... [ OK ]
Editando o arquivo do Openiboot... [ OK ]
Extraindo openiboot... [ OK ]
Concluído!
Neste momento você acaba de concluir a instalação do iDroid em seu iPhone. Para iniciar o novo sistema basta desligar o aparelho, ligar e selecionar através do botão Power, o ícone do Android e então pressionar Home para iniciar o novo sistema.