Contatos

e-mail: daniloxc@msn.com

Skype: Daniloxc1

Pages

terça-feira, 1 de outubro de 2013

Projeto de Controlador para um Sistema de Nível

Os sistemas de controle de nível são um dos mais utilizados nas industrias, laboratórios, ambiente acadêmico etc. De modo a internalizar conceitos relativos a física, controle de processos, projeto de microcontroladores, eletrônica etc, este tipo de sistema é inter e multidisciplinar. Pois, além de necessitar de conhecimentos físicos dos processos, os profissionais da área de automação e controle precisará de conhecimentos na área de eletrônica e programação e terá de saber como linkar tais conceitos. Nesta postagem, utilizando o software Simulink-Matlab, irei elaborar uma modelagem de um sistema de controle de nível simples e projetar um controlador PID para este sistema. Primeiramente, iremos fazer a modelagem matemática do sistema de nível.

Percebemos então que o sistema é composto de um reservatório de água (Tanque) e uma bomba. 
O reservatório tem uma entrada (através da bomba) e uma saída (através de um orifício no fundo do tanque). Note que, podemos controlar o nível do tanque, e consequentemente, a vazão de saída através da vazão de entrada que será fornecida pela bomba dágua. 
Então teremos:
  1. Vazão de Entrada - Variável manipulada
  2. Nível do tanque - Variável controlada
Abaixo, temos uma forma mais simples para chegarmos até a equação diferencial que representará este sistema:
Onde:
qi1 - Vazão de entrada
q1 - Vazão de saída
R1 - Resistência à vazão de entrada (Onde a bomba atuará)
R2 - Resistência à vazao de saída
A1 - Área do tanque - Como a área não varia de acordo a altura, A1 será a capacitância
h1 - Nível do tanque

Resistência será a relação entre Variação na diferença de nível sobre a variação do fluxo de líquido. A resistência nos dará a relação de quanto de líquido que teremos que acumular para que a vazão de saída aumente em uma unidade.

Capacitância nos dará a relação de quanto o tanque é capaz de armazenar.

A equação ficará da seguinte maneira:

A1.h1'(t) = (dH - h1)/R1 - h1/R2

Ou seja, a variação do nível do recipiente será dado pela vazão de entrada menos a vazão de saída.
Perceba que o primeiro termo da equação é qi1 e o segundo é q1.

Modelando no simulink teremos:

Perceba que temos 1 integrador no sistema, devido a este ser caracterizado como sistema de primeira ordem.
Agora aplicarei algumas entradas através do bloco step, apenas modificando a amplitude para observamos como se comporta a saída (scope). Não podemos esquecer de atribuir valores para as variáveis Rin, Rout e At.

Ao aplicarmos uma entrada em degrau com amplitude 1, temos este resultado:
Percebemos então que a saída não consegue acompanhar a entrada.
Apliquemos agora um degrau com amplitude 8.
Perceba que ele se estabiliza, porém não no valor desejado que seria 8.
Notamos que o sistema necessita de um controlador.
Introduzirmos o controlador PID no sistema:

E agora vamos sintonizá-lo com sistema de nível:

Agora, nós poderemos utilizar os parâmetros do controlador PID para satisfazer nossa necessidade. Um controlador P.I.D. é constituído de:
P - Proporcional: Quanto maior for a diferença entre o Setpoint e o que o sistema estará retornando, maior será a resposta para a correção deste erro, ou seja é uma resposta proporcional.
I - Integral: Existem erros que permanecem no estado estacionário de sistemas, estes são chamados de erros estáticos. A parcela integral do controlador serve para sanar tal problema, eliminando assim o erro no estado estacionário. 
D - Derivativo: Esta parcela consegue prever o comportamento da resposta do controlador, fazendo com que ele tome ações prevendo o que irá acontecer posteriormente, esta parcela trabalha com a derivada, ou seja, saberemos qual será o coeficiente angular da reta tangente à todos pontos da curva de resposta ao erro e assim, poderemos predizer comportamentos.

Nota: É importante salientar que as parcelas I e D, puramente não conseguem realizar o controle de um sistema, sendo assim, sempre necessária a parcela P.

Após pressionarmos o botão tune, aparecerá esta tela interativa, você poderá escolher o tempo de resposta para o sistema. Note que, sempre que ganhamos em uma característica perderemos em outra, portanto é de suma importância sabermos qual as necessidades reais do sistema, para projetarmos corretamente o controlador.



Após tudo configurado, a resposta do sistema será a seguinte:


O sistema responde satisfatoriamente.








sexta-feira, 6 de setembro de 2013

Python + Simulino (Simulador do Arduino) no ISIS Proteus



Olá, hoje nós iremos fazer uma comunicação entre o IDLE do Python 2.7.
Para comunicarmos com a porta serial através do Python, é preciso baixar a biblioteca serial.py, segue o link:
https://pypi.python.org/pypi/pyserial
Descompacte na pasta do python, localize a pasta através do prompt de comando e digite:
python setup.py install

Para testar se foi instalado corretamente basta abrirmos a o python no prompt do DOS, digitando python e depois import serial. (Veja abaixo)
Se não apresentar nenhuma mensagem de erro, a instalação foi feita corretamente.

Segue abaixo o circuito feito no proteus:
O Simulino do Arduino Uno você encontrará em: http://blogembarcado.blogspot.com.br
Temos que fazer algumas configurações no componente COMPIM, utilizar largura de banda:9600 e a porta COM1 (estou usando a COM 1 aqui para o Simulino e COM 2 para o objeto Serial do Python)
Para fazer esta ligação entre Python e Simulino, precisamos de um software que gere portas COM virtuais.
Utilizaremos o Virtual Serial Port Emulator (link: http://www.baixaki.com.br/download/free-virtual-serial-ports-emulator.htm)

Após instalá-lo, geramos as portas virtuais:

Escolha 'pair' para fazer com que tudo que aconteça numa porta ocorra na outra, aqui estou a utilizar COM1 e COM2.
Vídeo:


Código feito para o Arduino:
 int led_biby = 13;  
 int led_blue = 12;  
 int led_yellow = 11;  
 int led_red = 10;  
 char var;  
 void setup(){  
  pinMode(led_biby, OUTPUT);  
  pinMode(led_blue, OUTPUT);  
  pinMode(led_yellow, OUTPUT);  
  pinMode(led_red, OUTPUT);  
  Serial.begin(9600);  
 }  
 void loop(){  
  digitalWrite(led_biby, LOW);  
  digitalWrite(led_blue, LOW);  
  digitalWrite(led_yellow, LOW);  
  digitalWrite(led_red, LOW);  
  if(Serial.available()>0){  
   var = Serial.read();  
   switch (var){  
   case 'a':  
    digitalWrite(led_biby, HIGH);  
    Serial.print("Led Biby is on");  
    delay(300);  
    break;  
   case 'b':  
    digitalWrite(led_blue, HIGH);  
    Serial.print("Led Blue is on");  
    delay(300);  
    break;  
   case 'y':  
    digitalWrite(led_yellow, HIGH);  
    Serial.print("Led Yellow is on");  
    delay(300);  
    break;  
   case 'r':  
    digitalWrite(led_red, HIGH);  
    Serial.print("Led Red is on");  
    delay(300);  
    break;  
   default:  
    break;  
   }  
  }  
 }  
Código feito no Python:
 #importa a biblioteca serial encontrada no endereço: https://pypi.python.org/pypi/pyserial  
 import serial  
 #cria-se um objeto com o nome arduino que se comunicará com o proteus  
 arduino_uno = serial.Serial()  
 #define qual porta COM arduino será conectado (Estou utilizando windows)  
 arduino_uno.port = 1  
 #define qual o timeout para comunicação entre o idle do python e o simulino  
 arduino_uno.timeout = 2  
 #começa a comunicação  
 arduino_uno.open()  
 ligar_led='e'  
 #loop para comunicação  
 while(ligar_led!='s'):  
   ligar_led = raw_input('Informe qual led queres ligar (a, b, y ou r) para sair informe s: ')  
   arduino_uno.write(ligar_led)  
   print(arduino_uno.readall()+'\n\n')  
 #fecha comunicaçao  
 arduino_uno.close()  

segunda-feira, 15 de julho de 2013

Modelagem de Churrasqueira - Sketchup

SketchUp é um software proprietário para a criação de modelos em 3D no computador. Foi originalmente desenvolvido pela At Last Software(@last software), uma empresa estadunidense com sede em BoulderColorado, a qual foi adquirida pela Google, como anunciado a 14 de Março de 2006. Em 2012 Trimble Navigation adquiriu o programa. O SketchUp está disponível em duas versões: a versão profissional, Pro, e a versão gratuita, Make, (para uso privado, não comercial). No site em inglês do SketchUp, você encontra para download a versão 2013 em inglês do software.
(Wikipédia)

O Sketchup é um software de fácil manuseio para se fazer modelagens 3D dos mais diversos tipos.

Muito útil quando se tem que fazer apresentações
Utilizando deste software fiz a modelagem de uma churrasqueira, seguem as imagens:



Gastando pouco tempo (Menos de 30 mins), modelei esta churrasqueira.


sexta-feira, 12 de julho de 2013

Programa de geração de quadrados mágicos com função recursiva

Anteriormente postei um programa feito em C, em que gerava quadrados mágicos de ordem [3x3].
Utilizando a linguagem de programação Python, através de uma função recursiva para geração de todas as combinações possíveis de números, consegui fazer um programa onde é possível a geração de quaisquer quadrado mágico. Porém, requer mais tempo. Segue o código
 from math import sqrt  
 """Esta função verifica se todos os termos do vetor são únicos"""  
 def unico(vet):  
      cont=0  
      uni=True  
      for each_term in vet:  
           for this_term in vet:  
                if each_term==this_term:  
                     cont+=1  
                     if(cont>1):  
                          uni=False  
           cont=0  
      return uni  
 """Esta é a função para comparar linhas, colunas e diagonais do quadrado mágico  
 Ela exige a passagem de um vetor como parâmetro. Obs.: 'Esta função somente funciona com vetores os quais sua ordem tenham raizes quadradas exatas"""  
 def compare(vet):  
      ordem=int(sqrt(len(vet)))  
      somas=[]  
      somas2=[]  
      somas3=[0]  
      somas4=[0]  
      magicSquare=False  
      acm=0  
      i=0  
      for each_term in vet:  
           acm+=each_term  
           if ((vet.index(each_term)+1)%ordem==0):  
                somas.append(acm)  
                acm=0  
      acm=0  
      for each_index in range(0,ordem):  
           somas2.append(0)  
      for each_term in vet:  
           somas2[i]+=each_term  
           i+=1  
           if i==ordem:  
                i=0  
      for inx in range(0,ordem):  
           somas3[0]+=vet[inx*(ordem+1)]  
           somas4[0]+=vet[(len(vet)-1)-(1+inx)*(ordem-1)]  
      somas=set(somas)  
      somas2=set(somas2)  
      somas3=set(somas3)  
      somas4=set(somas4)  
      if (somas==somas2==somas3==somas4):  
           magicSquare=True  
      return magicSquare  
 """Esta função gera todas as combinações possíveis de acordo a ordem passada do vetor  
 Exemplo merge(vet, len(vet), len(vet)-1)"""  
 def merge (vet, tam, it):  
   quad=[]  
   if it>0:  
     for each_term in vet:  
       merge(vet, tam, it-1)  
       vet[it]+=1  
     vet[it]=1  
   else:  
     for each_term in vet:  
       if(unico(vet)):  
         if compare(vet):  
           quad.append(vet)     
       print(vet)  
       vet[it]+=1  
     vet[it]=1  
   return quad  
 vet=[1 for each_term in range(1,10)]  
 print(merge(vet, len(vet), len(vet)-1))  
ShotScreen do programa em funcionamento

segunda-feira, 20 de maio de 2013

Programa de Controle - Sumô de Robô | Medusa Software

Segue explicações e regras para a confecção de um robô de sumô
http://www.area1.edu.br/_media/textos/2832013164658.pdf

Para a construção da parte física do Robô Medusa utilizamos placas de zinco, a estrutura física foi concebida por meu colega Leandro Leal.
* Motores de vidro elétrico da Bosch.
* Baterias de lítio de 12V, 2200mAH.
* Placa microcontroladora Arduino Uno, baseada no Microcontrolador ATmega328

http://arduino.cc/en/Main/arduinoBoardUno
* Sensores Infravermelhos (Utilizados para 'enxergar' a borda)
* Sensor Ultrassônico para enxergar o oponente.




Segue o programa de controle do robô.
Note que, quando o programa está em funcionamento, só utilizamos a função delay() quando ele encontra a borda. Isto é feito como medida de sobrevivência.

Porém, não é recomendável utilizar a função de delay() quando necessitamos que um equipamento realize diversas tarefas simultaneamente. Desta forma, utilizamos um conceito conhecido como Multitarefa (Multithread) para que fosse possível que 'ao mesmo tempo' o robô procurasse o oponente e verificasse se teria encontrado a borda.





 /*Este programa foi elaborado para controlar um robô de sumô*/  
 #define borda 2 //definimos que no pino 2 será conectado o sensor de borda  
 #define trigger 13 //definimos que o pino 13 funcionará como trigger do sensor ultrasônico  
 #define echo 7 //definimos o pino 7 como echo do sensor ultrasônico  
 #define motorDir01 6 //definimos que a porta 5 será o bit 1 da ponte H do motor direito (0x)  
 #define motorDir02 5 //definimos que a porta 6 será o bit 2 da ponte H do motor direito (x0)  
 #define motorEsq01 4 //definimos que a porta 3 será o bit 1 da ponte H do motor esquerdo(0x)  
 #define motorEsq02 3 //definimos que a porta 4 será o bit 1 da ponte H do motor esquerdo(x0)  
 //a ponte H funciona da seguinte maneira: (motorDir01,motorDir02,motorEsq01,motorEsq02)  
 // (0,1,0,1) Anda pra frente  
 // (1,0,1,0) Anda pra trás  
 // (0,0,0,0) Parado  
 // (1,1,1,1) Parado, condição não recomendada  
 /*********************Estrutura utilizada para realizar multitarefa ***************************/  
 typedef struct Timer  
 {  
   unsigned long start;//Armazena o tempo de quando foi iniciado o timer  
   unsigned long timeout;//Tempo após o start para o estouro  
 };  
 unsigned long Now ( void )  
 {  
   return millis ( );//Retorna os milisegundos depois do reset  
 }  
 boolean TimerEstorou (struct Timer * timer)  
 {  
   //Verifica se o timer estourou  
   if ( Now () > timer->start + timer->timeout) {  
     return true;  
   }  
   return false;   
 }  
 //após o tempo estourar temos que iniciar o timer com o tempo atual  
 void timerStart(struct Timer * timer){  
   timer->start = Now();  
 }  
 void timerDesloc(struct Timer * timer, unsigned long tempo){  
  timer->start = Now()+tempo;  
 }  
 Timer timerBorda = {0, 10}; //Verifica se achou a borda a cada 10 milisegundos  
 Timer timerAchou = {0, 100}; //verifica se achou o oponente a cada 100 milisegundos  
 Timer timerFrente = {0, 800}; //tempo que o robô passa indo pra frente  
 Timer timerGira = {0, 3243}; //tempo que o robô passa girando  
 Timer timerfinal = {0, 85000};// tempo de 1:30 minutos, final do round  
 boolean sentidoGiro=true; //variável criada para o robô girar hora pra direita, hora pra esquerda  
 /********** Função preparatória ****************/  
 void setup(){  
  // pinos definidos como saída  
  pinMode(motorDir01, OUTPUT);  
  pinMode(motorDir02, OUTPUT);  
  pinMode(motorEsq01, OUTPUT);  
  pinMode(motorEsq02, OUTPUT);  
  pinMode(trigger, OUTPUT);  
  // pinos definidos como entrada  
  pinMode(borda, INPUT);  
  pinMode(echo, INPUT);  
  //chama a função parado e espera 3 segundos antes de começar a luta.  
  parado();  
  delay(5000); //espera de 5 segundos antes do início da partida. Este parâmetro foi alterado para 3000 pois //quando testamos com o delay(5000) o robô ficava 7 segundos parado.  
  timerFrente.start= Now() - timerFrente.timeout; // atrasamos o Start do tempo de ir pra frente de modo ao robô começar a luta indo pra frente.  
  timerGira.start= Now();  
  timerAchou.start= Now();  
 }  
 int i=0;  
 void loop(){  
 if(TimerEstorou(&timerfinal)){  
  while(1)  
   parado();// função a ser chamada no final de cada round. Se o robô continuar andando isso caracteriza punição  
 }  
 if(i=0)  
 {  
  timerStart(&timerBorda);  
  timerStart(&timerGira);  
  timerStart(&timerAchou);  
  i+=1;  
 }  
 if(TimerEstorou(& timerFrente)){  
  andaFrente();  
  timerStart(& timerFrente);  
  //timerStart(& timerGira);  
 }  
 if(TimerEstorou(& timerBorda)){  
  if(!digitalRead(borda)){// verifica se achou a borda -- ver pino nomeado como borda  
   andaTras();  
   delay(1000);//delay de sobrevivência  
   timerStart(& timerFrente);//colocar o timer frente no início de seu ciclo  
   timerDesloc(& timerGira, -timerGira.timeout);// faz com que o robô gire  
   timerStart(& timerAchou);  
  }  
  timerStart(& timerBorda);  
 }  
 //dentro da função achou tem um delay,porém é na casa dos Microssegundos e isso o torna desprezível  
 if(TimerEstorou(& timerAchou)){  
  if(achou()){  
   andaFrente();  
   timerStart(& timerGira);  
  }  
  timerStart(& timerAchou);  
 }  
 if(TimerEstorou(& timerGira)){  
  if(sentidoGiro){  
   giraDireita();  
   sentidoGiro=!sentidoGiro;  
  }  
  else  
  {  
   giraEsquerda();  
   sentidoGiro=!sentidoGiro;  
  }  
  timerStart(& timerGira);  
 }  
 }  
 /********** Funções de movimento ****************/  
 void andaFrente(){  
  digitalWrite(motorDir01, HIGH);  
  digitalWrite(motorDir02, LOW);  
  digitalWrite(motorEsq01, HIGH);  
  digitalWrite(motorEsq02, LOW);  
 }  
 void andaTras(){  
  digitalWrite(motorDir01, LOW);  
  digitalWrite(motorDir02, HIGH);  
  digitalWrite(motorEsq01, LOW);  
  digitalWrite(motorEsq02, HIGH);  
 }  
 void parado(){  
  digitalWrite(motorDir01, LOW);  
  digitalWrite(motorDir02, LOW);  
  digitalWrite(motorEsq01, LOW);  
  digitalWrite(motorEsq02, LOW);  
 }  
 void giraDireita(){  
  digitalWrite(motorDir01, HIGH);  
  digitalWrite(motorDir02, LOW);  
  digitalWrite(motorEsq01, LOW);  
  digitalWrite(motorEsq02, HIGH);  
 }  
 void giraEsquerda(){  
  digitalWrite(motorDir01, LOW);  
  digitalWrite(motorDir02, HIGH);  
  digitalWrite(motorEsq01, HIGH);  
  digitalWrite(motorEsq02, LOW);  
 }  
 /********** Função de busca ****************/  
 float distancia() {  
  float tempo, dist;  
  digitalWrite(trigger, LOW);  
  delayMicroseconds(2);  
  digitalWrite(trigger, HIGH);  
  delayMicroseconds(10);  
  tempo = pulseIn(echo, HIGH);  
  dist = (((tempo/2) * 350)/1000000);  
  dist *= 100;  
  return dist;  
 }  
 boolean achou(){  
  /*if(giro)  
   giraHorario();  
  else  
   giraAnti();*/  
  if (distancia()<55)  
   return true;  
  else  
   return false;  
 }  
Fotos do robô





quinta-feira, 16 de maio de 2013

Autocad - Perspectiva Isométrica

Algumas vezes é necessário fazer desenhos em perspectivas para a melhor implementação de um projeto.
No AutoCAD temos um recurso que facilita o desenho em perspectiva isométrica.
Segue vídeo explicando como utilizar tal recurso.


http://www.youtube.com/watch?v=ODXyYdokdfE

quarta-feira, 15 de maio de 2013

Programa em Arduino para sensor Ultrasom


/*segue código comentado para a utilização do sensor ultrasom HC-SR04

void setup() {
pinMode(13, OUTPUT); // pino 13 seria a saída (Trig). Trigger
pinMode(7, INPUT);// pino 7 será a entrada
Serial.begin(9600); // aqui inicia-se uma comunicação serial com o arduino com taxa de transf. de 9600bps

}
void loop() {
float tempo, dist; //declara-se as variáveis como float...
digitalWrite(13, LOW);// inicialmente o pino trigger vai a nível 0
delayMicroseconds(2); //aguarda-se um delay de 2 microsegundos
digitalWrite(13, HIGH); //e o pino trig vai a nível 1
delayMicroseconds(10);// delay de 10 microsegundos
tempo = pulseIn(7, HIGH); // a função PulseIn retorna o tempo em milisegundos entre o tempo q essa
//função foi chamada e o pino 7 entrar em nível lógico 1.
//Ou seja, o tempo que a onda sonora leva para ir e voltar até o sensor
dist = (((tempo/2) * 350)/1000000);//o tempo será divido por 2 pois contamos a ida e volta
//escolhi a velocidade do som como 350, pois o rsultado para a minha aplicação foi mais satisfatório
dist *= 100;//multiplica-se a distância por 100, pois queremos em centímetros.
//Saídas
Serial.print(tempo);
Serial.print(" microssegundos, ");
Serial.print(dist);
Serial.print(" centimetros");
Serial.println();
delay(500);
}

Imagem do sensor


Lembrem-se que o ground (referência) do arduino deve ser a mesma do sensor.

Até mais.

Será que a ciência seria capaz de responder perguntas existenciais?

Todas as civilizações formadas, dos primórdios até os dias de hoje, fizeram as
perguntas: ‘De onde viemos?’, ‘Pra onde iremos?’, ‘Por que aqui estamos?
E apesar das inúmeras explicações continuamos sem ter as respostas. Este
presente trabalho visa demonstrar que a ciência é, apesar de ser vista, pela
maioria da sociedade atual, como uma vertente do conhecimento humano que
necessita de certa frieza na maneira de lidar com os fenômenos que
acontecem no universo que estamos inseridos, é uma das formas mais belas e
importantes, que o homem encontrou para entender as questões citadas
anteriormente.
Citando Marcelo Gleiser no livro A Dança do Universo:
“Muitos pensam que a pesquisa científica é uma
atividade puramente racional, na qual o objetivismo
lógico é o único mecanismo capaz de gerar
conhecimento. Como resultado, os cientistas são vistos
como insensíveis e limitados, um grupo de pessoas que
corrompe a beleza da Natureza ao analisá-la
matematicamente. Essa generalização, como a maioria
das generalizações, me parece profundamente injusta, já
que ela não incorpora a motivação mais importante do
cientista, o seu fascínio pela Natureza e seus mistérios.”
Quando se está inserido no âmbito da ciência, o indivíduo observa que além de
meras fórmulas, estatísticas e tabelas, existe um ser humano que anseia por
conhecimento profundo sobre a vida e os fenômenos naturais de modo a
conhecê-lo e, conhecendo o mundo, ele atingirá um saber maior sobre si
mesmo, isso é visto claramente na Astrofísica, através dela descobrimos
diversos componentes químicos da Tabela Periódica e ao fazer uma análise
notamos que a proporção dos elementos que compõem o universo, se
encaixam com a proporção dos elementos
(oxigênio, carbono, hidrogênio, nitrogênio) que são importantes para que
aconteça o maior fenômeno de todos, a VIDA.
O ser humano é questionador por natureza, tenta entender como e por que os
fenômenos ocorrem e, sabendo como estes nos afetam, utilizam conceitos
internalizados para modificar a natureza de modo a nos trazer benefícios.
Citando Feynman, no seu livro Feynman Lectures on Physics:
Imagine que o mundo seja algo como uma gigantesca
partida de xadrez sendo disputada pelos deuses, e que
nós fazemos parte da audiência. Não sabemos quais são
as regras do jogo; podemos apenas observar seu
desenrolar. Em princípio, se observarmos por tempo
suficiente, iremos descobrir algumas das regras. As
regras do jogo é o que chamamos de física fundamental.
Ao pesquisarmos o conceito de ciência vemos:
Em sentido amplo e
diversificado, ciência (do latim scientia, traduzido por
"conhecimento") refere-se a qualquer conhecimento ou
prática sistemáticos. Em sentido estrito, ciência refere-se
ao sistema de adquirir conhecimento baseado no método
científico bem como ao corpo organizado de
conhecimento conseguido através de
tais pesquisas.(Wikipédia)
Antes de existir a ciência, como o conhecemos hoje, alguns fenômenos
naturais eram atribuídos a deuses, considerados seres capazes de fazer
modificações na natureza. Fenômenos tais como chuvas fortes, erupções de
vulcões ou qualquer tipo de fenômeno que afetasse os humanos, eram visto
como uma espécie de castigo divino. Porém, os deuses não eram
responsáveis, somente, por esses acontecimentos, também ajudaram o ser
humano a lidar com a morte ou qualquer tipo de conhecimento que ainda não
tínhamos ciência de por que, e como aconteciam. A morte é, até hoje, o maior
medo dos seres humanos, pois dentre os animais é o único que sabe que irá
falecer. Lidar com esse conhecimento levou o homem a transgredir o conceito
de morte, internalizando conhecimentos não-científicos (não necessitam de
provas empíricas, somente de crença), gerando assim as religiões.
• Exemplificando o conhecimento científico (Eletricidade)
Muitos dos conhecimentos adquiridos pelo homem, são obtido através da
observação de fenômenos da natureza, não importando quão pequenos e
estranhos pareçam. Um bom exemplo, da evolução do homem e da ciência é
no contexto da que talvez seja uma das maiores descobertas feita pelo ser
humano, a eletricidade. O primeiro experimento registrado em que se
comprova que há presença das leis da eletrostática foi realizado pelo filósofo
Tales de Mileto, que ao esfregar um âmbar a um pedaço de carne de carneiro,
observou-se que pedaços de palha e fragmentos de madeira começavam a ser
atraídos pelo próprio âmbar. Do âmbar (grego. Élektron) surgiu o nome
eletricidade.
Um pequeno efeito, como a atração de pedaços de alguns materiais, foi o
suficiente para ser estudado por uma legião de cientistas, que a cada nova
experiência obtinha-se um conceito matemático que funcionava para descrever
de forma sistemática como tal fenômeno se comportava. Todavia, é inevitável
ao homem não usar uma nova tecnologia ao seu favor, e com a concretização
do conceito de corrente elétrica, o mundo passou por uma mudança em seus
costumes e seu modo de viver.
Tenhamos uma breve visão de como a sociedade estava situada antes da
descoberta da eletricidade. Pessoas precisavam estar sempre à mão uma fonte
de luminosidade durante a noite, pois contavam somente com a luz do luar e
seus lampiões para iluminar seu caminho. A única maneira de conservar certos
tipos de alimento era cozinhando-os, a carne cozida imersa em banha de
porco, em latões era o único meio de retardar o apodrecimento. Tinha-se a
necessidade de ir periodicamente ao mercado comprar alimentos frescos.
Usava-se ferro a brasa, que tinha uma tampa que era levantada para se
colocar a brasa lá dentro. A vida antigamente não era tão cômoda, pois não
havia as facilidades existentes hoje. A própria evolução dos conceitos elétricos
trouxe novos campos de estudo ao homem, como a eletrônica, que se
tornaram necessárias para suprir o desejo do homem moderno, estar
conectado ao mundo em tempo real, além de realizar tarefas indesejáveis em
menor tempo possível.
A cada nova invenção surgem mais necessidades ocupacionais que imploram
por uma nova invenção. Celulares de ultima geração estão nas prateleiras a
cada mês para alimentar o desejo do homem de consumir compulsivamente
apenas por um desejo de satisfação própria.
• Conclusão
Não há outro modo de chegar-se a uma sociedade em que seja possível
realmente entender a mente e a alma humana, se não tivermos paixão em
descobrir conceitos novos, se não soubermos lidar com dúvidas ou se não
montarmos um modelo sistemático capaz de analisar o mundo e seus eventos
de forma minuciosa a fim de captar informações úteis para este objetivo. E, no
que concerne a alguma vertente que seja capaz de realizar este feito, a ciência
é o melhor caminho.
Porém, o ser humano tem limitações de conhecimento, somente estudamos o
que nós percebemos. Dificilmente, o ser humano será capaz de entender as
grandes perguntas, pois estamos inseridos numa realidade a qual não temos
capacidade de transgredir. Podemos fazer predições, previsões, estudos etc.,
porém, isso não é ruim, pois é isso que faz-nos pensar. Saber lidar com
incertezas, e continuar nesta busca incessante pelo conhecimento, é o que nos
mantém como a raça predominante e ativa no mundo.
Apesar de notarmos que a ciência é uma forte arma para o desenvolvimento
intelectual e pessoal do indivíduo, e da sociedade como um todo, nós
facilmente notamos que a aceleração de processos industriais, das resoluções
de problemas e suprimento necessidades do homem moderno, molda uma
sociedade com pessoas cada vez menos altruístas, solidárias etc..
Como diz George Orwell (Pseudônimo de Eric Arthur Blair), no seu livro 1984:
“...expressa-se um sentimento de desespero acerca do
futuro do homem, e a advertência é que, a menos que o
curso da história se altere, os homens do mundo inteiro
perderão suas qualidades mais humanas, torna-se-ão
autômatos, sem alma e nem sequer terão consciência
disso.”
Porém, note que, este comportamento não é concebido por causa da evolução
da ciência, pois, as maiores descobertas feitas pelo homem foram descobertas
de cunho meramente científico, de modo a satisfazer a curiosidade, e não a
necessidade, esta (a necessidade) é criada posteriormente.


REFERÊNCIAS BIBLIOGRÁFICAS
ORWELL, George. 1984, Editora Schwarcz. 2012.
http://www.escolakids.com/eletricidade.htm, acessado em 15/03/2013
http://saibahistoria.blogspot.com.br/2010/11/o-jeito-brasileiro-de-viver-antesda.
html, acessado em 15/03/2013
http://www.mundociencia.com.br/fisica/eletricidade/historiaeletricidade.htm
acessado em 15/03/2013
GLEISER, Marcelo. A dança do Universo (Dos mitos de criação ao Big Bang).
Editora Schwarcz. 1997.