Съдържание:

DIY 3D контролер: 8 стъпки (със снимки)
DIY 3D контролер: 8 стъпки (със снимки)

Видео: DIY 3D контролер: 8 стъпки (със снимки)

Видео: DIY 3D контролер: 8 стъпки (със снимки)
Видео: Самый удобный RGB контроллер на ATtiny! 2024, Ноември
Anonim
DIY 3D контролер
DIY 3D контролер

Направете 3D интерфейс, използвайки шест резистора, алуминиево фолио и Arduino. Вземете това, Wii. Update: много по -задълбочено обяснение на този проект е достъпно от Make Magazine. Може да е по -лесно да следвате инструкциите им и мисля, че кодът им е по -актуален. Основната цел тук беше да се направи 3D сензорна система за разположение на ръцете, която повечето хора могат да изградят, като същевременно запази известна прилика на функционалност. За да добиете представа за възможни приложения, вижте демонстрационното видео. Ако смятате, че можете да изградите по -опростен и еднакво точен, или малко по -сложен и по -точен, споделете в коментарите! DIY 3D интерфейс: Tic Tac Toe от Kyle McDonald на Vimeo.

Стъпка 1: Материали

Материали
Материали
Материали
Материали

Инструменти

  • Arduino
  • Обработка
  • Резачки за тел
  • Поялник
  • Фреза за кутии

Материали

  • (3) 270k резистори
  • (3) 10k резистори
  • Припой
  • Тел
  • Алуминиево фолио
  • Картон

По избор:

  • Лента (например: скоч)
  • Екраниран проводник (например: коаксиален кабел, ~ 3 ')
  • (3) клипове от алигатор
  • 3-пинов хедър
  • Вратовръзка с цип
  • Тръби за свиване или горещо лепило

Стъпка 2: Направете плочите

Направете чиниите
Направете чиниите
Направете чиниите
Направете чиниите

Този сензор ще работи с помощта на прости RC вериги, като всяка верига отчита разстоянието в едно измерение. Открих, че най -лесният начин да подредите три капацитивни плочи за тази цел е в ъгъла на куб. Нарязах ъгъла на картонена кутия в 8,5 -инчов куб и след това изрязах малко алуминиево фолио, за да се побере като малко по -малки квадратчета. Лентата по ъглите ги държи на място. Не залепвайте целия периметър, ще ни трябва по -късно за закрепване на алигаторните щипки.

Стъпка 3: Направете конекторите

Направете конекторите
Направете конекторите
Направете конекторите
Направете конекторите
Направете конекторите
Направете конекторите

За да свържете Arduino към плочите, се нуждаем от екраниран проводник. Ако проводникът не е екраниран, самите проводници действат по -очевидно като част от кондензатора. Също така открих, че алигаторните клипове улесняват свързването на неща с алуминий - но вероятно има и много други начини.

  • Нарежете три равни дължини на екраниран кабел. Избрах около 12 ". Колкото по -къс, толкова по -добре. Коаксиалният кабел работи, но колкото по -лек/по -гъвкав, толкова по -добре.
  • Извадете последните половин инч или повече, за да разкриете екранирането, и последния четвърт инч, за да разкриете жицата.
  • Завъртете алигаторните скоби към проводниците върху проводниците и ги запоявайте заедно.
  • Добавете малко термосвиваеми тръби или горещо лепило, за да поддържате нещата заедно.

Стъпка 4: Направете веригата

Направете веригата
Направете веригата
Направете веригата
Направете веригата
Направете веригата
Направете веригата
Направете веригата
Направете веригата

"Веригата" е само два резистора на парче алуминий. За да разберете защо са там, е полезно да знаете какво правим с Arduino. Това, което ще правим последователно с всеки щифт, е:

  • Задайте щифта в изходен режим.
  • Напишете цифров "нисък" на щифта. Това означава, че двете страни на кондензатора са заземени и той ще се разреди.
  • Задайте щифта в режим на въвеждане.
  • Пребройте колко време отнема кондензаторът да се зареди, като изчакате щифтът да стане "висок". Това зависи от стойностите за кондензатора и двата резистора. Тъй като резисторите са фиксирани, промяната в капацитета ще бъде измерима. Разстоянието от земята (вашата ръка) ще бъде основната променлива, допринасяща за капацитета.

270k резисторите осигуряват напрежение за зареждане на кондензаторите. Колкото по -малка е стойността, толкова по -бързо ще се зареждат. 10k резисторите също влияят на времето, но не разбирам напълно тяхната роля. Ще направим тази схема в основата на всеки проводник.

  • Запоявайте 10k резистора до края на проводника срещу щипката от алигатор
  • Запоявайте 270k резистора между щита и проводника (плочата). Ще защитим проводника със същите 5 V, които използваме за зареждане на кондензаторите

Стъпка 5: Завършете и прикрепете конектора

Завършете и прикрепете конектора
Завършете и прикрепете конектора
Завършете и прикрепете конектора
Завършете и прикрепете конектора
Завършете и прикрепете конектора
Завършете и прикрепете конектора

След като 3 -те съединителя приключат, може да искате да добавите термосвиваеми тръби или горещо лепило, за да ги изолирате един от друг, защото ще запоявате екранирането/5 V точки заедно.

За мен беше най -лесно да запоя двата най -външни конектора заедно и след това да добавя третия. След като запоите трите конектора, добавете четвърти проводник за захранване на щита/5 V.

Стъпка 6: Свържете и качете код

Код за свързване и качване
Код за свързване и качване
Код за свързване и качване
Код за свързване и качване
  • Включете конектора в Arduino (щифтове 8, 9 и 10)
  • Щракнете алигаторните скоби върху плочите (8: x: наляво, 9: y: отдолу, 10: z: надясно)
  • Осигурете захранване, като включите четвъртия проводник (моя червен проводник) в 5 V на Arduino
  • Включете Arduino, стартирайте средата Arduino
  • Качете кода на дъската (забележка: ако сте извън Северна Америка, вероятно ще трябва да промените #define електрическата мрежа на 50 вместо на 60).

Кодът на Arduino е прикачен като Interface3D.ino, а кодът за обработка е приложен като TicTacToe3D.zip

Стъпка 7: Направете нещо готино

Ако погледнете серийния прозорец в средата Arduino, ще забележите, че изплюва необработени 3D координати на 115200 бода, при приблизително 10 Hz = 60Hz / (2 пълни цикъла * 3 сензора). Кодът прави измервания възможно най -много пъти на всеки сензор за период от два цикъла на честотата на захранването на мрежата (което е изненадващо стабилно), за да анулира всяко свързване. Първото нещо, което направих с това, беше да направя прост 3D Tic Tac Toe интерфейс. Ако искате да започнете с работеща демонстрация, кодът е достъпен тук, просто пуснете папката „TicTacToe3D“във вашата папка „Обработка на скици“. Три полезни неща, които кодът на Tic Tac Toe демонстрира:

  • Линеаризира необработените данни. Времето за зареждане всъщност следва закон за мощността спрямо разстоянието, така че трябва да вземете квадратния корен от един за времето (т.е. разстояние ~ = sqrt (1/време))
  • Нормализира данните. Когато стартирате скицата, задръжте левия бутон на мишката, докато движите ръката си, за да определите границите на пространството, с което искате да работите.
  • Добавяне на „импулс“към данните за изглаждане на всякакви трептения.

На практика, използвайки тази настройка с алуминиево фолио, мога да получа диапазон от най -големия размер на фолиото (най -голямото парче, което съм тествал, е 1,5 квадратни фута).

Стъпка 8: Вариации и бележки

Вариации

  • Изградете масивни сензори
  • Оптимизирайте резисторите и кода за неща, които вибрират бързо, и го използвайте като пикап/микрофон
  • Вероятно има и други трикове за отделяне на системата от променлив ток (огромен кондензатор между плочите и земята?)
  • Експериментирах с екранирането на плочите отдолу, но изглежда само създава проблеми
  • Направете RGB или HSB инструмент за избор на цвят
  • Контролирайте видео или музикални параметри; последователност бийт или мелодия
  • Голяма, леко огъната повърхност с множество плочи + проектор = интерфейс "Minority Report"

Бележки

Детската площадка Arduino има две статии за капацитивно докосване (CapSense и CapacitiveSensor). В крайна сметка отидох с инверсия на дизайна, на който попаднах в копие на приятел на „Физически изчисления“(Sullivan/Igoe), описващо как да се използва RCtime (веригата имаше фиксиран кондензатор и един резистор и измери стойността на Потенциометър). Микросекундното синхронизиране е постигнато с помощта на малко оптимизиран код от форумите на Arduino. Отново: само от началото на тонове схеми на термин, които не разбирам напълно, добре знам, че има по -добри начини за извършване на капацитивно измерване на разстояние, но исках да направя нещо възможно най -просто, което все още е функционално. Ако имате еднакво прост и функционален дизайн, публикувайте го в коментарите! Благодаря на Dane Kouttron за толерирането на всичките ми основни въпроси по електрониката и ми помогна да разбера как работи обикновена хетеродинна схема на термин (първоначално щях да използвам тези - и, ако е настроен правилно, вероятно ще бъде по -точен).

Първа награда в конкурса за книги „The Instructables“

Препоръчано: