Оглавление:
- Шаг 1. Оборудование и прочее
- Шаг 2: Электроника
- Шаг 3: подготовка мыши
- Шаг 4: Исходный код
- Шаг 5: видео
Видео: 3D AIR Mouse - Обработка Arduino +: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:55
3D-мышь AIR | Arduino + Processing Я изучаю промышленный дизайн, и в прошлом году в рамках курса под названием «Технология как материалы в формате RAW» я построил этот проект в качестве своей заключительной работы. Большую часть времени я работаю с SolidWorks, программным обеспечением САПР для проектирования и инженерии.. Вращение твердого тела на экране осуществляется с помощью средней кнопки мыши. Я искал что-то более интуитивное. Вот как я закончил работу с трехмерной воздушной мышью, где фактическое вращение объекта осуществляется перемещением мыши в воздухе по всем трем осям - точно так же, как вы бы повернули объект, если бы держали его в руке. Я использовал Arduino, пару датчиков и скетч обработки. ПРИМЕЧАНИЯ: - На данный момент это только демонстрация концепции, так как фактического подключаемого модуля для работы с SolidWork нет (но, конечно, не стесняйтесь напишите один, если знаете как:) - Поскольку все оборудование было не моим, реальной 3D-мыши давно нет, и я использую несколько фотографий и видео, чтобы попытаться понять все это и дать вам какая-то идея, если вы хотите попробовать построить ее самостоятельно … Наслаждайтесь … (Это моя первая инструкция) Вот видео-демонстрация готового проекта
Шаг 1. Оборудование и прочее
Это не самый дешевый Instructable, так как он основан на 3-осевом акселерометре + датчик компаса. Вещи, которые вам понадобятся: * Мышь - бывшая в употреблении лучше (только потому, что она используется и дешевле), подойдет любая мышь. У вас должно быть место для размещения датчиков и дополнительных проводов, поэтому не покупайте сверхтонкие / очень крошечные мыши. * Модуль компаса с компенсацией наклона - HMC634 - Это 3-осевой датчик, купленный в SpurkFun за ~ 149 $ * Преобразователь логического уровня - ОБЯЗАТЕЛЬНО! Поскольку Arduino составляет 5 В, а 3-осевой датчик - 3,3 В, вам понадобится один из них, чтобы преобразовать 5 В в 3,3 В. У него громкое имя, но он стоит всего 1,95 доллара в SpurkFun. * Большой оптический детектор / фототранзистор - это простой оптический датчик, используемый в этом проекте для определения момента, когда мышь поднимается с рабочей поверхности. Куплен в SpurkFun за 2,25 доллара. Если у вас недостаточно места для размещения этой мыши внутри выбранной вами мыши, вы можете использовать эту, меньшего размера и дешевле. * Один (1) светодиод - не говоря уже о цвете, сверхяркий подойдет лучше. * 2 резистора - один (1) x 100 Ом и один (1) x 100 кОм (для оптического датчика) * Плата Arduino - DA! Я использовал модель Diecimila. Более новый Duemilanove доступен в SpurkFun по цене около 29,95 долларов (тоже должно работать) + установлено программное обеспечение Arduino. * Установлено программное обеспечение для обработки. * Исходный код проекта (не волнуйтесь, вы загрузите его через секунду) Плюс: Некоторые горячий клей (для фиксации предметов на месте) Пара крошечных шурупов. Примерно 10 см деревянного анкера диаметром 6 мм. Несколько дополнительных проводов. Паяльник. Что-то, чем можно разрезать пластик, я использовал режущий нож и напильник (ДЛЯ формовки). ("Хорошо, не ненавидьте меня за этот шаг, английский - мой второй язык, если я ошибся с этим, извините, я уверен, что вы поймете, о чем я говорю, через секунду. Когда вы увидите это на картинках ")
Шаг 2: Электроника
Все должно быть спаяно … В некотором смысле … ПРИМЕЧАНИЕ: 3-х осевой датчик - дорогая мелочь, дважды проверьте проводку перед включением всего устройства … См. Прилагаемые схемы для всех проводов, используемых в этом проекте. Прилагаемый исходный код может работать только в том случае, если вы используете те же номера контактов, что и я, но не стесняйтесь изменять их при подключении, если вы меняете соответствующие номера в коде. Подключение 3-осевого датчика к преобразователю логического уровня: Датчик VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1) Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (по крайней мере один из них) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Оптический датчик для Arduino: см. Прилагаемое изображение Цифровой вход = Pin 11 на Arduino LED: GND для некоторых GND (я использовал один из оптических датчиков) + к контакту 13 Arduino (это было сделано, поскольку на этом контакте уже есть встроенный резистор, если вы используете другой, обязательно используйте резистор, чтобы не сжечь светодиод)
Шаг 3: подготовка мыши
Именно здесь датчики находят свое место в корпусе мыши. Найдите лучшее место для крепления 3-х осевого датчика. Убедитесь, что он выровнен, и обратите внимание на ориентацию (вы узнаете, когда у вас будет датчик в руке). Вы можете закрепить его как хотите, я использовал 2 коротких деревянных анкера, просверленных для установки 2 крошечных винтов. и приклеивается горячим клеем к основной плате мыши. Для оптического датчика сформируйте прямоугольное отверстие в нижней части мыши. Идея состоит в том, чтобы датчик постоянно «видел» стол. Когда мышь поднята и датчик находится в состоянии «открыто» (таблицы нет), мышь переключается в 3D-режим (запускает эскиз обработки). Сформируйте еще одно отверстие для прокладки дополнительных проводов (от датчиков к Arduino) из пластиковый корпус. Моя была расположена справа от мыши. Исправьте светодиод там, где он будет отображаться. В этом проекте светодиод является индикатором 3D-режима. Свою кладу рядом с силиконовым колесиком мыши. Когда мышь поднята, колесо светится красивым синим светом.
Шаг 4: Исходный код
Код для Arduino был написан Шахаром Гейгером, моим учителем, и был изменен мной для этого проекта. Код 3D-куба - это базовый код, который можно найти на веб-сайте Processing. Я немного изменил его. В коде этот фрагмент преобразует необработанную информацию, поступающую от датчика (обычно от -180 до 180 x 10), в 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y + 1800) / 14; Serial.write (y); Serial.write ('z'); z = (z + 1800) / 14; Последовательная запись (z); Информация от датчика и Arduino поступает в эскиз обработки для каждой отдельной оси, но с предыдущей буквой оси (для эксп. X12 Y200 Z130) следующий код отбрасывает букву и оставляет только значения для отправки в COM. порт while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (чтение! = 'Y') {while (port.available () == 0) {} чтение = (char) port.read ();} Y = порт.read (); while (чтение! = 'z') {while (port.available () == 0) {} чтение = (char) port.read ();} Z = port.read (); Этот фрагмент кода отбрасывает все отрицательные значения … if ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (- (float) Y / 25.0); rotateX ((float) X / 25.0); rotateY ((float) Z / 25.0); pX = X; pY = Y; pZ = Z;} else {rotateZ (- (float) pY / 25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Прикрепленный ZIP-файл содержал код Arduino и код обработки.
Шаг 5: видео
Вот и все … Это готовый проект на видео. Есть небольшой сбой (вы можете видеть, что куб иногда "прыгает" на видео), Это из-за оси Z, может не случиться с вами …
Рекомендуемые:
DIY Lipo Powered Mouse: 6 шагов
DIY Lipo Powered Mouse: в этом проекте Modify it мы модифицируем беспроводную мышь с батарейным питанием и превращаем ее в заряжаемую через USB беспроводную мышь. Я хочу сделать этот проект, потому что батарея не работает для меня слишком долго. И его батарея быстро разряжается. Поэтому я выбираю
[Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов
[Wearable Mouse] Контроллер носимой мыши на основе Bluetooth для Windows 10 и Linux: я сделал контроллер мыши на основе Bluetooth, который можно использовать для управления указателем мыши и выполнения операций, связанных с компьютерной мышью, на лету, не касаясь каких-либо поверхностей. Электронная схема, встроенная в перчатку, может использоваться для отслеживания h
ADAPTACIN DE UN AIR MOUSE: 20 шагов (с изображениями)
ADAPTACIN DE UN AIR MOUSE: электрическое оборудование, которое продвигает непрерывную работу над прототипом адаптационной системы, реализующей движение воздушной мыши. Вы можете использовать автономные устройства с использованием мультимедийных устройств и приложений SmartTV, а также множество других персонажей, которые
Air Piano с ИК-датчиком приближения и Arduino Uno Atmega 328: 6 шагов (с изображениями)
Воздушное пианино с ИК-датчиком приближения и Arduino Uno Atmega 328: Обычно пианино, будь то электрическое или механическое, работает с простым механизмом нажатия кнопки. Но вот поворот: мы могли бы просто избавиться от необходимости использовать клавиши в пианино, используя некоторые датчики. И инфракрасные датчики приближения лучше всего подходят для этой цели, потому что
Arduino Air Monitor Shield. Жить в безопасной среде: 5 шагов (с изображениями)
Arduino Air Monitor Shield. Живите в безопасной среде. Здравствуйте, в этой инструкции я собираюсь создать экран мониторинга воздуха для Arduino. Которая может определять утечку сжиженного нефтяного газа и концентрацию CO2 в нашей атмосфере. А также звуковой сигнал, включающий светодиод и вытяжной вентилятор при обнаружении сжиженного нефтяного газа или концентрации