Padrone: представлено кольцо, которое полностью заменяет мышку
На площадке Indiegogo представили проект кольца Padrone, которое полностью заменяет традиционную компьютерную мышь и тачпад. Для этого достаточно надеть его на палец и рука превращается в полноценный манипулятор для курсора.
На площадке Indiegogo представили проект кольца Padrone, которое полностью заменяет традиционную компьютерную мышь и тачпад. Для этого достаточно надеть его на палец и рука превращается в полноценный манипулятор для курсора. Для перемещения курсора нужно положить указательный палец с кольцом на стол и водить им в нужном направлении. Левый щелчок мыши заменяет постукивание указательным пальцем, а правый щелчок — стук средним пальцем. Для прокрутки страницы можно двигать сразу несколькими пальцами по поверхности, как это работает на тачпадах. Во время загрузки произошла ошибка. Кольцо распознает жесты за счет датчиков движения и камеры. На основе собираемых данных нейросеть строит 3D-модель руки и определяет движения каждого пальца. Остается вопрос — насколько точно работает распознавание и может ли кольцо заменить мышку для профессиональных задач.
Распродажа на AliExpress: полезные товары до $5
до конца акции
Узнать цены
(function(){'use strict';var TIMEOUT=60000;var container=document.querySelectorAll(".js-teaser-model");function parseDate(src){var tmp=src.split(' ');var left=tmp[0].split('-');var right=tmp[1].split(':');var date=new Date(parseInt(left[0],10),parseInt(left[1],10)-1,parseInt(left[2],10),parseInt(right[0],10),parseInt(right[1],10),parseInt(right[2],10));return date.getTime();}function updateProgress(elem){var startDate=elem.getAttribute("data-date-start");var stopDate=elem.getAttribute("data-date-stop");if(!startDate||!stopDate){console.error('No date specified');elem.classList.add("hidden");return;}var progress=elem.querySelector('.p-progress');var startTimeStamp=parseDate(startDate);var stopTimeStamp=parseDate(stopDate);var currentTimeStamp=+(new Date());var isStarted=currentTimeStamp>=startTimeStamp;var isStopped=currentTimeStamp>=stopTimeStamp;var isActive=isStarted&&!isStopped;if(isActive){var periodTimeStamp=stopTimeStamp-startTimeStamp;var diffTimeStamp=currentTimeStamp-startTimeStamp;var percentProgress=(diffTimeStamp / periodTimeStamp)*100;progress.classList.remove('hidden');progress.querySelector('.p-progress__fill').style.maxWidth=percentProgress.toFixed(3)+'%';progress.classList.add('p-progress_active');}else if(isStopped){progress.classList.add('hidden');elem.classList.add('rb-teaser-model_end');}}function setVisibilityCheckCrutch(elem){var visibilityCheck=elem.closest(".mailru-visibility-check");if(!visibilityCheck){return}var elemStyles=getComputedStyle(elem);visibilityCheck.style.cssFloat=elemStyles['float'];}for(var teaserCnt=0;teaserCnt<container.length;teaserCnt++){var currTeaser=container[teaserCnt];updateProgress(currTeaser);setVisibilityCheckCrutch(currTeaser);setInterval(updateProgress.bind(this,currTeaser),TIMEOUT);}})();
(function(prefix){
try{
function getAdsContainers() {
var ADS_CLASS = prefix + '-visibility-check',
ADS_COUNTER_CLASS = ADS_CLASS + '-counter',
ADS_CALLBACK_CLASS = ADS_CLASS + '-callback',
COUNTER_ATTR = 'data-counter',
CALLBACK_ATTR = 'data-callback',
containers = [],
countables = [],
i, k, counters, _counter;
containers = getByClass(document, ADS_CLASS);
for (i = containers.length - 1; i >= 0; i--) {
var counters = getByClass(containers[i], ADS_COUNTER_CLASS, 'span');
_counter = containers[i].getAttribute(COUNTER_ATTR);
countables[i] = {
el: containers[i],
pixels: []
};
if (_counter) countables[i].pixels.push(_counter);
for (k = counters.length - 1; k >= 0; k--) {
_counter = counters[k].getAttribute(COUNTER_ATTR);
if (_counter && counters[k].parentNode === countables[i].el) countables[i].pixels.push(_counter);
}
var callback = getByClass(containers[i], ADS_CALLBACK_CLASS, 'span');
if (callback[0]) {
var _callback = callback[0].getAttribute(CALLBACK_ATTR);
if (_callback && window.RB_CALLBACKS && window.RB_CALLBACKS[_callback]) {
countables[i].callback = window.RB_CALLBACKS[_callback];
}
}
if (!countables[i].pixels.length) countables.splice(i, 1);
}
return countables;
}
function getByClass(parent, childClassName, tagName) {
if (parent.getElementsByClassName) {
return parent.getElementsByClassName(childClassName);
} else if (parent.querySelectorAll) {
return parent.querySelectorAll('.' + childClassName);
} else {
var els = [];
var tmp = parent.getElementsByTagName(tagName ? tagName : "*");
var regex = new RegExp("(^|\s)" + childClassName + "(\s|$)");
for (var i = 0; i < tmp.length; i++) {
if (regex.test(tmp[i].className)) {
els.push(tmp[i]);
}
}
return els;
}
}
RB.I(getAdsContainers());
}catch(e){}
}('mailru'))
Padrone можно подключить к любому компьютеру, планшету или смартфону по Bluetooth. Производитель обещает, что батарейки в кольце хватит на целый рабочий день. Заряжается оно на специальной беспроводной док-станции, полный цикл зарядки занимает 3 часа. Цена По предзаказу кольцо Padrone стоит $189 — около 12,5 тысяч рублей по курсу. Поставки запланированы на июль 2019 года. Компания обещала привезти свой гаджет на выставку CES 2019, которая пройдет в начале января. Читайте также: Tap — представлена перчатка для набора текста .rb_12729{ display: none; }
Распродажа на AliExpress: полезные товары до $5
до конца акции
Узнать цены
(function(){'use strict';var TIMEOUT=60000;var container=document.querySelectorAll(".js-teaser-model");function parseDate(src){var tmp=src.split(' ');var left=tmp[0].split('-');var right=tmp[1].split(':');var date=new Date(parseInt(left[0],10),parseInt(left[1],10)-1,parseInt(left[2],10),parseInt(right[0],10),parseInt(right[1],10),parseInt(right[2],10));return date.getTime();}function updateProgress(elem){var startDate=elem.getAttribute("data-date-start");var stopDate=elem.getAttribute("data-date-stop");if(!startDate||!stopDate){console.error('No date specified');elem.classList.add("hidden");return;}var progress=elem.querySelector('.p-progress');var startTimeStamp=parseDate(startDate);var stopTimeStamp=parseDate(stopDate);var currentTimeStamp=+(new Date());var isStarted=currentTimeStamp>=startTimeStamp;var isStopped=currentTimeStamp>=stopTimeStamp;var isActive=isStarted&&!isStopped;if(isActive){var periodTimeStamp=stopTimeStamp-startTimeStamp;var diffTimeStamp=currentTimeStamp-startTimeStamp;var percentProgress=(diffTimeStamp / periodTimeStamp)*100;progress.classList.remove('hidden');progress.querySelector('.p-progress__fill').style.maxWidth=percentProgress.toFixed(3)+'%';progress.classList.add('p-progress_active');}else if(isStopped){progress.classList.add('hidden');elem.classList.add('rb-teaser-model_end');}}function setVisibilityCheckCrutch(elem){var visibilityCheck=elem.closest(".mailru-visibility-check");if(!visibilityCheck){return}var elemStyles=getComputedStyle(elem);visibilityCheck.style.cssFloat=elemStyles['float'];}for(var teaserCnt=0;teaserCnt<container.length;teaserCnt++){var currTeaser=container[teaserCnt];updateProgress(currTeaser);setVisibilityCheckCrutch(currTeaser);setInterval(updateProgress.bind(this,currTeaser),TIMEOUT);}})();
(function(prefix){
try{
function getAdsContainers() {
var ADS_CLASS = prefix + '-visibility-check',
ADS_COUNTER_CLASS = ADS_CLASS + '-counter',
ADS_CALLBACK_CLASS = ADS_CLASS + '-callback',
COUNTER_ATTR = 'data-counter',
CALLBACK_ATTR = 'data-callback',
containers = [],
countables = [],
i, k, counters, _counter;
containers = getByClass(document, ADS_CLASS);
for (i = containers.length - 1; i >= 0; i--) {
var counters = getByClass(containers[i], ADS_COUNTER_CLASS, 'span');
_counter = containers[i].getAttribute(COUNTER_ATTR);
countables[i] = {
el: containers[i],
pixels: []
};
if (_counter) countables[i].pixels.push(_counter);
for (k = counters.length - 1; k >= 0; k--) {
_counter = counters[k].getAttribute(COUNTER_ATTR);
if (_counter && counters[k].parentNode === countables[i].el) countables[i].pixels.push(_counter);
}
var callback = getByClass(containers[i], ADS_CALLBACK_CLASS, 'span');
if (callback[0]) {
var _callback = callback[0].getAttribute(CALLBACK_ATTR);
if (_callback && window.RB_CALLBACKS && window.RB_CALLBACKS[_callback]) {
countables[i].callback = window.RB_CALLBACKS[_callback];
}
}
if (!countables[i].pixels.length) countables.splice(i, 1);
}
return countables;
}
function getByClass(parent, childClassName, tagName) {
if (parent.getElementsByClassName) {
return parent.getElementsByClassName(childClassName);
} else if (parent.querySelectorAll) {
return parent.querySelectorAll('.' + childClassName);
} else {
var els = [];
var tmp = parent.getElementsByTagName(tagName ? tagName : "*");
var regex = new RegExp("(^|\s)" + childClassName + "(\s|$)");
for (var i = 0; i < tmp.length; i++) {
if (regex.test(tmp[i].className)) {
els.push(tmp[i]);
}
}
return els;
}
}
RB.I(getAdsContainers());
}catch(e){}
}('mailru'))
Padrone можно подключить к любому компьютеру, планшету или смартфону по Bluetooth. Производитель обещает, что батарейки в кольце хватит на целый рабочий день. Заряжается оно на специальной беспроводной док-станции, полный цикл зарядки занимает 3 часа. Цена По предзаказу кольцо Padrone стоит $189 — около 12,5 тысяч рублей по курсу. Поставки запланированы на июль 2019 года. Компания обещала привезти свой гаджет на выставку CES 2019, которая пройдет в начале января. Читайте также: Tap — представлена перчатка для набора текста .rb_12729{ display: none; }