thegoodfellas/blogset-br huggingface dataset:
registradores ADCL e ADCH, utilizando todos os 10 bits de resolucao, de 0 a 1023. Se ligassemos esse bit ADLAR, o resultado viria apenas no registrador de dados ADCH, com definicao de apenas 8 bits, ou seja, de 0 a 255.Finalmente ativamos o comparador do ADC para iniciar as amostragens, ligando o bit ADSC do registrador ADCSRA. Isso inicia o processo de leitura e amostragem da porta analogica configurada. Quando o circuito ADC termina esse processo ele configura o bit ADIF, portanto usamos a funcao loop_until_bit_is_set() para ficar em loop ate que esse bit seja ativado.Repare que nao utilizamos a configuracao de interrupcao pelo bit ADIE, pois nao existe necessidade. Aqui apenas esperamos terminar o processo e fazemos a leitura dos registradores de controle.A utilizacao dessa funcao pode ser vista no codigo abaixo:Repare tambem que utilizamos a Serial, que aprendemos no outro post, e apenas imprimimos o valor de todas as portas analogicas.O resultado da execucao desse codigo pode ser visto no Monitor da Serial, conforme imagem abaixo:O codigo completo pode ser baixado clicando aqui!Ate o proximo artigo pessoal!
e IP do Gateway na funcao WiFi.config().Continuando a funcao setup() do ESP8266 vemos os detalhes finais:1) Apresentamos os dados do roteador em que o ESP8266 conectou.2) Aqui mostramos a configuracao da funcao de chamada do metodo GET do formulario de configuracao3) E a configuracao da chamada do metodo POST.A instrucao final do setup() e a chamada da funcao server.begin() que inicia o servidor. E isso pessoal! Baixem o codigo completo aqui.Ate o proximo artigo!Abracos,Renato Aloi
Acabei de ver um consultor da Globonews falando bobagem na TV, respondendo perguntas. A primeira pergunta que ele respondeu foi:Qual a diferenca entre limite de velocidade e limite de dados?O que o consultor da Globo respondeu foi uma bobagem tao grande que nao consigo repetir aqui, entao vamos entender isso!O limite de velocidade e na verdade a capacidade contratada da sua Internet, ou seja, 1Mbps ou 10Mbps, ou 100Mbps etc.O limite de dados e a quantidade de dados que voce consome em um periodo. Por exemplo, um episodio de serie costuma ter de 300MB a 700MB.Ahh, mas qual a diferenca entre MB e Mbps? Ja vamos entender isso. Mas antes vamos imaginar que voce alugue um apartamento. Qual a sua franquia de uso do apartamento?Voce deve poder ficar dentro do apartamento todos os 30 dias do mes, por todas as 24 horas de cada dia, por todos os 60 minutos de cada hora e por todos os 60 segundos de cada minuto, certo?Ou seja, limitar o uso do apartamento seria o mesmo que limitar os dados de uma internet fixa.Seria o mesmo que voce pagar um aluguel, por exemplo, para usar o apartamento desde que voce nao fique mais de 10 dias dentro dele! Se voce quiser ficar mais que 10 dias, teria que pagar a mais!Isso que estao querendo fazer com a nossa Internet! Vejamos, o que seriam 30 dias em segundos?Estamos falando de 30d x 24h x 60m x 60s = 2.529.00 (dois milhoes, quinhentos e noventa e dois mil ). Ou seja, em 30 dias temos mais de 2,5 milhoes de segundos.Vamos imaginar agora que temos uma Internet de 10Mbps (Milhoes de bits por segundo). Sendo assim podemos baixar 10 milhoes de bits por segundo. Mas o calculo do tamanho de arquivos e feito em bytes e nao em bits. Entao temos que dividir esse valor por 8 (que e o tamanho de 1 byte, em bits).Temos entao 1.250.000 (um milhao, duzentos e cinquenta mil) bytes que podemos baixar por segundo em nossa Internet de 10Mbps.Continuando, temos que 1.250.000 bytes sao 1,19MB de dados (calculando 1.250.000 dividido por 1024 e dividido de novo por 1024).Ahhh, entao se alguem me ligar oferecendo 2GB por mes de franquia de dados e bastante ne?Nao e nao! Faca as contas! Se voce consegue baixar 1,19MB por segundo e o mes tem mais de 2,5 milhoes de segundos, entao sua franquia total e de mais ou menos 3 MIL Gigabytes por mes!!!Se alguem disser pra voce que 2GB por mes e muito pra voce baixar o que voce quiser, voce entao responde:Mas minha franquia atual e de 3 mil GB por mes! Ou seja, 2,8 Terabytes por mes! O que voce esta me oferecendo nao e nem 0,1% da franquia que tenho agora!?Espero que tenha ajudado quem tem duvidas nesse assunto, pois e realmente complicado entender os calculos de bits por segundos e entender quantos Gigabytes podemos baixar por mes.Entao nao se engane, se voce tem uma Internet de 10 Megabits por segundo, (Mbps) voce pode baixar ate 3 mil Gigabytes por mes.E 10Mbps
(Megabits por segundo) e limite de velocidade, ou seja a capacidade que a rede de Internet que voce contratou tem de baixar dados por segundo.Ja 10MB (Megabytes) e um tamanho de dados, que representa 80 milhoes de bits!Nao confunda Mbps com MB, que seria o mesmo que confundir 60Km/h (que e uma medida de velocidade) com 60Km (que e uma medida de distancia).Abracos,Renato Aloi
Esse lugar chama Web Server, ou seja "Servidor Web".No caso do Facebook, as paginas ficam hospedadas em um servidor gigantesco. Ja no nosso caso o ESP8266 pode se conectar em uma rede sem fio (WiFi) e operar como um Servidor Web pequeno.Para isso basta usar o codigo basico que vamos ver agora e configurar os dados da rede sem fio. E bem simples, vamos ver a primeira parte do codigo:No codigo acima vemos alguns includes, algumas declaracoes e uma funcao chamada "handleRoot".Nas duas primeiras linhas temos os includes das bibliotecas necessarias que sao a "ESP8266WiFi.h" com funcoes para auxiliar na conexao da rede sem fio. E temos tambem a biblioteca "ESP8266WebServer.h" que possui as funcoes para hospedar paginas Web.Na terceira linha, temos a declaracao do ESP8266WebServer e entre parentesis a porta 80 que e a padrao da Web.A partir da quarta linha temos uma funcao chamada handleRoot() que sera executada toda vez que o endereco raiz do ESP8266 for acessado pelo navegador. Veremos como o ESP8266 sabe que precisa chamar essa funcao, em breve.Dentro dessa funcao temos a declaracao de uma variavel do tipo "String" chamada "html". Nessa string colocamos todo nosso codigo HTML que sera exibido ao carregarmos a pagina inicial do ESP8266.Depois de preencher todo valor do HTML na variavel, chamamos a funcao server.send(), passando os parametros de codigo de retorno (200 significa retorno OK), o tipo do retorno (text/html significa que retornaremos dados do tipo texto na formatacao HTML), e a variavel "html" que contem o conteudo da pagina.Pronto, isso e o necessario para responder a uma chamada de pagina principal quando acessamos o ESP8266 no endereco raiz.Vamos ver agora como configuramos a rede e as configuracoes para isso funcionar.Na imagem acima podemos ver que nesse codigo tambem temos a funcao setup(), que e bem conhecida para quem programa em Arduino. Afinal de contas esse e um codigo Arduino, que sera compilado e carregado pelo Arduino IDE, entao isso facilita bastante as coisas pra quem ja programa nessa linguagem.Na funcao setup() declaramos o inicio da Serial atraves da funcao Serial.begin(), com o valor 9600 que e um valor comum de velocidade da Serial. Voce pode usar aqui outras velocidades como 115200 etc.Igualmente precisamos chamar a funcao WiFi.begin() para iniciar a rede sem fio do ESP8266, mas nesse caso passamos duas configuracoes que sao: o "nome da rede" e a "senha". Esses dados sao da rede que vamos conectar, entao normalmente sao do roteador ou ponto de acesso onde conectamos nossos computadores. E importante que o ESP8266 esteja na mesma rede que os computadores que vao acessa-lo.A partir desse ponto, temos configuracoes de IP, que sao meio chatas, mas necessarias para sabermos como acessar nosso WebServer do ESP8266. E possivel fazer com que a rede atribua automaticamente o IP e tambem e possivel usar um nome pra facilitar o acesso, mas essa ultima opcao ainda nao consegui fazer funcionar.A opcao do IP automatico pelo DHCP da rede eu nao costumo usar pois senao nao sabemos qual IP o ESP8266 pegou.Na primeira linha apos a funcao WiFi.begin() temos a declaracao de
uma variavel IP, utilizada como mascara de rede, chamada subnet. Na linha seguinte temos a chamada da funcao WiFi.config(), que recebe 3 parametros, sendo o IP do ESP8266, o IP do roteador e o IP da subnet.Nos dois primeiros parametros eu crio o IP na mesma linha para, e para a mascara de rede, que e o terceiro parametro, eu utilizo a variavel subnet, criada na linha acima.O codigo a seguir e um loop verificando o status da rede para saber se o ESP8266 ja conseguiu conectar. Entao e utilizada a funcao WiFi.status() na condicao de um while() para verificar o status de conexao. Se for WL_CONNECTED, significa que conseguiu conectar e o codigo sai do while() para continuar. Se o roteador nao estiver ao alcance da rede, o codigo vai ficar preso eternamente nesse ponto. E isso gasta muita energia. Veremos como contornar isso em outro post.Veremos tambem (em outro post) como configurar esses parametros de nome da rede, senha e IP's sem que sejam fixos no codigo.Enquanto o ESP8266 tenta conectar imprimimos na serial um ponto, indicando um andamento, como se fosse uma barra de progresso, atraves da funcao Serial.print('.');Depois que o codigo passou pelo while(), imprimimos o IP que o ESP8266 conectou na rede chamando a funcao WiFi.localIP().Essa e uma tecnica que usamos para saber qual o IP que o ESP8266 conectou, quando usamos a atribuicao de IP automatica. Mas essa tecnica so funciona quando estamos em desenvolvimento com o ESP8266 conectado no computador atraves da USB. Depois quando colocamos o ESP8266 em producao, instalando na automacao da casa, nao temos mais essa informacao. Por isso prefiro usar IP estatico.Na linha seguinte temos a configuracao que define qual URL vai acionar qual Funcao. No caso, temos apenas a URL raiz, identificada pela barra invertida "/" e a funcao "handleRoot". Utilizamos a funcao server.on() para configurar isso. Veja que e bem simples e voce pode criar outras funcoes para qualquer endereco que voce quiser.Por exemplo, vamos dizer que voce quer criar uma URL de saida chamando a funcao "funcSair", voce faria assim:server.on("/sair", funcSair);E depois logico voce precisa criar a funcao funcSair() conforme fizemos com a handleRoot() e isso precisa ser antes do setup().Finalmente utilizamos a funcao server.begin() para iniciar o servidor Web e depois avisamos na Serial que o servidor HTTP foi iniciado.Servidor HTTP e um outro nome que damos para o Servidor Web, ou Web Server. E tudo a mesma coisa, embora o Servidor Web possa tambem acumular tarefas de outros protocolos alem do HTTP, como FTP, SMTP etc. Veremos isso em outra hora.Para terminar temos a funcao loop() que tem apenas uma unica instrucao.A funcao server.handleClient() fica eternamente lidando com a conexao do cliente. Nesse cenario, o Servidor e o ESP8266 e o cliente e o Navegador de Internet que utilizamos para acessar as paginas HTML do ESP8266.Baixe o codigo completo clicando aqui!Ate o proximo artigo!Abracos,Renato
os mesmos principios das outras, mas o que muda e que adicionamos um tratamento para manipular os parametros que chegaram do envio do formulario.O interessante da biblioteca ESP8266WebServer.h que utilizamos aqui e que ela traz varios metodos auxiliares para tratarmos parametros passados entre uma pagina HTML e outra. Vejamos alguns:String arg(String name); -- recupera o valor do campo pelo nome do parametroString arg(int i); -- recupera o valor do campo pelo indice do parametroString argName(int i); -- recupera o nome do campo pelo indice do parametroint args(); -- recupera a quantidade de parametrosbool hasArg(String name); -- verifica se o parametro existeNo codigo acima temos:1) Chamada da funcao server.hasArg() com o nome do campo de texto para saber se existe esse parametro2) Chamada da funcao server.arg() para efetivamente recuperar o valor que foi digitado no campo de texto3) Repare que criamos outro formulario, mas dessa vez com o metodo GET, para adicionar um botao de 'Voltar', que ao ser clicado vai chamar a URL '/form', mas com o metodo GET, fazendo com que a funcao formularioChamada() seja evocada, apresentando novamente a tela anterior, ou seja, a tela do formulario. Tudo isso e regimentado pela configuracao que fizemos na funcao server.on()O resultado final deve se parecer com o da imagem abaixo. Eu digitei "teste de envio" na caixa de texto, e esse valor foi concatenado conforme vimos no codigo acima e apresentado no HTML de resposta ao form, ou seja, o HTML que trata o POST.E isso ai pessoal! Experimentem outros tipos de campos do HTML, como checkboxes, listas de selecao etc, e tambem outros metodos de tratamentos dos campos, como o server.args(), que retorna a quantidade de campos enviados pelo formulario. Experimente esse metodo e veja que no nosso formulario existem 2 campos, pois o botao e considerado um dos parametros passados pelo POST de uma pagina para outra.Baixe o codigo completo clicando aqui!Ate o proximo artigo da serie!Abracos,Renato Aloi
Quando usando modo de 9-bit, este registrador recebe o nono bit do recebimento do frame. bit 0 TXB8 Transmissor do Bit 8 de Dados. Quando usando modo de 9-bit, este registrador envia o nono bit da transmissao do frame. UCSRC Bit # Nome Descricao bit 7 URSEL Seletor de Registrador. Ative esse registro quando escrevendo no registrador UCSRC, pois esse registrador e compartilhado com o UBRRH. bit 6 UMSEL USART Selecao de Modo. O bit seleciona entre modos (0) assincrono ou (1) sincrono. bit 5bit 4 UPM1UPM0 USART Modo de Paridade. UPM1:0 selecionam o modo de paridade, sendo (00) nenhum, (10) par (11) impar. bit 3 USBS USART Seletor do Bit de Parada. Escolhe a quantidade de bits de parada, (0) 1 bit e (1) 2 bits. bit 2bit 1 UCSZ1UCSZ0 USART Tamanho do Caractere. Utilize em conjunto com UCSZ2 para configurar o tamanho do frame. Tamanhos disponiveis sao 5-bit (000), 6-bit (001), 7-bit (010), 8-bit (011) e 9-bit (111). bit 0 UCPOL USART Polaridade de Clock. Utilizado apenas em modo sincrono, sendo (0) borda de subida na transmissao e descida na recepcao e (1) borda de descida na transmissao e subida na recepcao. Duvidas como programar Arduino no AVR Studio? Veja as aulas abaixo:Curso Arduino Express Aula 5 - Arduino vs. Atmel Studio 6, Parte 1/2 (seriallink.com.br)Curso Arduino Express Aula 5 - Arduino vs. Atmel Studio 6, Parte 2/2 (seriallink.com.br)
Pessoal, bom dia!Resolvi escrever esse post para explicar porque nao publico mais videos do Curso Arduino (como publicava em 2011), no canal do Youtube: http://www.youtube.com/cursoarduinoO que acontece na pratica e que da muito trabalho gravar aulas, editar, compilar e publicar todo material de uma aula. Leva muito tempo e muita dedicacao.Em 2011, no Brasil, tinhamos uma economia estavel e, na epoca, eu criei uma loja de componentes eletronicos para sustentar o trabalho que fazia com as aulas do Curso Arduino.A loja funcionou bem (na medida do possivel, pois eu nunca fui bom lojista) ate o segundo semestre de 2014. Foi nessa epoca o dolar subiu de mais ou menos R$ 2,00 para R$ 4,00, dobrando de valor.Essa alta do dolar quebrou a Loja do Curso Arduino instantaneamente!Tentei manter a loja funcionando ate o inicio de 2015, mas como tive que tirar dinheiro de algum lugar para comprar Arduinos e Modulos pelo dobro do preco, para atender os clientes que ja haviam comprado pelo valor antigo, acabei me endividando com os Correios. Sem os Correios, nao tinha como enviar mais as encomendas. Ai tive que fechar de vez a loja.Desde entao tive que voltar a fazer projetos para clientes da industria. E tenho que visitar clientes por todo o Brasil. Desmontei meu laboratorio e coloquei o essencial em algumas caixas para levar nos clientes. Entao agora nao tenho mais um espaco dedicado para fazer as aulas. Por isso para mim agora e tao dificil gravar aulas, responder duvidas e publicar material do Curso Arduino nas midias sociais da Internet.Estou esperando a economia estabilizar novamente e tambem estou fechando parcerias com lojas e fabricantes de modulos para poder voltar a sobreviver. Mas como esta tudo tao instavel no Brasil, continuo esperando por tempos melhores.Abracos,Renato Aloi E ai Rapazeada firmeza!!! Demoro pra eu postar as novidades hein... uhauhauTo juntando as fotos do ultimos acontecimentos e logo mais vai estar tudo em ordem.Fiquem na PAZ!!Abrazzzzzzzzzzzzz Sabado, 10 -01-09.Existem varios caminhos que podemos escolher seguir.Esse foi o tema abordado nessa noite.Muitas vezes perdemos tempo das nossas vidas querendo trilhar um caminho que nao e nosso ou caminhos de destruicao... Sera que estamos escolhendo o caminho certo todos os dias? Sera que estamos realmente acertando nas escolhas que fazemos?A biblia diz que so ha um caminho que leva a Deus. Sera que estamos escolhendo esse caminho, ou estamos escolhendo um caminho mais conveniente aparentemente mais confortavel, mas que na verdade estara nos levando pra beira de um precipicio?Onde o caminho que estamos percorrendo vai nos levar? Onde vamos chegar no fim disso tudo?Sera que vale a pena o caminho mais facil? A largura, a dificuldade, e os espinhos que temos medo de encontrar no caminho que nos leva a Deus somos nos mesmos que escolhemos sabia?Tudo depende da nossa vontade de acertar e disposicao de transformar os erros em acertos.Jesus e o cara, nao uma religiao.Errar ou acertar nao tem nada a ver com o estilo, tribo ou seja o que for que acreditamos, curtimos ou gostamos.Tem a ver com qualidade de vida, verdadeira felicidade e liberdade!Tem a
ver com passar o resto da vida agradecendo a Deus pela oportunidade de conhece-lo melhor ou chorar o eterno arrependimento por ter pego um "atalho".E ai, qual caminho voce vai escolher?Paz Ae! Abrazzzzzzzzzzzzzzz
Essa festa foi doida! uhauhauhPensa numa galera muito feia... o povo feio!!! uhauhauhFoi muito legal, todo mundo participou da brincadeira e teve desfile e tudo mais.Nesse dia o Missionario Edinho Estava aqui em Joinville. Ja fazia muito tempo que nao o viamos e foi muito legal a presenca dele, tanto e que ele ganhou a faixa de "Rei Ridiculo". Pensa num doido que nao dava nem pra reconhecer...A Nicolly que ganhou a faixa de "Rainha Ridicula" tambem estava muito feia.. uahuahuPoderia citar todos que estiveram na festa e seus figurinos, mas vai ficar muuuuuuuito grande o texto. Num geral todos estavam fantasticamente ridiculos e feios de mais... o povo feio!!!!Da uma olhada nas fotos...No comeco rolou um som...As mulheres mais lindas do mundo...Os homens...O rei Edinho e a rainha Nicolly.Seliga no Jhonny ali atras com o bonezao... Foi muito legal a participacao de todos nessa festa. Foi o encerramento do ano de 2008 que deixou com a expectativa de muita coisa legal em 2009.Contamos com a participacao de voces.Fiquem todos na PAZ!!!!AbrAzzzzzzzzzzzzzzzzz Sempre havera um recomeco, Jesus ressuscitou pra que tivessemos vida.Depois da escuridao da noite sempre vira um novo amanhecer.Existem periodos complicados em nossas vidas onde tudo parece estar acabado, mas e exatamente atraves desse momento que Jesus quer nos mostrar o poder da ressurreicao em tudo aquilo que achavamos perdido, morto ou sem solucao.Foi isso que Ele quis mostrar a Lazaro, toda aquela geracao e ate os dias de hoje.O que Ele quer que entendamos e que tudo esta sob o controle de suas maos. Ainda que pareca nao ter mais solucao, ainda que o "Lazaro" ja esteja morto a quatro dias e humanamente seja impossivel de se resolver.As vezes nos encontramos na situacao em que Lazaro se encontrava. Ele esteve doente, sabia que morreria se Jesus nao chegasse a tempo de cura-lo e toda a sua familia esperava por isso.Jesus nao chegou a tempo, Lazaro morreu, mas foi curado. O que Jesus precisava era que Lazaro morresse para que nao fosse apenas uma cura e sim um milagre ainda mais forte, mais profundo, algo que traria uma mudanca radical a sua vida, a vida de sua familia e todos os que o conheciam.Se voce esta sentindo que algo em sua vida esta morto, ou morrendo e nao entende porque Jesus ainda nao veio e resolveu o seu problema, entenda de uma vez por todas que o milagre que Ele quer fazer em sua vida e ainda maior do que voce espera ou pode imaginar.Jesus sabia que Lazaro ressuscitaria, mas ainda assim ele chorou junto com a sua familia que estava ainda abalada pelo falecimento.E aqui entra o mais maravilhoso nessa historia... Jesus chorou...Ele demonstra que esta conosco em cada momento e sofre com as nossas dores, com as nossas angustias, mas sabe esperar pra que no momento certo nao tenhamos apenas aquilo que esperamos, mas muito mais do que podemos imaginar e com isso transformar tambem a vida de todos os que nos cercam...Nao desista de sonhar, nao pare de acreditar, Jesus esta com voce...Fique firme!!! Deus te abencoe.
Sabado, 24-01-09.Estamos com problemas fotograficos... rsrsrs, entao nesse dia nao pudemos tirar fotos.Mas nao foi por isso que deixou de ser doido como sempre!!! uhauhauComecamos meio atrasados e com poucas pessoas, nao imaginavamos qual era o objetivo de Deus para aquela noite. Nos reunimos e comecamos a pensar o porque estavamos ali, em poucas pessoas e sem perspectiva de que alguma coisa legal acontecesse. Foi quando apareceu um cara desesperado, usuario de drogas, morador de rua, pois sua familia o mandou embora de casa, precisando de ajuda.Conversei com ele , pedi pra ele entrar e ali comecamos a conversar sobre a vida e os problemas dele e ele sentia umas dores muito fortes e nem coinseguia conversar com a gente direito, mas uma coisa ele pedia, que nos orassemos por ele.Nos oramos, como Jesus nos ensinou, e ele foi "Curado" e "Liberto" daquela parada que estava encomodando e causando dores. Demos um rango pra ele e depois ele foi embora feliz e satisfeito.Em uma noite sem expectativas humanas, Deus ensinou o verdadeiro proposito de estarmos naquele lugar, naquele momento, ainda que com poucas pessoas.O Importante pra Deus nao e a quantidade mas a qualidade. Poderiamos estar em umas mil pessoas mas estavamos em pouco mais de cinco.No livro de Mateus capitulo 18, verso 20 Jesus diz: Porque onde estiverem dois ou tres reunidos em meu nome, ai estou eu no meio deles.Nao precisavamos de mil pessoas, mas sim de Jesus.Aquele rapaz foi transformado, ainda que nao tenha sido por completo, mas recebeu o que foi buscar e nos demos aquilo que estavamos esperando pra dar."Porque nao me envergonho do evangelho de Cristo, pois e o poder de Deus para salvacao de todo aquele que cre!" Rm 1:16.Reunioes todos os sabados as 20:00 hr.Abrazzzzzzzzzzzzzzzz Local Sabado, 17-01-09.Nessa noite a gente falou sobre a cruz.Jesus sofreu por nos uma dor que nos nunca poderemos sentir ou retribuir...Nunca poderemos pagar o preco que Ele pagou.A crucificacao era a pena de morte da epoca e era considerado, como hoje em dia, o pior castigo que algem "muito perigoso" poderia receber.Ele nos ensinou a amar incondicionalmente, a tratar todos como iguais, a amar mendigos, leprosos, prostitutas, e fazer por eles algo que realmente possa mudar suas vidas... Curou e destribuiu milagres por onde passou... e mesmo assim foi torturado e pregado numa cruz.Ainda que dessemos a nossa vida por Ele nao pagariamos o preco que Ele pagou, pois Ele pagou por todos nos e nao so por mim ou por voce.Entende o tamanho do amor, da dor, do valor?Quem de nos daria a vida por alguem que nem concemos e que no futuro, depois de tudo, ainda nos negaria? Quem entregaria o unico filho pra morrer por outra pessoa? Tudo isso, toda essa dor, pra que hoje no pudessemos ser livres de fato... Mas existem muitas pessoas que ainda nao se deram conta da verdadeira liberdade e infelizmente vivem em liberdades ilusorias, sinteticas. Falsas liberdades forjadas e oferecidas em momentos vulneraveis...Ja e hora de acordarmos pra vida... acordarmos pra verdade das coisas. A ciencia comprova que havera