Агуулгын хүснэгт:

Ухаалаг 3D принтер судалтай тоолуур: 5 алхам (зурагтай)
Ухаалаг 3D принтер судалтай тоолуур: 5 алхам (зурагтай)

Видео: Ухаалаг 3D принтер судалтай тоолуур: 5 алхам (зурагтай)

Видео: Ухаалаг 3D принтер судалтай тоолуур: 5 алхам (зурагтай)
Видео: BellaTube Live with Jamie & Nicole 2024, Арваннэгдүгээр
Anonim
Ухаалаг 3D принтер судалтай тоолуур
Ухаалаг 3D принтер судалтай тоолуур

Утас судлах гэж яагаад зовох ёстой юм бэ? Хэд хэдэн шалтгаан:

Амжилттай хэвлэхийн тулд зөв тохируулагдсан экструдер шаардлагатай болно: gcode нь шахагчийг судсыг 2 мм-ээр хөдөлгө гэж хэлэхэд яг 2 мм-ээр хөдлөх шаардлагатай болдог. Хэт их шахсан эсвэл дутуу шахсан тохиолдолд муу зүйл тохиолддог. Сайн тохируулагдсан тоолуур нь экструдерыг шударга байлгаж чаддаг

Зүсэгч нь тухайн хэвлэмэл материалын нийт хэмжээ (урт ба жингийн аль алинд нь) ойролцоогоор гардаг бөгөөд эдгээр утгыг шалгахыг хүсч байна

Утасны хөдөлгөөнийг хэмжиж хэвлэх ажил хэзээ зогссоныг надад хэлээрэй

Хэвлэгчийнхээ урд талын муухай аварга логог арилгаснаар үлдсэн зайг нөхөх ямар нэг зүйл надад хэрэгтэй байсан

Сэрүүхэн байна

Энэхүү зааварчилгаа нь хуучин PS/2 хулганыг 3D принтерийн судалтай тоолуур болгон өөрчилснөөр надад урам зориг өгсөн юм. Энэ нь 3D принтерт ашигтай шинж чанар нэмж оруулаад зогсохгүй хогийн цэг болж дуусах байсан хуучин төхөөрөмжийг дахин хийжээ. Гэхдээ энэ төсөл нь хулганы PS/2 интерфейсийг тойрсон бөгөөд энэ нь шаардлагагүй юм шиг санагдсан. Тиймээс би үүнийг цорын ганц чухал бүрэлдэхүүн хэсэг болох эргэдэг кодлогчтой танилцах боломж болгон ашигласан.

Хангамж

Ротари кодлогч

ESP32 дээр суурилсан хөгжүүлэгч самбар

I2C OLED дэлгэц (хоёр өнгийн нэгж нь үнэхээр дажгүй харагдаж байна)

Жижигхэн товчлуур

608ZZ холхивчийн тослог тосыг тослох

Тоног төхөөрөмжийн дэлгүүрээс хоёр цагираг (~ 33мм ID x ~ 1.5мм профайлын диаметр - тайлбарыг үзнэ үү)

Бүрээсний зориулалттай 2.5 мм хэмжээтэй өөрөө түншдэг эрэг

4 мм -ийн хоёр эрэг, самар, угаагчийг бэхэлгээг принтертээ хавсаргана

Утасны багц

3D принтер ба зарим утас

Алхам 1: Ротари кодлогч сонгоно уу

Ротари кодлогч сонгоно уу
Ротари кодлогч сонгоно уу
Ротари кодлогч сонгоно уу
Ротари кодлогч сонгоно уу

Ротари кодлогч нь эргэлтийн хөдөлгөөнийг цахилгаан импульс болгон хувиргадаг. Хуучин сургуулийн бүх хулганууд тэдгээрийг өнхрөх бөмбөгний хөдөлгөөнийг хэмжихэд ашигладаг байсан бөгөөд илүү орчин үеийн (ха ха) оптик хулгана нь тэдгээрийг өнхрөх дугуйнд ашигладаг хэвээр байсан бөгөөд үүнийг миний туршиж үзээд анхны туршилтанд ашиглаж байжээ. Харамсалтай нь миний уурхай тодорхой холболтын цэг санал болгоогүй бөгөөд түүний нарийвчлал муу байсан.

Хэрэв хийх нь зүйтэй юм бол хэт их хийх нь зүйтэй. Тиймээс би хувьсгал бүрт 360, импульсийн том, нөхөрсөг кодлогч худалдаж аваад төслөө тойруулан бүтээсэн. Миний сонгосон нэг нь LPD3806-360BM-G5-24C төрлийн Signswise нэмэгдсэн оптик эргэлтэт кодлогч байв. Гэхдээ ямар ч зохистой кодлогч үүнийг хийх болно.

Алхам 2: Дугуй ба сул зогсолтыг нэмнэ үү

Дамар ба сул зогсолтыг нэмнэ үү
Дамар ба сул зогсолтыг нэмнэ үү

Утасны шугаман хөдөлгөөнийг дамараар кодлогчийн эргэлтийн хөдөлгөөн гэж орчуулдаг. Утас нь дамарны эсрэг зогсдог.

Дугуй нь хоёр ховилтой бөгөөд тус бүр нь сунгасан о-цагираг барьдаг тул гулсахгүй.

Сул зогсолт нь судал нь кодлогч дамар дээр төвлөрч байх ганц v ховилтой. Энэ нь миний хэвтэж байсан 608ZZ холхивч дээр байрладаг бөгөөд энэ нь миний төслийн үндсэн хэсэгт хэвлэгдсэн спираль булаг дээр суурилагдсан болно. (STL файлуудыг доор хавсаргасан болно.)

Үүнийг шийдэхийн тулд бага зэрэг туршилт, алдаа шаардагдсан боловч миний загвар нь янз бүрийн өнцөг, дамарны радиусыг багтаасан байх ёстой бөгөөд ингэснээр утас нь дамрын аль ч хэсгээс, хэвлэлийн эхнээс төгсгөл хүртэл салах боломжтой болно. Мөн хэвлэсэн хавар нь дамар солих үед судалтай дотогш орох, гадагшлахад хялбар болгодог.

Алхам 3: Кодлох

Image
Image

Шууд утсыг тоолохын тулд хоёр дижитал оролттой аливаа дэвтэр хийх болно. Миний сонгосон кодлогч нь Vcc, газардуулга, хоёр кодлогч тээглүүр гэсэн дөрвөн голтой. Ротари кодлогч хэрхэн ажилладаг, тэдгээрийг Arduino-той хэрхэн холбох талаар тайлбарласан үнэхээр сайхан бичвэр байна. (Мөн: 3 зүү кодлогчтой холбоотой нийтлэл.)

Үндсэн тоолох нь энгийн: хоёр оролт - дотооддоо татахаар тохируулагдсан тул гадны резисторыг Vcc руу гагнах шаардлагагүй бөгөөд нэг тасалдал. Би тэг/дахин тохируулах товчлуурыг нэмж оруулсан бөгөөд дахиад нэг оролт, тасалдал шаардлагатай болно.

хүчингүй 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); } хүчингүй IRAM_ATTR encoderPinDidChange () {if (digitalRead (ENCODER_PIN_1) == digitalRead (ENCODER_PIN_2)) {байрлал += 1; } өөр {байрлал -= 1; }} хүчингүй IRAM_ATTR zeroButtonPressed () {// тэгийг зохицуулах & дахин тохируулах}

Гэхдээ би дүлий лангуунаас илүү ихийг хүсч байсан. ESP32 (эсвэл ESP8266) болон түүний суурилуулсан WiFi-ийн тусламжтайгаар би цуглуулж буй өгөгдлөөрөө ямар нэгэн зүйл хийж чадна. Хугацаа дуусах энгийн кодыг ашиглан (доор тайлбарласан болно) хэвлэх ажил хэзээ дуусч байгааг тодорхойлж, эдгээр үйл явдлыг утсандаа мэдэгдэл хэлбэрээр илгээх боломжтой. Ирээдүйд би дуусах мэдрэгч нэмж, анхаарал хэрэгтэй үед өөртөө мэдэгдэж (принтерээ түр зогсоож) болно.

Бүрэн код Github дээр байна.

Кодын талаархи хэдэн тэмдэглэл:

Үүнийг өөрийн бүтцэд тохируулахын тулд танд хэрэгтэй зүйл бол нарийвчлал (encoderPPR) - нэг эргэлтэнд импульс бөгөөд энэ нь ихэвчлэн заасан үзүүлэлтээс хоёр дахин их бөгөөд дамрын радиус (wheelRadius) юм. Эдгээр утгууд, таны wifi -ийн ssid болон нууц үг, товчлуур, кодлогч, OLED дэлгэцтэй холбогдсон тодорхой зүүүүд бүгд config.h руу орно

Тэг товчлуур нь дахин тохируулах үүргийг давхар гүйцэтгэдэг - самбарыг дахин асаахын тулд үүнийг дарж байгаарай

Тасалдал нь хүчтэй байдаг - заримдаа хэтэрхий хүчтэй байдаг. Тэг товчлуур дээр ганц товшилт хийх нь zeroButtonPressed () функцийг 10-20 удаа дуудахад хүргэж болзошгүй тул би задрах логикийг нэмж оруулав. Миний оптик кодлогч надад хэрэггүй байсан, гэхдээ YMMV

Тасалдал нь оролтыг асинхрон байдлаар хариуцдаг бол loop () горим нь нягтлан бодох бүртгэлийг зохицуулдаг. EncoderState - хооллох, буцаах эсвэл зогсоох боломжтой тоологч нь кодлогчийн байрлал өөрчлөгдсөнөөр шинэчлэгддэг. Хугацаа дууссаны дараа принтер хэзээ хэвлэж эхэлснийг тодорхойлдог. Гэхдээ хамгийн хэцүү зүйл бол 3D принтерүүд ихэвчлэн хөдөлгөөнөө эхлүүлж, зогсоодог тул хамгийн багадаа 5 секундын турш тасралтгүй зогссон "хэвлэх дууссан" үйл явдлыг тодорхойлох нь хамгийн сайн ажилласан юм. Аливаа хөдөлгөөн нь 15 секундын хугацаанд "хэвлэх дууссан" үйл явдал тохиолдоогүй тохиолдолд л "хэвлэж эхлэв" үйл явдлыг тодорхойлдог хоёр дахь таймерыг өдөөдөг. Практик дээр энэ нь усанд сэлэх хэлбэрээр ажилладаг

Тиймээс үндсэн давталт () код нь ачаалалгүй ажиллах боломжтой бөгөөд дебунгийн код нь RTOS даалгавар дээр ажилладаг. Үүний нэгэн адил, мэдэгдлийг илгээх http хүсэлт нь синхрон байдаг тул арын дэвсгэртэй байдаг. Тиймээс анимацууд жигд явагддаг бөгөөд тоолох нь хэзээ ч зогсдоггүй

Миний жишээн дээр (A) WiFi болон mDNS-ээр сүлжээний холболт үүсгэх, хадгалах, (B) NTC серверээс цаг авах, ингэснээр би эхлэл, төгсгөлийн мэдэгдлээ цаг дээр дарж, гоё цагийг харуулах нэмэлт кодууд байдаг. миний OLED болон (C) дээр OTA шинэчлэлтийг зохицуулдаг тул кодын шинэчлэлтийг авахын тулд би самбараа Mac -тэй холбох шаардлагагүй болно. Одоогийн байдлаар энэ нь зөвхөн нэг цул C ++ файлд байгаа бөгөөд үүнийг би илүү сайн зохион байгуулах цаг гаргаагүй учраас л байгаа юм

Би гайхамшигтай (мөн үнэгүй) Prowl iOS аппликейшнийг ашиглан утсандаа түлхүүр мэдэгдлийг HTTP авах аргуудаас өөр зүйлгүйгээр илгээсэн

Кодыг боловсруулж, самбарыг асаахын тулд би Visual Studio Code дээр ажилладаг гайхалтай PlatformIO -ийг хоёуланг нь үнэгүй ашигласан

Миний төслийн хувьд би эдгээр номын санг ашигласан: Оливерийн u8g2, Paul Stoffregen -ийн elapsedMillis, Espressif ESP32 платформтой хамт ирдэг Markus Sattler -ийн HTTPClient. Бусад бүх зүйл Arduino номын сан эсвэл PlatformIO дахь ESP32 платформтой хамт ирдэг

Эцэст нь би үндсэн дамарныхаа зургаан энгийн bitmap -ийг өөр өөр өнцгөөр бүтээсэн тул лангууны ард OLED дээр цэвэрхэн ээрэх дугуйны анимацийг үзүүлэх боломжтой болсон. Энэ нь илүү гайхалтай нөлөө үзүүлэхийн тулд илүү хурдан боловч кодлогчтой зохих чиглэлд хөдөлдөг

Алхам 4: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас

Би үүнийг зохион бүтээсэн бөгөөд утастай холболт нь маш энгийн байх болно, ихэвчлэн миний хашлага жижиг хэмжээтэй байх болно, гэхдээ дибаг хийх нь маш хурдан байх болно. Миний жижиг хайрцагт байгаа давчуу нөхцөлд анхаарлаа хандуулаарай.:)

Эхний шаардлага бол миний эргэдэг кодлогчийн 5V тэжээлийн хүчдэл байв. Надад хадгалагдаж байсан ESP32 төхөөрөмжүүдийн янз бүрийн самбараас зөвхөн USB -ээр тэжээгддэг цөөхөн хэд нь Vcc зүү дээр 5V -ийг нийлүүлдэг. (Бусад нь 4.5-4.8В хэмжсэн, хэрэв таны математик муу байвал 5В-аас доош байх болно.) Миний ашигласан самбар бол 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 хөгжүүлэгч хавтанг барих зориулалттай хашлага (доод талд), хажуу талд нь USB кабелийн зай, нөгөө талд нь миний кодлогч утаснуудад холбосон холбогчийг байрлуулна. Энэ нь Wemos Lolin32 -т тохирохоор хийгдсэн тул өөр самбар дээр тааруулахын тулд та энэ загварыг бага зэрэг өөрчлөх хэрэгтэй болж магадгүй юм

OLED дэлгэцийг барих хашлага (дээд талд), тэг / дахин тохируулах товчлуурын өөр спираль юм

Доод талын хашлага доторх хоёр тавиурын хооронд амрах зориулалттай жижигхэн унтраалганд зориулагдсан товчлуур эзэмшигч. Би унтраагуурыг эзэмшигч рүү "нааж" гагнуурын төмрийг ашигласан; Зургийн өмнөх алхамыг үзнэ үү

Бүх зүйл нь дэмжлэггүйгээр хэвлэх зориулалттай. Таны сонгосон өнгөний энгийн PLA бол танд хэрэгтэй зүйл юм.

Бүгдийг нэгтгэж, принтертээ хавсаргаарай (энд зарим бүтээлч байдал шаардагдаж магадгүй), тэгвэл та явахад бэлэн байна.

Зөвлөмж болгож буй: