Taula de continguts:
- Pas 1: materials, eines i dispositius que s’utilitzen per fer funcionar el projecte
- Pas 2: Coses de maquinari que calia fer
- Pas 3: Codificació Arduino
- Pas 4: programari Visual Studio C #
- Pas 5: Resultats
Vídeo: Eina de mesurament de la velocitat d'alimentació CNC fabricada amb ferralla: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Algú ha volgut mai mesurar la velocitat d'avanç real en una màquina CNC? Probablement no, fins que els bits de fresat estiguin intactes després d'un treball CNC … però quan comencen a trencar-se regularment, potser és el moment d'investigar. En aquest instructiu podeu seguir una missió per determinar la velocitat d’avanç real d’una màquina CNC. Cobrirà la part d’enginyeria inversa d’una impressora, el microprogramari arduino, el programari de PC i els resultats que vaig obtenir amb l’ajut dels meus companys i una paperera convertida en tresor.
Pas 1: materials, eines i dispositius que s’utilitzen per fer funcionar el projecte
Quan vaig començar a treballar-hi, vaig pensar una breu llista de les coses que necessitarem:
- mecanisme de transport de la impressora desmuntat
- eines manuals per modificar-ho
- soldador, soldadura, cables
- multímetre
- oscil·loscopi o analitzador de lògica: això no és del tot necessari
- Font d'alimentació
- microscopi
- Arduino nano + pinout
- PC amb Arduino IDE, instal·lades eines de Visual Studio 2008 Express + MS Charting
- (MPU6050: he acabat sense utilitzar-lo)
- disposat a buscar tot allò que no sap fer
Al principi, vaig pensar que una placa MPU6050 em permetria mesurar la velocitat d’avanç dels tres eixos alhora. Tenint l’acceleròmetre dins, estava segur que la suma de les dades de l’acceleròmetre em donaria el valor desitjat: la velocitat en cada eix. Després de descarregar i modificar un fragment d'Arduino que mostrava dades brutes al monitor sèrie, vaig escriure un petit programa de PC a Visual Studio que processava les dades i les vaig representar en un gràfic per facilitar-ne la interpretació. Vaig haver de descarregar Visual Studio C # Express 2008 i les eines de gràfics per a això.
Després de codificar una estona i de buscar totes les coses que necessitava per a la comunicació en sèrie, vaig acabar amb els valors representats, però fos el que fes, no era útil. Els moviments petits però sobtats es traduirien en grans pujades, mentre que els viatges més llargs ni tan sols apareixerien a les llistes. Després de dos dies martellant el MPU6050, finalment em vaig donar per vençut i vaig recórrer a una altra cosa: el mecanisme de retroalimentació de la posició de la impressora desmuntada.
Pas 2: Coses de maquinari que calia fer
Enginyeria inversa
Per descomptat, el mecanisme de la impressora no tenia cap número de peça que pogués haver utilitzat per determinar les seves propietats exactes, hi havia una mica d’enginyeria inversa per arribar allà on volíem. Després d’examinar de prop el mecanisme i l’electrònica, vaig decidir que el primer ha de ser la identificació dels pins del sensor òptic. Això s'havia de fer per connectar tot el conjunt a l'Arduino. Vaig desmuntar la part de plàstic negre, vaig extreure el PCB i vaig examinar el sensor: hi havia escrit ROHM RPI-2150. Això em va fer feliç, l’esperança era elevada de trobar un full de dades. Malauradament, es tracta d'una peça antiga o personalitzada; no es trobava cap full de dades en cap lloc del web. Això volia dir que havia de prendre les coses en mans pròpies: sabent que aquests sensors solen tenir un LED d’infrarojos i dos fototransistors a l’interior, vaig agafar un multímetre, el vaig configurar en mode de mesura de díodes i vaig començar a mesurar entre pins.
Els pins d'alimentació solen ser fàcils de trobar: tindran condensadors a través d'ells i, generalment, es connecten amb grans traces als PCB-s. Les traces de terra sovint es connecten a diversos coixinets per a un millor rebuig del soroll.
No obstant això, els pins d'entrada i sortida no són tan trivials. Quan es mesura a través d’un díode, el mesurador mostrarà la seva tensió cap endavant en una direcció i la sobrecàrrega (infinita) a l’altra. Vaig poder identificar quatre díodes entre pins, vaig concloure que el quart díode havia de ser algun tipus de díode zener o TVS, ja que estava just entre els pins de potència del component. Localitzar l’emissor d’infrarojos era fàcil, hi havia una resistència 89R en sèrie. Em van quedar dues mesures de díode als dos pins restants, havien de ser els dos receptors.
Nota: Aquests sensors tenen dos receptors per poder determinar la direcció del moviment a més de determinar la posició comptant els impulsos. Aquestes dues formes d'ona de sortida estan desfasades a 90 °, s'utilitza per produir un impuls de compte enrere o de compte enrere. Seguint el nombre d’aquests polsos, es pot determinar la posició exacta del capçal d’impressió.
Quan es van localitzar l’emissor i els dos receptors, vaig soldar cables als seus pins, de manera que puc connectar el sensor amb l’Arduino. Abans de fer-ho, he subministrat el sensor amb 3,3 V, he estirat la tira entre el sensor un parell de vegades i he observat l’ona quadrada a les sortides. La freqüència de l'ona quadrada va variar amb la velocitat del moviment, i vaig concloure que el sistema de mesura ja està llest per connectar-se a l'Arduino.
Connexió de l'Arduino
Connectar aquest nou "sensor" és molt fàcil. Només heu de connectar les sortides del sensor a D2 i D3 (pins capaços d’interrompre!), I les línies d’alimentació i la codificació pot començar.
Pas 3: Codificació Arduino
El codi Arduino és bastant senzill. He assignat una funció que s'executa cada vegada que D2 veu una vora ascendent, aquesta és la funció que passa del codi Arduino que he adjuntat. Si mireu els senyals d’un codificador quadràtic, veureu això:
- en una direcció, la fase A és lògica a totes les fases ascendents de la fase B.
- a l'altra direcció, la fase A és lògicament baixa en totes les fases ascendents de la fase B.
Aquesta va ser la propietat del codificador que vaig aprofitar: atès que la funció elapse s'executa cada vegada que D2 té una vora ascendent, acabo d'escriure un si això augmenta un comptador quan D3 és alt i el decrementa quan D3 és baix. Això va funcionar al primer intent, vaig enviar el valor del comptador al monitor sèrie i el vaig veure augmentar / disminuir quan vaig moure el capçal de la impressora a l’eix.
En resum, el firmware fa el següent a la funció de bucle:
- comprova la memòria intermèdia de recepció de sèrie per si hi ha dades entrants
- si hi ha dades entrants, comproveu si és un '1' o no
- si és un '1', vol dir que el programari de l'ordinador sol·licita el valor del comptador
- envieu el valor del comptador al PC via sèrie
- tornar a començar a la 1.
Amb això, la pilota ja està al camp del programari de PC. Entrem-hi!
Pas 4: programari Visual Studio C #
El propòsit del programa VS C # era desplaçar la càrrega computacional de l’Arduino al PC. Aquest programari rep les dades que proporciona Arduino, calcula i mostra la velocitat en forma de gràfic.
El que vaig fer per primera vegada va ser buscar a Google com es feia la comunicació en sèrie en C #. Vaig trobar molta informació a MSDN.com juntament amb un bon exemple, i després vaig llançar allò que no necessitava, bàsicament tot, excepte la part de lectura. Vaig configurar el port COM i la velocitat perquè coincidís amb el de l'Arduino, després vaig provar-ho i vaig deixar tot el que venia al port sèrie en un quadre de text de diverses línies.
Després de llegir els valors, només podria fer servir les funcions readto & split per aïllar unes mesures entre si i dels caràcters delimitadors. Aquests es van representar en un control de gràfics i els valors van començar a aparèixer a la pantalla.
Si no podeu veure el control de gràfics a la vostra caixa d’eines VS, podeu cercar el problema i trobar la solució aquí (busqueu la resposta núm. 1): enllaç
El principi de mesura
Per trobar la connexió entre el nombre de recomptes i la distància que recorre el cap, hem posat a zero el valor del recompte, hem mogut el capçal de la impressora 100 mm a mà i hem observat el canvi en els recomptes. Finalment vam arribar a la proporció següent: 1 recompte = 0,177094 mm.
Com que podem consultar la distància i podem mesurar el temps entre les mostres, podem calcular la velocitat a la qual passa el desplaçament de posició: podem calcular la velocitat.
Hi ha un temps aproximat de programari de 50 ms gràcies a TMR0, però hem observat que aquests temps no eren massa precisos. De fet, després d'algunes mesures de velocitat del programari, vam trobar que els 50 ms cronometrats no són en absolut 50 ms. Això significava que les mostres no es prenien a intervals fixos, de manera que el càlcul de velocitat tampoc no podia utilitzar una base de temps fixa. Un cop vam trobar aquest problema, va ser fàcil continuar: vam agafar la diferència de distància i la diferència de temps i vam calcular la velocitat com a D_distància / D_ temps (en lloc de D-distància / 50 ms).
A més, com que la nostra equació retornaria la velocitat en unitats de mm / 50 ms, hem de multiplicar-la per 1200 per obtenir la distància que recorreria el cap en un minut, en [mm / minut].
Nota: el programari de control de molí CNC Mach 3 defineix les velocitats d’avanç en unitats de [mm / minut]
Filtratge
A partir d’aquest moment, les mesures semblaven ser bastant precises, però hi havia una mica de soroll al senyal mesurat. Vam sospitar que això es deu a inconsistències mecàniques a l'eix, l'acoblament de l'eix, etc., així que vam decidir filtrar-lo, per obtenir un bon valor mitjà del que es mesura.
Fins ajustos al programari
Per tal de canviar la freqüència de mostreig i la freqüència de filtratge durant l'execució, es van afegir barres de desplaçament, una per a cadascuna. També es va introduir la possibilitat d’amagar les trames.
Pas 5: Resultats
Un cop preparades les peces de maquinari i programari, vam realitzar tres conjunts de mesures amb el programari mach 3 + my, podeu veure els resultats a les imatges adjuntes. Els experiments posteriors van mostrar una millor precisió, amb un augment de la velocitat de filtratge i de mostreig. Els gràfics mostren la velocitat mesurada amb vermell continu i la mitjana amb blau amb punts.
Dit això, sembla que Mach 3 gestiona aquests paràmetres de velocitat amb força precisió, però ara ho sabem amb seguretat:)
Espero que us hagi agradat aquest breu instructiu sobre enginyeria inversa i convertir l'aigua en vi.
Ànims!
Recomanat:
Utilitzeu un motor de transmissió de corrent continu i un controlador de velocitat PWM per a eines d’alimentació: 13 passos (amb imatges)
Utilitzeu un motor d’accionament de corrent continu de cinta de córrer i un controlador de velocitat PWM per a eines d’alimentació: poden necessitar eines elèctriques com ara torns de tall de metall, premses de trepant, serres de cinta, esmoladores i molt més. .Coincidentalment la majoria de cintes de córrer utilitzen un motor de 80-260 VDC amb
Altaveu Bluetooth portàtil fabricat amb fusta de ferralla: 9 passos (amb imatges)
Altaveu portàtil Bluetooth fabricat amb fusta de ferralla: Hola a tothom, ha passat molt de temps des que vaig publicar per última vegada aquí, així que vaig pensar que publicaré el meu projecte actual. Antigament feia pocs altaveus portàtils, però la majoria eren de plàstic / acrílic, ja que és fàcil de treballar i no requereix
Caixa per a Raspberry Pi Model B i font d'alimentació fabricada amb cargols de fusta: 10 passos
Caixa per a Raspberry Pi Model B i font d'alimentació fabricada amb calces de fusta: caixa que conté el Raspberry Pi 3 Model B i la seva font d'alimentació fabricada amb calces de fusta de cedre. Parts: 1. Raspberry Pi 3 Model B2. Calces de fusta de cedre3. Cola de fusta4. Serra de forat dozer Milwaukee Dole de 3/4 de polzada Alicates de bloqueig del nas d'agulla6. 1/2 polzada, #
Elimineu l'alimentació en espera amb un interruptor d'alimentació d'escriptori: 7 passos (amb imatges)
Elimineu l'alimentació en espera amb un commutador d'alimentació d'escriptori: tots sabem que està passant. Fins i tot quan els vostres electrodomèstics (TV, ordinador, altaveus, discs durs externs, monitors, etc.) estan apagats " APAGAT " encara estan activats, en mode d'espera, perden energia. Alguns televisors de plasma utilitzen més energia a
Mesurament d'aigua basat en web amb IoBridge: 10 passos (amb imatges)
Mesurament d’aigua basat en web amb IoBridge: Després del projecte de mesurador de potència en temps real que vaig fer al gener, el següent pas lògic semblava ser un mesurador d’aigua basat en ioBridge. Siguem realistes, la conservació d’energia no salvarà el planeta per si sol. Hi ha molts recursos a més de triar