O céu não é o limite

“De onde viemos? Aonde vamos? Viajemos e compreendamos nosso destino (…) Na era dos computadores, temos mais idéias e sonhos. Agora estamos diante do desafio do amanhã. Com o aumento do conhecimento e da tecnologia, nós mudamos nossas vidas e nossos mundos.
Dos confins do espaço às profundezas do mar, nós construímos numa vasta rede eletrônica (…)”

Pierre Badin, teórico

terça-feira, 29 de novembro de 2011

Solar Seeker - Código Arduino

#include // Inclui a biblioteca com as funções de servo motor
Servo ServoV; // cria o objeto ServoV para controlar o servo
int a1 = 0; // Atribui a porta analógica A0 à variável a1
int a2 = 1; // Atribui a porta analógica A1 à variável a2
int a3 = 2; // Atribui a porta analógica A2 à variável a3
int a4 = 3; // Atribui a porta analógica A3 à variável a4

int sensor1, sensor2, sensor3, sensor4, cima, baixo; // Crias as variáveis do tipo inteiro sensor1, sensor2, sensor3, sensor4, cima e baixo.

int i=90; // Cria a variável inteira "i" e atribui a ela o valor de 90. Essa será a posição inicial do servo.

void setup() // Esta função só inicia no começo do programa
{
ServoV.attach(9); // Atribui o pino 9 ao objeto ServoV, isso significa que o pino de controle do servo deverá ser conectato à porta 9 do Arduino.
Serial.begin(9600); // Começa a comunicação serial com 9600 bps de velocidade. É usada para verificar se os valores dos sensores estão corretos
}
void loop() // Essa função é executada infinitamente
{
sensor1 = analogRead(a1)/2; // sensor1 vale o a metade do valor captado pelo Sensor 1 da placa
sensor2 = analogRead(a2)/2; // sensor2 vale o a metade do valor captado pelo Sensor 2 da placa
sensor3 = analogRead(a3)/2; // sensor3 vale o a metade do valor captado pelo Sensor 3 da placa
sensor4 = analogRead(a4)/2; // sensor4 vale o a metade do valor captado pelo Sensor 4 da placa
cima = (sensor1+sensor2)/2; // Variável cima é a média dos sensores 1 e 2 (parte de cima da placa)
baixo = (sensor3+sensor4)/2; // Variável baixo é a média dos sensores 3 e 4 (parte de baixo da placa)
// Aqui começa a lógica do sistema
if (cima > baixo) // Se a luz incidir mais nos sensores de cima do que de baixo
{
i--; // i diminui em 1 grau
ServoV.write(i); // O servo gira para cima 1 grau
delay(100); // Espera 0,1 segundo
if(i<=10) // Se o ângulo for igual ou menor que 10 graus
{
i=10; // Limita o ângulo sempre em 10 graus
}
}
else if (cima < baixo) // Se a luz incidir mais nos sensores de baixo do que de cima
{
i++; // i aumenta em 1 grau
ServoV.write(i); // O servo gira para baixo 1 grau
delay(100); // Espera 0,1 segundo
if(i>=170) // Se o ângulo for igual ou maior que 170 graus
{
i=170; // Limita o ângulo sempre em 170 graus
}
}
else // Caso contrário não faz nada
{
}
Serial.println("Baixo: "); // Escreve "Baixo: " na tela serial
Serial.print(baixo); // Escreve o valor da variável baixo na tela serial
Serial.println("Cima: "); // Escreve "Cima: " na tela serial
Serial.print(cima); // Escreve o valor da variável baixo na tela serial
}

Código Arduino - Solar Seeker

quarta-feira, 30 de março de 2011

Motorola Atrix - o superphone que virará conceito



Lançado em fevereiro deste ano, "o mais poderoso smartphone do mundo", segundo sua fabricante, Motorola, parece estar deixando todos os aficcionados em tecnologia móvel de queixo no chão.

Com um "currículo" invejável - eleito o vencedor da categoria 'smartphone' na CES 2011 - e especificações que fazem dois iPhones 4 juntos comerem poeira, o Atrix não veio só para impressionar, mas sim para revolucionar. Suas especificações são realmente surpreendentes, e dentre as várias, destaco:

- Display qHD (quarter HD) de 4 polegadas com resolução de 960x540 pixels;
- Chipset Tegra 2, com um processador de dois núcleos ARM Cortex-A9 de 1GHz;
- Memória RAM de 1GB;
- Memória Flash interna de 16GB, expansível para 48GB com cartão de memória microSD;
- Reprodução de vídeos em 1080p com saída HDMI.

Até aí, nada de revolucionário. Apenas uma evolução em termos de processamento, memória e resolução em comparação a um Milestone 2, por exemplo. A comparação com o iPhone 4 também evidencia alguns avanços.

O que vai fazer você querer trocar qualquer smartphone pelo Atrix é o novo dock lançado para o mesmo. O lapdock:


O lapdock consiste em uma estrutura com o formato de notebook, com as seguintes especificações:

- Tela de 11,6 polegadas com 1378x768 pixels;
- Caixas de som;
- 2 entradas USB;
- Bateria interna;

Ao inserir o Atrix em seu lapdock, o smartphone assume a função de CPU deste conjunto, possibilitando o uso do celular como computador. O usuário pode até navegar pela internet usando o Firefox!

Esse 'combo' é bastante útil para aqueles que fazem todas as suas tarefas nas "nuvens" e acham o custo de um netbook proibitivo, além de superdimensionado. Com este conjunto Atrix + Lapdock, basta levar o smartphone no bolso e o lapdock na mochila, que pesa menos de 1,1 kg.

Vale ressaltar que apesar do Lapdock/Atrix ser bastante potente, o sistema Android não roda programas convencionais como Word, Excel e AutoCAD. Mas é um conceito interessante, que pode evoluir e possibilitar o contorno destes problemas no futuro. Ainda mais com o lançamento do Google Chrome OS, com a promessa de armazenar tudo na 'nuvem'.


quinta-feira, 13 de janeiro de 2011

Sou uma pessoa honesta! =D

Resultado: 24 pontos

Você é o que se pode chamar de pessoa super-honesta. Seus princípios éticos são a toda prova, e nada poderá alterar a sua conduta, irrepreensível. Você é uma pessoa tão honesta que seria capaz de sacrificar-se para ajudar aos demais. Seus desapego às coisas materiais é muito grande e, por isso, você nunca dá importância ao dinheiro e outros bens; para você o importante é a sinceridade, a honestidade e o reto proceder. Pode estar certo (a) de que você é uma pessoa rara, uma espécie em extinção.

Teste Seu Grau de Honestidade

Oferecimento: InterNey.Net

segunda-feira, 10 de janeiro de 2011

Sketch do Arduino para o Ecolux

E aí gente, tranquilos?

Foi trabalhosos fazer esse código, e no fim ainda tive um problema com o delay, mas agora está tudo resolvido:

Segue então a sketch do Arduino para o Ecolux: (com comentários)

long fotoPeriodo = 8; // tempo de iluminação diária das plantas dado em horas (ALTERAR SOMENTE ESSA VARIÁVEL!!)
long fotoPeriodoMs = 0; // declaração da variável que armazena o foto período em milissegundos
int vermelho1 = 9; // primeira coluna de 5 leds vermelhos deverá ser plugada no pino 9
int azul = 10; // coluna de 5 leds azuis deverá ser plugada no pino 10
int vermelho2 = 11; // segunda coluna de 5 leds vermelhos deverá ser plugada no pino 11
int intensidade = 0; /* Informar valores entre 0 e 255 para controlar intensidade dos LEDs.
SE FOR USAR INTENSIDADE, DESABILITAR
(COMO COMENTÁRIO) AS PARTES 1,3,5 E HABILITAR AS PARTES 2,4,6. */


void setup ()

{
pinMode(vermelho1, OUTPUT); // pino 9 declarado como saída
pinMode(azul, OUTPUT); // pino 10 declarado como saída
pinMode(vermelho2, OUTPUT); // pino 11 declarado como saída
fotoPeriodoMs = fotoPeriodo * 3600000; // cálculo do fotoPeriodo em milissegundos
}

void loop()
{
digitalWrite(vermelho1, HIGH); // acende a primeira coluna de leds vermelhos (PARTE 1)
//analogWrite(vermelho1, intensidade); // Para uso de intensidade (PARTE 2)
digitalWrite(azul, HIGH); // acende a coluna de leds azuis (PARTE 3)
//analogWrite(azul, intensidade); // Para uso de intensidade (PARTE 4)
digitalWrite(vermelho2, HIGH); // acende a segunda coluna de leds vermelhos (PARTE 5)
//analogWrite(vermelho2, intensidade); // Para uso de intensidade (PARTE 6)
delay(fotoPeriodo * 3600000); // espera o período de iluminação
digitalWrite(vermelho1, LOW); // apaga a primeira coluna de leds vermelhos
digitalWrite(azul, LOW); // apaga a primeira coluna de leds vermelhos
digitalWrite(vermelho2, LOW); // apaga a primeira coluna de leds vermelhos
delay(86400000 - fotoPeriodoMs); // espera o período sem iluminação

}


PS: Considerar comentários de uma linha mesmo no caso em que passarem para outra linha (isso aconteceu devido à formatação do blog)


É isso! No próximo post mostrarei fotos de um protótipo em funcionamento, e se funcionar, farei um vídeo e colocarei no youtube.

Até mais!

terça-feira, 4 de janeiro de 2011

Circuito de Controle dos LEDs





E ae gente, tranquilos?

Hoje falarei sobre o circuito de controle dos LEDs.

Fiz um esquema bem básico, apenas com o Arduino (que será a plataforma de computador físico para o desenvolvimento desse experimento) e a protoboard para controle dos LEDs. A placa conta com 3 transistores, que serão acionados pelo Arduino. Creio eu que será possível dimerizar os LEDs pelos transistores, por isso conectei as portas de PWM do arduino ao gate de cada transistor.

Usarei o Arduino devido à facilidade em programar e conectar os componentes.

Neste experimento, seria necessário a implementação de um termômetro digital para verificar se a quantidade de graus-dia é viável para a realização do experimento. Porém, neste primeiro momento não o usuarei.

Segue a imagem do esquema na protoboard. (O programa usado para este esboço foi o Fritzing, e pode ser baixado gratuitamente aqui : http://fritzing.org/download/ )

Esboço na Protoboard

Só algumas considerações:

  • No esboço, usei a mesma quantidade de LEDs a ser usada no projeto final: 10 vermelhos e 5 azuis, exatamente na sequência (1 fileira de LEDs vermelhos, 1 fileira de LEDs azuis e por fim, 1 fileira de LEDs vermelhos)
  • Não puxei a energia (pinos 5V e GND) direto da placa Arduino pois como a corrente total será da ordem de 300mA para garantir o brilho máximo, o Arduino a limitaria em no máximo 40mA, prejudicando o fim do projeto. Nesse caso, usei um conjunto de duas pilhas em série para fornecer 3V. Porém, usando reguladores de tensão e/ou resistores, podemos usar até fontes externas. No experimento real, usarei uma fonte de computador ATX (pino de +5V e GND)
  • Veja que os pinos que acionam os transistores são os 9,10 e 11 da placa Arduino. Fiz isso porque quero testar o recurso PWM para dimerizar os LEDs.
Segue agora o esquemático elétrico :


Esquemático elétrico
Pronto. Observando o esquemático elétrico fica mais fácil caso alguém queira reproduzir o circuito.

No próximo post falarei sobre a programação simplificada deste experimento usando o Arduino.

Até mais!


segunda-feira, 3 de janeiro de 2011

Esboço da Caixa

Segue abaixo um esboço da caixa:

(clique na imagem para ampliar)

O desenho está bastante simplificado. Nele não consta a espessura das paredes da caixa, nem como serão afixados as placas de lâmpadas LED na parte superior.

A que eu irei mandar fabricar terá 50cm de largura, 40cm de altura e 20 cm de profundidade. Provavelmente a tampa deslizará como aqueles estojos de lápis de cor de madeira. A espessura da caixa terá cerca de 0,6cm - 1cm.

Como se consistirá de apenas um modelo, um protótipo por assim dizer, prenderei as placas de LED na caixa usando arames. Colocarei também tampas dos dois lados da caixa para que se despreze a necessidade de usar ventoinhas neste primeiro momento.

Poderei usar acrílico em vez de madeira, dependendo do custo/benefício. Talvez seja até melhor, visto que é transparente e não mofa. Porém no caso do acrílico, terei de indicar os furos para passagem de arame, facilitando minha vida.

Hoje conversei com um Engenheiro Agrônomo aqui do trabalho e ele me informou sobre várias variáveis a se considerar no experimento. Irei citar algumas delas:

Graus-dia da planta: Variação de temperatura requerida pela planta no decorrer do dia. É medida considerando a diferença entre a máxima e a mínima temperatura do ambiente. A variável "graus-dia" do feijão é 10º.

Fotoperíodo: Quantidade de horas exposição à iluminação que a planta deve receber diariamente. Para o feijão, este valor é de 8 a 10 horas. Algumas flores européias tem fotoperíodo superior à 12 horas (fotoperíodo médio no Brasil).

Substrato: Algumas plantas, como a soja, necessitam de um substrato (terra + fertilizante) para crescerem.

No próximo post falarei sobre o circuito elétrico para alimentar os LEDs. Conversando com o engenheiro agrônomo, vi que não é necessário o uso de ventoinha. Basta que as plantas sejam bem arejadas. (Por isso a necessidade de deixar as duas tampas abertas para facilitar a circulação de ar.)