;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Combustível de iodo pode reduzir lixo espacial com "suicídio de satélites"

Ilustração da startup ThrustMe mostra propulsor ativando propelente de iodo; solução pode auxiliar a facilitar volta de satélites à Terra - ThrustMe
Ilustração da startup ThrustMe mostra propulsor ativando propelente de iodo; solução pode auxiliar a facilitar volta de satélites à Terra Imagem: ThrustMe

De Tilt, em São Paulo

24/01/2021 15h36

Não conseguimos ver daqui, mas há muito lixo espacial na órbita da Terra. Na maioria das vezes são satélites inoperantes ou outros restos de equipamentos que ficam vagando por lá, como restos de foguetes. A ESA (Agência Espacial Europeia) tem uma proposta para tentar diminuir estes detritos: o uso de propelente (uma espécie de "combustível") de iodo em satélites.

Segundo a agência, o iodo, além de ser um material de fácil manipulação, oferece como vantagem a possibilidade de os "satélites se autodestruírem".

Os propulsores ajudam a modificar a velocidade dos satélites no espaço, seja para evitar a colisão com outros ou fazê-los retornar à Terra.

Não custa lembrar que no espaço tem pouca gravidade. Então, para tentar limpar toda essa sujeira espacial, um bom propelente ajudaria na tarefa de redirecioná-los à Terra após serem desativados. Esta entrada na atmosfera de nosso planeta costuma destruir estes detritos.

Geralmente, os propelentes consistem em um material químico tóxico e facilmente inflamável, mas o iodo é visto como uma boa solução, fácil de manipular e leve.

"Diferente de outros propulsores, o iodo não é tóxico e é sólido na temperatura e pressão da Terra. Quando aquecido, ele se transforma em gás sem ar pela fase líquida, o que o torna ideal para um sistema simples de propulsão. Ele também é mais denso que os propulsores tradicionais, então ele ocupa um volume menor no satélite", diz o comunicado da ESA.

Uma vez no espaço, este propelente de iodo seria ativado com um propulsor elétrico que permite mover o satélite.

Por ora, esta tecnologia, desenvolvida pela startup sa ThrustMe, só foi usada em um nano satélite lançado em novembro de 2020. Até o momento, só movimentaram ele para mudança de órbita.

Por que é importante reduzir o lixo espacial?

Cada vez mais empresas e estados têm lançado satélites para o espaço para os mais diversos fins: desde monitorar a floresta amazônica a tentar fornecer internet, como a SpaceX tem feito. Soma-se isso os milhares de detritos inoperantes que já estão na órbita da Terra.

O grande problema do lixo espacial é o risco de colisão. A Estação Espacial Internacional, por exemplo, tem de mudar sua órbita algumas vezes ao ano pelo risco de "bater" em algum pedaço de espaçonave ou algum outro tipo de lixo. Em 2018, um desses objetos furou uma pequena área da estação, colocando em risco os astronautas em missão com a redução de pressurização de ar.

Existem algumas iniciativas para tentar reduzir os detritos no espaço. Além dessa tentativa usando iodo como propelente, a China propôs uma forma de combater isso usando laser.