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

sexta-feira, 2 de outubro de 2015

Licença Creative Commons
O trabalho Computação Criativa de Arthur Moisés da Costa Borges está licenciado com uma Licença Creative Commons - Atribuição-NãoComercial-SemDerivações 4.0 Internacional.
Baseado no trabalho disponível em https://drive.google.com/file/d/0B-MeTGapZeLOT3F1dWdyc1k4OGc/view?usp=sharing.
Podem estar disponíveis autorizações adicionais às concedidas no âmbito desta licença em comp.criativa@gmail.com.

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!