Talaan ng mga Nilalaman:

Ang Robotic Filament Dispenser para sa Arduino: 8 Hakbang (na may Mga Larawan)
Ang Robotic Filament Dispenser para sa Arduino: 8 Hakbang (na may Mga Larawan)

Video: Ang Robotic Filament Dispenser para sa Arduino: 8 Hakbang (na may Mga Larawan)

Video: Ang Robotic Filament Dispenser para sa Arduino: 8 Hakbang (na may Mga Larawan)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Hulyo
Anonim
Image
Image

Bakit isang tool na nagmotor

Ang filament ng 3D printer - karaniwang halos matatag - ay hinihila ng extruder habang ang roll ay inilalagay malapit sa printer, malayang paikutin. Napansin ko ang mga makabuluhang pagkakaiba sa pag-uugali ng materyal depende sa antas ng paggamit, na tinukoy sa 1Kg filament roll. Ang isang bagong (buong) filament spool ay umaagos ng halos maayos ngunit ang puwersa na inilapat ng extruder ay dapat na may kaugnayan: ang timbang ay hindi bababa sa 1.5 Kg.

Ang extruder motor (karamihan sa mga kaso ng Nema17 stepper) ay may sapat na lakas upang gawin ang trabaho ngunit ang dalawang gears ng extruder na itulak ang filament sa hot-end na bahagi habang nagtatrabaho mangolekta ng mga maliit na butil ng filament dahil sa inilapat na mga puwersa; nangangailangan ito ng madalas na pagpapanatili ng extruder upang maiwasan ang pagbara ng nguso ng gripo. Ang mga maliit na butil na ito ay may posibilidad na maghiwalay at ihalo sa malinis na filament habang nagpapakain ito, nagdaragdag ng mga problema sa nguso ng gripo at isang mas madalas na pagsusuot ng nguso ng gripo; mas madalas itong nangyayari sa 0.3 mm na mga nozzles ng diameter.

Kapag ang filament roll ay kalahati nang nagamit o higit pa sa mga spiral nito ay nagiging mas maliit at sa ilang mga kondisyon sa kapaligiran ang filament ay madalas na masira nang madalas. Ang mga mahahabang trabaho sa pag-print ay naging hindi gaanong maaasahan at nakaka-stress; Hindi ko maiiwan ang printer na gumagana nang nag-iisa para sa isang buong gabi nang hindi ito kinokontrol. Kaya ang pagkontrol sa filament feed ng mga motor figure na naglulutas ng isang serye ng mga isyu.

Magagamit ang kit sa Tindie.com

Hakbang 1: Ang Nilalaman ng Kit

Ang Nilalaman ng Kit
Ang Nilalaman ng Kit
Ang Nilalaman ng Kit
Ang Nilalaman ng Kit

Kasama sa kit ang lahat ng mga naka-print na bahagi ng 3D at mekanika upang tipunin ang dispenser ng motorized filament. Mayroong sa halip ng dalawang mga opsyonal na bahagi: ang motor at ang board ng motor controller.

Sa aking pag-set up ay gumamit ako ng 12 V McLennan na nakatuon na brusadong motor ngunit ang anumang nakatuon na 37 mm na lapad na motor ay maaaring magkasya nang maayos sa loob ng suportang motor.

Ang pinakamahusay na mga palabas ay naabot sa isang TLE94112LE Arduino kalasag ni Infineon (buong pagsusuri dito); ang board ng motor na ito ng DC motor ay maaaring suportahan ng hanggang sa 6 na magkakaibang mga robotic dispenser kit nang sabay-sabay.

Nasubukan ko ang buong sistema sa parehong isang Arduino UNO R3 at ang Arduino compatible board XMC1100 Boot kit ni Infineon at ang sistema ay napakahusay na tumutugon sa parehong mga micro controller board.

Ang paggamit ng kalasag na TLE94112LE ay iminungkahi ngunit hindi mahalaga. Anumang DC motor controller para sa Arduino - kasama ang iyong sariling proyekto! - Maaaring gumana nang maayos sa tool na ito

Ang kit ay nahahati sa dalawang hanay ng mga bahagi dahil ang dalawang bahagi ay binuo upang magtulungan. Ang batayang platform, susuportahan ang filament roll na umiikot sa apat na libreng bearings ng wheeling. Ang batayan ay naayos sa sensor ng timbang upang makontrol ang umiikot na mekanismo na nagpapalitaw ng pagsasaaktibo nito pati na rin ang pagsubaybay sa mga kondisyon ng filament: bigat, metro at porsyento. Ang maraming impormasyon pati na rin ang isang kumpletong hanay ng utos ay maa-access mula sa Arduino sa pamamagitan ng isang serial terminal.

Mga tool na kailangan mo

Upang makumpleto ang pagpupulong kailangan mo ng ilang matatag na kola ng plastik para sa ilang bahagi, isang distornilyador at isang hanay ng mga Allen Turnilyo.

Hakbang 2: Ang Project at Disenyo

Ang Proyekto at Disenyo
Ang Proyekto at Disenyo
Ang Proyekto at Disenyo
Ang Proyekto at Disenyo
Ang Proyekto at Disenyo
Ang Proyekto at Disenyo

Ang proyektong ito ay ang pangatlong ebolusyon ng serye ng dispenser ng filament ng 3D printer Ilang beses na ang nakakaraan nilikha ko ang umiikot na base upang ma-optimize ang daloy ng filament kapag hinila ng extruder ng 3D printer.

Kasama sa pangalawang modelo ang isang sensor ng timbang para sa real time na pagsubaybay sa paggamit ng filament sa isang board ng Arduino. Kasama sa huling proyekto na ito ang awtomatikong paglabas ng filament depende sa mga pangangailangan ng trabaho sa 3D printer. Ito ay batay sa pagkakaiba-iba ng virtual na timbang kapag nagsimulang hilahin ng extruder ang filament. Ang kaganapang ito ay nagpapalitaw ng micro controller sa pamamagitan ng sensor ng timbang at ang motorized filament roll ay nagsisimulang maglabas ng ilang pulgada ng materyal pagkatapos ay mabawasan at huminto.

Ang mga sangkap ay na-export sa format na STL at naka-print na 3D, pagkatapos ay pino at pinagsama-sama. Lumikha ako ng isang pasadyang suporta upang ihanay ang bahagi ng paggalaw sa base. Ang mas mahabang Aluminyo na riles ay ginamit din upang suportahan ang Arduino at ang motor na kalasag upang gawin ang buong tool na compact at madaling ilipat.

Lumilikha ng disenyo Sinundan ko ang isang serye ng mga pagpapalagay:

  • Ginagawa ang automated engine na halos simple at madaling magparami
  • Bawasan hangga't maaari ang bilang ng mga hindi naka-print na bahagi ng hindi 3D upang magawa ito
  • Bawasan hangga't maaari ang stress na inilapat sa extruder habang nagpi-print
  • Gumamit ng isang mababang gastos at madaling mag-program ng micro controller board
  • Gamitin ang sensor ng pag-load ng timbang upang mapanatili sa ilalim ng kontrol ang pagkonsumo ng filament at pagpapakain ng filament Pamahalaan ang ingay sa kapaligiran na nakakaabala sa mga panukala sa timbang ng filament

Ito ang naabot kong resulta.

Hakbang 3: Pag-iipon ng Base

Pag-iipon ng Base
Pag-iipon ng Base
Pag-iipon ng Base
Pag-iipon ng Base
Pag-iipon ng Base
Pag-iipon ng Base

Ang unang hakbang ay ang pag-iipon ng base sa sensor ng timbang.

  1. Ipasok ang maliit na tubo ng axis ng tindig sa butas ng tindig
  2. Ilagay ang dalawang disc ng separator sa mga gilid ng tindig
  3. Ipakilala ang mga sangkap sa loob ng "U" na laki ng suporta sa tindig na nakahanay sa mga butas
  4. ipasok ang Allen screw sa isang gilid at ang washer at ang nut sa kabilang panig na isinasara ang nut nang walang labis na pagsisikap

Dapat mong ulitin ang operasyon sa lahat ng apat na suporta sa tindig. Pagkatapos ay subukan ang pagpupulong: ang mga bearings ay dapat na paikutin nang malaya.

Ngayon ayusin sa mga Allen turnilyo ang apat na mga suporta sa tindig sa tuktok na base na may apat na mga butas ng regulasyon. Ihanay ang mga sumusuporta sa tindig upang mapanatili silang parallel. Ayusin ang distansya depende sa lapad ng iyong mga filament roll.

Ang susunod na hakbang ay ang pag-iipon ng weight sensor bar na humahawak sa ilalim at tuktok na base nang magkasama. Ang sensor ng timbang ay may dalawang magkakaibang mga tornilyo ng Allen sa magkabilang panig at dapat mong i-orient ito upang mabasa ang marka ng max weight kapag nabasa nang maayos ang base. Ang ilalim na base ay may dalawang dagdag na butas sa gilid upang ayusin ang weight sensor A / D amplifier. Ang amplifier batay sa HX711 IC ay papatakbo at makakonekta sa Arduino board sa pamamagitan ng apat na wires tulad ng ipinakita sa naka-attach na sheet ng data ng sensor.

Ang huling hakbang ay ang pag-iipon ng kumpletong tuktok na base sa weight sensor na naayos na sa ibabang bahagi.

Ang unang sangkap ay na-setup na!

Hakbang 4: Pag-iipon ng Mga Bahagi ng Spool Motion Engine

Pag-iipon ng mga Bahagi ng Spool Motion Engine
Pag-iipon ng mga Bahagi ng Spool Motion Engine
Pag-iipon ng mga Bahagi ng Spool Motion Engine
Pag-iipon ng mga Bahagi ng Spool Motion Engine
Pag-iipon ng mga Bahagi ng Spool Motion Engine
Pag-iipon ng mga Bahagi ng Spool Motion Engine

Ang mas madaling pamamaraan upang tipunin ang spool motion engine ay pinag-iisa ang pag-iipon ng apat na pinakamahalagang sangkap at pagkatapos ay kumpletuhin ang pangwakas na gusali:

Ang naka-gear na DC motor sa kahon ng paghahatid ng motor

Ang motor na DC ay dapat na mai-mount sa gitnang bahagi ng suporta ng istraktura; bago i-screwing ang motor dapat mong magpasya kung ano ang iyong ginustong bahagi kung saan ilalagay ang gilid ng gears upang maayos na maayos ang dalawang braso na humahawak sa motor at ang hinimok na malalaking gear.

Ang hinimok na malaking gear

Ang malaking gear ay dapat na screwed sa pinutol na korteng kono na block sa apat na mga screws ng Allen. Ang gear na ito ay mai-block sa umiikot na axis ng mga nut; hawakan ng korteng kono ang filament spool na naka-lock sa kabilang panig ng isang katulad na lock nut sa loob ng isa pang pinutol na korteng kono. Ang solusyon na ito ay hindi lamang pinanghahawakan ang gumagalaw na mekanismo sa lugar ngunit dinidiretso ang lahat ng bigat sa base at ito ay ang pabigat na timbang ng system.

Ang may hawak ng spool lock

Ito ang pinutol na korteng kono na kasama ng hinihimok na gear na katulad na pagla-lock ng panig ay hahawak sa mekanismo ng paggalaw sa filament spool. Bilang isang bagay ng taktika ito ay ang filament roll na nakumpleto ang gusali habang ang paggalaw ng dalawang braso na suporta ay malayang ilipat sa kabilang panig.

Tulad ng ipinapakita sa mga imahe ang may hawak ng spool lock ay itinayo sa dalawang bahagi. Ipasok muna ang M4 nut sa mas malaking bahagi ng bloke pagkatapos ay idikit ang pangalawang bahagi (ang takip) na pinagsama ang mga bloke. Ang kulay ng nuwes ay mananatiling nakakulong sa loob ng may-ari ng lock na mai-screwed sa sinulid na axis na axis.

Ang kahon ng bearings

Ang tindig na kahon ay may dalawang mga pag-andar: magbigay ng isang mahusay na suporta sa mga gears ng paghahatid at isang makinis at tahimik na paggalaw. Upang tipunin ang tindig na kahon sundin ang mga madaling hakbang na ito:

  1. I-tornilyo ang unang M4 nut sa isa sa dalawang dulo ng sinulid na may hawak ng spool na hinihimok ng axis
  2. Ipasok ang unang tindig
  3. Ipasok ang separator
  4. Ipasok ang pangalawang tindig
  5. I-screw ang pangalawang nut at i-lock ito ng katamtaman. Tututol ang internal na separator ng plastik ng sapat na puwersa upang mapanatili ang mga bagay sa lugar din para sa matagal na paggamit.
  6. Ipasok ang pinagsamang mga bearings sa kahon ng tindig. Dapat itong gawin nang sapilitang upang ibigay ang mas mahusay na mga resulta kaya huwag palawakin ang labis na panloob na kahon kapag pinino ang mga bahagi ng plastik.

Handa na kami para sa pangwakas na pagpupulong ng mga sangkap!

Hakbang 5: Pagkumpleto sa Assembly ng Motion Engine

Pagkumpleto sa Assembly of the Motion Engine
Pagkumpleto sa Assembly of the Motion Engine
Pagkumpleto sa Assembly of the Motion Engine
Pagkumpleto sa Assembly of the Motion Engine
Pagkumpleto sa Assembly of the Motion Engine
Pagkumpleto sa Assembly of the Motion Engine

Malapit na nating tapusin ang pagpupulong ng istraktura pagkatapos ay maaari kaming lumipat upang subukan ang paggalaw. Ngayon ay kailangan mo ulit ng kaunting pandikit. Ang kahon ng tindig - na binuo sa nakaraang hakbang - ay dapat na ipasok sa butas ng may hawak ng kahon ng suporta sa dalawang engine ng braso at posibleng nakadikit bago i-tornilyo ang takip ng kahon.

Babala: huwag idikit ang takip ng kahon, i-tornilyo lamang ito. Ang takip ay mahalaga para sa proteksyon ng alikabok at dapat na alisin para sa anumang operasyon sa pagpapanatili sa hinaharap.

Kapag nakumpleto ang pag-set up na ito bago idagdag ang hinimok na gear (mas malaki) idagdag ang maliit na singsing ng separator: pinapanatili nito ang malaking gear na nakahanay sa gear ng motor na gumaganap bilang isang washer upang ayusin ang hinimok na gumagalaw na pagpupulong.

Pagkatapos ay ipasok ang gear ng driver (ang maliit) sa shaft ng motor. Tandaan na mayroong isang patag na bahagi sa motor pati na rin sa butas ng gear upang mapanatili ang gear na umiikot na hinimok ng DC motor.

Huling hakbang, isingit ang malaking hinimok na gear tulad ng ipinakita sa mga imahe at i-lock ito sa may sinulid na axis na may dalawang M4 na mani.

Kumpleto na ang gusali ng mekanika!

Hakbang 6: Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit

Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit
Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit
Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit
Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit
Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit
Bonus: Paano Ko Napasadya ang Suporta upang Pamahalaan ang Kit

Upang mapanatili ang kit sa lugar ay gumawa ako ng isang napaka-simpleng istraktura batay sa dalawang Aluminium square tubes upang suportahan ang parehong base at ang istraktura ng paggalaw. Ang batayan ay naayos na may apat na mga turnilyo sa dalawang daang-bakal (tungkol sa 25 cm ang haba) at sa isang maliit na maliit na naka-print na suporta sa 3D Mayroon akong mga pag-aayos ng paggalaw ng makina na malayang ilipat upang madali ang pagpasok at pag-alis ng filament roll.

Ang sinuman ay maaaring pumili ng sarili nitong solusyon depende sa kung paano naayos ang kanyang workbench.

Hakbang 7: Mga Kable at Pagkonekta sa Arduino

Image
Image
Mga Kable at Pagkonekta sa Arduino
Mga Kable at Pagkonekta sa Arduino

Tulad ng ipinaliwanag sa hakbang sa nilalaman ng Kit, gumamit ako ng isang Infineon TLE94112LE DC motor na kalasag para sa Arduino at sinubukan ang makina sa parehong Arduino UNO R3 at Infineon XMC110 Boot Kit.

Kung makokontrol mo ang motor (kailangan ng mga tampok na PWM) gamit ang iyong board na DC control na iyong pinili, iakma lamang ang mga tagubilin sa mga teknikal na pagtutukoy ng iyong kalasag.

Isang tala sa TLE04112LE Arduino Shield

Ang isa sa mga limitasyong naranasan ko sa iba pang mga kalasag sa pagkontrol ng motor para sa Arduino ay ginagamit nila ang mga tampok ng parehong micro controller (ie PWM at GPIO pin); nangangahulugan ito na ang iyong lupon ay nakatuon sa mga gawaing ito habang kaunti lamang ang iba pang mga mapagkukunan (MPU at GPIO) ang magagamit para sa iba pang mga paggamit.

Ang pagkakaroon ng posibilidad na ilagay ang mga kamay sa TLE94122LE Arduino kalasag para sa pagsubok sa kalsada, ang pinaka maliwanag na kalamangan ng IC na nakabatay sa board ay ang pagkakumpleto lamang nito. Ang board ng Arduino ay nakikipag-usap sa kalasag sa pamamagitan ng SPI protocol gamit lamang ang dalawang mga pin. Ang bawat utos na ipinadala mo sa kalasag ay pinoproseso ng autonomous ng TLE94112LE IC nang hindi naubos ang mga mapagkukunan ng MPU. Ang isa pang kapansin-pansin na tampok ng board ng Infineon ay ang posibilidad na makontrol ang hanggang sa anim na brush na motor na may tatlong mai-programmable na mga channel ng PWM. Nangangahulugan ito na ang Arduino ay maaaring mag-set up ng isa o higit pang mga motor, simulan ang mga ito at magpatuloy sa pagtatrabaho sa iba pang mga gawain. Ang kalasag na ito ay nagsiwalat ng perpekto upang suportahan ang hanggang sa anim na magkakaibang mga filament roll sa parehong oras na paggalaw ay isa lamang sa mga gawain na sinisingil sa MPU. Isinasaalang-alang ang posibilidad na pamahalaan ang anim na magkakaibang mga filament spool na may isang solong Arduino + kalasag sa mga epekto ng gastos ng micro controller sa bawat solong tagakontrol ng filament na mas mababa sa 5 Euro.

Ang sensor ng timbang

Matapos gawin ang ilang mga eksperimento nakita kong posible na kontrolin ang buong system - pagsubaybay at awtomatikong pagpapakain - na may isang solong sensor; ang isang cell ng pag-load (sensor ng timbang) ay maaaring malawakan na masusukat ang mga pagkakaiba-iba ng timbang ng filament spool na nagbibigay ng lahat ng impormasyong kailangan namin.

Gumamit ako ng isang murang cell ng pag-load sa saklaw na 0-5 Kg kasama ang isang maliit na board batay sa HX711 AD Amplifier, isang tukoy na IC upang pamahalaan ang mga sensor ng load cells. Walang mga problema sa interfacing dahil magagamit ito ng mahusay na gumaganang library ng Arduino.

Tatlong mga hakbang para sa pagtatakda ng hardware

  1. Ipasok ang kalasag sa tuktok ng Arduino board o ang Infineon XMC110 Boot Kit
  2. Ikonekta ang mga wire ng motor sa mga konektor ng kalasag na Out1 at Out2
  3. Ikonekta ang lakas at signal mula sa HX711 AD weight sensor amplifier sa mga pin ng Arduino. Sa kasong ito nagamit ko ang mga pin 2 at 3 ngunit ang lahat ng mga libreng pin ay mabuti.

Babala: p 8 at 10 ay nakalaan ng TLE94113LE kalasag para sa koneksyon ng SPI

Yun lang! Handa nang i-set up ang software? Sige lang.

Hakbang 8: Ang Software at Control Command Set

Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set
Ang Software and Control Command Set

Maaaring ma-download ang buong dokumentadong software mula sa GitHub repository 3DPrinterFilamentDispenserAndMonitor

dito namin isinasaalang-alang lamang ang pinaka-makabuluhang mga bahagi at ang control command.

Mayroong isang dahilan na ipinataw ng bilang ng mga magagamit na mga pin sa Arduino UNO Napagpasyahan kong kontrolin ang system sa pamamagitan ng serial serial ng USB; Tulad ng bawat motorized unit ay batay sa isang sensor ng timbang, ang pagkontrol ng anim na magkakaibang mga dispenser ng filament ay nangangailangan ng pagbabasa ng data mula sa anim na mga sensor ng timbang. Ang bawat cell ng pag-load ay "kumokonsumo" ng dalawang mga pin, ang pin 0 at 1 ay nakalaan (Tx / Rx) para sa serial at mga pin na 8 at 10 ay nakalaan para sa SPI channel na kumokonekta sa kalasag ng TLE94112LE.

Kalagayan ng sistema

Gumagana ang control software sa pamamagitan ng apat na magkakaibang estado, na tinukoy sa filament.h:

# tukuyin ang SYS_READY "Handa" // Handa na ang system

#define SYS_RUN "Tumatakbo" // Filament ginagamit #define SYS_LOAD "Load" // Roll load #define SYS_STARTED "Started" // Nagsimula ang application // Status code #define STAT_NONE 0 #define STAT_READY 1 #define STAT_LOAD 2 #define STAT_RUN 3

Katayuan: Nagsimula

Ang katayuang ito ay nangyayari pagkatapos ng pag-reset ng hardware o kapag pinapagana ang system. Ang tawag na power-on (at pag-setup () kapag nagsimula ang sketch) ay pinasimulan ang panloob na mga halagang default at dapat magsimula nang walang labis na timbang sa platform bilang bahagi ng pagkakasunud-sunod ng pagkakasunod-sunod ay ang pagkuha ng ganap na pagkapagod upang maabot ang pisikal na zero timbang.

Katayuan: Handa na

Ang handa na estado ay nangyayari pagkatapos ng isang malambot na pag-reset (ipinadala mula sa serial terminal). Ito ay katulad ng pisikal na pagdiriwang ngunit walang pagkakalas ang nakakalkula; ang reset command ay maaaring mailunsad din kapag ang system ay tumatakbo.

Katayuan: Mag-load

Nagaganap ang katayuan ng pag-load kapag ang utos ng pag-load ay ipinadala ng terminal. Nangangahulugan ito na na-load ang filament roll at kinakalkula ang dynamic tare. Ang eksaktong bigat ng filament ay nakuha ng uri ng pag-setup ng roll na binabawas ang bigat ng yunit ng motor at ang walang laman na roll.

Katayuan: Tumatakbo

Ang katayuang ito ay nagbibigay-daan sa awtomatikong pagkalkula ng timbang at awtomatikong dispenser ng filament.

Mga mensahe sa terminal

Ang kasalukuyang bersyon ng software ay nagbabalik ng mga nababasa na mensahe ng tao sa terminal depende sa mga utos. Ang mga mensahe ng string ay tinukoy sa dalawang mga file ng header: commands.h (mga mensahe at tugon na nauugnay sa utos) at filament.h (mga string na ginamit ng parser upang lumikha ng mga compound na mensahe).

Utos

Dalawang magkakaibang mga file ang kasangkot sa pamamahala ng utos: mga utos. H kasama ang lahat ng mga utos at mga kaugnay na parameter at filament.h kasama ang lahat ng mga pare-pareho at kahulugan na ginamit ng sistema ng pagtimbang at ng parser.

Habang ang panloob na mga kalkulasyon ay awtomatikong ginagawa ng software na nagpatupad ako ng isang serye ng mga utos upang maitakda ang pag-uugali ng system at manu-manong kontrolin ang ilang mga parameter.

Ang mga keyword ng utos ay sensitibo sa kaso at dapat lamang ipadala mula sa terminal. Kung ang isang utos ay hindi naaangkop para sa kasalukuyang katayuan ng ito ay hindi kinikilala ang isang maling mensahe ng utos ay ibinalik sa ibang paraan ang utos ay naisakatuparan.

Mga utos ng katayuan

Baguhin ang kasalukuyang katayuan ng system at ang pag-uugali ay iniakma din

Mga utos ng filament

Gamit ang magkakahiwalay na utos posible na i-setup ang mga katangian ng filament at roll batay sa pinakakaraniwang timbang at sukat na magagamit sa merkado

Mga utos ng yunit

Ito ay isang pares ng mga utos upang itakda ang pagpapakita ng mga sukat na yunit sa gramo o sentimetro. Bilang isang katotohanan posible na matanggal ang mga utos na ito at palaging kumakatawan sa data sa parehong mga yunit.

Mga utos ng impormasyon

Ipakita ang mga pangkat ng impormasyon depende sa katayuan ng system

Utos ng motor

Kontrolin ang motor para sa feed ng filament o hilahin.

Ang lahat ng mga utos ng motor ay sumusunod sa isang landas ng pagbilis / pagbagal. Ang dalawang utos na feed at pull ay nagpapatupad ng isang maikling pagkakasunud-sunod tulad ng tinukoy sa motor.h ng patuloy na FEED_EXTRUDER_DELAY habang ang mga command ng feedc at pullc ay tumatakbo nang walang katiyakan hanggang sa hindi matanggap ang isang stop command.

Mga utos ng Running mode

Ang katayuan sa pagtakbo ay tumatanggap ng dalawang mga mode; Ang mode na tao ay binabasa lamang nang pana-panahon ang bigat at gumagalaw ang motor hanggang hindi maipadala ang isang utos ng kontrol sa motor. Ang auto mode sa halip ay nagsasagawa ng dalawang mga utos ng feed kapag ang extruder ay nangangailangan ng mas maraming filament.

Ang prinsipyo ay batay sa mga pagbasa ng timbang, na ayon sa konteksto sa partikular na kapaligiran. Inaasahan namin na ang pagkonsumo ng filament ay medyo mabagal, ang mga 3D printer ay halos mabagal at ang normal na mga oscillation ng timbang ay nakasalalay sa panginginig ng kapaligiran (mas mabuti kung hindi mo inilalagay ang buong bagay sa 3D printer)

Kapag ang extruder ay kumukuha ng filament sa halip ang pagkakaiba ng timbang ay kapansin-pansing tumataas (50 g o higit pa) sa napakakaunting oras, karaniwang sa pagitan ng dalawa o tatlong pagbasa. Ang impormasyong ito ay sinala ng software na "ibabawas" na kailangan ng bagong filament. Upang maiwasan ang mga maling pagbabasa ng mga pagkakaiba-iba ng timbang habang tumatakbo ang motor ay hindi pinapansin.

Application lohika

Ang lohika ng application ay ipinamamahagi sa.ino pangunahing (ang Arduino sketch) kasama ang tatlong mga pag-andar: setup (), loop () at parseCommand (commandString)

Gumagamit ang sketch ng dalawang magkakahiwalay na klase: klase ng FilamentWeight upang pamahalaan ang lahat ng mga kalkulasyon ng filament at pagbabasa ng sensor sa pamamagitan ng klase ng HX711 IC at MotorControl na makagambala sa mga mababang antas ng pamamaraan ng TLE94112LE Arduino na kalasag.

setup ()

Isang beses na inilunsad kapag nasa power-on o pagkatapos ng pag-reset ng hardware ang mga pagkakataon ng mga klase, i-setup ang hardware at ang komunikasyon sa terminal.

loop ()

Ang pangunahing pagpapaandar ng loop ay namamahala sa tatlong magkakaibang mga kundisyon.

Habang mayroong dalawang klase para sa weight sensor at motor na medyo kumplikado, mayroong kalamangan na ang magreresultang sketch ay talagang madaling maunawaan at pamahalaan.

  1. Suriin (sa mode auto) kung ang extruder ay nangangailangan ng higit pang filament
  2. Kung tumatakbo ang motor suriin ang mga error sa hardware (ibinalik ng TLE94112LE)
  3. Kung may mga magagamit na serial data i-parse ang utos

parseCommand (commandString)

Sinusuri ng pagpapaandar ng pag-andar para sa mga string na nagmumula sa serial at kapag nakilala ang isang utos ay agad itong naproseso.

Ang bawat utos ay kumikilos bilang isang machine ng estado na nakakaapekto sa ilang parameter ng system; pagsunod sa lohika na ito ang lahat ng mga utos ay nabawasan sa tatlong sunud-sunod na pagkilos:

  1. Magpadala ng isang utos sa klase ng FilamentWeight (mga bigat na utos) o sa klase ng MotorControl (mga utos ng motor)
  2. Nagpapatupad ng isang pagkalkula upang i-update ang mga halaga ng timbang o i-update ang isa sa mga panloob na parameter
  3. Ipakita sa terminal at output ng impormasyon kapag nakumpleto ang pagpapatupad

I-install ang HX711 Arduino library, i-download ang software mula sa GitHub at i-upload ito sa iyong Arduino board pagkatapos ay mag-enjoy!

Inirerekumendang: