فهرست مطالب:

موس سه بعدی AIR - آردوینو + پردازش: 5 مرحله
موس سه بعدی AIR - آردوینو + پردازش: 5 مرحله

تصویری: موس سه بعدی AIR - آردوینو + پردازش: 5 مرحله

تصویری: موس سه بعدی AIR - آردوینو + پردازش: 5 مرحله
تصویری: ترکید😱😭 2024, جولای
Anonim
موس سه بعدی AIR | آردوینو + پردازش
موس سه بعدی AIR | آردوینو + پردازش

موس سه بعدی AIR | من دانشجوی طراحی صنعتی هستم و سال گذشته به عنوان بخشی از دوره ای با عنوان "Technology as RAW materiel" این پروژه را به عنوان آخرین کار خود ساختم. بیشتر اوقات با SolidWorks ، یک نرم افزار CAD برای طراحی و مهندسی کار می کنم به چرخاندن بدنه جامد روی صفحه با استفاده از دکمه وسط ماوس انجام می شود. من به دنبال چیزی بصری تر بودم. به این ترتیب من در نهایت ماوس هوایی سه بعدی را انجام دادم ، جایی که چرخش واقعی یک جسم با حرکت ماوس در وسط هوا در هر 3 محور انجام می شود - به همین ترتیب اگر جسم را در دست بگیرید ، می چرخانید. من از Arduino ، چند سنسور و یک طرح پردازش استفاده کردم. توجه:- در حال حاضر ، این فقط نمایشی از مفهوم است ، زیرا هیچ پلاگین واقعی برای کار با SolidWork وجود ندارد (اما البته ، در صورت تمایل یکی را بنویسید اگر می دانید چگونه:) ایده ای اگر می خواهید خودتان امتحان کنید و آن را بسازید … از آن لذت ببرید … (این اولین دستورالعمل من است) در اینجا یک دموی تصویری از پروژه به پایان رسیده است

مرحله 1: سخت افزار و موارد

سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد
سخت افزار و موارد

این ارزان ترین دستورالعمل نیست زیرا بر اساس شتاب سنج 3 محور + سنسور قطب نما ساخته شده است. موارد مورد نیاز:* ماوس - موشواره ای بهتر است (فقط به دلیل استفاده و ارزان تر) ، هر موش باید انجام دهد. برای قرار دادن سنسورها و سیمهای اضافی باید کمی فضا داشته باشید ، بنابراین به سراغ موشهای باریک و اضافی دیگر نروید. $ 149* مبدل سطح منطق - باید! از آنجا که آردوینو 5 ولت است و سنسور 3 محور 3.3 ولت است ، برای تبدیل 5 ولت به 3.3 ولت به یکی از آنها نیاز دارید. این یک نام بزرگ دارد ، اما در SpurkFun فقط 1.95 دلار هزینه دارد.* آشکارساز نوری بزرگ / فوتوترانزیستور - این یک سنسور نوری ساده است که در این پروژه برای تشخیص زمان بلند شدن ماوس از سطح کار استفاده می شود. با قیمت 2.25 دلار در SpurkFun خریداری شده است. اگر فضای کافی برای قرار دادن این ماوس در داخل موس انتخابی خود ندارید ، می توانید از این یکی کوچکتر و ارزانتر استفاده کنید. * یک (1) LED - رنگ را فراموش نکنید ، فوق العاده بهتر کار می کند.* 2 مقاومت - یک (1) x 100Ω و یک (1) x 100KΩ (برای سنسور نوری)* برد آردوینو - DA! من از مدل Diecimila استفاده کردم. یک Duemilanove جدیدتر در SpurkFun با قیمت حدود 29.95 دلار (باید کار کند) + نرم افزار آردوینو نصب شده است.* نرم افزار پردازش نصب شده است.* کد منبع پروژه (نگران نباشید ، در یک ثانیه می توانید آن را بارگیری کنید) به علاوه: برخی چسب داغ (برای تعمیر وسایل در جای خود) چند پیچ کوچک. حدود 10 سانتی متر از یک لنگر چوبی 6 میلی متری (Dia.). چند سیم اضافی. آهن لحیم کاری. در مورد چیزی که پلاستیک را برش می دهم ، از یک چاقو و یک فایل استفاده کردم (برای شکل دهی) ("خوب ، از من برای این مرحله متنفر نباشید ، انگلیسی زبان دوم من است ، اگر این مورد را اشتباه گرفتم ، متأسفم ، مطمئنم که در یک ثانیه متوجه خواهید شد که در مورد چه چیزی صحبت می کنم آن را در تصاویر خواهید دید ")

مرحله 2: الکترونیک

الکترونیک
الکترونیک
الکترونیک
الکترونیک

همه چیز باید با هم لحیم شود … به نحوی … توجه: سنسور 3 محور یک چیز کوچک گران قیمت است قبل از اینکه همه چیز را روشن کنید سیم کشی را بررسی کنید … نمودارهای مربوط به تمام سیم کشی مورد استفاده در این پروژه را ببینید. کد منبع پیوست فقط در صورت استفاده از شماره های پینی که من استفاده کردم ، می تواند کار کند ، اما هنگام اتصال به شرط تغییر اعداد مناسب در کد ، آنها را تغییر دهید. اتصال سنسور 3 محور به مبدل سطح منطقی: سنسور VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> مبدل TXI (Chan1) مبدل TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) مبدل TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (حداقل یکی از آنها) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 سنسور اپتیکال به آردوینو: تصویر ضمیمه را ببینید = دیجیتال در = پین 11 در ArduinoLED: GND GND (من از یکی از سنسورهای نوری استفاده کردم)+ تا Arduino PIN 13 (این کار انجام شد زیرا این پین قبلاً دارای مقاومت داخلی است ، اگر از مقاومت دیگری استفاده می کنید ، حتماً از مقاومت استفاده کنید تا LED را نسوزانید)

مرحله 3: آماده سازی ماوس

آماده سازی موش
آماده سازی موش
آماده سازی موش
آماده سازی موش
آماده سازی موش
آماده سازی موش

این جایی است که سنسورها جای خود را در محفظه ماوس می یابند. بهترین مکان را برای تعمیر سنسور 3 محور پیدا کنید. مطمئن شوید که تراز شده است و جهت گیری را در نظر داشته باشید (وقتی سنسور را در دست دارید می دانید) می توانید به هر شکلی که دوست دارید آن را تعمیر کنید ، من از 2 قطعه کوتاه از لنگر چوبی استفاده کردم که برای پذیرش 2 پیچ کوچک مته شده است. ، و داغ به صفحه اصلی ماوس چسبانده می شود. برای سنسور نوری ، یک سوراخ مستطیل شکل در پایین ماوس ایجاد کنید ، ایده این است که سنسور همیشه "جدول" را ببیند. هنگامی که ماوس بلند می شود و حالت سنسور "باز" می شود (هیچ میز برای مشاهده وجود ندارد) ماوس به حالت سه بعدی می رود (طرح پردازش را اجرا می کند) یک سوراخ دیگر برای هدایت سیم های اضافی (از سنسورها به آردوینو) از خارج ایجاد کنید. محفظه پلاستیکی من در سمت راست ماوس قرار داشت. LED را که در آن نشان داده می شود ثابت کنید. در این پروژه LED نشانگر حالت سه بعدی است. من خودم را در کنار چرخ موس سیلیکونی قرار می دهم. هنگامی که ماوس بلند می شود ، چرخ درخشش آبی خوبی دارد.

مرحله 4: کد منبع

کد Arduino توسط Shachar Geiger ، معلم من نوشته شده است و توسط من برای این پروژه اصلاح شده است. کد مکعب سه بعدی کد اصلی موجود در وب سایت 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 ؛ Serial.write (z) ؛ اطلاعات سنسور و آردوینو برای هر محور جداگانه به طرح پردازش می رود ، اما با حرف محور قبلی (برای اکسپرس X12 Y200 Z130) ، کد زیر حرف را رها می کند و فقط مقادیری را که برای COM ارسال می شوند باقی می گذارد. port while (port.available () == 0) {} char char = 0 ؛ while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ()؛} X = port.read ()؛ while (خواندن! = 'y') {while (port.available () == 0) {} reading = (char) port.read ()؛} Y = port.read () ؛ در حالی که (خواندن! = '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 و کد پردازش می باشد

مرحله 5: فیلم

تمام … این پروژه به پایان رسیده در یک ویدیو است. یک اشکال جزئی وجود دارد (می بینید که مکعب گاهی در ویدیو "می پرید") ، این به دلیل محور Z است ، ممکن است برای شما اتفاق نیفتد …

توصیه شده: