ThimbleKrox - управление мышью пальцами
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Необходимые инструменты и машины
![]() |
|
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Всем привет, вот мой первый проект ThimbleKrox, представляющий собой наперсток, который позволяет вам управлять указателем мыши посредством движения указателя (или любого пальца).
Шаг 1. Необходимые материалы и инструменты
Необходимые материалы:
- Arduino Micro
- MPU-6050
- кабель для подключения Arduino и ПК (micro USB к USB)
- Джампер (для соединения Arduino и MPU-6050)
- резинка (если вы хотите прикрепить Arduino к руке)
Необходимые инструменты:
- компьютер с установленной Arduino IDE (для загрузки кода в Arduino)
- Паяльник (только если на Arduino нет предварительно установленных контактов разъемов)
- 3D-принтер (если вы хотите, чтобы наперсток выглядел круто)
Шаг 2. Подключение
Подключите контакты Arduino к контактам MPU-6050:
- подключить VCC Arduino к VCC
- соединить GND с GND
- контакт 2 к SDA
- контакт 3 к SCL.

Шаг 3. 3D-печать (необязательно)
Если вы хотите, чтобы ваш наперсток выглядел хорошо, и если у вас есть 3D-принтер, вы можете распечатать наперсток.
Я сделал это в двух версиях:одна прозрачная, которая поэтому не требует печати опор и не слишком громоздка, вторая вместо того, что я пытался сделать в стиле стимпанк, не делая ее слишком громоздкой (она все же более громоздкая, чем прозрачная. one), но для этого требуется, чтобы подставки были напечатаны, и лучше всего возвращаются только в цвете (для PLA я хорошо ладил с темперой). Оба требуют печати с деталью с двумя внутренними выступами внизу


Шаг 4. Сборка
С наперстком, напечатанным на 3D-принтере
Чтобы установить все с напечатанным наконечником, после выполнения соединений необходимо вставить MPU-6050 в верхнюю полость втулки, в которой находятся кабели, в нижнюю полость
Без наперстка, напечатанного на 3D-принтере
В этом случае сборка выполняется более любительским способом, то есть путем размещения MPU-6050 в последней фаланге интересующего пальца и блокирования ее липкой лентой или резинкой.
Шаг 5. Код и калибровка
Первое, что нужно сделать для запуска кода, - это установить необходимые библиотеки, а именно Wire.h, I2Cdev.h, MPU6050.h и Mouse.h
После этого я советую загрузить код калибровки ThimbleKrox, надеть наперсток и открыть монитор последовательного порта (Ctrl + Shift + M).
Теперь вы должны увидеть что-то вроде этого:
право | gx =3165 gy =469 gz =-1055 | ax =15232 ay =2064 az =-4496
Где показано направление, в котором при правильной калибровке вы хотите переместить указатель, а затем некоторые значения, необходимые для калибровки.
Теперь вам нужно повторно открыть код и перейти к строкам, отмеченным «// калибровочная линия», и изменить числовые значения, пока вы не получите правильное направление. (Каждый раз, когда вы меняете значение в коде, вам необходимо повторно загрузить его в Arduino)
Пример
Монитор последовательного порта:
слева | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
Код калибровки:
if (ax> =15000) {// линия калибровки
right ();
}
Монитор последовательного порта помечается как «левый», но мы хотим, чтобы эта строка была помечена как «правая», поэтому нам нужно изменить значение «15000» на «5000». Это потому, что в этом случае мы должны убедиться, что обнаруженный «топор» больше значения в коде. Мы понимаем, что он должен быть больше, потому что в коде есть главный знак, и что мы должны смотреть на «топор» последовательного монитора, потому что в коде есть «топор». (нужно изменять только числовые значения кода)
После перезагрузки кода в Arduino у нас будет:
Монитор последовательного порта:
право | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
Код калибровки:
if (ax> =5000) {// линия калибровки
right ();
}
Когда все калибровочные линии в калибровочном коде были настроены и, следовательно, наперсток калибровочной версии функционирует, значения основного кода должны быть скорректированы в соответствии с калибровочным кодом.
Пример
Код калибровки:
if (ax> =5000) {// линия калибровки
right ();
}
Основной код:
if (ax> =15000) {// линия калибровки
right ();
}
Основной код необходимо изменить на:
if (ax> =5000) {// линия калибровки
right ();
}
Пришло время загрузить основной код
Шаг 6. Завершите проект
А теперь пора надеть наперсток и поиграть с ним!
Код
- Код ThimbleKrox
- Калибровочный код ThimbleKrox
Код ThimbleKrox Arduino
Основной код для ThimbleKrok// Код для управления указателем мыши движением пальца // Для калибровки устройства запустите «Калибровочный код ThimbleKrox» и следуйте инструкциям на https://www.hackster.io/projects / dd8881 /// Строки, которые необходимо изменить для калибровки, имеют "// калибровочную строку" // код, записанный Magform # include#include #include #include MPU6050 mpu; int16_t ax, ay, az, gx, gy, gz; int vx, vy; int sensibility =10; // Измените это значение, чтобы изменить чувствительность устройства void setup () {Serial.begin (9600); Wire.begin (); mpu.initialize (); if (! mpu.testConnection ()) {// проверяем соединение с MPU-6050, если нет соединения, прекращает работу while (1); }} void up () {Mouse.move (0, -sensibility); } void down () {Mouse.move (0, чувствительность); } void left () {Mouse.move (-sensibility, 0); } void right () {Mouse.move (чувствительность, 0); } void loop () {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {// калибровочная линия right (); } if (ax <=- 9000) {// калибровочная строка left (); } if (ay <=- 8000) {// калибровочная линия up (); } if (ay> =10000) {// калибровочная линия вниз (); } // раскомментируйте следующие строки, чтобы задать для правого щелчка мыши спринт вверх и левой кнопки мыши для спринта вниз (часть «Работа в процессе») / * if (gy> =20000) {// калибровочная линия Mouse.click (MOUSE_RIGHT); задержка (100); } if (gy <=- 20000) {// калибровочная линия Mouse.click (MOUSE_LEFT); задержка (100); } * / delay (10);}
Код калибровки ThimbleKrox Arduino
Код для калибровки ThimbleKrox// Код для калибровки ThimbleKrox // Для калибровки устройства запустите этот код и следуйте инструкциям по адресу https://www.hackster.io/projects/dd8881/// для изменения (как и другой код) для калибровки есть "// калибровочная линия" // код, записанный Magform # include#include #include #include MPU6050 mpu; int16_t ax, ay, az, gx, gy, gz; int vx, vy; int Nwrong =1; void setup () {Nwrong =1; Serial.begin (9600); Wire.begin (); mpu.initialize (); while (Nwrong! =0) {if (! mpu.testConnection ()) {Serial.print ("Неверный номер соединения:"); Serial.print (Неверно); Nwrong ++; задержка (1000); } else {Nwrong =0; }}} void up () {Serial.print ("вверх"); } void down () {Serial.print ("вниз"); } void left () {Serial.print ("влево"); } void right () {Serial.print ("право"); } void rightclick () {Serial.print ("RightClick");; } void leftclick () {Serial.print ("LeftClick");; } void loop () {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {// калибровочная линия right (); } if (ax <=- 9000) {// калибровочная строка left (); } if (ay <=- 8000) {// калибровочная линия up (); } if (ay> =10000) {// калибровочная линия вниз (); } // раскомментируйте следующие строки, чтобы установить для правого щелчка мыши спринт вверх и левой кнопки мыши для спринта вниз (часть «Работа в процессе») / * if (gy> =20000) {// калибровочная линия rightclick (); задержка (100); } if (gy <=- 20000) {// калибровочная строка leftclick (); задержка (100); } * / Serial.print ("| gx ="); Serial.print (gx); Serial.print ("gy ="); Serial.print (gy); Serial.print ("gz ="); Serial.print (gz); Serial.print ("| ax ="); Серийный принт (топор); Serial.print ("ау ="); Serial.print (ау); Serial.print ("az ="); Serial.print (az); Serial.print ("\ n"); задержка (5000); }
ThimbleKrox
https://github.com/Magform/ThimbleKroxИзготовленные на заказ детали и корпуса
Модель для 3D-печати ThimbleKrox
Для тех, кто предпочитает брать модели из файла ThingiverseCAD на сайте thingiverse.com Поддержка не требуется. Поддержка не требуется.Схема

Производственный процесс
- Создайте своего робота для видеостриминга, управляемого через Интернет, с помощью Arduino и Raspberry Pi
- Включение Alexa Control для потолочного вентилятора
- Управление монетоприемником с помощью Arduino
- Центр управления Arduino
- Arduino с Bluetooth для управления светодиодом!
- Управление увлажнителем Arduino
- Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика
- Управляйте своим светодиодом с помощью Cortana
- Полный контроль над вашим телевизором с помощью Alexa и Arduino IoT Cloud
- 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno