Мазмуну:

3D AIR Mouse - Arduino + иштетүү: 5 кадам
3D AIR Mouse - Arduino + иштетүү: 5 кадам

Video: 3D AIR Mouse - Arduino + иштетүү: 5 кадам

Video: 3D AIR Mouse - Arduino + иштетүү: 5 кадам
Video: Memory card kharab ho gaya To Aisa kijiye 2024, Ноябрь
Anonim
3D AIR Mouse | Arduino + иштетүү
3D AIR Mouse | Arduino + иштетүү

3D AIR чычкан | Мен өнөр жай дизайнынын студентимин жана өткөн жылы "RAW materiel катары технология" деп аталган курстун бир бөлүгү катары мен бул долбоорду акыркы жумушум катары кургам. Мен көбүнчө SolidWorks менен иштейм, дизайн жана инженерия үчүн CAD программасы.. Экранда катуу денени айлантуу чычкандын орто баскычы аркылуу жасалат. Мен интуитивдүү нерсени издедим. Ошентип мен 3D аба чычканынын ишин бүтүрдүм, мында объекттин чыныгы айлануусу чычканды 3 октун ортосунда абага жылдыруу аркылуу жасалат - эгерде сиз аны колуңузда кармасаңыз, объектти айлантасыз. Мен Arduino, бир нече сенсор жана иштетүүчү эскизди колдондум. Эгер кантип билсеңиз, бирин жазыңыз:) кээ бир идеялар, эгерде сиз өзүңүздү сынап көрүүнү кааласаңыз … Андан ырахат алыңыз … (Бул менин биринчи көрсөтмөм) Бул жерде даяр долбоордун видео демосу

1 -кадам: Аппараттык жана нерселер

Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер
Аппараттык жана нерселер

Бул эң арзан Instructable эмес, анткени ал 3 огунун акселерометрине + компас сенсоруна негизделген. Сизге керектүү нерселер:* Чычкан - колдонулган жакшы (болгону колдонулган жана арзан болгондуктан), каалаган чычкан кылышы керек. Сенсорлорду жана кошумча зымдарды жайгаштыруу үчүн бир аз боштук керек, андыктан кошумча сымбаттуу / кичинекей кичинекей чычкандарды издөөгө болбойт. $ 149* Логикалык Даража Конвертери - КЕРЕК! Arduino 5V жана 3 огунун сенсору 3.3V болгондуктан, 5Vны 3.3Vга айландыруу үчүн алардын бири керек. Бул чоң атка ээ, бирок SpurkFun’да болгону 1,95 доллар турат.* Чоң оптикалык детектор / фототранзистор - Бул проектте чычкан жумуш үстүнөн качан көтөрүлгөнүн аныктоо үчүн колдонулган жөнөкөй оптикалык сенсор. SpurkFunдан 2.25 долларга сатып алсаңыз, эгерде сиз муну тандаган чычканыңыздын ичине жайгаштыра албасаңыз, анда муну кичине жана арзаныраак колдонсоңуз болот. * Бир (1) LED - түскө карабаңыз, ультра жаркырак жакшыраак иштейт. Мен Diecimila моделин колдондум. Жаңы Duemilanove SpurkFunда болжол менен $ 29.95 үчүн жеткиликтүү болот (Ошондой эле иштеши керек) + Arduino программасы орнотулган.* Processingsoftware орнотулган.* Долбоордун баштапкы коду (Кабатыр болбоңуз, бир секунданын ичинде жүктөп алсаңыз болот.) Плюс: Кээ бирлери ысык клей (нерселерди оңдоо үчүн) Бир нече кичинекей бурамалар. 10 мм болжол менен 6 мм (Диа.) жыгач казык. Кээ бир кошумча зымдар. Ламбер. Пластмассаны кесүү үчүн бир нерсе, мен бычак менен файлды колдондум (Калыптандыруу үчүн). ("Макул, бул кадам үчүн мени жек көрбө, англис тили менин 2 -тилим, эгер мен муну туура эмес түшүнсөм, кечиресиз, мен бир секунданын ичинде эмне кылып жатканымды түшүнөсүз деп ишенем. сиз муну сүрөттөрдөн көрөсүз ")

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 3V3Optical sensor to Arduino: Тиркелген сүрөттү караңызDigital in = Pin 11 in ArduinoLED: GND to some to GND (мен оптикалык сенсордун бирин колдондум)+ Arduino PIN 13кө чейин (Бул пин мурунтан эле борттогу резисторго ээ болгондуктан жасалган, эгер сиз башкача колдонгон болсоңуз, анда резисторду колдонууну унутпаңыз, ошондо сиз LEDди күйгүзбөйсүз)

3 -кадам: Чычканды даярдоо

Чычканды даярдоо
Чычканды даярдоо
Чычканды даярдоо
Чычканды даярдоо
Чычканды даярдоо
Чычканды даярдоо

Бул жерде сенсорлор чычкандын корпусунун ичинде өз ордун табат. 3 огу сенсорун оңдоонун эң жакшы жерин табыңыз. Тегизделгенин текшериңиз жана багытты эске алыңыз (Сенсорду колуңузга тийгенде билесиз) Сиз каалагандай оңдой аласыз, мен 2 кичинекей бураманы кабыл алуу үчүн бурулган жыгач казыктын 2 кыска бөлүгүн колдондум., жана ысык чычкандын башкы тактасына жабыштырылган. Оптикалык сенсор үчүн чычкандын түбүндөгү тик бурчтуу тешикти түзүңүз, сенсордун үстөлдү дайыма көрүп турушу керек. Чычкан көтөрүлүп, сенсордун абалы "ачык" болгондо (көрүүгө эч кандай таблица жок), чычкан 3D режимине өтөт (Процессинин эскизин иштетет) Кошумча зымдарды (сенсорлордон Arduinoго) чыгаруу үчүн дагы бир тешикти калыптандырыңыз. пластикалык корпус. Mine чычкандын оң жагында жайгашкан. LEDди көрсөтө турган жерди оңдоңуз. Бул долбоордо LED 3D режиминин көрсөткүчү болуп саналат. Мен кенди силикон чычкан дөңгөлөгүнүн жанына койом. Чычкан көтөрүлгөндө, дөңгөлөктө жакшы көк нур пайда болгон.

4 -кадам: Булак коду

Arduino коду менин мугалимим Шачар Гейгер тарабынан жазылган жана бул долбоор үчүн мен тарабынан өзгөртүлгөн. 3D куб коду Processing веб -сайтынан табылган негизги код. Мен аны бир аз өзгөрттүм. Коддо бул бөлүк сенсордон келген чийки маалыматты (адатта -180 ден 180 х 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; Serial.write (z); Сенсор менен Arduino маалыматы ар бир өзүнчө огу үчүн иштетүү эскизине барат, бирок мурунку огунун тамгасы менен (эксп. X12 Y200 Z130 үчүн), төмөнкү код катты түшүрөт жана COMго жөнөтүлө турган баалуулуктарды гана калтырат. port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (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 жана Processing коду камтылган

5 -кадам: Видео

Бүттү … Бул видеодогу бүткөн долбоор. Кичине катачылык бар (Куб кээде видеодо "секирип турганын" көрө аласыз), Бул Z огунун айынан, сизде болбошу мүмкүн …

Сунушталууда: