فهرست مطالب:

شمارنده فیلتر پرینتر سه بعدی هوشمند: 5 مرحله (همراه با تصاویر)
شمارنده فیلتر پرینتر سه بعدی هوشمند: 5 مرحله (همراه با تصاویر)

تصویری: شمارنده فیلتر پرینتر سه بعدی هوشمند: 5 مرحله (همراه با تصاویر)

تصویری: شمارنده فیلتر پرینتر سه بعدی هوشمند: 5 مرحله (همراه با تصاویر)
تصویری: فیلامت رنگی برای پیرینتر سه بعدی ساختم 😂🗿#بنیامین 2024, ژوئن
Anonim
شمارنده فیلامنت پرینتر سه بعدی هوشمند
شمارنده فیلامنت پرینتر سه بعدی هوشمند

چرا زحمت شمارش فیلامنت را می کشیم؟ چند دلیل:

چاپ های موفق نیاز به یک اکسترودر کالیبره شده دارند: وقتی gcode به اکسترودر می گوید که رشته را 2 میلی متر حرکت دهید ، باید دقیقاً 2 میلی متر حرکت کند. اگر بیش از حد اکسترود شود یا خارج شود ، اتفاقات بدی رخ می دهد. یک شمارنده کالیبره شده می تواند اکسترودر را صادق نگه دارد

دستگاه های برش برآورد می کنند که تعداد کل رشته مورد نیاز برای چاپ (در طول و وزن) چقدر است و من می خواهم این مقادیر را بررسی کنم

همچنین با اندازه گیری حرکت فیلامنت ، زمان شروع چاپ و متوقف شدن آن را به من اطلاع دهید

من به چیزی نیاز داشتم تا فضای باقی مانده از حذف لوگوی غول پیکر زشت جلوی چاپگرم را پوشش دهد

خنک است

من از این دستورالعمل الهام گرفتم ، که یک موش قدیمی PS/2 را به عنوان یک شمارشگر رشته برای چاپگر سه بعدی جایگزین کرد. نه تنها یک ویژگی مفید را به چاپگر سه بعدی اضافه کرد ، بلکه یک دستگاه قدیمی را که در غیر این صورت به محل دفن زباله ختم می شد ، تغییر مکان داد. اما این پروژه در اطراف رابط PS/2 موس ساخته شده است ، که به نظر بیهوده سخت و دشوار به نظر می رسید. بنابراین من از این فرصت برای یادگیری در مورد تنها جزء ضروری استفاده کردم: رمزگذار چرخشی.

تدارکات

رمزگذار روتاری

برد توسعه یافته مبتنی بر ESP32

صفحه نمایش OLED I2C (واحد دو رنگ بسیار جالب به نظر می رسد)

دکمه کوچک لحظه ای

یاتاقان 608ZZ چرب شده

دو حلقه O از فروشگاه سخت افزار (profile 33mm ID diameter diameter 1.5mm قطر مشخصات - نظرات را ببینید)

دو پیچ 2.5 میلی متری برای بستن محفظه

دو پیچ 4 میلیمتری ، مهره و واشر برای اتصال پایه به چاپگر شما

دسته ای سیم

چاپگر سه بعدی و مقداری فیلامنت

مرحله 1: رمزگذار روتاری را انتخاب کنید

رمزگذار روتاری را انتخاب کنید
رمزگذار روتاری را انتخاب کنید
رمزگذار روتاری را انتخاب کنید
رمزگذار روتاری را انتخاب کنید

رمزگذارهای چرخشی حرکت چرخشی را به پالس های الکتریکی تبدیل می کنند. همه موشهای قدیمی از آنها برای اندازه گیری حرکت توپ نورد استفاده کردند و موش های نوری مدرن (هکتار هکتار) هنوز از آنها برای چرخ پیمایش استفاده کردند ، چیزی که من در اطراف آن قرار داده بودم و برای آزمایش اولیه استفاده کردم. متأسفانه ، نقطه نصب من مشخص نیست و وضوح آن ضعیف است.

اگر ارزش انجام آن را دارد ، ارزش انجام بیش از حد را دارد. بنابراین من یک رمزگذار بزرگ ، دوستانه و 360 پالس در هر دور چرخ خریدم و پروژه خود را حول آن ساختم. چیزی که من انتخاب کردم یک رمزگذار روتاری نوری Signswise Incremental بود ، از نوع LPD3806-360BM-G5-24C. اما هر رمزگذار مناسب این کار را انجام می دهد.

مرحله 2: یک قرقره و بیکار اضافه کنید

یک قرقره و بیکار اضافه کنید
یک قرقره و بیکار اضافه کنید

حرکت خطی فیلامنت به وسیله یک قرقره به حرکت چرخشی رمزگذار تبدیل می شود. و رشته توسط قرقره در برابر قرقره نگه داشته می شود.

قرقره دارای دو شیار است که هر کدام دارای یک حلقه حلقه ای کشیده هستند تا لغزش نداشته باشد.

بیکار یک شیار v تک دارد تا فیلامنت را روی قرقره رمزگذار متمرکز نگه دارد. روی یاتاقان 608ZZ که من در اطراف آن گذاشته بودم ، نشسته است و روی فنر مارپیچی درست در بدنه اصلی پروژه من نصب شده است. (فایلهای STL در زیر ضمیمه شده است.)

این کار به آزمایش و خطا نیاز داشت تا درست شود ، اما طرح من باید زوایای مختلف و شعاع قرقره را در بر بگیرد ، که به نخ اجازه می دهد از هر قسمتی از قرقره ، از ابتدا تا انتهای چاپ ، باز شود. و فنر چاپی باعث می شود هنگام تعویض قرقره ها رشته را داخل یا خارج کنید.

مرحله 3: کد نویسی

Image
Image

فقط برای شمارش فیلامنت ، هر تخته dev با دو ورودی دیجیتال کار می کند. رمزگذاری که انتخاب کردم دارای چهار پین است: Vcc ، پایه و دو پین رمزگذار. در اینجا یک نوشتار واقعاً زیبا وجود دارد که نحوه عملکرد رمزگذارهای دوار و نحوه اتصال آنها با آردوینو را توضیح می دهد. (همچنین: این مقاله در مورد رمزگذارهای 3 پین است.)

شمارش اساسی ساده است: دو ورودی - طوری تنظیم می شوند که به صورت داخلی کشیده شوند تا مقاومتهای خارجی نیازی به اتصال به Vcc نداشته باشند - و یک وقفه. من همچنین دکمه صفر/تنظیم مجدد را اضافه کردم ، که نیاز به یک ورودی و وقفه دیگر دارد:

void setUpPins () {

pinMode (ENCODER_PIN_1 ، INPUT_PULLUP) ؛ pinMode (ENCODER_PIN_2 ، INPUT_PULLUP) ؛ pinMode (ZERO_BTN_PIN ، INPUT_PULLUP) ؛ attachInterrupt (ENCODER_PIN_1 ، encoderPinDidChange ، CHANGE) ؛ attachInterrupt (ZERO_BTN_PIN ، zeroButtonPressed ، CHANGE) ؛ } void IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {موقعیت += 1 ؛ } else {position -= 1؛ }} void IRAM_ATTR zeroButtonPressed () {// handle zero & reset}

اما من چیزی بیشتر از یک پیشخوان گنگ می خواستم. با ESP32 (یا ESP8266) و WiFi داخلی آن ، در واقع می توانم با داده هایی که جمع آوری می کنم کاری انجام دهم. با استفاده از یک کد زمان بندی ساده (در زیر توضیح داده شده است) ، می توانم زمان شروع و پایان چاپ را تعیین کنم و آن رویدادها را به عنوان اعلان به تلفن خود ارسال کنم. در آینده ، ممکن است یک سنسور تمام شده اضافه کنم و در صورت نیاز به توجه خودم (و چاپگر خود را موقتاً متوقف کنم).

کد کامل در Github است.

چند نکته در مورد کد:

برای سفارشی سازی این مورد در ساخت خود ، تنها چیزی که نیاز دارید رزولوشن (encoderPPR) است - در پالس در هر دور ، که معمولاً دو برابر مشخصات اعلام شده است - و شعاع قرقره (wheelRadius). این مقادیر ، به علاوه ssid و گذرواژه وای فای شما و پین های خاص متصل به دکمه ، رمزگذار و صفحه OLED ، همه در config.h قرار دارند

دکمه صفر نیز به عنوان تنظیم مجدد عمل می کند - آن را برای راه اندازی مجدد برد نگه دارید ، که برای اشکال زدایی مفید است

وقفه ها قدرتمند هستند - گاهی اوقات بیش از حد قدرتمند. تنها یک ضربه روی دکمه صفر می تواند باعث شود تا تابع zeroButtonPressed () 10-20 بار فراخوانی شود ، بنابراین من منطق خروج را اضافه کردم. رمزگذار نوری من به آن نیاز نداشت ، اما YMMV

در حالی که وقفه ها ورودی ها را به صورت نا همزمان کنترل می کنند ، روال حلقه () حسابداری را اداره می کند. encoderState - مجموعه ای که می تواند تغذیه شود ، جمع شود یا متوقف شود - با تغییر موقعیت رمزگذار به روز می شود. زمان پایان کار تعیین می کند که چاپگر چاپ را آغاز کرده و به پایان رسانده است. اما قسمت مشکل این است که چاپگرهای سه بعدی اغلب شروع به حرکت می کنند و متوقف می کنند ، بنابراین آنچه بهترین کار را کرد این بود که رویداد "چاپ کامل" به طور مداوم حداقل به مدت 5 ثانیه متوقف شود. هر حرکتی یک تایمر دوم را فعال می کند که رویداد "شروع چاپ" را تنها در صورتی تعریف می کند که هیچ رویداد "چاپ کامل" در بازه زمانی 15 ثانیه رخ ندهد. در عمل ، این کار با شنا کار می کند

بنابراین کد حلقه اصلی () می تواند بدون محدودیت اجرا شود ، کد خروجی در یک حلقه وظیفه RTOS اجرا می شود. به همین ترتیب ، درخواستهای http برای ارسال اعلانات همزمان هستند و بنابراین پس زمینه هستند. بنابراین انیمیشن ها بدون مشکل اجرا می شوند و شمارش هرگز متوقف نمی شود

در مثال من تعدادی کد اضافی برای (A) ایجاد و حفظ اتصال شبکه با WiFi و mDNS وجود دارد ، (B) زمان را از سرور NTC دریافت کنید تا بتوانم اعلانات شروع و پایان خود را زمان بندی کنم و یک ساعت شاد را نمایش دهم در OLED من ، و (C) به روز رسانی OTA را انجام می دهد ، بنابراین مجبور نیستم برای به روز رسانی کد ، برد خود را به Mac خود متصل کنم. در حال حاضر ، همه در یک فایل C ++ یکپارچه هستند ، فقط به این دلیل که من زمان بیشتری را برای سازماندهی بهتر آن اختصاص نداده ام

من از برنامه فوق العاده (و رایگان) Prowl iOS برای ارسال اعلان های فشار به تلفن خود بدون هیچ روش دیگری از HTTP Get استفاده کردم

برای توسعه کد و فلش برد ، از PlatformIO دیدنی که روی Visual Studio Code اجرا می شود ، هر دو رایگان استفاده کردم

برای پروژه خود ، از این کتابخانه ها استفاده کردم: u8g2 توسط الیور ، elapsedMillis توسط Paul Stoffregen و HTTPClient توسط Markus Sattler ، که با پلت فرم Espressif ESP32 ارائه می شود. همه چیز دیگر یا با کتابخانه آردوینو یا پلت فرم ESP32 در PlatformIO ارائه می شود

در نهایت ، من شش نقشه کوچک ساده از قرقره اصلی خود در زوایای مختلف ایجاد کردم ، بنابراین می توانم یک انیمیشن مرتب و کوچک را در OLED پشت پیشخوان نشان دهم. با رمزگذار در جهت مناسب حرکت می کند ، اگرچه برای جلوه ای چشمگیرتر بسیار سریعتر

مرحله 4: سیم کشی

سیم کشی
سیم کشی

من این را طوری طراحی کردم که سیم کشی ساده باشد ، عمدتا محفظه من می تواند کوچک باشد ، اما همچنین اشکال زدایی مستقیم خواهد بود. به شرایط تنگ در جعبه کوچک من توجه کنید.:)

اولین نیاز ولتاژ منبع تغذیه رمزگذار چرخشی من بود. از بین بردهای مختلف ESP32 dev که در انبار خود داشتم ، فقط تعداد کمی از آنها 5V واقعی را در پین Vcc هنگام تغذیه با USB تأمین می کردند. (سایرین اندازه گیری 4.5-4.8V را داشتند ، که درصورت بد بودن ریاضی کمتر از 5V است.) تخته ای که من استفاده کردم Wemos Lolin32 بود.

بعد ، دو پین سیگنال رمزگذار دوار می آیند. از آنجا که من از وقفه ها استفاده می کنم ، نگرانی اصلی این است که پین هایی که استفاده می کنم با هیچ چیزی تداخل ندارند. در اسناد ESP32 آمده است که ADC2 نمی تواند همزمان با WiFi استفاده شود ، بنابراین متأسفانه به این معنی است که من نمی توانم از پین های ADC2 GPIO استفاده کنم: 0 ، 2 ، 4 ، 12 ، 13 ، 14 ، 15 ، 25 ، 26 ، یا 27. من 16 و 17 را انتخاب کردم.

نکته حرفه ای: اگر پس از کنار هم گذاشتن همه اینها ، به نظر می رسد که رمزگذار شما برعکس شمارش می کند ، فقط می توانید دو تخصیص پین را در config.h عوض کنید.

سرانجام ، سیم اتصال دهنده رمزگذار چرخشی را به … رول درام … پین زمین وصل کنید.

بعد ، دکمه صفر/تنظیم مجدد بین زمین و پین رایگان دیگر متصل می شود (من GPIO 18 را انتخاب کردم).

دکمه ای که من استفاده کردم یک سوئیچ لحظه ای کوچک بود که من آن را از ماوس رایانه مذکور نجات دادم ، اما هر دکمه ای که در اطراف آن قرار دهید ، این کار را می کند. شما می توانید آن را در یک کوه کوچک که برای آن درست روی تخته درست کرده ام استراحت کند.

در نهایت ، OLED ، اگر قبلاً به برد شما متصل نشده باشد ، فقط به چهار پین نیاز دارد: 3V3 ، زمین ، ساعت i2c و داده های i2c. در برد من ، ساعت و داده ها به ترتیب 22 و 21 هستند.

مرحله 5: قطعات را چاپ کنید

چاپ قطعات
چاپ قطعات

من هفت قسمت را برای این ساخت طراحی کردم:

قرقره ، که مستقیماً بر روی محور رمزگذار چرخشی نصب می شود

بیکار ، که بر روی یاتاقان 608ZZ قرار می گیرد (روکش ها را جدا کرده و با WD40 چرب کنید تا آزادانه بچرخد)

نگهدارنده ، که روی آن دو پا و رمزگذار نصب می شود - به فنر مارپیچ برای کارگر توجه کنید

براکتی برای تثبیت نگهدارنده. عکس در این مرحله نحوه اتصال براکت به نگهدارنده را نشان می دهد

محفظه (پایین) برای نگه داشتن برد ESP32 dev من ، با یک فاصله برای کابل USB در طرف و دیگری در بالا برای کانکتوری که به سیمهای رمزگذار خود اضافه کردم. این یکی متناسب با Wemos Lolin32 طراحی شده است ، بنابراین ممکن است مجبور شوید این طرح را کمی متناسب با یک برد متفاوت تغییر دهید

محفظه (بالا) برای نگه داشتن صفحه OLED ، مارپیچی دیگر برای دکمه صفر / تنظیم مجدد

یک نگهدارنده دکمه برای سوئیچ کوچکی که داشتم ، طراحی شده است تا بین دو قفسه در داخل محفظه پایین قرار بگیرد. من از آهن لحیم کاری برای "چسباندن" سوئیچ به نگهدارنده استفاده کردم. مرحله قبل را برای عکس ببینید

همه چیز برای چاپ بدون پشتیبانی طراحی شده است. PLA معمولی در رنگ دلخواه شما تنها چیزی است که شما نیاز دارید.

همه را کنار هم قرار دهید ، به چاپگر خود وصل کنید (ممکن است در اینجا نیاز به خلاقیت باشد) ، و خوب است.

توصیه شده: