Contenido
Un ‘Wall-E” recolector al estilo politécnico
// ------------------------------------------------------------------------------------------------------------------------------- // PHOTOSWIPE
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size ...) from DOM elements // (children of gallerySelector) var parseThumbnailElements = function(el) { var thumbElements = el.childNodes, numNodes = thumbElements.length, items = [], figureEl, linkEl, size, item;
for(var i = 0; i element
// include only element nodes if(figureEl.nodeType !== 1) { continue; }
linkEl = figureEl.children[0]; // element
size = linkEl.getAttribute('data-size').split('x');
// create slide object item = { src: linkEl.getAttribute('href'), w: parseInt(size[0], 10), h: parseInt(size[1], 10) };
if(figureEl.children.length > 1) {
//
if(linkEl.children.length > 0) { // thumbnail element, retrieving thumbnail url item.msrc = linkEl.children[0].getAttribute('src'); }
item.el = figureEl; // save link to element for getThumbBoundsFn items.push(item); }
return items; };
// find nearest parent element var closest = function closest(el, fn) { return el && ( fn(el) ? el : closest(el.parentNode, fn) ); };
// triggers when user clicks on thumbnail var onThumbnailsClick = function(e) { e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide var clickedListItem = closest(eTarget, function(el) { return (el.tagName && el.tagName.toUpperCase() === 'FIGURE'); });
if(!clickedListItem) { return; }
// find index of clicked item by looping through all child nodes // alternatively, you may define index via data- attribute var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index;
for (var i = 0; i = 0) { // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); } return false; };
// parse picture index and gallery index from URL (#&pid=1&gid=2) var photoswipeParseHash = function() { var hash = window.location.hash.substring(1), params = {};
if(hash.length getThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail pageYScroll = window.pageYOffset || document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; }
};
// PhotoSwipe opened from URL if(fromURL) { if(options.galleryPIDs) { // parse real index when custom PIDs are used // http://photoswipe.com/documentation/faq.html#custom-pid-in-url for(var j = 0; j
Pues bien, alumnos del Centro de Estudios Científicos y Tecnológicos (CECyT) 3 “Estanislao Ramírez Ruiz”, del Instituto Politécnico Nacional (IPN), acaban de desarrollar un prototipo muy similar: el “PP Bot”.
Ese asteroide, con medidas de 30 por 20 centímetros aproximadamente, es un androide, un robot “recolector de basura”.
Su funcionamiento, de acuerdo con información de la casa de estudios, es relativamente sencilla: está programado para seguir líneas y, al detectar un obstáculo en su camino, activa un “sensor de límite de movimiento”, el cual manda una señal a un microcontrolador, y éste a su vez hace que los brazos del robot se estiren y encajen en botes de basura; una vez sujetos, los carga hacia la parte superior del androide y vacía los desechos en un contenedor; posteriormente regresa el depósito a su lugar, lo suelta y continua su camino para recolectar más desperdicios.
El tiempo de recolección es de treinta segundos aproximadamente, pero varía de acuerdo con la trayectoria para la que se programa y se puede adaptar a las necesidades de cada usuario.
Sus creadores son Isaac Daniel Córdoba Mariscal, Rodrigo Reyes Francisco, Jonathan Ulises Vargas Vázquez y Julio Cesar Islas Villaseñor. Ellos explicaron que el prototipo se controla por medio de dos microcontroladores, a través de los cuales manipulan todas las funciones del robot, así como un mecanismo con diferentes motorreductores compuestos por un motor eléctrico y una serie de engranajes que reducen la frecuencia del precursor y lo mantienen a una velocidad constante, además de sensores réflex que le permiten seguir una trayectoria.
Los estudiantes creen que el “PP Bot” puede ser utilizado en la industria para recoger residuos sólidos de desechos similares a los domésticos, ya que no tienen agentes tóxicos o peligrosos y la manipulación o el almacenamiento no requieren precauciones especiales, tal es el caso de madera, papel, cartón, plásticos, vidrio, caucho, textiles y basura orgánica. Por ello piensan instalar sensores ultrasónicos que permitirán ofrecer mayor eficiencia en el proceso, además de trabajar un diseño para uso doméstico.
Comentarios
// Obtener todos los elementos con clase .col-md-12 var colElements = document.querySelectorAll('.col-md-12');
// Iterar sobre cada elemento colElements.forEach(function(element) { // Verificar si tiene un hijo inmediato con clase .titulo-region var tituloRegion = element.querySelector('.titulo-region');
if (tituloRegion) { // Agregar la clase .is-sticky al elemento padre element.classList.add('is-sticky'); } });
// Obtener el elemento article dentro de .fila-especial-v2 .p50 var articleElement = document.querySelector('.home .fila-especial-v2 .p50 article');
// Obtener el texto del elemento .z-foto .bajada p var bajadaText = articleElement.querySelector('.z-foto .bajada p').textContent;
// Crear un nuevo elemento para mostrar el texto obtenido var textoElement = document.createElement('p'); textoElement.textContent = bajadaText;
// Obtener el elemento .z-txt .titulo dentro del article var tituloElement = articleElement.querySelector('.z-txt .titulo');
// Insertar el nuevo elemento al final del article articleElement.appendChild(textoElement);
Cortesía de Proceso.