У меня может быть решение, которое будет работать с используемыми в настоящее время технологиями, такими как Bluetooth и Wi-Fi, которые находятся в пере и на вашей Microsoft Surface. Но вам нужно будет запрограммировать некоторые части самостоятельно (большинство из упомянутых методов в библиотеках с открытым исходным кодом).
После того, как вы соедините перо с Surface, вы должны быть подключены к Wi-Fi и Bluetooth к перу.
1. Опция
Есть хорошая статья , объясняющая триангуляцию Bluetooth, которую мы будем использовать для триангуляции пера в тесной области, за исключением того, что мы будем использовать Bluetooth и Wi-Fi (у нас нет 3-й точки), так что это не будет так точно, как 3 балла. Но с помощью 2 точек вы можете измерить расстояние по этой таблице и найти, где находится их пересечение, в таком маленьком пространстве, которое выполнимо.
Используйте аналогичный метод с Wifi для второй точки триангуляции, там вы можете увидеть исходные коды для триангуляции Wifi.
Следующий шаг будет калибровать положение ручки в держателе, это означает, что ручка будет на одной стороне поверхности (для упрощения предположим, что она только на правой более короткой стороне)
, из этого вы можете вычислить площадь экрана
Allowed area:
offsetHeightOfPenScreenRation = ScreenHeight - penHardwareHeight
NonValidX = StartpenPositionX - ScreenWidth < penPositionX or StartpenPositionX < penPositionX
NonValidY = StartpenPositionY - ScreenHeight < penPositionY or StartpenPosition+offsetHeightOfPenScreenRation < penPositionY
penIsClose = not ( NonValidX or NonValidY)
Вот как это может работать, вам нужно держать это программное обеспечение в фоновом режиме, и это может оказать серьезное влияние на батарею, Вам понадобится внешний адаптер Wi-Fi для inte rnet.
У меня нет Microsoft Surface, поэтому я не могу кодировать его сам, потому что у меня нет устройства, чтобы попробовать его, но это рабочая идея. С небольшой настройкой точности это может быть очень точное позиционирование.
2. Опция
Триангуляция Wi-Fi: https://github.com/kevindu/wifi-ap-positioning может быть использована отдельно, и вы можете перенести местоположение через Bluetooth, если сможете войти в прошивку пера, но эта опция не будет будь таким точным.