Мазмуну:
- Жабдуулар
- 1 -кадам: Ротари Encoder тандоо
- 2 -кадам: Пуликти жана боштукту кошуңуз
- 3 -кадам: Коддоо
- 4 -кадам: Кабелдөө
- 5 -кадам: Бөлүктөрдү басып чыгаруу
Video: Акылдуу 3D принтер филамент эсептегичи: 5 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Эмне үчүн жипти санап убара болосуң? Бир нече себептер:
Ийгиликтүү басып чыгаруу үчүн туура калибрленген экструдер талап кылынат: gcode экструдерге жипти 2 мм жылдырууну айтканда, ал так 2 мм жылышы керек. Жаман нерселер, эгерде ал ашыкча же ашыкча чыгарып кетсе. Жакшы калибрленген эсептегич экструдерди чынчыл кыла алат
Кесүүчүлөр берилген басуунун канча жалпы жипти талап кыларын болжолдошот (узундугу жана салмагы боюнча) жана мен бул баалуулуктарды текшергим келет
Жиптин кыймылын өлчөө, басып чыгаруу качан башталганын жана качан токтоп калганын мага да билдирип коюңуз
Мага принтеримдин маңдайындагы чириген ири логотипти алып салгандан кийин боштукту жабуу үчүн бир нерсе керек болчу
Бул сонун
Эски PS/2 чычканды 3D принтер үчүн жипче эсептегич катары алмаштырган бул нускамадан шыктандым. Бул 3D принтерине пайдалуу өзгөчөлүктү гана кошуп койбостон, таштанды полигонуна түшүп кала турган эски аппаратты алмаштырды. Бирок бул долбоор чычкандын PS/2 интерфейсинин тегерегинде курулган, бул керексиздей оор көрүнгөн. Ошентип, мен муну бир гана маанилүү компонент: айлануучу коддогуч жөнүндө билүү мүмкүнчүлүгү катары алдым.
Жабдуулар
бюрократия коддогуч
ESP32 негизделген өнүгүү тактасы
I2C OLED дисплейи (эки түстүү бирдик өзгөчө сонун көрүнөт)
Майда -чүйдө баскычтар
608ZZ подшипнигин майсыздандырыңыз
Аппараттык дүкөндөн эки о -шакек (~ 33mm ID x ~ 1.5mm профилдин диаметри - комментарийлерди караңыз)
Корпус үчүн 2,5 мм өз алдынча таптап туруучу эки бурама
Принтериңизге орнотуу үчүн 4 мм эки бурамалар, гайкалар жана шайбалар
Зымдардын тобу
3D принтер жана кээ бир жип
1 -кадам: Ротари Encoder тандоо
Ротари коддогучтар айлануу кыймылын электрдик импульстарга которот. Бардык эски мектептин чычкандары аларды тоголотуучу топтун кыймылын өлчөө үчүн колдонгон, ал эми заманбап (га ха) оптикалык чычкандар дагы эле аларды айланма дөңгөлөк үчүн колдонушкан, мен муну тегерете коюп, алгачкы эксперимент үчүн колдонгом. Тилекке каршы, меники эч кандай ачык тоолорду сунуш кылган эмес жана анын чечилиши начар болгон.
Эгерде ал татыктуу болсо, анда ашыкча жасоо керек. Ошентип, мен чоң, достук, 360-импульстук бир коддогучту сатып алдым жана анын айланасында долбоорумду курдум. Мен тандаганым LPD3806-360BM-G5-24C түрүндөгү Signswise Incremental Optical Rotary Encoder болчу. Бирок, ар кандай татыктуу кодер кылат.
2 -кадам: Пуликти жана боштукту кошуңуз
Жиптин сызыктуу кыймылы шкив аркылуу коддогучтун айлануу кыймылына которулат. Ал эми жип боштукта шкивге каршы кармалып турат.
Пульстун эки оюкчасы бар, алардын ар бири созулган шакекти кармап турат, андыктан тайып кетүү жок, Иштебегенде жипти коддогучтун шкафына борборлоштуруу үчүн бирдиктүү v-оюгу бар. Бул 608ZZ подшипниктеринде отурат, ал менин долбоорумдун башкы корпусуна басылган спираль пружинага орнотулган. (STL файлдары төмөндө тиркелет.)
Бул туура кабыл алуу үчүн бир аз сыноолорду жана каталарды талап кылды, бирок менин дизайным ар кандай бурчтарга жана катушка радиусуна туура келиши керек, бул жиптин басуунун башынан аягына чейин катушканын каалаган бөлүгүнөн бошонууга мүмкүндүк берет. Ал эми басылган жаз булактарды алмаштырууда жипченин ичине кирип кетишин жеңилдетет.
3 -кадам: Коддоо
Жипти эсептөө үчүн, эки санариптик кириши бар ар кандай иштеп чыгуу тактасы аткарат. Мен тандаган кодердин төрт пини бар: 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)) {position += 1; } else {position -= 1; }} жараксыз IRAM_ATTR zeroButtonPressed () {// нөлдү кармоо жана кайра коюу}
Бирок мен жөн гана дудук эсептегичтен башка нерсени каалачумун. ESP32 (же ESP8266) жана анын камтылган WiFi жардамы менен мен чогултуп жаткан маалыматтар менен бир нерсе кыла алам. Кээ бир жөнөкөй күтүү кодун колдонуп (төмөндө түшүндүрүлөт), мен басып чыгаруунун башталышын жана бүтүшүн аныктай алам жана бул окуяларды телефонума эскертме катары жөнөтөм. Келечекте, мен түгөнүү сенсорун кошуп, көңүл буруум керек болгондо өзүмө кабарлап (жана принтеримди тындыра алам).
Толук код Githubда.
Код боюнча бир нече эскертүүлөр:
Муну сиздин конструкцияңызга ылайыкташтыруу үчүн, сизге бир гана чечим керек (encoderPPR) - бир революциядагы импульстарда, бул адатта айтылган спецификадан эки эсе көп жана шкивтин радиусу (wheelRadius). Бул баалуулуктар, ошондой эле Wi -Fiңыздын 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 Get ыкмаларынан башка эч нерсе менен телефонго push эскертмелерин жөнөтүү үчүн колдондум
Кодду иштеп чыгуу жана тактаны жаркылдатуу үчүн, мен Visual Studio Codeдо иштей турган укмуштуудай PlatformIO колдондум, экөө тең бекер
Менин долбоорум үчүн мен бул китепканаларды колдондум: Oliver тарабынан u8g2, Paul Stoffregen тарабынан elapsedMillis жана Espressif ESP32 платформасы менен келген Markus Sattler тарабынан HTTPClient. Калганынын баары Arduino китепканасы же PlatformIOдогу ESP32 платформасы менен келет
Акыр -аягы, мен негизги чыгырыктын ар кандай бурчтарындагы алты жөнөкөй разрядды түздүм, ошентип мен эсептегичтин артындагы OLEDде тыкан кичинекей айлануучу дөңгөлөктүн анимациясын көрсөтө алдым. Дагы бир драмалык эффект үчүн алда канча тезирээк болсо да, коддогуч менен тиешелүү багытта жылат
4 -кадам: Кабелдөө
Мен муну долбоорлодум, анткени зымдар жөнөкөй эле, көбүнчө менин корпусум кичинекей болушу мүмкүн, бирок ошону менен мүчүлүштүктөрдү оңдоо оңой болмок. Менин кичинекей коробкамдагы тар шарттарга көңүл буруңуз.:)
Биринчи талап менин айлануучу кодеримдин 5В камсыздоо чыңалуусу болчу. Менде сакталган 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 подшипниктерине туура келген боштук (WIL40 менен шелектерди алып салыңыз жана ээрип кетет)
Кармоочу, эки вельс жана коддогуч - бекер турган спираль булагына көңүл буруңуз
Кармагычты турукташтыруу үчүн кронштейн. Бул кадамдагы сүрөттө кронштейндин кармоочуга кантип бекитилери көрсөтүлгөн
Корпус (астынкы жагында) менин ESP32 түз тактамды кармап туруу үчүн, USB кабели үчүн боштук, экинчисинин үстүндө коннектор зымдарыма кошкон туташтыргычы бар. Бул Wemos Lolin32ге ылайыкташтырылган, андыктан сиз бул дизайнды башка тактага ылайыкташ үчүн бир аз өзгөртүшүңүз керек болот
OLED экранын кармоо үчүн корпус (үстүнкү), нөл / баштапкы абалга келтирүү баскычы үчүн дагы бир спираль
Мендеги кичинекей которгуч үчүн ыңгайлаштырылган баскыч кармагыч, астыңкы корпустун ичиндеги эки текченин ортосунда эс алууга арналган. Мен которгучту кармагычка "жабыштыруу" үчүн ширетүүчү темир колдондум; сүрөткө чейинки кадамды караңыз
Баары тирөөчсүз басууга ылайыкталган. Тандооңуздагы кадимки PLA сизге керектүү нерсенин баары.
Баарын чогултуп, принтериңизге тиркеңиз (бул жерде кандайдыр бир чыгармачылык талап кылынышы мүмкүн), ошондо сиз барсаңыз болот.
Сунушталууда:
SONOFF акылдуу өчүргүчтөрү менен DIY акылдуу ролик жалюзи кантип жасалат ?: 14 кадам
SONOFF акылдуу өчүргүчтөрү менен кантип DIY акылдуу ролик жалюзи? жана аны кечинде түшүрөсүзбү? Кандай болбосун, мен
Макей-Макейди жана Скретчти колдонуу менен монета эсептегичи: 10 кадам (Сүрөттөр менен)
Макей-Макейди жана Скретчти колдонуу менен монета эсептегичи: Акчаны эсептөө-бул биздин күнүмдүк жашообузда колдоно турган абдан маанилүү практикалык математикалык чеберчилик. Макей-Макей жана Скретчтин жардамы менен монеталарды эсептегичти кантип программалоону жана курууну үйрөнүңүз
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)
Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт
2 сандык LED барграф эсептегичи: 6 кадам (сүрөттөр менен)
2 Сандык LED барграф эсептегичи: Бул проект 1-99 чейинки эки-10 LED барграфы жана Arduino Uno менен иштелип чыккан эсептегич. 2-Разрездүү LED барграф эсептегич 2 сандан турган эсептегичтин иштешин көрсөтөт, анын светодиод барграфтары онду, экинчисин билдирет
ESP8266 IoT менен YouTube абоненттеринин эсептегичи: 5 кадам (сүрөттөр менен)
ESP8266 IoT менен YouTube абоненттеринин эсептегичи: Бул жерде мен сизге биринчи нерселер Интернети (IoT) долбоорун алып келдим. Мен жаңы ютубермин жана абоненттеримди столумдун же дубалдын жээкчелерине санай алганым мага сонун угулат. Ушул себептен улам мен бул укмуштуудай долбоорду сиз үчүн оңой жана пайдалуу кылдым